欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

项目进程无缘无故被杀掉,虽然问题解决了,但是原因只是推论出来的...

程序员文章站 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)。

发现这个可能性后将该项目的可用内存降低一倍,问题果然没有再出现了......

这里简单记录一下。

相关标签: 那些年踩过的坑