我不确定这是否可能,但是当内存使用量已超过 90% 时,我可以以某种方式重新启动服务吗?
我的意思是脚本将检查内存,如果内存使用量超过 90%,它将重新启动/执行重新启动我的服务?
答案1
看看 SystemD 的资源控制。
结合起来MemoryMax
应该Restart=always
可以达到目的。
答案2
最后写了自己的剧本
m=`free -m | head -n value | tail -n 1 | tr -s " " | cut -d " " -f value`
if [ $m -ge 10000 ]; then
systemctl restart service
fi
答案3
这是另一种更简洁的方法,可以直接在 cron 任务中使用:
[ $(free | awk '/Mem/{printf "%d", $3/$2 * 100.0}') -ge 90 ] && /usr/bin/systemctl restart service