cat /proc/your_PID/status 进程信息指令

查看进程状态信息如下:
more status 
Name:   rsyslogd
State:  S (sleeping)
Tgid:   987
Pid:    987
PPid:   1
TracerPid:      0
Uid:    0       0       0       0
Gid:    0       0       0       0
Utrace: 0
FDSize: 32
Groups:
VmPeak:    36528 kB
VmSize:    36528 kB
VmLck:         0 kB
VmHWM:      1432 kB
VmRSS:      1420 kB
VmData:    33980 kB
VmStk:        88 kB
VmExe:       320 kB
VmLib:      2044 kB
VmPTE:        56 kB
VmSwap:        0 kB
Threads:        3
SigQ:   1/7954
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000001001206
SigCgt: 0000000180014c21
CapInh: 0000000000000000
CapPrm: ffffffffffffffff
CapEff: ffffffffffffffff
CapBnd: ffffffffffffffff
Cpus_allowed:   3
Cpus_allowed_list:      0-1
Mems_allowed:   1
Mems_allowed_list:      0
voluntary_ctxt_switches:        1
nonvoluntary_ctxt_switches:     0


Tgid:   987
解释:Tgid是线程组的ID,一个线程一定属于一个线程组(进程组).
PPid:   1
解释:当前进程的父进程
TracerPid:      0
解释:跟踪当前进程的进程ID,如果是0,表示没有跟踪.
例如:
用strace跟踪top程序
strace top
FDSize是当前分配的文件描述符,这个值不是当前进程使用文件描述符的上限.
我们看到这里是32,但实际并没有分配32个文件
Groups: 0
解释:
这里的groups表示启动这个进程的用户所在的组.

VmPeak:    36528 kB
解释:这里的VmPeak代表当前进程运行过程中占用内存的峰值.
VmSize:    36528 kB
解释:VmSize代表进程现在正在占用的内存
VmLck:         0 kB
解释:VmLck代表进程已经锁住的物理内存的大小.锁住的物理内存不能交换到硬盘.
VmHWM:      1432 kB
VmRSS:      1420 kB
解释:
VmHWM是程序得到分配到物理内存的峰值.
VmRSS是程序现在使用的物理内存.
VmData:    33980 kB
VmStk:        88 kB
VmExe:       320 kB
VmLib:      2044 kB

解释:
VmData:表示进程数据段的大小.
VmStk:表示进程堆栈段的大小.
VmExe:表示进程代码的大小.
VmLib:表示进程所使用LIB库的大小.

VmPTE:        56 kB
VmSwap:        0 kB
VmPTE:        56 kB
解释:
占用的页表的大小.

VmSwap: 0 kB
解释:
进程占用Swap的大小.

Threads:        3
解释:
表示当前进程组有3个线程.
SigQ:   1/7954
解释:
表示当前待处理信号的个数,我们用下面和程序进行测试
Cpus_allowed:   3
Cpus_allowed_list:      0-1
解释:
Cpus_allowed:3指出该进程可以使用CPU的亲和性掩码,因为我们指定为两块CPU,所以这里就是3,如果该进程指定为4个CPU(如果有话),这里就是F(1111).
Cpus_allowed_list:0-1指出该进程可以使用CPU的列表,这里是0-1.
Mems_allowed:   1
Mems_allowed_list:      0
内存同CPU一样,进程rsyslogd只是使用了结点0的内存资源.

猜你喜欢

转载自sanniangmiao.iteye.com/blog/2115309
cat