我在 Devuan GNU/Linux Beowulf 桌面上使用 Firefox 83。
不幸的是,由于我不清楚的原因,FF 存在内存问题,导致它逐渐占用越来越多的系统内存。只要我正在使用该系统,它就可以忍受,但是当我将其放置几个小时时,我发现它已经交换了其他所有内容,并且我的系统占用了......哦,大约几分钟的磁盘I / O 恢复体形(通常是在我完成killall firefox-bin
文本 VT 之后)。
我决定对 FF 的物理和/或交换内存使用量进行硬限制。我读过关于 ServerFault 的这篇文章:
有很多建议的方法可以做到这一点:
- 使用
uptime
perl 脚本包装进程执行 - 定义一个内存有限的进程控制组(cgroups机制),然后使用以下方法包装进程执行
cgexec
- 使用复杂的基于 cgroup 的包装脚本
- 将流程执行包装在脚本中,该脚本设置
ulimit
- 在某些条件下使用 monit 守护进程杀死 Firefox(当确定机器处于空闲状态时超出一定的内存量,尽管这可能很难检测到(?))
但对于我的一生来说,我无法决定要尝试哪一个。我能了解不同方法的优缺点吗?
笔记:
- 请记住,Firefox 通常已经由包装脚本启动。此外,它还会启动子进程。
- 该机器是 Intel i5-7600K,具有 16 GB 物理 RAM。
- 我偶尔也会使用一些其他重要的内存消耗者(例如我使用的内存数据库);但该机器不是专用服务器或任何东西 - 只是我的桌面。
- 如果您需要有关我的使用情况的更多信息,请询问。
- 如果您还有上面列出的其他替代方案,您也可以为其添加优点和缺点。
- 您可以仅涵盖您有经验的一两个替代方案,无需讨论所有选项。