I am testing an OpenLDAP server with 3000 fake 'people' entries, but it
does not perform as well as I would expect. I have added some tweaks
based on my research of the documentation. Is there anything I am
missing here? Is there any way to further tune this setup?

I have written a script to test the directory. It is written in
PHP using the standard LDAP libraries. Both the script, and the
LDAP server are running on the same box. The script is
calling the server via the public interface (not the loopback) using
standard port 80. It basically does a search on a matching query.
The search query was "sn=BE*". Below is the info for my setup: