linux 环境下,当内存不足时,系统好像会 kill 掉内存占用最高的进程,通过下面的命令可以查看到记录
dmesg -T | egrep -i -B100 'killed process'
问题来了,日志中只会显示进程名称,类似下面的。那么有没有什么参数可以显示出详细的信息呢?比如 ps -f,这样可以知道执行文件的位置,命令的参数等....
[57014246.819564] [ 8437] 0 8437 903792 100742 281 5 0 java
[57014246.819566] [ 8803] 0 8803 904802 102627 290 18 0 java
[57014246.819615] Out of memory: Kill process 9929 (java) score 111 or sacrifice child
[57014246.822405] Killed process 9929 (java) total-vm:3630468kB, anon-rss:505548kB, file-rss:0kB, shmem-rss:0kB
1
lenqu 2020-07-01 16:30:08 +08:00 1
journalctl _PID=9929
|
2
uminokoe OP @lenqu 感谢回复,journalctl 中记录的只有通过 systemd 管理的,但是被 kill 的进程并没有使用到 systemd
|
3
julyclyde 2020-07-01 16:52:46 +08:00
只有 out of memory 的才会有日志
普通 kill 没有 |
4
BlueSummer8 2020-07-01 18:09:37 +08:00 via Android
最好是研究某个程序的日志比较靠谱些
|
6
dant 2020-07-01 19:22:35 +08:00
Linux audit framework
|
7
js8510 2020-07-02 13:48:18 +08:00
挂载 coredumper, log stacktrace https://code.google.com/archive/p/google-coredumper/
|
8
byzf 2020-07-16 14:02:36 +08:00
atop, audit
|