Using lb to measure LDAP performance

Download and install latest Go:

wget https://go.dev/dl/go1.25.1.linux-amd64.tar.gz
tar xf ../distrib/go1.25.1.linux-amd64.tar.gz
realpath go
export GOROOT=/home/dmitriano/dev/tools/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Install the package:

go install github.com/hamano/lb@latest
go: downloading github.com/hamano/lb v0.0.0-20250416231454-ec2ee72fe3d0
go: downloading github.com/satori/go.uuid v1.2.0
go: downloading github.com/urfave/cli v1.22.5
go: downloading github.com/go-ldap/ldap/v3 v3.4.1
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d
go: downloading github.com/russross/blackfriday/v2 v2.0.1
go: downloading github.com/go-asn1-ber/asn1-ber v1.5.1
go: downloading github.com/Azure/go-ntlmssp v0.0.0-20200615164410-66371956d46c
go: downloading golang.org/x/crypto v0.35.0
go: downloading github.com/shurcooL/sanitized_anchor_name v1.0.0

Run lb command:

lb
NAME:
   lb - LDAP Benchmarking Tool

USAGE:
   lb [global options] command [command options] [arguments...]

VERSION:
   0.9.5

AUTHOR:
   HAMANO Tsukasa <hamano@osstech.co.jp>

COMMANDS:
   add      LDAP ADD Benchmarking
   bind     LDAP BIND Benchmarking
   delete   LDAP DELETE Benchmarking
   modify   LDAP MODIFY Benchmarking
   search   LDAP SEARCH Benchmarking
   setup    Setup SubCommands
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

Try to setup:

lb setup base -b 'DC=other,DC=local' ldap://10.15.7.16:389
This is LDAPBench, Version 0.9.5
Copyright 2015 Open Source Solution Technology Corporation
This software is released under the MIT License.

2025/09/04 21:55:24 bind error: LDAP Result Code 49 "Invalid Credentials": 80090308: LdapErr: DSID-0C090434, comment: AcceptSecurityContext error, data 52e, v4f7c

6 Responses to Using lb to measure LDAP performance

  1. dmitriano says:

    How to Install Go on Ubuntu 24.04: Step-by-Step
    https://www.cherryservers.com/blog/install-go-ubuntu-2404

  2. dmitriano says:

    lb – LDAP benchmarking tool like an Apache Bench
    https://github.com/hamano/lb?tab=readme-ov-file#usage

  3. dmitriano says:

    Namespace – using System.DirectoryServices.Protocols;
    https://stackoverflow.com/a/75394375/2394762

    LdapDirectoryIdentifier ldap = new LdapDirectoryIdentifier(“Directory Host”, true, false);
    LdapConnection connection = new LdapConnection(ldap);
    connection.AuthType = AuthType.Basic;

    string ldapuser = “cn=” + fullname + “,ou=Org Unit,dc=Value,dc=local”;
    connection.Credential = new System.Net.NetworkCredential(ldapuser, password);
    connection.Bind();

  4. dmitriano says:

    NBomber – Distributed load-testing framework for .NET. It is designed to test any system regardless of the protocol (HTTP/WebSockets/AMQP) or a semantic model (Pull/Push). It allows to write distributed load test scenarios in plain C# or F#.
    https://github.com/PragmaticFlow/NBomber?tab=readme-ov-file

Leave a Reply to dmitriano Cancel reply

Your email address will not be published. Required fields are marked *