I want to force the Linux kernel to allocate more memory to applications after the cache starts taking up too much memory (as can be seen by the output of \'free\').
I\'
You may want to increase vfs_cache_pressure
as well as set swappiness
to 0
.
Doing that will make the kernel reclaim cache faster, while giving processes equal or more favor when deciding what gets paged out.
You may only want to do this if processes you care about do very little disk I/O.
If a network I/O bound process has to swap in to serve requests, that's a problem and the real solution is to put it on a less competitive server.
With the default swappiness
setting, the kernel is almost always going to favour keeping FS related cache in real memory.
As such, if you increase the cache pressure, be sure to equally adjust swappiness
.