Linux top命令詳解

 最近發現執行Spark SQL 查詢的時候有一個節點的Executor 總是很慢  使用top命令發現該節點的cpu IO等待很高  遂感覺top是個很好的工具 故而將top命令的詳細使用整理出來
  1. 使用SSHClient客戶端連接到遠程Linux系統。使用top命令查看系統的當前運行的情況。如圖對top命令執行的結果做了簡單的圖解,下面針對每一項做詳細的解釋。
    這裏寫圖片描述
  2. top命令的第一行“top - 10:30:41 up 7 days, 23:47, 1 user, load average: 0.12, 0.07, 0.06”顯示的內容依次爲“系統當前時間 、系統到目前爲止已運行的時間、當前登錄系統的用戶數量、系統負載(任務隊列的平均長度)三個值分別爲1分鐘、5分鐘、15分鐘前到現在的平均值【這三個一般會小於1,如果持續高於5,請仔細查看那個程序影響系統的運行】”
    這裏寫圖片描述
  3. top命令的第二行“Tasks: 120 total, 2 running, 118 sleeping, 0 stopped, 0 zombie”顯示的內容依次“所有啓動的進程數”、“正在運行的進程數”、“掛起的進程數”、“停止的進程數”、“殭屍進程數”。
    這裏寫圖片描述
  4. top命令的第三行“Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st”顯示的內容依次爲“用戶空間佔用CPU百分比”、“內核空間佔用CPU百分比”、“用戶空間內改變過優先級的進程佔用CPU百分比”、“空閒CPU百分比”、“等待輸入輸出CPU時間百分比”、“CPU服務於硬件中斷所耗費的時間總額”、“CPU服務軟中斷所耗費的時間總額”、“Steal Time”這裏寫圖片描述
  5. top命令第四行“Mem: 508820k total, 480172k used, 28648k free, 41944k buffers”顯示內容依次爲“物理內存總量”、“已使用的物理內存”、“空閒物理內存”、“內核緩存內存量”。
  6. top命令第5行“Swap: 392184k total, 0k used, 392184k free, 259152k cached”顯示內容依次爲“交換區總量”、“已使用交互區總量”、“空閒交換區總量”、“緩衝的交換區總量”。
  7. top命令第5行“PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND ”顯示內容依次爲“進程ID”、“進程所有者”、“優先級”、“nice值,負值表示高優先級,正值表示低優先級”、“進程使用的虛擬內存總量”、“進程使用的、未被換出的物理內存大小”、“共享內存大小”、“進程狀態”、“上次更新到現在的CPU時間佔用百分比”、“進程使用的物理內存百分比”、“進程使用CPU總時間”、“命令名、命令行”。

top使用格式

top [-d] [-p] [-q] [-c] [-C] [-S] [-s]  [-n]
d 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。 
p 通過指定監控進程ID來僅僅監控某個進程的狀態。 
q 該選項將使top沒有任何延遲的進行刷新。如果調用程序有超級用戶權限,那麼top將以儘可能高的優先級運行。 
S 指定累計模式 
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。 
i 使top不顯示任何閒置或者僵死進程。 
c 顯示整個命令行而不只是顯示命令名

其他實用命令
下面介紹在top命令執行過程中可以使用的一些交互命令。從使用角度來看,熟練的掌握這些命令比掌握選項還重要一些。這些命令都是單字母的,如果在命令行選項中使用了s選項,則可能其中一些命令會被屏蔽掉。

Ctrl+L 擦除並且重寫屏幕。 
h或者? 顯示幫助畫面,給出一些簡短的命令總結說明。 
k       終止一個進程。系統將提示用戶輸入需要終止的進程PID,以及需要發送給該進程什麼樣的信號。一般的終止進程可以使用15信號;如果不能正常結束那就使用信號9強制結束該進程。默認值是信號15。在安全模式中此命令被屏蔽。 
i 忽略閒置和僵死進程。這是一個開關式命令。 
q 退出程序。 
r 重新安排一個進程的優先級別。系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先級值。輸入一個正值將使優先級降低,反之則可以使該進程擁有更高的優先權。默認值是10。 
S 切換到累計模式。 
s 改變兩次刷新之間的延遲時間。系統將提示用戶輸入新的時間,單位爲s。如果有小數,就換算成m s。輸入0值則系統將不斷刷新,默認值是5 s。需要注意的是如果設置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統負載也會大大增加。 
f或者F 從當前顯示中添加或者刪除項目。 
o或者O 改變顯示項目的順序。 
l 切換顯示平均負載和啓動時間信息。 
m 切換顯示內存信息。 
t 切換顯示進程和CPU狀態信息。 
c 切換顯示命令名稱和完整命令行。 
M 根據駐留內存大小進行排序。 
P 根據CPU使用百分比大小進行排序。 
T 根據時間/累計時間進行排序。 
W 將當前設置寫入~/.toprc文件中。這是寫top配置文件的推薦方法。

一下是一下例子

top   //每隔5秒顯式所有進程的資源佔用情況
top -d 2  //每隔2秒顯式所有進程的資源佔用情況
top -c  //每隔5秒顯式進程的資源佔用情況,並顯示進程的命令行參數(默認只有進程名)
top -p 12138 -p 6667//每隔5秒顯示pid是12138和pid是6667的兩個進程的資源佔用情況
top -d 2 -c -p 12138 //每隔2秒顯示pid是12138的進程的資源使用情況,並顯式該進程啓動的命令行參數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章