我目前正在我的笔记本电脑上编写代码:4 GB 的 RAM,从未使用超过 2.5-3 GB 的内存,但有时,我会弄乱我的程序,运行它们时出现内存泄漏,并且它们会在尝试写入交换文件时使计算机冻结(与交换值低有关)。这让我几次差点丢失重要数据,所以我想让我的电脑以另一种方式工作:没有交换文件,正如我所说,我在使用它时从未需要超过 3 GB 的 RAM,并且让操作系统崩溃一个试图使用超过可用内存的程序(它总是我自己的编码不当的程序)。我如何以这种方式进行设置?
先感谢您。
答案1
如果您知道哪个程序导致了问题(正如您的问题所暗示的那样),那么您应该通过按Ctrl+ Alt+登录另一个终端F2,然后执行killall <processname>
。按Ctrl+ Alt+F7或Ctrl+ Alt+F8将带您返回 GUI。
如果您必须停用交换,则需要编辑 /etc/fstab 文件。
sudo gedit /etc/fstab
会有一行包含单词“swap”。#
在行首输入 a。保存文件并退出。重新启动系统,您的交换文件应该已经消失。这可以通过系统监视器进行验证。
答案2
尝试kill -STOP pid && swapoff /path/to/yourswapdev
那么在此之后,您正在运行的程序可能是错误编码的。
即使任务导致问题,你也可以尝试保持 Linux 稳定,并且你仍然想使用它
尝试
renice -n 20 -p pid
要继续执行该任务,请使用kill -CONT pid
注意:如果任务在启动时启动,则需要在启动脚本中用一个 nice 命令替换常规的 exec
PDv2:避免在启动时加载交换区,注释掉 /etc/fstab 中的行