我需要保护mysql进程,这样当系统耗尽内存时,它就不会被杀死,我们会时不时地在服务器上运行一堆临时作业,所以我更喜欢被杀死的临时作业,而不是mysql。
我知道我可以调整oom_score_adj,通过将它设置为-1000,我可以从OOM杀手的考虑中排除它。但是我不确定是否需要重新启动mysql进程以使新的oom_score_adj生效?为运行中的进程调整oom_score_adj是否仍然有效?
我一直在关注这篇文章,没有人提到重新启动服务器以使新的oom_score_adj生效:https://blog.rimuhosting.com/2015/12/11/dont-let-the-oom-killer-stop-mysql/
另一个愚蠢的问题是,我似乎无法写入oom_score_adj文件,总是被拒绝权限。oom_score_adj不是根用户拥有的,我尝试了几个选项,但是一直得到权限问题:
echo "echo '-100' > /proc/5653/oom_score_adj" | sudo -u {file_owner} sh感谢您的帮助!
发布于 2020-01-03 07:59:37
RHEL7使用systemd。使用OOMScoreAdjust如下:
sudo systemctl edit mysqld.service注意:我不确定确切的服务名称
增加以下案文:
[Service]
OOMScoreAdjust=-1000重新启动时:
systemctl restart mysqld.service通过看分数来检查:
cat /proc/$(pidof mysqld)/oom_score_adjhttps://dba.stackexchange.com/questions/256631
复制相似问题