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

SambaXP talk



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.

OpenLDAP has taken a lot of flack over the years for being slow or old
technology. Most of that was well-deserved up to about mid-2000, but it
hasn't been true since.

OpenLDAP is the fastest, most scalable, most reliable directory software
in the world. That's not marketing hype; we can prove every point. AMD
and Intel make a big deal about piddly 20% differences between their
products. We are over 300% faster than the next closest offering. Other
projects and vendors talk about how superior they are (or hope to be)
but it's pretty clear that they're not in the ballpark. They're not even
in the same league.
--
   -- 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/