当 RAM 使用率达到 100% 时,有没有办法为操作系统保留内存以使其保持活动状态?

当 RAM 使用率达到 100% 时,有没有办法为操作系统保留内存以使其保持活动状态?

Ubuntu 18.04

我一直遇到同样的问题 - 由于我的坏习惯,我的 Firefox 打开并在内存中保存了太多选项卡。这导致 RAM 使用率最终达到 100%,
此时整个系统都会硬锁。我甚至无法移动光标来按下系统监视器中的“结束进程”。

当我运行代码并占用过多内存时,会出现相同的行为 - 一切都停止工作,鼠标变得无响应。

我的猜测很明显——Gnome 或 Ubuntu 本身的可用内存不足。
因此我猜测的解决方案是让这些操作系统保留内存以始终工作和响应。

我怎么做?


按照要求

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7,7G        4,3G        281M        1,2G        3,1G        1,9G
Swap:          2,0G        1,5M        2,0G
$ sudo sysctl vm.swappiness

vm.swappiness = 60

答案1

无需千言万语:使用 nohang 预防系统挂起:https://youtu.be/PLVWgNrVNlc

Nohang 是 Linux 上一个高度可配置的守护进程,它能够正确防止内存不足 (OOM) 并在内存不足的情况下保持系统响应能力:https://github.com/hakavlad/nohang

但最简单的方法是安装 earlyoom。此程序位于从 ubuntu 18.04 开始的存储库中:只需运行sudo apt install earlyoom

答案2

您真正需要做的就是在 RAM 达到 100% 之前关闭一两个 FireFox 选项卡。但是您如何知道何时达到该点呢?

您可以运行一个脚本,在 95% 时弹出通知气泡:

我所做的是让 conky 始终运行并显示我的系统状态:

conky 30秒剪辑.gif

相关内容