项目进程无缘无故被杀掉,虽然问题解决了,但是原因只是推论出来的...
程序员文章站
2022-06-12 18:04:27
...
曾经在银行上线的项目,在某次大改动后经常无缘无故被杀掉,项目日志没有任何异常,查看linux核心日志也找不到原因,查阅网上资料后有人说可能是这个进程占用内存较高,当服务器内存不足时,会优先杀掉占用内存最高的进程。
这里有个脚本,是将服务器内存不足时,将会杀掉的进程进行排序后列出列表。
#!/bin/bash
for proc in $(find /proc -maxdepth 1 -regex '/proc/[0-9]+'); do
printf "%2d %5d %s\n" \
"$(cat $proc/oom_score)" \
"$(basename $proc)" \
"$(cat $proc/cmdline | tr '\0' ' ' | head -c 50)"
done 2>/dev/null | sort -nr | head -n 10
运行该脚本后果然被杀掉的项目排在第一个,但是这种情况下杀掉进程的时候,linux内核一般都有日志打出,不知道为什么没有看到日志,可能是银行系统设置问题吧(T_T)。
发现这个可能性后将该项目的可用内存降低一倍,问题果然没有再出现了......
这里简单记录一下。