Anon-rss和total-vm是什么意思?

100
最近,我的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有何不同吗?

2
另一个问题中的答案没有解释anon-rssfile-rss - Flimm
1个回答

164

据我理解,进程使用的虚拟内存大小被列为“total-vm”。其中一部分被映射到RAM中并真正使用(已分配)。这是“RSS”。

RSS的一部分分配在真实的内存块中(而不是映射到文件或设备中)。这就是匿名内存(“anon-rss”),还有映射到设备和文件中的RSS内存块(“file-rss”)。

因此,如果您在vim中打开一个巨大的文件,则file-rss会很高,另一方面,如果您使用malloc()分配了大量内存并真正使用它,则anon-rss也会很高。

另一方面,如果您分配了大量空间(使用malloc()),但从未使用它,则total-vm会更高,但不会使用任何真实内存(由于内存超额承诺),所以rss值会很低。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接