Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码linux/mm/oom_kill.c,当系统内存不足的时候,out_of_memory()被触发,然后调用select_bad_process()选择一个”bad”进程杀掉。如何判断和选择一个”bad进程呢?linux选择”bad”进程是通过调用oom_badness(),挑选的算法和想法都很简单很朴实:最bad的那个进程就是那个最占用内存的进程。
具体OOM的解释可以看这篇文章:http://www.wowotech.net/memory_management/oom.html
1.那么我们要如何去查看呢?
一个命令:
egrep -i -r 'killed process' /var/log
这个命令需要用户处于root权限才能看,执行之后可以看到:

简单说一下:
total-vm就是进程使用的虚拟内存大小,其中部分内容映射到RAM本身,也就是主存,被分配和使用也就成了RSS。
部分RSS在实际内存块里面分配,成了anon-rss,叫做匿名内存。还有映射到设备和文件的RSS内存卡,叫做file-rss。
比如说:
你用vim指令打开一个巨大的文件,那么file-rss将

,查看系统日志&spm=1001.2101.3001.5002&articleId=89204253&d=1&t=3&u=ebc3facea50245428c03de48fff4f527)
1万+

被折叠的 条评论
为什么被折叠?



