unix系统查看进程占用内存的方法


(1)ps 命令查看:

gb@gb-virtual-machine:/proc/19204$ ps -O sz,rsz,vsz 19204
  PID       SZ       RSZ    VSZ       S TTY          TIME COMMAND
19204  78192  1004   312768 S ?            00:00:00 ./memcached -p 11211 -m 3096m -d


ps命令是Linux下常见的查看进程状况的程序,它有几个字段可以用来查看 进程内存使用情况:sz,rss,vsz。分别说明如下:

  • sz:进程映像所占用的物理页面数量,也就是以物理页面为单位表示的虚拟内存大小;
  • rss:进程当前所占用的物理内存大小,单位为kB;
  • vsz:进程的虚拟内存大小,单位为kB,它等于sz乘于物理页面大小(x86平台通常为4kB)。

上面的例子中,虚拟内存占用312768KB,实际占用物理内存为 1004 KB,物理页面数量为 78192 ,这里有 78192   * 4K = 312768 

(2)用/proc文件系统查看占用内存情况:

通过/proc/<pid>/status可以查看进程的内存使用情况,包括虚拟内 存大小(VmSize),物理内存大小(VmRSS),数据段大小(VmData),栈的大小 (VmStk),代码段的大小(VmExe),共享库的代码段大小(VmLib)等等。

gb@gb-virtual-machine:/proc/19204$ cat /proc/19204/status
Name:   memcached
State:  S (sleeping)
Tgid:   19204
Ngid:   0
Pid:    19204
PPid:   1
TracerPid:      0
Uid:    1000    1000    1000    1000
Gid:    1000    1000    1000    1000
FDSize: 64
Groups: 4 24 27 30 46 108 124 1000 
VmPeak:   312768 kB
VmSize:   312768 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      1004 kB
VmRSS:      1004 kB
VmData:   304052 kB
VmStk:       136 kB
VmExe:       108 kB
VmLib:      2280 kB
VmPTE:        72 kB
VmSwap:        0 kB
Threads:        6
SigQ:   0/31457
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001001
SigCgt: 0000000180000002
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000001fffffffff
Seccomp:        0
Cpus_allowed:   f
Cpus_allowed_list:      0-3
Mems_allowed:   00000000,00000001
Mems_allowed_list:      0
voluntary_ctxt_switches:        2315
nonvoluntary_ctxt_switches:     0

这里 VmRSS:      1004 kB为占用物理内存大小,虚拟内存大小为: VmSize:   312768 kB




注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号