[Date Prev][Date Next]
slapd memory leaks in OpenLDAP 1.2.11
Actually, I'm using the latest CVS version of OPENLDAP_REL_ENG_1_2.
While greatly anticipating OpenLDAP 2.0, I continue to use 1.2 in
a very dynamic environment, with lots of changes and frequent searches.
It actually holds up surprisingly well.
One problem I have with this server however, is that the process grows
in size. In fact, currently top shows its size at 135M, with 101M
resident in memory. There can be no justification of why the process
grows this much. I'm using the default cache sizes (DEFAULT_CACHE_SIZE
is 1000, DEFAULT_DBCACHE_SIZE), and my objects rarely exceed 2K, most
being under 512 bytes. In the worst case, the maximum size of the cached
entries would be 1000*2K or about 2MB. The system is lightly loaded, and
has 512MB of RAM, so it can handle it, but that's not really the point.
It will keep growing until it either dies for other reasons, or it
exceeds the data/memory segment size limit (and presumably a malloc fails).
Has anybody else looked into this, or done any research to prove that
cached entries really do get returned? My guess is that very large searches
cause thousands of entries to get cached and they are never freed, and
possibly orphaned. I've looked at how the caching code works to some
degree, but I am hoping to benefit from other's knowledge, if you have
also looked into this problem.