Open Source Directory benchmark – part one
Directory servers are critical IT infrastructure components in many enterprise environments. Although many whitepapers about the performance of commercial directory servers and even benchmark tests are to be found online, no real comparison of their open source counterparts exists.
As interns, we recently completed an assignment to benchmark read, write, modify and authentication performance of different Directory servers. This two part blog entry reports on our findings. This first part introduces the directory servers we subjected to our benchmark. The
OpenLDAP is one of the more popular open source directory servers. OpenLDAP is one of the few directory servers that aren’t java based. The version used in our benchmark tests was: 2.4.25.
ApacheDS is a Java based open source directory server. The server's networking code, MINA (Multipurpose Infrastructure for Network Applications) was designed for pluggable protocol providers of all sorts and not just LDAP. MINA should enable ApacheDS to handle large amounts of concurrency. The version used in our benchmark tests was: 1.5.7.
Fedora389 is a C based open source directory server. Fedora389 is the directory server developed by the same team as the Red Hat Linux distribution, and is a derivation from the original University of Michigan slapd project. The community of the project writes that Fedora389 is able to support enterprises in their directory needs. The version used in our benchmark tests was: 1.1.
OpenDJ is a java based open source directory server. It is to be expected that this server will have some latency on throughput because it runs in a virtualized environment. This server is easy to configure. OpenDJ is a fork of the Sun Microsystems initiated OpenDS project. The version used in our benchmark tests was: 2.4.2.
Already half-way through our assignment, our sponsor realized that if he wanted to know if open source directory servers are able to compete with commercial of the shelf products, we had to put these products to the test on the same hardware.
Oracle Internet Directory is a directory server that uses an Oracle database for storing the data. It uses LDAP v3 for handling operations on the directory server. In our test environment we used the Oracle 11g database, WebLogic 10.3.3, OFDM IDM 11.1.1.3 and java jdk-6u24-linux-x64 components. The version used in our benchmark tests was: 11G Release 2.
Active Directory is a directory server created by Microsoft. It supports LDAP and Kerberos-based authentication. Active Directory also serves as a central location for network administration and security. Active Directory stores all settings and information in a central database (JET). The version used in our benchmark tests was: Active Directory 2008 R2.
Hardware specifications
All directory servers were subjected to testing on two different – rather modest – hardware configurations. The main purpose of using two different configurations was to detect the performance impact of added RAM. The next two tables show the details of each hardware configuration:
Hardware configuration 1 (Mid End Server) | |
Model | Qosmio X300 |
Processor | Intel(R) Core(TM)2 Extreme CPU Q9300 @ 2.53GHz |
Memory | 8GiB (2x 4GB 667MHz) |
Network | RTL8111/8168B PCI Express Gigabit Ethernet controller 1GB/s |
Storage | 90GB Solid State Disk |
Linux OS | CentOS 5.5 x64 |
Windows OS | Windows Server 2008 R2 |
Hardware configuration 2 (High End Server) | |
Model | Dell Precision M6500 |
Processor | Intel(R) Core(TM) i7 CPU X 940 @ 2.13GHz |
Memory | 16GiB (4x 4GB 1333MHz) |
Network | NetXtreme BCM5761e Gigabit Ethernet PCIe 1GB/s |
Storage | 90GB Solid State Disk |
Linux OS | CentOS 5.5 x64 |
Windows OS | Windows Server 2008 R2 |
Test client
At the start of our assignment, we started looking for a free tool to benchmark a directory server. When we found none we decided to write our own in C#.