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

adding large no of entries



Title: Message
I am adding 3000 entries using a multi-threaded Java client using JNDI and my OpenLDAP 2.1.12 is running on RedHat 8.
All entries are of the same objectclass. I have only 1 index  on objectclass type "eq". All database directives are default values.
 
256 Meg RAM and this is the partition size.

Filesystem             Size   Used  Avail Use% Mounted on

/dev/hda3             6.3GB  2.1GB  3.9GB  34% /

slapd.conf has threads set to 100 and concurrency set to 10. I donno if it helps.

After adding some entries, OpenLDAP starts saying this:

Feb  8 18:13:20 LinuxDev2 slapd[4424]: bdb(dc=example,dc=com): Unable to allocate memory for transaction detail

Feb  8 18:13:20 LinuxDev2 slapd[4424]: bdb_add: txn_begin failed: Cannot allocate memory (12)

Feb  8 18:13:20 LinuxDev2 slapd[4424]: send_ldap_result: conn=139 op=1 p=3

Feb  8 18:13:20 LinuxDev2 slapd[4424]: send_ldap_response: msgid=2 tag=105 err=80

Slapd slows down considerably, starts taking 99.9% or CPU time...

And at the client side, I get a NamingException - internal error 80. Im using JNDI's connection pooling.

javax.naming.NamingException: [LDAP: error code 80 - internal error]; remaining name 'uid=10948,ou=People,dc=example,dc=com'

      at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:2794)

      at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2696)

      at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2502)

      at com.sun.jndi.ldap.LdapCtx.c_bind(LdapCtx.java:348)

      at com.sun.jndi.ldap.LdapCtx.c_bind(LdapCtx.java:307)

      at com.sun.jndi.toolkit.ctx.ComponentContext.p_bind(ComponentContext.java:607)

      at com.sun.jndi.toolkit.ctx.PartialCompositeContext.bind(PartialCompositeContext.java:194)

      at com.sun.jndi.toolkit.ctx.PartialCompositeContext.bind(PartialCompositeContext.java:184)

      at javax.naming.InitialContext.bind(InitialContext.java:367)

Could someone analyze the above and give me hints on the foll:

1. Should i allocate more memory available for OpenLDAP and how?

2. How do i find out whats the thruput of OpenLDAP in terms of no. of queries per second?

3. Is there any tool available which will help me do such performance testing?

Any help would be much appreciated.

 

Thanks

Vaishnavi.