OpenDJ vs OpenLDAP - OpenIdentityPlatform/OpenDJ GitHub Wiki
Community versions LDAP server software without any tuning:
- OpenLDAP 2.4.5 slapd (Ubuntu) (Oct 23 2018 12:47:19) with default config on MDB store
- OpenDJ 4.2.5 with default config on Java 11
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
OpenDJ responded with approximately twice the number of operations per second, after initial warmup.
/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
# /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