Use ldclt from 389 project.
#!/bin/sh ldclt \ -h localhost \ -a 1000 \ -p 389 \ -e bindeach,bindonly \ -D "uid=testXXXXXXXX,ou=people,dc=foo,dc=bar" \ -w foobar123 \ -e randombinddn,randombinddnlow=50000000,randombinddnhigh=51000000 \ -n 48
This is by far the simplest and highest performance load testing client. With the above test, I managed to achieve 14,400 binds per second. With two instances of the above test running simultaneously, I managed to achieve 12,000 binds per second for each instance -> 24,000 binds per second with OpenLDAP 2.4.44 and 2.4.45 both compiled from source.
On Wed, Nov 1, 2017 at 9:33 PM, Michael Ströder michael@stroeder.com wrote:
Tim wrote:
I've used the python-ldap library to simulate other varieties of interactions successfully, but when it comes to binds, each interaction seems to generate a substantial amount of traffic behind the scenes, so suspect that *things* are happening that is artificially limiting the bind rate/s.
python-ldap itself is a pretty thin wrapper on top of libldap. Especially if you're using LDAPObject.simple_bind() or LDAPObject.simple_bind_s() [1] there is definitely no "traffic behind the scenes".
So if you have overhead on the client side I suspect your own Python code adds this.
Ciao, Michael.
[1] https://www.python-ldap.org/doc/html/ldap.html#ldap.LDAPObject.simple_bind