如何配置 Linux 机器以使其永不冻结?

如何配置 Linux 机器以使其永不冻结?

偶尔我的机器会出现内存不足的情况,忙于交换或诸如此类的情况,在此期间它没有响应(冻结),而重新获得控制权的唯一方法是使用 ++ 手动调用 OOMAlt杀手。SysRqF

有没有办法配置 Linux 机器,使非系统应用程序永远不会“破坏”整个系统?具体来说,我希望鼠标和窗口管理器始终响应。

例如,也许为系统进程保留资源?

答案1

禁用过度提交

通常情况下,过度承诺/proc/sys/vm/overcommit_memory设置为零,这允许进程“分配”比系统物理可用内存更多的内存。

# temporarily
echo 2 > /proc/sys/vm/overcommit_memory
echo 0 > /proc/sys/vm/overcommit_ratio

# permanently - /etc/sysctl.conf
vm.overcommit_memory = 2
vm.overcommit_ratio = 0

但有些应用程序可能无法启动。

永久调整服务的 OOM 分数

使用 systemd 时,为了保护服务不被 OOM 终止,请编辑服务文件 (參考

systemctl edit syslog.service

并设置OOMScoreAdjust至 -1000

[Service]
OOMScoreAdjust=-1000

相反,为了将服务标记为 OOM-kill 的牺牲品,请将值设置为 1000。

相关内容