![如何定义一个程序黑名单,以便在 RAM 内存使用量超出某个限度时停止?](https://linux22.com/image/1204899/%E5%A6%82%E4%BD%95%E5%AE%9A%E4%B9%89%E4%B8%80%E4%B8%AA%E7%A8%8B%E5%BA%8F%E9%BB%91%E5%90%8D%E5%8D%95%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%9C%A8%20RAM%20%E5%86%85%E5%AD%98%E4%BD%BF%E7%94%A8%E9%87%8F%E8%B6%85%E5%87%BA%E6%9F%90%E4%B8%AA%E9%99%90%E5%BA%A6%E6%97%B6%E5%81%9C%E6%AD%A2%EF%BC%9F.png)
由于内存不足,我的电脑经常死机。我希望这种情况少发生。我知道,处于这种高内存使用率状态的系统在技术上仍在通过使用 SSD 或其他方式解决问题,但我不能等上几个小时让系统解决问题。我正在运行最新的 16.04,我需要这个版本的 Ubuntu。
请注意,我的电脑并不是特别旧,都是最近三年内购买的,并且至少有 8 GB 的 RAM。我怀疑这个内存问题是由大量 Electron 应用引起的。
我运行后indicator-sysmonitor
会显示使用了多少 RAM 内存,并且可以看到内存使用情况显然是问题所在,因为在情况变糟之前,当内存使用率显示为 97% 左右时就会发生冻结。
因此,Ubuntu/GNU/Linux 中内置的当前解决方案对我来说不起作用。
- 有哪些解决方案可能更适合我?
现在我想象创建一个程序黑名单(例如 Firefox、Chromium、Signal、Riot),如果系统总内存使用量接近 97%,则用一个小程序按内存使用量的顺序杀死这些列入黑名单的程序。
- 存在这样的解决方案吗?
- 如何在我的系统上启用它?
编辑:我已在下面添加了交换详细信息:
$ swapon --summary
Filename Type Size Used Priority
/dev/sda5 partition 12469244 0 -1
$ free -h
total used free shared buff/cache available
Mem: 11G 1.9G 5.8G 943M 3.9G 8.4G
Swap: 11G 0B 11G
编辑:正如一些人所建议的那样,这与限制单个进程的内存过程完全无关(如这里所述)这是关于全部的内存使用情况,然后逐步针对黑名单程序采取行动,作为紧急措施阻止计算机冻结。下面介绍了一种解决方案。请回答是否有更好的方法。