[mitreid-connect] General performance

Luiz Omori luiz.omori at duke.edu
Thu Sep 3 16:19:25 EDT 2015


Done: https://github.com/mitreid-connect/OpenID-Connect-Java-Spring-Server/issues/902

Regards,
Luiz

From: Justin Richer <jricher at mit.edu<mailto:jricher at mit.edu>>
Date: Thursday, September 3, 2015 at 3:37 PM
To: Luiz Omori <luiz.omori at dm.duke.edu<mailto:luiz.omori at dm.duke.edu>>
Cc: "mitreid-connect at mit.edu<mailto:mitreid-connect at mit.edu>" <mitreid-connect at mit.edu<mailto:mitreid-connect at mit.edu>>
Subject: Re: [mitreid-connect] General performance

Luiz, this is great data. Please submit the index creation components to GitHub and we'll add them to the MySQL side. I would imagine that indexes on client_id would probably help too.

 - Justin

On Sep 3, 2015, at 3:21 PM, Luiz Omori <luiz.omori at duke.edu<mailto:luiz.omori at duke.edu>> wrote:

While investigating overall performance aspects on our production environment we found out a few things about MitreID:

  1.  We recommend the following indexes to be added (at least for MySQL):
     *   CREATE INDEX token_value_idx ON access_token(token_value(767));
     *   CREATE INDEX owner_id_idx ON token_scope(owner_id);
     *   CREATE INDEX expiration_idx ON access_token(expiration);
     *   CREATE INDEX auth_holder_id1_idx ON refresh_token(auth_holder_id);
  2.  RSASSASigner.sign is using quite a bit of CPU power. Just an observation, not sure if anything can be done. Using RSA 2048 key.

The indexes themselves may improve performance by 10+%. See attached output from JMeter (http://jmeter.apache.org/usermanual/component_reference.html#Aggregate_Report). Interesting that there is a high latency (1200+ ms) per call but the also high throughput (79 req/sec). I guess that's why we have Queue Theory in CS, eh? :)

We can maybe make those changes in Github however won't be able to test all options, e.g. PostgreSQL. Note that there is a limitation in MySQL where it doesn't handle index on large columns. As configured on my system, the max column length is 767 for indexes.

We are using JMeter to create 100 requests/sec, repeated 50 times, running version 1.1.16 connected to MySQL, MySQL Enterprise Monitor for SQL analysis, and JVisualVM to profile the application. All components are running on my development (MacOS) system. The requests are using the Resource Owner flow.

By the way MitreID doesn't appear to be the source of our main performance concerns.

Regards,
Luiz
<after.png><before.png><Screen Shot 2015-09-03 at 3.20.31 PM.png>_______________________________________________
mitreid-connect mailing list
mitreid-connect at mit.edu<mailto:mitreid-connect at mit.edu>
http://mailman.mit.edu/mailman/listinfo/mitreid-connect

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mit.edu/pipermail/mitreid-connect/attachments/20150903/c9a995af/attachment.html


More information about the mitreid-connect mailing list