一、status 文件 cat /proc/pid/status
简述:
/proc/[pid]/status中所保存的信息除了内存信息,还包括进程IDs、信号等信息,此处暂时只介绍内存相关的信息。
查找进程pid 号 :
ps aux | grep 进程名称 栗子: ps aux | grep mgd
pidof 进程名称 栗子: pidof mgd
cat /proc/pid/status。 VmRSS对应的值就是物理内存占用,大约为38M和刚才一致。
[root@localhost corefile]# cat /proc/2883/status
Name: mgd
Umask: 0022
State: S (sleeping)
Tgid: 2883
Ngid: 0
Pid: 2883
PPid: 1
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 64
Groups: 0
VmPeak: 647356 kB #进程所使用的虚拟内存的峰值
VmSize: 633652 kB #进程当前使用的虚拟内存的大小
VmLck: 0 kB #已经锁住的物理内存的大小(锁住的物理内存不能交换到硬盘)
VmPin: 0 kB
VmHWM: 49504 kB #进程所使用的物理内存的峰值
VmRSS: 38044 kB #进程当前使用的物理内存的大小
RssAnon: 27620 kB
RssFile: 10148 kB
RssShmem: 276 kB
VmData: 285424 kB #进程占用的数据段大小
VmStk: 7480 kB #进程占用的栈大小
VmExe: 112 kB #进程占用的代码段大小(不包括库)
VmLib: 48872 kB #进程所加载的动态库所占用的内存大小(可能与其它进程共享)
VmPTE: 388 kB #进程占用的页表大小(交换表项数量)
VmSwap: 0 kB #进程所使用的交换区的大小
Threads: 1
SigQ: 0/11192
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000001000
SigCgt: 00000001800106e0
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
CapAmb: 0000000000000000
Seccomp: 0
Cpus_allowed: ffffffff,ffffffff,ffffffff,ffffffff
Cpus_allowed_list: 0-127
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 49596
nonvoluntary_ctxt_switches: 73247
二、 ps aux | grep 进程名称
第一个标注的地方是CPU和内存占用率,后面的38400是物理内存使用量,单位是k,此时mgd进程大约占用38M内存
三、top -p pid
栗子:top -p 2883
ps aux | sort -k4,4nr | head -n 10