[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Memory Leak in slapd (or did I miss something configuring?)

On Thursday, 1 September 2011 10:14:12 Thomas Rasmussen wrote:
> On 31/08/2011, at 19.29, Quanah Gibson-Mount wrote:
> > --On Wednesday, August 31, 2011 11:33 AM +0200 Thomas Rasmussen 
<rasmussen.thomas@gmail.com> wrote:
> >> After a restart and performing a ldapsearch slapd has allocated over
> >> 500MB of memory, which is not exactly a good thing :-(
> > 
> > How many total entries are in your database?  What is your entrycache
> > size? I don't see that information in your stripped slapd.conf. 
> > Personally, I suggest you never "strip" slapd.conf when sending it out,
> > because you aren't necessarily going to know what is relevant to what
> > you are doing.
> I have about 3 million DNs in the database, I was required by our customer
> to strip out some of the information, but it was only the 'access' bits
> and the rootdn+rootpw which is why I stripped some information.
> > I think you are misunderstanding some of how OpenLDAP works.  In addition
> > to the BDB cachesize (which you have configured as 50MB (which is likely
> > grossly small given the size of your database), there are also 3
> > additional caches for back-bdb/back-hdb in slapd itself.  Those are
> > *not* filled until you start doing searches.  Those 3 caches are:
> > 
> > entrycache
> > idlcache
> > dn cache
> OK, I was not aware that it would use memory for other caches that wasn't
> possible to setup (or are they?)

Have you read any documentation regarding tuning, at all?

$ man slapd-bdb|col -b|grep -A6 -E '^ *(idl|dn|)cache.*size'
       cachesize <integer>
              Specify  the  size in entries of the in-memory entry cache mainâ
              tained by the bdb or hdb backend database instance.  The default
              is 1000 entries.

       cachefree <integer>
              Specify  the number of entries to free from the entry cache when
       dncachesize <integer>
              Specify the maximum number of DNs in  the  in-memory  DN  cache.
              Ideally  this cache should be large enough to contain the DNs of
              every entry in the database. If set to a smaller value than  the
              cachesize  it will be silently increased to equal the cachesize.
              The default value is 0 which means unlimited, i.e. the DN  cache
              will grow without bound.
       idlcachesize <integer>
              Specify  the  size of the in-memory index cache, in index slots.
              The default is zero. A  larger  value  will  speed  up  frequent
              searches  of indexed entries. An hdb database needs a large idlâ
              cachesize for good search performance, typically three times the
              cachesize (entry cache size) or larger.