VSZ vs RSS内存和交换空间

时间:2015-08-07 00:28:16

标签: memory ps

我试图了解我们正在尝试运行的大规模模拟的内存使用情况。当我运行它时“ps”报告

USER    PID %CPU %MEM     VSZ    RSS TTY    STAT START   TIME COMMAND
myuser 5252 97.7  0.5 5751412 377392 ?      Rs   19:49   1:15 myprogram

我们在该模拟中有三个阵列,每个阵列占用1.6gb(2亿个双打)。基于

中的信息

What is RSS and VSZ in Linux memory management

我预计内存会在RSS下列出,但RSS只有377MB。基于stackoverflow线程中的信息,我得出结论,必须换掉内存并查看“free -m”

             total       used       free     shared    buffers     cached
Mem:         64391       5985      58406          0        463       1295
-/+ buffers/cache:       4226      60164
Swap:         4766          0       4766

并且根本没有使用交换!除了它无论如何它太小的事实。那么RSS与VSZ的差异来自哪里呢?为什么我们分配VSZ的一部分而不是RSS的一部分?

我感谢所有帮助

1 个答案:

答案 0 :(得分:6)

对你的问题的简单回答是,数组是在虚拟空间中定义的,这就是为什么只有当你使用数组它才会成为RSS的一部分时才会在VSZ中显示数组的内存。 在我看来,保持你的思维简单会给你解释。 VSZ是一个进程可以使用的虚拟内存,而RSS是目前实际分配的物理内存。当实际使用虚拟内存时,OS将分配将增加RSS的内存。