内存密集型应用程序导致系统不稳定

内存密集型应用程序导致系统不稳定

自从 Hardy Hereon 以来,我就一直遇到这个问题。当应用程序请求过多内存时,Ubuntu 会变得不稳定。内存请求发送kswapd到超速驱动器,导致系统不稳定,我别无选择,只能重新启动系统。

例如,当我尝试打开一个非常大的(几 GB)文本文件或同时打开 FF 和 Chrome 时,就会发生这种情况。其他操作系统(如 Windows 和 Mac OS)会在内存不足时发出警告,但 Ubuntu 只会让系统变得不稳定。

答案1

该问题是由于在 RAM 内存不足的情况下磁盘上的 SWAP 内存使用速度很慢所致。

在以下情况下,您会更频繁地遇到此问题:RAM 有限,内存为 2 GB 或更少。在至少有 4 GB 的系统上,您应该能够轻松同时运行多个应用程序并打开相当大的文档而不会遇到此问题。因此,解决此问题的第一个方法是升级到至少 4 GB 的 RAM。

如果您有以下情况,您也会更强烈地感受到这个问题单一大内存需求例如打开一个大型图形文件,而不是对内存有许多小需求,例如打开许多应用程序。在后一种情况下,将交换较小的 RAM 块,从而缩短交换操作时间。在前一种情况下,系统会占用很长时间来交换内存。

最后,如果你在传统硬盘而不是速度更快、更安静的 SSD 驱动器。硬盘比 RAM 慢得多。SSD 驱动器的速度明显更快。

解决方案和解决方法

避免系统因交换活动而锁定的最佳且唯一根本的解决方案是安装额外的 RAM。目前这种方法相对便宜。

如果您经常在低内存情况下工作,您可能希望将 swappiness 保持足够高。默认情况下,它高达 60,但您可能希望将其增加到例如 80。以下是如何改变 swappiness。这将确保快速交换 RAM,从而释放 RAM 以满足新需求。此外,当内存下降超过某个阈值时,交换会持续发生,而不是突然全部发生。因此,您不会很快遇到长达一分钟的冻结,但代价是您的用户界面整体会感觉更慢、更迟钝,尽管进程将运行得更高效。

使用 SSD 进行 SWAP。不过,SSD 上的密集写入会缩短驱动器的使用寿命。

另一个技巧是使用 zram。这会在快速 RAM 中创建一个压缩交换文件。这样,您为应用程序分配的 RAM 就更少了。但是,RAM 随后可以交换到 zram,zram 的工作速度非常快,可以有效地让您在 RAM 中存储更多信息。

相关内容