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                   終端號    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM