OpenDJ vs OpenLDAP - OpenIdentityPlatform/OpenDJ GitHub Wiki

Version

Community versions LDAP server software without any tuning:

Environment

For stress performance test used single node with apache-jmeter-5.0 thread pool like 256 concurrent users in simple loop for 600 seconds:

  • Bind
  • Add
  • Search
  • Compare
  • Modify
  • Delete
  • Add without Delete (accumulation of records)
  • Unbind

Results Summary

OpenDJ responded with approximately twice the number of operations per second, after initial warmup.

LDAP Server Benchmark

OpenLDAP

/root/apache-jmeter-5.0/bin/jmeter -n -t openldap.jmx -l openldap.result -j openldap.log -e -o /root/OpenDJ_vs_OpenLDAP/openldap
Creating summariser <summary>
Created the tree successfully using openldap.jmx
Starting the test @ Fri Dec 07 09:00:38 MSK 2018 (1544162438553)
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
Warning: Nashorn engine is planned to be removed from a future JDK release
summary +  15358 in 00:00:21 =  732.4/s Avg:   322 Min:     0 Max:  2870 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary +  18959 in 00:00:30 =  632.2/s Avg:   405 Min:     0 Max:  3607 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  34317 in 00:00:51 =  673.4/s Avg:   368 Min:     0 Max:  3607 Err:     0 (0.00%)
summary +  18305 in 00:00:30 =  610.1/s Avg:   417 Min:     0 Max:  3708 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  52622 in 00:01:21 =  650.0/s Avg:   385 Min:     0 Max:  3708 Err:     0 (0.00%)
summary +  17857 in 00:00:30 =  595.3/s Avg:   430 Min:     0 Max:  3811 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  70479 in 00:01:51 =  635.2/s Avg:   396 Min:     0 Max:  3811 Err:     0 (0.00%)
summary +  17153 in 00:00:30 =  571.7/s Avg:   452 Min:     0 Max:  3929 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  87632 in 00:02:21 =  621.7/s Avg:   407 Min:     0 Max:  3929 Err:     0 (0.00%)
summary +  17602 in 00:00:30 =  586.8/s Avg:   430 Min:     0 Max:  3776 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 105234 in 00:02:51 =  615.5/s Avg:   411 Min:     0 Max:  3929 Err:     0 (0.00%)
summary +  17280 in 00:00:30 =  576.0/s Avg:   444 Min:     0 Max:  3793 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 122514 in 00:03:21 =  609.6/s Avg:   416 Min:     0 Max:  3929 Err:     0 (0.00%)
summary +  17442 in 00:00:30 =  581.4/s Avg:   440 Min:     0 Max:  3863 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 139956 in 00:03:51 =  606.0/s Avg:   419 Min:     0 Max:  3929 Err:     0 (0.00%)
summary +  16508 in 00:00:30 =  550.2/s Avg:   463 Min:     0 Max:  3947 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 156464 in 00:04:21 =  599.6/s Avg:   423 Min:     0 Max:  3947 Err:     0 (0.00%)
summary +  15008 in 00:00:30 =  500.3/s Avg:   511 Min:     0 Max:  5823 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 171472 in 00:04:51 =  589.3/s Avg:   431 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  16392 in 00:00:30 =  546.4/s Avg:   468 Min:     0 Max:  4002 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 187864 in 00:05:21 =  585.3/s Avg:   434 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  16167 in 00:00:30 =  538.9/s Avg:   473 Min:     0 Max:  4216 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 204031 in 00:05:51 =  581.3/s Avg:   437 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  16005 in 00:00:30 =  533.5/s Avg:   502 Min:     0 Max:  4027 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 220036 in 00:06:21 =  577.6/s Avg:   442 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  16057 in 00:00:30 =  535.2/s Avg:   455 Min:     0 Max:  4051 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 236093 in 00:06:51 =  574.5/s Avg:   443 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  16017 in 00:00:30 =  533.9/s Avg:   474 Min:     0 Max:  4128 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 252110 in 00:07:21 =  571.7/s Avg:   445 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  15473 in 00:00:30 =  515.8/s Avg:   496 Min:     0 Max:  4110 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 267583 in 00:07:51 =  568.2/s Avg:   448 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  15587 in 00:00:30 =  519.5/s Avg:   495 Min:     0 Max:  4359 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 283170 in 00:08:21 =  565.2/s Avg:   451 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  15667 in 00:00:30 =  522.3/s Avg:   491 Min:     0 Max:  4284 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 298837 in 00:08:51 =  562.8/s Avg:   453 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  15302 in 00:00:30 =  510.1/s Avg:   499 Min:     0 Max:  4246 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 314139 in 00:09:21 =  560.0/s Avg:   455 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +  15047 in 00:00:30 =  501.5/s Avg:   509 Min:     0 Max:  4394 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 329186 in 00:09:51 =  557.0/s Avg:   457 Min:     0 Max:  5823 Err:     0 (0.00%)
summary +   4970 in 00:00:09 =  537.6/s Avg:   556 Min:     0 Max:  3744 Err:     0 (0.00%) Active: 0 Started: 256 Finished: 256
summary = 334156 in 00:10:00 =  556.7/s Avg:   459 Min:     0 Max:  5823 Err:     0 (0.00%)
Tidying up ...    @ Fri Dec 07 09:10:39 MSK 2018 (1544163039247)
... end of run

Accumulation result (count records):

ldapsearch -LLL -s sub -x -h localhost -p 2389 -D "cn=admin,dc=example,dc=com" -w "1" -b "ou=people,dc=example,dc=com" "(objectClass=*)" cn | grep cn: | wc -l
41747

OpenDJ

# /root/apache-jmeter-5.0/bin/jmeter -n -t opendj.jmx -l opendj.result -j opendj.log -e -o /root/OpenDJ_vs_OpenLDAP/opendj
Creating summariser <summary>
Created the tree successfully using opendj.jmx
Starting the test @ Fri Dec 07 08:47:06 MSK 2018 (1544161626471)
Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
Warning: Nashorn engine is planned to be removed from a future JDK release
summary +   9700 in 00:00:23 =  424.6/s Avg:   579 Min:     0 Max:  2968 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary +   7692 in 00:00:30 =  256.4/s Avg:   992 Min:     0 Max:  3410 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  17392 in 00:00:53 =  329.1/s Avg:   762 Min:     0 Max:  3410 Err:     0 (0.00%)
summary +   6065 in 00:00:30 =  202.2/s Avg:  1262 Min:     0 Max:  4125 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  23457 in 00:01:23 =  283.1/s Avg:   891 Min:     0 Max:  4125 Err:     0 (0.00%)
summary +   4875 in 00:00:30 =  162.5/s Avg:  1580 Min:     0 Max:  4704 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  28332 in 00:01:53 =  251.1/s Avg:  1010 Min:     0 Max:  4704 Err:     0 (0.00%)
summary +  13119 in 00:00:31 =  429.4/s Avg:   583 Min:     0 Max:  5448 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary =  41451 in 00:02:23 =  289.1/s Avg:   875 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  66098 in 00:00:29 = 2244.5/s Avg:   118 Min:     0 Max:  1560 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 107549 in 00:02:53 =  622.3/s Avg:   410 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  77942 in 00:00:30 = 2598.1/s Avg:    98 Min:     0 Max:  1528 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 185491 in 00:03:23 =  914.5/s Avg:   279 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  69221 in 00:00:30 = 2307.4/s Avg:   110 Min:     0 Max:  1517 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 254712 in 00:03:53 = 1093.9/s Avg:   233 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  59930 in 00:00:30 = 1997.7/s Avg:   127 Min:     0 Max:  1721 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 314642 in 00:04:23 = 1197.1/s Avg:   213 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  64179 in 00:00:30 = 2139.3/s Avg:   119 Min:     0 Max:  1844 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 378821 in 00:04:53 = 1293.6/s Avg:   197 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  61001 in 00:00:30 = 2033.4/s Avg:   125 Min:     0 Max:  1870 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 439822 in 00:05:23 = 1362.4/s Avg:   187 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  49007 in 00:00:30 = 1633.6/s Avg:   152 Min:     0 Max:  1739 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 488829 in 00:05:53 = 1385.4/s Avg:   184 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  56514 in 00:00:30 = 1883.8/s Avg:   139 Min:     0 Max:  1673 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 545343 in 00:06:23 = 1424.5/s Avg:   179 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  55300 in 00:00:30 = 1843.3/s Avg:   138 Min:     0 Max:  1727 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 600643 in 00:06:53 = 1454.9/s Avg:   175 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  59255 in 00:00:30 = 1975.2/s Avg:   129 Min:     0 Max:  1590 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 659898 in 00:07:23 = 1490.2/s Avg:   171 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  54036 in 00:00:30 = 1801.2/s Avg:   141 Min:     0 Max:  2211 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 713934 in 00:07:53 = 1509.9/s Avg:   169 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  61175 in 00:00:30 = 2039.2/s Avg:   125 Min:     0 Max:  1651 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 775109 in 00:08:23 = 1541.5/s Avg:   165 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  68932 in 00:00:30 = 2297.7/s Avg:   111 Min:     0 Max:  1945 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 844041 in 00:08:53 = 1584.1/s Avg:   161 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  64205 in 00:00:30 = 2128.0/s Avg:   117 Min:     0 Max:  2209 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 908246 in 00:09:23 = 1613.2/s Avg:   158 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  68444 in 00:00:30 = 2294.6/s Avg:   114 Min:     0 Max:  1908 Err:     0 (0.00%) Active: 256 Started: 256 Finished: 0
summary = 976690 in 00:09:53 = 1647.5/s Avg:   155 Min:     0 Max:  5448 Err:     0 (0.00%)
summary +  17790 in 00:00:07 = 2413.5/s Avg:   104 Min:     0 Max:  1460 Err:     0 (0.00%) Active: 0 Started: 256 Finished: 256
summary = 994480 in 00:10:00 = 1656.9/s Avg:   154 Min:     0 Max:  5448 Err:     0 (0.00%)
Tidying up ...    @ Fri Dec 07 08:57:07 MSK 2018 (1544162227372)
... end of run

Accumulation result (count records):

ldapsearch -LLL -s sub -x -h localhost -p 1389 -D "cn=Directory Manager" -w "1" -b "ou=people,dc=example,dc=com" "(objectClass=*)" cn | grep cn: | wc -l
124333
⚠️ **GitHub.com Fallback** ⚠️