我的系统内存使用量非常高,磁盘活动也很多。因此,我希望缓存中的文件尽可能多,但我希望有足够的可用 RAM 来快速响应短时间内需要更多 RAM 的用户模式进程。我基本上试图通过“始终”准备好所需的典型 RAM 量来减少突然的用户模式内存分配的延迟。我预计内存峰值会在 300–500 MB 范围内,因此我希望大部分时间都拥有该数量的空闲 RAM。
我知道增加/proc/sys/vm/vfs_cache_pressure
会在内存压力的情况下在 RAM 中保留更多的磁盘缓存,因此我将其设置为120
(这改进了缓存,dentries
我发现这对我的工作负载很有好处)。我还知道/proc/sys/vm/min_free_kbytes
哪些保留 RAM,因此我将其设置为 300000,以确保始终有 300 MB 的可用空间可供使用。
然而,似乎用户模式进程不允许使用min_free_kbytes
.是否有一些内核设置可以让我告诉内核它应该尝试随时保持 300 MB 可用 RAM 准备就绪?也就是说,如果用户模式程序需要 RAM,请立即从该预留空间中提供它和启动后台进程以释放更多可用 RAM(例如写入脏页、删除一些磁盘缓存)以再次匹配为将来的用户模式进程保留的内存。
如果我理解正确的话,我正在寻找一种设置来保留内存,除了min_free_kbytes
不能用于磁盘缓存但可以由任何用户进程自由分配的内存。