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

UW2*_*989 45 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-rss与众不同rss

Bre*_*tão 78

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

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

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

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