linux分析工具之top命令詳解


     Linux系統可以通過top命令查看系統的CPU、內存、運行時間、交換分區、執行的線程等信息。通過top命令可以有效的發現系統的缺陷出在哪里。是內存不夠、CPU處理能力不夠、IO讀寫過高。

一、top選項

使用語法:top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]

-a:根據使用的內存排序
-d:number代表秒數,表示top命令顯示的頁面更新一次的間隔。默認是5秒。 
-b:以批次的方式執行top。 
-n:與-b配合使用,表示需要進行幾次top命令的輸出結果。 
-p:指定特定的pid進程號進行觀察。
-c:顯示完整的治命令;
-I:忽略失效過程;
-s:保密模式;
-S:累積模式;
-i<時間>:設置間隔時間;
-u<用戶名>:指定用戶名

 

二、top命令頁面詳解

直接輸入top命令得到如下結果,如圖所示:

2.1、系統時間相關

依次顯示了系統當前時間 、系統到目前為止已運行的時間、當前登錄系統的用戶數量

 

 

 

2.2、平均負載

系統負載(任務隊列的平均長度)三個值分別為1分鍾、5分鍾、15分鍾前到現在的平均值(根據cpu數量去判斷。如果平均負載始終在1.2一下,而你有2顆cup的機器。那么基本不會出現cpu不夠用的情況。也就是Load平均要小於Cpu的數量,一般性負載超過cpu的個數的5倍則表示已經超負載了)

 

 

 2.3、進程相關參數

Tasks: 288 total(總進程數),   2 running(運行中的進程數), 286 sleeping(掛起的進程數),   0 stopped(停止的進程數),   0 zombie(僵屍進程數)

 

 

 2.4、cpu相關參數

Cpu(s): 32.0%us(用戶使用cpu占比),  2.0%sy(系統使用cpu占比),  0.0%ni(用戶空間內改變過優先級的進程占用CPU百分比), 65.3%id(空閑cpu占比),  0.1%wa(等待輸入輸出CPU時間百分比),  0.1%hi(CPU服務於硬件中斷所耗費的時間總額),  0.5%si(CPU服務軟中斷所耗費的時間總額),  0.0%st(Steal Time)

 

 

 2.5、內存相關參數

Mem:  16466536k total(物理內存總量),  7943976k used(已使用的物理內存),  8522560k free(剩余的物理內存),   404760k buffers(緩沖區內存)

 

 

 2.6、交換分區相關參數

Swap:  4194300k total(交換分區總量),        0k used(已使用交換分區),  4194300k free(交換分區剩余量),  2228400k cached(緩沖的交換分區總量)

 

 

 2.7、具體進程相關參數

PID(進程PID) 
USER(進程所有者)      
PR(優先級)  
NI(nice值,負值表示高優先級,正值表示低優先級)  
VIRT(進程使用的虛擬內存總量,VIRT=SWAP+RES)  
RES(進程使用的、未被換出的物理內存大小)  
SHR(共享內存大小) 
S(進程狀態,D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程) 
%CPU(上次更新到現在的CPU時間占用百分比) 
%MEM(進程使用的物理內存百分比)    
TIME+(進程使用CPU總時間)  
COMMAND(命令名、命令行)

 

 

 其他未顯示的描述:

PPID    #父進程id
UID     #進程所有者的用戶id
USER    #進程所有者的用戶名
GROUP   #進程所有者的組名
TTY     #啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
P       #最后使用的CPU,僅在多CPU環境下有意義
TIME    #進程使用的CPU時間總計,單位秒
SWAP    #進程使用的虛擬內存中,被換出的大小,單位kb
CODE    #可執行代碼占用的物理內存大小,單位kb
DATA    #可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb
nFLT    #頁面錯誤次數
nDRT    #最后一次寫入到現在,被修改過的頁面數。
WCHAN   #若該進程在睡眠,則顯示睡眠中的系統函數名
Flags   #任務標志

 

三、top命令交互詳解

當我們使用top之后,可以直接輸入h或者?查看交換命令的幫助:

Help for Interactive Commands - procps version 3.2.8
Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.

  Z,B       Global: 'Z' change color mappings; 'B' disable/enable bold  #Z改變顏色,B加粗
  l,t,m     Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info #t:顯示和隱藏任務/cpu信息;m:顯示和隱藏內存信息;l顯示和隱藏平均負載信息
  1,I       Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode #1:監控每個邏輯CPU的狀況
  #f:進入字段顯示配置模式,可增加或者移除顯示字段,按相應的字母新增或去除;輸入相應的字母,按enter確認
#o:進入字段順序設置模式,可配置顯示位置順序,按相應的字母往下移動,按“shift+相應的字母”往上移動 f,o . Fields
/Columns: 'f' add or remove; 'o' change display order F or O . Select sort field #F進入字段排序配置模式,可設置排序的字段 ; O設置默認的排序字段 <,> . Move sort field: '<' next col left; '>' next col right R,H . Toggle: 'R' normal/reverse sort; 'H' show threads #R設置排序為正序、反序 c,i,S . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time #i只顯示正在運行的進程;c:切換顯示命令名稱和完整命令行 x,y . Toggle highlights: 'x' sort field; 'y' running tasks z,b . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y') u . Show specific user only #輸入用戶,顯示用戶的任務 n or # . Set maximum tasks displayed k,r Manipulate tasks: 'k' kill; 'r' renice d or s Set update interval #s設置刷新的時間--------常用 W Write configuration file q Quit ( commands shown with '.' require a visible task display window ) Press 'h' or '?' for help with Windows, any other key to continue

M:根據駐留內存大小進行排序。-------------常用

P:根據CPU使用百分比大小進行排序。-----------常用

交互實踐:

使用1,查看每個cpu的情況

 

 

 使用f命令調出Flags列:f命令交互,然后輸入z,enter確認就好

 

 

 

 

 

 然后使用M,更具內存排序(降序)

 

 

 

    top命令默認值顯示前面一部分的進程,若是想要查看全部的進程信息,則需要使用命令:top -ab -n 1,在這個命令中,a表示按內存倒序排列,b表示將所有列輸出,n表示只執行一次

 

 更多linux文章請見:linux&shell學習系列

 

參考:

https://www.cnblogs.com/fuqu/p/10230385.html#_label2


免責聲明!

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



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