[Fedora-directory-users] SambaXP talk

Howard Chu hyc at symas.com
Thu May 3 15:56:14 UTC 2007


For anyone curious, the slides from my presentation at the SambaXP
conference last week are now up on my web site.
     http://highlandsun.com/hyc/SambaXP.pdf

Much of the material on malloc benchmarking was already presented at
SCALE5x earlier this year. New material in these slides include
benchmark results for OpenLDAP 2.3.34 vs FedoraDS 1.0.4, OpenDS 0.1-34,
and ApacheDS 1.0.1 on Linux 2.6. The machine used for these tests is the
same SunFire X4100 used in these tests last year
http://www.symas.com/benchmark-auth.shtml

Some earlier discussion of these results is also on the Connexitor blog:
    http://www.connexitor.com/blog/pivot/entry.php?id=130
    http://www.connexitor.com/blog/pivot/entry.php?id=131

We didn't test Microsoft ActiveDirectory because we don't have a 64 bit
build of it available, nor do we have a 64 bit Windows system available.
I suppose we can run those tests and publish those results sometime down
the road. If anybody is interested in helping to run more tests along
these lines, feel free to contact me. (Judging from the information
available here
http://www.microsoft.com/downloads/details.aspx?FamilyID=52e7c3bd-570a-475c-96e0-316dc821e3e7&displaylang=en
I don't think there'd be any different news on that front anyway.)

This round of benchmarking was quite educational. We discovered a memory
leak in FedoraDS (and reported that to their maintainers, of course).
Analyzing the results also shows that while FDS' entry cache is
reasonably effective, they have a performance bottleneck in their
frontend, most likely in connection management. I didn't profile it to
get a closer look, though I'm sure a profiler would make the culprit
obvious.

Also FDS is too memory hungry, which causes their server to run out of
memory much sooner than OpenLDAP (running on the identical machine, with
identical cache memory settings, indices, workload, etc...) so their
performance drops off quite sharply as database sizes increase and
memory becomes constrained. (This is something different from the malloc
degradation I was observing in OpenLDAP before, although FDS appears to
be affected by that as well.)

We also observed that Sun/Fedora's documentation and advice on
performance tuning for their servers is wrong, and we can obtain better
performance by ignoring their recommendations. Even though Sun, Fedora,
and OpenLDAP all use BerkeleyDB, it's obvious that they don't use it as
effectively as we do.

Given the extremely young age of the OpenDS code base I'd say they've
done a really good job thus far, even managing to beat FDS in one test.
But I'd also say they've gotten as good as they can possibly get with a
pure Java solution; indeed their future plans for entry caching require
support outside the JVM (e.g. using a tmpfs cache). Since they're still
at best 3x slower than OpenLDAP, it's unlikely they will ever achieve
their stated goal of delivering high performance with a Java code base.

Another thing to keep in mind - unlike FedoraDS (and Sun DSEE), OpenLDAP 
is fully RFC compliant, does full schema checking, and fully implements 
the X.500 data model. It does all that and is still over 3 times faster. 
It's not just about speed; correctness still comes first. With good 
engineering you don't have to sacrifice correctness to get performance.
-- 
     -- Howard Chu
     Chief Architect, Symas Corp.  http://www.symas.com
     Director, Highland Sun        http://highlandsun.com/hyc/
     Chief Architect, OpenLDAP     http://www.openldap.org/project/







More information about the Fedora-directory-users mailing list