On Mon, Feb 14, 2022 at 06:01:43PM -0800, Paul B. Henson wrote:
On Mon, Feb 14, 2022 at 09:57:06AM -0800, Quanah Gibson-Mount wrote:
> How large is the total size of all mdb databases?
[...]
So a total of a bit over 2GB.
> How much RAM do you have on the system?
2GB. I don't think I'm running low on memory, there's usually a bit
free:
# free -m
total used free shared buff/cache available
Mem: 1949 423 79 0 1446 1372
Swap: 1023 291 732
And when it's being really slow for memberOf there's no swapping or other
signs of low memory. Other queries are still very responsive, it's just
memberOf that gets slow. The only metric that seems ramped when it occurs
is high read IO.
So think about it:
- your DB is just over the size of available RAM by itself
- after a while using the system, other processes (and slapd) will carve
out a fair amount of it that the system will be unwilling/unable to
page out
- if, to answer that query, you need to crawl a large part of the DB,
the OS will have to page that part into memory, at the beginning,
there is enough RAM to do it all just once, later, you've reached a
threshold and it needs to page bits in and then drop them again to
fetch others you develop these symptoms - lots or read I/O and a delay
in processing
Figure out what is involved in that search and see if you can tweak it
so it doesn't need to crawl the whole DB or make sure you always have
enough RAM to page the whole DB in, even when the other processes have
been running for a bit.
Regards,
--
Ondřej Kuzník
Senior Software Engineer
Symas Corporation
http://www.symas.com
Packaged, certified, and supported LDAP solutions powered by OpenLDAP