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

Re: Open LDAP query slow for 5k users only (each having 40 entries)

Hash: SHA1

Vishal Mathur wrote:
| Hi all,
| I have some more issues regarding the same problem.
| This is very important as for a single call I cann't affored to have 15
| second
| just to search the user information.
| Issue 1 => do ldap search uses indexs even when filter is not specified ?
| say i want to search all entries (filter null) under dn,
|  profiletype=userprofile,pid=vishal@ny.com,dc=mydomain
| Can it help if i create index on objectclass etc.
| When i created index on objectClass my search started taking 25% extra
| time(.2 to .25 seconds.). Then i indexed both pid (mainly used attribute
| in all entry) and objectclass it started taking even more time.
| slapindex should help as i change my slapd.conf with index ?? Why i need
| to use slapdadd as entries are already present.
| Issue 2 =>
| I have many attributes which can be taken as integers like registration
| time
| on server, max simultanous connection reguired.  Currently i have to SUP
| all my attributes with name object.
|   attributetype ( 10.1.1 NAME 'regTime' SUP name SINGLE-VALUE )
| Can i use any integer object class ?
| if yes then how much it will help to have integer instead of
| strings/names ?
| How do i get this interger values in my C client ?
| Issue 3 => length of dn, attribute and object class name etc.
| Does it help ldap to search if my dn length is smaller.
| Say if i want a tree level (sub) search on base dn
|  profiletype=userprofile,pid=vishal@ny.com,dc=mydomain
| There are arround 5 k dn in the same level with same kind of naming
| style. Does it help searching ldap if i rename it to
|  ptype=up,p=vishal@ny.com,dc=m
| Issue 4 => memory sizes ??
| cachesize 10000
| dbcachesize 1000000
| Are both the sizes in kb ? what is optimal limit ?
| which variable i need to tune to say cache all 10 k profiles dn in the
| memory and not the attributes/values ? I can see this memory is not used
| at startup from the ldap. it use as and when needed, in my case
| afterwards it started
| swapping on my machine. Can i configure to take all memory at startup ?
| Issue 5 => Tree style.
| I changed my tree style from
| dc=root
|    pid=101@netyantra.com,dc=nycube
|    pid=102@netyantra.com,dc=nycube
|                             ..... 10 k elments in same level.
| To new stype
| dc=root
|   pid=netyantra.com,dc=nycube
|          pid=101,pid=netyantra.com,dc=nycube
|          pid=101,pid=netyantra.com,dc=nycube
|            ---- arround 5 k entry
|    pid=example.com,dc=nycube
|          pid=101,pid=example.com,dc=nycube
|          pid=101,pid=example.com,dc=nycube
|            ---- arround 5 k entry
| STILL time taken per user search is 15 sec. which is too high.
| Regards,

Questions 1,3,4,5 all relate to performance, and it seems like your
database is not tuned correctly. On reasonable hardware with a recent
version of OpenLDAP you should easily manage 100 searches/second.

But, if you don't give us any detail (version of OpenLDAP, database
backend used, DB_CONFIG file if using bdb, etc etc etc), it's impossible
to help.

All the issues you've mentioned should have a minimal impact on your
performance ... so they're mostly irrelevant.


- --
Buchan Milne                      Senior Support Technician
Obsidian Systems                  http://www.obsidian.co.za
B.Eng                                RHCE (803004789010797)
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org