针对饥饿应用程序的内存看门狗

针对饥饿应用程序的内存看门狗

我遇到以下情况 - 我有一台带有加密驱动器的远程电脑。如果电脑需要重新启动,我需要亲自在场输入解密密码,因为在加载操作系统之前我没有任何方法可以通过 ssh 访问它。

考虑到这一点,我使用 PC 来运行我的jupyter notebook.唯一的问题是,有时,我最终会执行一段代码,它会快速消耗所有可用内存 - 32G,然后机器变得无响应,这就是我对其的访问。

我记得在大学时,编写了一个 C 程序,该程序在循环中自行启动 - 基本上是一个 RAM hog。该程序在耗尽所有可用内存并使 PC 崩溃之前被看门狗守护程序杀死。我可以做什么来实现这个目标?玩弄ulimit?这似乎太简单了。

感谢 Artem 的建议,我找到了他提出的解决方案。看来earlyoom 可以解决问题。 https://www.reddit.com/r/linux/comments/d2nssy/a_userspace_outofmemory_killer_oomd_020_released/

答案1

我个人最喜欢的是earlyoom(Fedora 32 中默认包含并启用):https://github.com/rfjakob/earlyoom

否则您可以选择:

编辑2021-12-21

  • 使用 systemd 的现代发行版现在包含一个名为 的内置 OOM 杀手systemd-oomd,请查看man systemd-oomd更多详细信息。

相关内容