That's more or less what the priority cache manager does automatically now whenever the aggregate cache size is periodically re-tuned to keep the process mapped memory under the memory target: https://github.com/ceph/ceph/blob/master/src/common/PriorityCache.cc#L116 The problem is that it still doesn't guarantee that the kernel will (or even can) reclaim what we've freed. We just do everything possible to make sure nothing is blocking it (regular heap releases, avoid THP, etc). Mark On 5/12/20 4:56 PM, Anthony D'Atri wrote:
FWIW on Luminous / Ubunto Trusty (at least) I would sometimes find a handful to tens of GB “released” by tcmalloc but not reclaimed. In such circumstances a “heap release” usually did wonders to free up physmem / VM. YMMV.
- AND... there is no guarantee that the kernel will actually reclaim memory that OSDs release/unmap Correct, we can't explicitly force the kernel to reclaim memory.