Linux操作系统查看应用进程占用的内存

top -p 进程ID

PID:进程的ID
  USER:进程所有者
  PR:进程的优先级别,越小越优先被执行
  NInice:值
  VIRT:进程占用的虚拟内存
  RES:进程占用的物理内存
  SHR:进程使用的共享内存
  S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
  %CPU:进程占用CPU的使用率
  %MEM:进程使用的物理内存和总内存的百分比
  TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
  COMMAND:进程启动命令名称

常用的命令:

  1. P:按%CPU使用率排行
  2. T:按MITE+排行
  3. M:按%MEM排行

cat  /proc/进程ID/status

 VmRSS 对应的值就是物理内存占用;

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的内存资源.

ps aux|grep 进程名

或者查看内存占用排名前十的:ps aux | sort -k4,4nr | head -n 10

解释说明:

USER               用户 

PID                  进程号 

%CPU              执行命令时候进程占用的CPU

%MEM             执行命令时候进程占用的CPU

VSZ                  虚拟内存集         

RSS                  常住内存集

TTY                   终端号    

 

posted @ 2022-02-25 09:38  习久性成  阅读(4041)  评论(0编辑  收藏  举报