-
-
Notifications
You must be signed in to change notification settings - Fork 110
OpenDJ vs OpenLDAP
Maxim Thomas edited this page Jul 6, 2026
·
18 revisions
Reference links:
- The latest benchmark run
- Online benchmark history
- GitHub Actions workflow definition
- JMeter load profile & data
Note
you need to be signed in to GitHub
| Server | Version | Image |
|---|---|---|
| OpenLDAP | @(#) $OpenLDAP: slapd 2.6.10+dfsg-1 (May 29 2025 23:41:48) $ |
vegardit/openldap:latest |
| OpenDJ | 5.1.1.eefd084c464aaa6492814a833d804a93e2001782 |
openidentityplatform/opendj:latest |
| Server | Throughput (tests/s) | Mean (ms) | Samples | Errors |
|---|---|---|---|---|
| OpenLDAP | 1181.2 | 169 | 354311 | 0 |
| OpenDJ | 3052.2 | 65.1 | 919896 | 0 |
| Operation | mean ms OpenLDAP | mean ms OpenDJ | p99 ms OpenLDAP | p99 ms OpenDJ | err OpenLDAP | err OpenDJ |
|---|---|---|---|---|---|---|
| ADD | 56 | 63.9 | 359 | 197 | 0 | 0 |
| SEARCH | 22.4 | 56.3 | 245 | 144 | 0 | 0 |
| COMPARE | 12.3 | 54.2 | 72 | 142 | 0 | 0 |
| MODIFY | 34.1 | 54.9 | 124 | 140 | 0 | 0 |
| BIND | 963.8 | 90.9 | 1173 | 449 | 0 | 0 |
| DELETE | 39.4 | 66.7 | 229 | 159 | 0 | 0 |
| READD | 54.7 | 68.6 | 351 | 159 | 0 | 0 |
Per-operation throughput is not charted: every op runs once per loop iteration, so each op's throughput just equals the loop rate. The meaningful throughput is the aggregate.
🟦 OpenLDAP · 🟧 OpenDJ — grouped bars per operation.
-
BINDis the measured user authentication (test=sbind, single bind/unbind on its own connection) asmail=u_<n>,ou=Peoplewith the password set byMODIFY. The admin connection bind (ADMIN_CONNECT) is cached once per thread and excluded from these results. -
MODIFYsends the password in cleartext; each server hashes it on write with the same scheme ({SSHA}, Salted SHA-1) — OpenLDAP via the ppolicy hash-cleartext overlay, OpenDJ via its Salted SHA-1 default scheme — soBINDauthentication is compared on equal footing. - Full interactive JMeter HTML dashboards are attached as the
jmeter-reportsartifact.

