[CentOS] Linux ate my RAM...

Wed Nov 18 20:20:30 UTC 2015
Kwan Lowe <kwan.lowe at gmail.com>

Hello everyone,

Excuse the title. I'm trying to do something very specific that goes
against some common assumptions.

I am aware of how Linux uses available memory to cache. This, in
almost all cases, is desirable. I've spent years explaining to users
how to properly read the free output.

I'm now trying to increase VM density on host systems (by host, I mean
the physical system, not the underlying guest machines).

VMWare can over-allocate memory as long as it's not being used.
Because of caching, from VMWare's perspective, all Linux memory is
being "used". I am aware of the inherent risks in over-allocation of
resources on a VMWare system.This tuning is strictly for development
systems where performance and stability are not as critical. The
increase in vm density is an acceptable tradeoff.

My questions:
1) What options are available in CentOS to limit the page cache? SuSe
has vm.pagecache_limit_mb and vm.pagecache_limit_ignore_dirty which,
in conjunction with swappiness tweaks, appears to do what I need.

2) Any experience with enabling /sys/kernel/mm/ksm/run on non-KVM
workloads? As KSM only applies to non-pagecache memory, it doesn't
immediately help me here but could be incrementally useful

3) Is there any way to control /proc/sys/vm/drop_caches and limit it
to a number of entries or age?  Dropping the filesystem cache, though
it unmarks those pages, has performance implications.

Thanks in advance for any input or links.