Understanding Cleaner thread behavior
884872Oct 27 2011 — edited Nov 1 2011Hi, I have a couple of questions regarding the behavior of cleaner threads.
- Once triggered when does a cleaner thread stop ?
- Can it clean more than one jdb once triggered ? (any configurable option) ?
- Our BDB environment utilization is really low : 22 % so we bumped up the number of cleaners = 21. iostat indicates that the resources are not throttled : Disk(60-80% busy), CPU(80% idle). However, the cleaners don't seem to be doing anything. A couple of thread dumps showed us that for about 50% of the sampling time, the cleaners are waiting on one of com.sleepycat.je.log.SyncedLogManager.serialLog, com.sleepycat.je.latch.Latch.acquire, or com.sleepycat.je.evictor.Evictor.doCriticalEviction.
Is this normal or something seems out of place ?
- Is there significant contention in the cleaner thread when appending valid data at the end of the log ? Could this explain the poor cleaning speed ?
(FYI: our BDB cache size is 20GB and the total data size is around 600GB on disk. The Min utilization is set to 90% and Min file utilization is set to 50%, anything else that we need to set ?)
I know they're a handful, but any clarification would be much helpful.
Thanks,
Chinmay