.config
对于禁用 kswapd0 的内核,必要的内核选项更改是什么? IE。哪些选项可以确保内核文件内存在.config
,以便在禁用 kswapd0 的情况下构建?
这样做的目的是避免评论者对此的评论回答说,要在这里重现它,它说:
例如,考虑一下交换空间为零且系统几乎耗尽 RAM 的情况。内核将从例如 Firefox 获取内存(它可以这样做,因为 Firefox 正在运行已从磁盘加载的可执行代码 - 如果需要,可以再次从磁盘加载代码)。如果 Firefox 在 N 秒后需要再次访问该 RAM,CPU 会生成“硬故障”,迫使 Linux 释放一些 RAM(例如,从另一个进程中获取一些 RAM),从磁盘加载丢失的数据,然后允许 Firefox 继续运行通常。这与普通交换非常相似,kswapd0 就是这样做的。 – Mikko Rantalainen 2 月 15 日 13:08
(还发现其他人解释了这一点这里- 请参阅那些提到 95% 的评论)
我个人曾经遭遇这种持续的磁盘读取(超过 192MiB/秒)持续几分钟(在我通过暂停虚拟机来停止它之前),远远早于触发 OOM 来终止占用内存的进程;我也看到它发生在裸机上,但当时不知道为什么在内存耗尽之前会发生磁盘抖动(没有任何交换)。
受此最后一行启发的问题回答