anon-rss和total-vm是什么意思

时间:2013-09-17 09:16:56

标签: linux memory linux-kernel kill-process

最近,我的Linux机器上的tomcat进程突然被杀死了。调查后,我在/ var / log / messages文件中找到了以下错误消息:

kernel: [1799319.246494] Out of memory: Kill process 28536 (java) score 673 or sacrifice childSep 
kernel: [1799319.246506] Killed process 28536 (java) total-vm:1271568kB, anon-rss:426528kB, file-rss:0kB

现在,有人可以告诉我total-vm中包含的所有内容以及anon-rssrss的区别是什么?

1 个答案:

答案 0 :(得分:64)

据我所知,进程使用的虚拟内存大小列为“total-vm”。部分内容实际上映射到RAM本身(已分配和使用)。这是“RSS”。

部分RSS分配在实际内存块中(除了映射到文件或设备之外)。这是匿名内存(“anon-rss”),还有映射到设备和文件(“file-rss”)的RSS内存块。

所以,如果你在vim中打开一个巨大的文件,文件-rss会很高,另一方面,如果你的malloc()有很多内存而且确实使用它,你的anon-rss也会很高。

另一方面,如果你分配了大量空间(使用malloc()),但是nevers使用它,则total-vm会更高,但是不会使用真正的内存(由于内存过量使用),所以,rss值会很低。