systemd具有OOMScoreAdjust选项,该选项允许调整已启动进程的oom-killer分数。
引用systemd文档 :
OOMScoreAdjust=为已执行的进程设置内存不足杀手的调整级别。 取一个-1000之间的整数(以禁止这个进程的OOM查杀)和1000(很有可能在内存压力下杀死这个进程)。 有关详细信息,请参阅proc.txt 。
在我的设置中,我在AWS上部署了一个NodeJs服务器。 在节点服务器旁边,EC2实例上没有其他的东西运行(期望监视和基本的操作系统进程)。 有ELB健康检查到位,最终应该取代破碎的EC2实例。
不过,如果存在内存问题,我想知道是否增加OOMScoreAdjust以使内核更喜欢杀死节点服务器进程是一种很好的做法,因为它可以自动重新启动。 在systemd中,它可能看起来像这样:
OOMScoreAdjust=1000 Restart=always
我不得不承认,我的理解是有限的。 我目前的理解是,它很可能不会有真正的区别,最好保留默认值:
不过,我很好奇,如果有更好的理解的人已经想通了。 启用它只会是systemd脚本中的一行。 如果有疑问,我宁愿让内核杀死Node进程,而不是任何随机的系统服务。