内核拒绝释放磁盘缓存

内核拒绝释放磁盘缓存

我的机器上有 ~20GB 的 RAM 和 ~4GB 的交换空间。大约 8GB 内存由应用程序使用,其余部分由内核用作磁盘空间。随着时间的推移,交换区完全填满,然后某些东西就会被杀死。

一开始我以为是有什么东西想要分配大量的 RAM 并导致了 OOM,但现在它是由于我在 VIM 中打开了一个小文件而发生的。所以不可能是这个原因。

我唯一的解释是,当应用程序需要更多 RAM 时,内核拒绝释放磁盘缓存,但我不知道这是如何发生的。
我已经拥有了vm.vfs_cache_pressure = 200,当我不做任何事情时echo 3 > /proc/sys/vm/drop_caches就被释放了。

由于这是一个生产系统,因此它已经积累了相当多的正常运行时间(188 天)。它运行的是 Debian Buster(内核4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24))。

是否有任何设置阻止内核释放用于磁盘缓存的内存或任何可能导致此行为的条件?
我将不胜感激任何有关可能导致此问题的原因的想法。

编辑1:
我已经重新启动了机器,现在我可以通过 释放相当一部分磁盘缓存echo 3 > /proc/sys/vm/drop_caches。似乎有一些“孤立”的东西阻塞了缓存。那可能是什么?

相关内容