nscd performance drop with case insensitive attributes
Moritz Mühlenhoff
muehlenhoff@univention.de
Wed Jul 28 16:19:00 GMT 2004
Dear glibc hackers,
the following is an exemplary test run with nscd on a system using
OpenLDAP 2.1.22 with 2,800 freshly created users. All users reside in
the group "Domain Users".
First of all for the sake of comparison the results with the nscd
disabled:
testing:~# time getent group "Domain Users"
real 0m2.138s
user 0m1.620s
sys 0m0.010s
testing:~#
testing:~# time getent group "Domain users"
real 0m2.116s
user 0m1.590s
sys 0m0.040s
As we can see the results are of equal performance.
After restarting the nscd and an additional cache fill run the results
for the "Domain Users" search looks a good as expected:
testing:~# time getent group "Domain Users"
real 0m0.006s
user 0m0.000s
sys 0m0.000s
However, the request for "Domain users" breaks down dramatically. The
response time for the initial cache fill run:
testing:~# time getent group "Domain users"
real 0m12.458s
user 0m0.000s
sys 0m0.030s
Contrary to the "Domain Users" request, the performance does not improve
after the cache has been filled, either. The results of the second run
look like this:
testing:~# time getent group "Domain users"
real 0m12.418s
user 0m0.000s
sys 0m0.000s
Why is the retrieval of the groups data six times slower with the nscd
enabled and why doesn't the cache show it's effect? Is this a bug or is
everything working intentionally?
We are using glibc 2.3.2 with several backported fixes from Debian on
GNU/Linux/i386 with a 2.6.26 kernel. We are building with GCC
3.3-2003082209 and binutils 2.14.90.0.5. I am aware that bugreports
should be filed against current CVS snapshots, but I couldn't find any
NSCD bugfixes wrt this behaviour in the CVS.
Cheers,
Moritz
--
Moritz Mühlenhoff
Univention GmbH http://www.univention.de/
More information about the Libc-alpha
mailing list