earlyoom 让 Linux / Ubuntu 再也不会因为 内存不足 而卡死。

Linux 内存溢出时,会触发OOM导致卡顿,一卡就卡几分钟。
相比进程被杀,卡顿更是不可接受的。

最简单的评估Linux内存不足的方法就是直接观察 已分配内存是否已经逼近上限,在逼近上限时,立刻干掉最大内存消耗的进程,就可以在卡顿边缘把机器救回来。

坑的是Linux本身却没有这种在OOM早期就杀掉进程机制,只能等待极为缓慢 OOM过程。
只能使用第三方工具来实现早期OOM功能了。

大佬开发的工具 earlyoom
在OOM之前就能挽救系统,拯救卡顿时间。

https://github.com/rfjakob/earlyoom

使用方法:

# 直接apt安装
apt install earlyoom
# 设定为开机启动,并且马上启动 earlyoom 服务
systemctl enable --now earlyoom

默认情况下
剩余可用物理内存小于 10% 和 剩余交换内存小于10%时,就会触发早期OOM
SIGTERM when mem <= 10 % and swap <= 10 %,
SIGKILL when mem <= 5 % and swap <= 5 %

如果觉得剩余内存保留太多,可以来这里编辑 earlyoom 的配置文件

# 编辑配置
vim /etc/default/earlyoom
# 重启服务使其生效
systemctl restart earlyoom

建议配置设置
-r 60 代表每60秒打印一次内存统计信息
-m 1 代表保留物理内存为1%
-s 5 代表保留交换内存为5%
–avoid ‘(^|/)(init|X|sshd)$’ 代表任何时候不要杀死名字带有 init,X,sshd 的进程

EARLYOOM_ARGS="-r 60 -m 1 -s 5 --avoid '(^|/)(init|X|sshd)$'"

你可能感兴趣的:(Linux,linux,earlyoom,oom)