How to clean caches used by the Linux kernel

后端 未结 3 1106
野性不改
野性不改 2021-01-30 02:44

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\'

相关标签:
3条回答
  • 2021-01-30 03:02

    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.

    0 讨论(0)
  • 2021-01-30 03:03

    The contents of /proc/meminfo tell you what the kernel uses RAM for.

    You can use /proc/sys/vm/vfs_cache_pressure to force the kernel to reclaim memory that is used for filesystem-related caches more lazily or eagerly.

    Note that your application may only benefit from tuning this parameter if it does little or no disk I/O.

    0 讨论(0)
  • 2021-01-30 03:14

    You might find John Nilsson's answer to my Question useful for purging the cache in order to test whether that is related to your problem:

    sync && echo 1 > /proc/sys/vm/drop_caches

    Though I'm guessing the only real difference is 1 vs 3

    0 讨论(0)
提交回复
热议问题