[Date Prev][Date Next] [Chronological] [Thread] [Top]

Tuning OpenLDAP and Scalability



One of our systems consists of approximately 500 hardware units (nodes),
and our applications use CORBA and Java's RMI for inter-process
communication.  We have one master LDAP (slapd) server for reads and
writes running on one hardware unit, plus we have a replicated slave
LDAP (slapd) server for reads running on another hardware unit.  slurpd
runs on the master to keep the slave up-to-date.

The master slapd server's CPU utilization is normally less than 1% in a
steady-state system.  During initialization, multiple applications on
each hardware unit register their CORBA and RMI object references with
the master slapd server.  When shutting down, multiple applications on
each hardware unit un-register their CORBA and RMI object references
from the master slapd server.  The master slapd server works fine if we
reset (shutdown and restart) a few hardware units at a time; we see the
master slapd server's CPU utilization rise for a few seconds and then
return to normal as objects are being deleted and added to the LDAP
database.  Even resetting 50 hardware units at a time seems to work
fine.  However, if we reset over 75 hardware units at a time, the CPU
usage of the master slapd server shoots up to 99% for a minute or two,
and we can actually lose object deletions or additions.  As we approach
the resetting of 75 hardware units, the master slapd server becomes
overwhelmed with simultaneous requests to un-register and register
object references.

How can the master slapd server in our system be tuned to handle well
over 100 hardware unit resets at a time?  In other words, how can
OpenLDAP be tuned to handle a large burst of simultaneous ldap_delete
and ldap_add operations from multiple applications running on multiple
hardware units?

Ken R.