linux - 查找哪个java程序被Linux OOM Killer杀死

标签 linux linux-kernel centos redhat

我在linux服务器上部署了6个java程序,有些被杀了。我知道我可以使用命令grep "Killed process"/var/log/messages来查找哪个进程被linux内核杀死。但是我怎样才能找到pid属于我的java程序。它可能属于同一服务器中的其他java程序。结果是:

Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2403, UID 700, (java)   total-vm:19970440kB, anon-rss:7472436kB, file-rss:356kB
Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2405, UID 700, (java)    total-vm:19970440kB, anon-rss:7472456kB, file-rss:212kB
Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2511, UID 800, (oracle) total-vm:26509852kB, anon-rss:48836kB, file-rss:4992488kB

我知道使用 cd/proc/{pid} 可以找到 pid 详细信息,但现在我的进程被杀死了,我使用它说的命令找不到文件或目录。 我也看了消息,但还是无能为力。

 Out of memory: Kill process 2403 (java) score 114 or sacrifice child
 Aug 21 17:05:22 TEST_SERVER kernel: Killed process 2403, UID 700, (java)     total-vm:19970440kB, anon-rss:7472436kB, file-rss:356kB
 Aug 21 17:05:22 TEST_SERVER kernel: java invoked oom-killer: gfp_mask=0x201da,  order=0, oom_adj=0, oom_score_adj=0
 Aug 21 17:05:22 TEST_SERVER kernel: java cpuset=/ mems_allowed=0
 Aug 21 17:05:22 TEST_SERVER kernel: Pid: 22393, comm: java Not tainted 2.6.32-504.el6.x86_64 #1

最佳答案

当 OOM-killer 被触发时,会在/var/log/messages 中写入一堆行。您应该使用 less 或 vim 来查看包含“Killed process”的行,而不是使用 grep。 您会发现类似“XXXX invoked oom-killer:”的行。

关于linux - 查找哪个java程序被Linux OOM Killer杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52003646/

相关文章:

unix - 执行程序和终止程序时的信号和中断

php - 无法在 centos 7 中安装 ssh2

asp.net - .NET web 应用程序可以托管在具有静态 IP 的专用 linux 服务器上并将该 web 应用程序作为网站运行吗?

Linux "join"命令无法正常工作?

java - 为什么这段代码会给出线程优先级的输出?

内核版本 3.x 的线程上的 Linux 内核编程

linux - CentOS运行后Docker自动停止

linux - S3CMD 超时

linux - LLVM 上的简单标量支持

linux - 即使我在组中也无法进入 770 目录 - IPA 复杂化