top -p 進程ID
PID:進程的ID USER:進程所有者 PR:進程的優先級別,越小越優先被執行 NInice:值 VIRT:進程占用的虛擬內存 RES:進程占用的物理內存 SHR:進程使用的共享內存 S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值為負數 %CPU:進程占用CPU的使用率 %MEM:進程使用的物理內存和總內存的百分比 TIME+:該進程啟動后占用的總的CPU時間,即占用CPU使用時間的累加值。 COMMAND:進程啟動命令名稱
常用的命令:
- P:按%CPU使用率排行
- T:按MITE+排行
- 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 終端號