Hello,

I am using the iPlanet LDAP SDK for C (version 4.14) to perform simple binds
to LDAP directories.  I have been experiencing performance problems with the
ldap_bind_s call.  My test involves hitting an .asp page that calls into a
compiled COM component, which issues a simple bind.  The test peaks at about
8 binds/second, then drops dramatically to .5 binds/second, the CPU goes to
100%, and the system virtually stops responding.  If I comment out the
ldap_bind_s call, performance is spectacular.

I timed the ldap_bind_s call, and while under light load it takes only 15-30
ms per bind, but under heavy load it takes more than 120000 ms.  Since my
web server is configured to have a maximum of 25 ASP threads, there are
never more than 25 LDAP connections and bind requests sent from the web
server to the LDAP directory at a given time, so it doesn't seem like the
binds should be taking more than two minutes.

I replaced the iPlanet SDK with Microsoft's LDAP SDK, and performance is
much better: peaks at ~15 binds/second, plateaus at 14 bind/second under
heavy load.  So I am thinking that this may be some sort of bug in the
iPlanet LDAP SDK that I am using.

Background info on my test environment: My web server is IIS 5.0 (Windows
2000), and I am binding to iPlanet Directory Server 4.15.  The web server is
a 1 CPU machine.  Somewhat oddly, the problem is far less pronounced on
2-way and 4-way web servers -- they never drop to the crawl of .5
binds/second, although performance is of course somewhat worse under load;
I'm used to contention bugs being more pronounced on multi-CPU machines, so
I'm having trouble categorizing this bug.  I have stripped down my test code
to a plain and simple LDAP bind procedure: ldap_init, ldap_set_option (to
set LDAP version to 3), ldap_bind_s, ldap_unbind.  Performance counters on
the LDAP directory show very little load, and there is plenty of network
bandwidth available between the web server and the LDAP directory.

Does anyone have any ideas on what could be causing this problem?  Am I
missing some sort of configuration settings?

Thanks so much for your help,
-Bridget Frey



Reply via email to