Ubuntu 在交换已满时锁定

nan*_*rad 3 swap memory-usage lockup memory-leak

我有一个运行 xfce 和 2 GB RAM 的 Ubuntu 系统。我有一个 1GB 的交换文件,当多任务处理开始填满时。当我有少量空闲交换时,我没有问题,但是交换填满的第二个,系统锁定。即使鼠标也不会移动,但我可以使用 [Alt]+[SysRq]+[K] 来杀死 xfce,这仍然需要重新启动才能再次启动和运行。如果需要,我将提供更多系统详细信息。提前致谢。

jip*_*pie 6

是的,这就是当您用完内存/交换时会发生的情况。另一方面,我原以为 Ubuntu 会开始杀死随机进程,拼命地避免崩溃。它是系统中某处的配置,但是一旦内存不足,您的文件系统继续运行是不安全的。所以最明智的做法是停止系统,尽量不破坏任何(更多)数据。

您必须弄清楚为什么内存不足,是哪个应用程序导致这种情况发生。top或者htop可以帮助你。htop 可能需要安装sudo apt-get install htop. 的优点htop是您可以轻松地指向并单击要作为排序依据的列标题。

如果您无法删除该程序,最好的办法是添加额外的 RAM,但这需要花钱。第二个最佳选择是增加交换空间,但这会降低性能。

作为临时解决方法(直到下次重新启动),您可以测试这是否有效:

  • 找到一个有大量可用空间的文件系统。大多数默认安装/tmp都可以df -h /tmp。至少有几个 GB 应该是免费的。
  • 创建一个大文件(例如 1M × 2000 = 2GB) dd if=/dev/zero of=/tmp/extra.swap bs=1M count=2000
  • 将文件初始化为交换空间 mkswap /tmp/extra.swap
  • 开始使用文件作为交换空间 sudo swapon /tmp/extra.swap

如果这对您有用,您将不得不考虑从中制定更明确的解决方案。