Turning off the accesslog completely did increase writes but only to ~200 per sec. That is still not an acceptable number. So I need to figure out how to tweak OpenLDAP to increase write performance for both my primary backend and the accesslog backend.
Here is my configuration for the accesslog database. These are basically straight out of the box. I am not sure how best to tweak these to increase writes. My current configuration has both the db and log files for both the log and primary databases on the same disk. I realize that split these across multiple disks would help with the write performance.
Any other suggestions on how to imrpove write performance would be greatly appreciated.
Thanks, Pete
slapd.conf ------------------------- #Access Log database database hdb suffix "cn=log" rootdn "cn=Manager,cn=log" rootpw secret directory /opt/symas/var/openldap-data/access # Indices to maintain index reqStart eq index objectClass eq
DB_CONFIG ------------------------ # one 0.25 GB cache set_cachesize 0 268435456 1
# Data Directory #set_data_dir db
# Transaction Log settings set_lg_regionmax 262144 set_lg_bsize 2097152
set_lg_dir /opt/symas/var/openldap-logs/access
On Fri, Mar 20, 2009 at 3:56 PM, Russell Jackson raj@csub.edu wrote:
Pete Giesin wrote:
I am working on setting up OpenLDAP for a web project. I had originally
planned on
using the accesslog overlay to track all access to the LDAP. I have
discovered that the
use of this overlay has a tremendous impact on performance.
I started out by auditing all operations. With this configuration I was
getting 40-50
reads/sec max. I then decided that I only needed to audit writes. Making
this change
sent the reads through the roof, but the writes were still only averaging
16-20 per
second. I am in the process of retesting the writes with no accesslog. My
assumption is
that the writes per second will jump dramtically.
So I have to question what is the purpose of the accesslog overlay? Is it
really needed
and if so is there are way to increase its performance. I have to admit
that I have not
paid attention to the settings for the accesslog backend. Do I need to
tweak these
settings just like I did for my primary backend? If so what are the
optimal settings
for a write intensive database?
I'm sure there will be disagreement over what I'm about to say, but if your application is write intensive, OpenLDAP is probably the wrong tool for the job. That said, if you tune the bdb backend for the access log correctly, you should be able to get many order of magnitudes better performance out of it.
-- Russell A. Jackson raj@csub.edu Network Analyst California State University, Bakersfield
What the scientists have in their briefcases is terrifying. -- Nikita Khruschev