为什么低 swappiness(10)会导致系统崩溃?

为什么低 swappiness(10)会导致系统崩溃?

因为我有 128 GB 的 RAM,所以我想通过设置vm.swappiness为 10 来最大限度地减少交换使用。

我在 Python 中运行了一系列snakemake -j 1占用大量内存的操作:减去两个数组,每个数组最多 15 GB,然后计算差值的标准差。令人惊讶的是,我的系统开始出现问题:Thunderbird 崩溃了,然后我的图形环境(带有 lightdm 的 XFCE)也崩溃了,这实际上终止了我的屏幕会话,而这些操作正在运行。现在我想知道:为什么?

此外,在处理最大的数组时,我的脚本往往会因分段错误而失败。此外,在图形环境重生后,它会交换我的显示器(双关语),并且不允许我使用显示设置重新交换它们。 service lightdm restart之后sysctl vm.swappiness=60是必要的。

我有足够的 (932 GB) 可用交换空间,因此我的系统不会突然耗尽内存。RAM 芯片似乎也能正常工作(Memtest86+ 的 17 次测试未发现任何错误)。

我询问崩溃的原因其他程序(Thunderbird、屏幕会话、图形环境)。即使我的程序写得不好,我也希望它们的影响仅限于广泛的交换。XFCE 会话完全重启是绝对不应该发生的事情。我说的重启是指重启,而不是由于交换而导致的冻结或减速。

答案1

总结:看来并非如此。

问题出在交换分区的坏块上这可能与降低 swappiness 有关,也可能无关。经验丰富的人可能会告诉你 swappiness 是否会影响磁盘磨损。

我已经成功地用 洗了澡vm.swappiness=0。4 小时前,我开始用 洗另一次澡vm.swappiness=10- 到目前为止一切正常。如果系统开始出现故障(并且没有发现坏块),我会更新答案。

相关内容