Skip to content
Maxim Thomas edited this page Jul 6, 2026 · 18 revisions

🔬 Benchmark: OpenLDAP vs OpenDJ

Reference links:

Note

you need to be signed in to GitHub

Versions

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

Totals (all operations, ADMIN_CONNECT excluded by the plan label)

Server Throughput (tests/s) Mean (ms) Samples Errors
OpenLDAP 1181.2 169 354311 0
OpenDJ 3052.2 65.1 919896 0

Per-operation latency

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

Total throughput (tests/s, higher is better)

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.

Total throughput (tests/s)

p99 latency per operation (ms, lower is better)

🟦 OpenLDAP · 🟧 OpenDJ — grouped bars per operation.

p99 latency per operation (ms)

Notes

  • BIND is the measured user authentication (test=sbind, single bind/unbind on its own connection) as mail=u_<n>,ou=People with the password set by MODIFY. The admin connection bind (ADMIN_CONNECT) is cached once per thread and excluded from these results.
  • MODIFY sends 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 — so BIND authentication is compared on equal footing.
  • Full interactive JMeter HTML dashboards are attached as the jmeter-reports artifact.

Clone this wiki locally