[keycloak-dev] Slow Direct Grants API endpoint

Daniel Baxter daniel.baxter at cira.ca
Mon Feb 2 11:03:44 EST 2015


Hi,

I have just finished some testing on 1.1.0 Final and found that the core problem was that through an abundance of caution we have configured hash iterations to 100,000 (which I of course typoed to 1M on Beta 2 when I configured it). The performance delta between 1.0 and 1.1 is explained by the typo there. However, even with the change to 100K in place I found the end point was still too slow (600~800ms) and discovered that it scaled linearly down as I reduced the iterations.

So I guess the question now is how many iterations is the default and how many would be a recommended "overly cautious" amount of iterations. I understand that keycloak defaults to Bcrypt hashing which is designed explicitly to be computationally expensive so I imagine iterations in the scope of 10-50 is probably sufficient to keep the passwords safe.

- Daniel

-----Original Message-----
From: Stian Thorgersen [mailto:stian at redhat.com] 
Sent: Thursday, January 15, 2015 7:37 AM
To: Daniel Baxter
Cc: keycloak-dev at lists.jboss.org
Subject: Re: [keycloak-dev] Slow Direct Grants API endpoint

Just ran some perf tests with default settings, 10 users and 10000 requests:

  Version                Average (ms)    Throughput
  -------------------------------------------------
  1.0.4.Final            18              468
  1.1.0.Beta2            19              470
  1.1.0.Final-SNAPSHOT   20              426


----- Original Message -----
> From: "Daniel Baxter" <daniel.baxter at cira.ca>
> To: "Stian Thorgersen" <stian at redhat.com>
> Cc: keycloak-dev at lists.jboss.org
> Sent: Wednesday, 14 January, 2015 3:56:03 PM
> Subject: RE: [keycloak-dev] Slow Direct Grants API endpoint
> 
> Honestly I don't know how to check what is being used. I assume it 
> would be whatever Keycloak Appliance defaults to. I checked with the 
> guy who configured 1.0.4 for the other application and he doesn't know 
> what we are using or how to configure it either. Sorry.
> 
> - Daniel
> 
> -----Original Message-----
> From: Stian Thorgersen [mailto:stian at redhat.com]
> Sent: Wednesday, January 14, 2015 9:19 AM
> To: Daniel Baxter
> Cc: keycloak-dev at lists.jboss.org
> Subject: Re: [keycloak-dev] Slow Direct Grants API endpoint
> 
> What user session provider are you using?
> 
> ----- Original Message -----
> > From: "Daniel Baxter" <daniel.baxter at cira.ca>
> > To: "Stian Thorgersen" <stian at redhat.com>
> > Cc: keycloak-dev at lists.jboss.org
> > Sent: Wednesday, 14 January, 2015 3:01:17 PM
> > Subject: RE: [keycloak-dev] Slow Direct Grants API endpoint
> > 
> > I am working with our ops team to configure 1.1.x with the same 
> > level of hardware as our development 1.0.4 system (right now it is 
> > running locally on a XEON workstation with piles of RAM).
> > 
> > Both are connected to postgres databases and I am the only person 
> > working on this portion of the project so it is just 1 user at a 
> > time right now for 1.1.x. I have tested the database connection and 
> > there is no real discernable performance irregularities for anything 
> > that runs against that database.
> > 
> > For Keycloak itself, it is mostly straight out of the box appliance 
> > install for both 1.0.4 and 1.1.x and it runs on a single machine for 
> > development use (I believe our prod deployment is/will be clustered).
> > The performance I am seeing is timeable on a stop watch for 1.1 and 
> > near enough to instant for
> > 1.0.4 (under 500 ms). Easily an order of magnitude. Given the 
> > response I got (regarding the unexpectedness of the slow behaviour) 
> > I want to make sure I have a completely fair comparison and am 
> > working to set up
> > 1.1 on a dedicated development server to make the comparison 
> > completely fair.
> > 
> > - Daniel
> > 
> > -----Original Message-----
> > From: Stian Thorgersen [mailto:stian at redhat.com]
> > Sent: Wednesday, January 14, 2015 8:46 AM
> > To: Daniel Baxter
> > Cc: keycloak-dev at lists.jboss.org
> > Subject: Re: [keycloak-dev] Slow Direct Grants API endpoint
> > 
> > Direct grants are expected to be a little bit slower in 1.1.x due to 
> > the requirement to persist more, but should certainly not be seconds.
> > 
> > Can you give some more details please? Including
> > 
> > * What DB are you using?
> > * Are you using mem, infinispan or jpa user session provider?
> > * Clustered?
> > * How many concurrent requests/users are you testing with?
> > 
> > Any more accurate performance stats would also be helpful
> > 
> > ----- Original Message -----
> > > From: "Daniel Baxter" <daniel.baxter at cira.ca>
> > > To: keycloak-dev at lists.jboss.org
> > > Sent: Monday, 12 January, 2015 9:23:42 PM
> > > Subject: [keycloak-dev] Slow Direct Grants API endpoint
> > > 
> > > 
> > > 
> > > Hi,
> > > 
> > > 
> > > 
> > > I am attempting to integrate Keycloak into an existing application 
> > > to replace the homegrown user management system in place. We have 
> > > a new project built from the ground up on Keycloak 1.0.4.Final 
> > > which is exhibiting good performance. However this app that I am 
> > > porting has a remoting component that connects to the server with 
> > > bare username/password credentials over the EJB Remoting 
> > > framework. I was hoping to use 1.1.0 (currently Beta2) which 
> > > provides a DirectAccessGrantsLoginModule which does exactly what I 
> > > want (turns username and password into a KeycloakPrincipal). 
> > > However, the turn around time from Keycloak is on the order of several seconds.
> > > 
> > > 
> > > 
> > > I have used a bare REST client to execute the POSTs to both our
> > > 1.0.4 Keycloak and 1.1.0 Keycloak instances and have noted an 
> > > order of magnitude difference in getting a response. Is this a 
> > > known issue (I cannot find anything in the public bugs/tasks 
> > > list)? Or is this due to the Beta status leaving additional 
> > > performance affecting logging or instrumentation in place?
> > > 
> > > 
> > > 
> > > Thanks,
> > > 
> > > 
> > > 
> > > Daniel
> > > 
> > > _______________________________________________
> > > keycloak-dev mailing list
> > > keycloak-dev at lists.jboss.org
> > > https://lists.jboss.org/mailman/listinfo/keycloak-dev
> > 
> 



More information about the keycloak-dev mailing list