当前位置:   article > 正文

Linux系统下查看被杀死进程的信息_anon-rss

anon-rss

 

通过dmesg 命令分析原因

软件在运行时显示 进程被杀死,首先通过命令查看被杀死的进程的情况

dmesg | egrep -i -B100 'killed process'

显示,在被杀死的时候该进程占用的内存

[22588.717326] Killed process 8163 (XXX进程)

total-vm:5 826 324kB,

anon-rss:5 454 392kB,

file-rss:4kB,

shmem-rss:0kB

进程号:8163

total-vm:total virtual memory. 进程使用的总的虚拟内存

rss: resident set size. 驻留集大小。驻留集是指进程已装入内存的页面的集合。

anon-rss:anonymous rss. 匿名驻留集。比如malloc出来的就是匿名的。

可以看到该进程占用内存过大,达到了5G多,被杀死的原因是 outofmemory,debug定位到具体的函数,最后发现是一个链表没有被回收,在一个循环中不断的被追加,导致内存溢出。

其他命令

Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码linux/mm/oom_kill.c,当系统内存不足的时候,out_of_memory()被触发,然后调用select_bad_process()选择一个”bad”进程杀掉。

 

查看系统日志同样可以查看被杀死进程的状态。

egrep -i -r 'killed process' /var/log

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/185083
推荐阅读
相关标签
  

闽ICP备14008679号