您的位置:首页 > 其它

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

2014-06-01 16:02 411 查看
(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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: