Re: [389-users] 389 pauses every 5 minutes under load

2011-10-13 Thread Justin Gronfur
On 10/12/2011 05:41 PM, Rich Megginson wrote:
 Thanks.

 The select/poll are the server basically idle, waiting on a condition 
 variable for new work to perform.

 You can eliminate many of these by decreasing your cn=config 
 nsslapd-threadnum setting.  The default is 30, but you may find better 
 performance by setting to somewhere around 2 times the number of 
 cpus/cores you have on your machine (but at least 8).
Yeah, I knew what the select/poll calls are, but I will look at 
decreasing the number of threads to a more suitable number.  Are these 
threads bound to a specific connection or is it a thread pool that gets 
requests delegated to it from the open connections?

 Do you know if any of these come from a period of time during which 
 the server is consuming a lot of CPU?
Yes these were taken starting ~1 second before the spike and going ~2 
seconds after.  It's easy to start monitoring right before the event 
when the leading edge to leading edge time is exactly 5 minutes!

 No, should not be a problem.  And it is standard - many apps do this 
 (e.g. a web service that uses ldap for auth will not want to 
 open/close a connection for every single user - it will typically use 
 a connection pool of already open and possibly idle connections).
Our app doesn't really use a pool in the traditional sense... just one 
connection bound as a given user for that user's session... but I'm glad 
to hear that it shouldn't be the problem.

Thanks,
Justin
--
389 users mailing list
389-users@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-users


Re: [389-users] 389 pauses every 5 minutes under load

2011-10-13 Thread Richard Megginson
- Original Message -
 On 10/12/2011 05:41 PM, Rich Megginson wrote:
  Thanks.
 
  The select/poll are the server basically idle, waiting on a
  condition
  variable for new work to perform.
 
  You can eliminate many of these by decreasing your cn=config
  nsslapd-threadnum setting.  The default is 30, but you may find
  better
  performance by setting to somewhere around 2 times the number of
  cpus/cores you have on your machine (but at least 8).
 Yeah, I knew what the select/poll calls are, but I will look at
 decreasing the number of threads to a more suitable number.  Are
 these
 threads bound to a specific connection or is it a thread pool that
 gets
 requests delegated to it from the open connections?

It is essentially a thread pool, although it has a bit more logic than that.

 
  Do you know if any of these come from a period of time during which
  the server is consuming a lot of CPU?
 Yes these were taken starting ~1 second before the spike and going ~2
 seconds after.  It's easy to start monitoring right before the event
 when the leading edge to leading edge time is exactly 5 minutes!

Ok, thanks.  I am investigating.

  No, should not be a problem.  And it is standard - many apps do
  this
  (e.g. a web service that uses ldap for auth will not want to
  open/close a connection for every single user - it will typically
  use
  a connection pool of already open and possibly idle connections).
 Our app doesn't really use a pool in the traditional sense... just
 one
 connection bound as a given user for that user's session... but I'm
 glad
 to hear that it shouldn't be the problem.
 
 Thanks,
 Justin
 
--
389 users mailing list
389-users@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-users


Re: [389-users] 389 pauses every 5 minutes under load

2011-10-10 Thread Rich Megginson
On 10/07/2011 11:56 AM, Justin Gronfur wrote:
 Hello all,
 I need your expertise... please help me!  (Disclaimer:  I am a relative
 newcomer to 389ds)

 I'm running a Java application that keeps user authentication,
 permissions, and preferences in ldap.  And I'm currently load testing
 this application (using Jmeter, 15 concurrent threads, no think time)
 and I'm getting really good performance most of the time.  However every
 5 minutes (from the time I started ldap), 389's CPU usage will spike to
 375% (400% = all 4 processors at 100%, 389 normally sits around
 15-20%).  These pauses last for between 20 - 30 seconds (proportionate
 to the load I'm throwing at it) during which our application will just
 sit.  Since I'm just running the same set of requests at it constantly,
 there isn't anything different in terms of our application during those
 times, which points to 389 as the culprit (or possibly some glassfish
 ldap pool problem).

 Some info:
 Glassfish 3.1 final on Java 1.6.0_26 (64 bit server VM)
 389-Directory/1.2.9.10 B2011.250.1455
 Fedora 15 64-bit (also observed on Centos 5.4 64-bit)

 Have any of you run into this problem?  Do you have any possible config
 changes I could try? Any possible leads at all?
Are you using replication?  Is this a replication master?  Is your load 
tester doing delete operations?
 Thanks,
 Justin
 --
 389 users mailing list
 389-users@lists.fedoraproject.org
 https://admin.fedoraproject.org/mailman/listinfo/389-users

--
389 users mailing list
389-users@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/389-users