获取指定进程的pid
ps w | grep "xxx"
查看进程id:2357的内存使用情况
cat /proc/2357/status
查询结果:
Name: celery
State: S (sleeping)
Tgid: 2357
Pid: 2357
PPid: 2353
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 64
Groups:
VmPeak: 122556 kB # 代表当前进程运行过程中占用内存的峰值.
VmSize: 122556 kB # 代表进程现在正在占用的内存
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 106200 kB
VmRSS: 106200 kB
VmData: 100684 kB
VmStk: 172 kB
VmExe: 3120 kB
VmLib: 13736 kB
VmPTE: 244 kB
VmSwap: 0 kB
Threads: 1
SigQ: 0/3382
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000001001002
SigCgt: 0000000180004a05
CapInh: 0000000000000000
CapPrm: 0000001fffffffff
CapEff: 0000001fffffffff
CapBnd: 0000001fffffffff
Seccomp: 0
Cpus_allowed: f
Cpus_allowed_list: 0-3
voluntary_ctxt_switches: 81408
nonvoluntary_ctxt_switches: 12454171
VmPeak:代表当前进程运行过程中占用内存的峰值.
VmSize:代表进程现在正在占用的内存
VmLck:代表进程已经锁住的物理内存的大小.锁住的物理内存不能交换到硬盘.
VmHWM:是程序得到分配到物理内存的峰值.
VmRSS:是程序现在使用的物理内存.
VmData:表示进程数据段的大小.
VmStk:表示进程堆栈段的大小.
VmExe:表示进程代码的大小.
VmLib:表示进程所使用LIB库的大小.
VmPTE:占用的页表的大小.
VmSwap:进程占用Swap的大小.
Threads:表示当前进程组的线程数量.
SigPnd:屏蔽位,存储了该线程的待处理信号,等同于线程的PENDING信号.
ShnPnd:屏蔽位,存储了该线程组的待处理信号.等同于进程组的PENDING信号.
SigBlk:存放被阻塞的信号,等同于BLOCKED信号.
SigIgn:存放被忽略的信号,等同于IGNORED信号.
SigCgt:存放捕获的信号,等同于CAUGHT信号.
CapEff:当一个进程要进行某个特权操作时,操作系统会检查cap_effective的对应位是否有效,而不再是检查进程的有效UID是否为0.
CapPrm:表示进程能够使用的能力,在cap_permitted中可以包含cap_effective中没有的能力,这些能力是被进程自己临时放弃的,也可以说cap_effective是cap_permitted的一个子集.
CapInh:表示能够被当前进程执行的程序继承的能力.
CapBnd:是系统的边界能力,我们无法改变它.
Cpus_allowed:3指出该进程可以使用CPU的亲和性掩码,因为我们指定为两块CPU,所以这里就是3,如果该进程指定为4个CPU(如果有话),这里就是F(1111).
Cpus_allowed_list:0-1指出该进程可以使用CPU的列表,这里是0-1.
voluntary_ctxt_switches:表示进程主动切换的次数.
nonvoluntary_ctxt_switches:表示进程被动切换的次数.