我应该在Linux上查看VmSize,VmRSS或某些组合的内存统计信息吗?

时间:2011-12-20 20:28:59

标签: linux

我正在尝试在Linux系统上为产品计算适当的大小调整数据,并希望确定内存使用情况。到目前为止我接近它的方式是运行:

cat /proc/<pid>/status

查看输出时,但我不确定哪些数字是相关的。例如:

VmPeak: 19662464 kB
VmSize: 18344416 kB
VmLck:         0 kB
VmHWM:   5942980 kB
VmRSS:   4734832 kB
VmData:  2108608 kB
VmStk:       120 kB
VmExe:      9256 kB
VmLib:    304448 kB
VmPTE:     10316 kB

我认为我会使用VmSize(虚拟内存对吗?)或VmRSS(私有内存对吗?)或某种组合来确定这一点,但我不确定。有关正确计算Linux中进程内存使用情况的指示吗?

3 个答案:

答案 0 :(得分:10)

我认为答复没有回答您的具体问题。关键点在于您需要注意的重要值是您的过程在系统中使用的RAM内存。

因此:

  • 顶部显示为剩余内存:'RES'列
  • 在'/ proc // satus:'VmRSS'值
  • 在pmap命令中:'RSS'总列值(在底部)

干杯,

安东尼奥

答案 1 :(得分:9)

有些命令可以帮助您确定给定进程的内存使用情况:

尝试 pmap pmap -x

你也可以使用旧的和好的顶部命令

vmstat 也很有用。

答案 2 :(得分:5)

可以通过读取(例如,使用cat命令)/proc/1234/maps/proc/1234/smaps文件来给出关于pid 1234的处理的存储器映射的更精确的信息。您也可以使用pmap命令,例如pmap 1234