Linux anon rss和total vm是什么意思

Linux anon rss和total vm是什么意思,linux,memory,linux-kernel,kill-process,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:4265

最近,我的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 内核:[1799319.246494]内存不足:杀死进程28536(java)得分673或牺牲childSep 内核:[1799319.246506]已终止进程28536(java)总vm:1271568kB,anon rss:426528kB,文件rss:0kB
现在,有人能告诉我,
total vm
中包含了哪些内容,以及
anon rss
rss
有何不同?

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

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

因此,如果你在vim中打开一个大文件,文件的rss会很高,另一方面,如果你有很多内存并真正使用它,你的anon rss也会很高

另一方面,如果您分配了大量空间(使用malloc()),但从不使用它,则总vm会更高,但不会使用实际内存(由于内存过度使用),因此rss值会很低。

中的答案没有解释
anon rss
文件rss