Linux中的top檢視程序詳解
-
預設輸出
top命令的預設輸出如下:
-
上半部分顯示了整體系統負載情況
top一行:從左到右依次為當前系統時間,系統執行的時間,系統在之前1min、5min和15min內cpu的平均負載值
Tasks一行:該行給出程序整體的統計資訊,包括統計週期內程序總數、執行狀態程序數、休眠狀態程序數、停止狀態程序數和僵死狀態程序數
Cpu(s)一行:cpu整體統計資訊,包括使用者態下程序、系統態下程序佔用cpu時間比,nice值大於0的程序在使用者態下佔用cpu時間比,cpu處於idle狀態、wait狀態的時間比,以及處理硬中斷、軟中斷的時間比
Mem一行:該行提供了記憶體統計資訊,包括實體記憶體總量、已用記憶體、空閒記憶體以及用作緩衝區的記憶體量
Swap一行:虛存統計資訊,包括交換空間總量、已用交換區大小、空閒交換區大小以及用作快取的交換空間大小
-
下半部分顯示了各個程序的執行情況
PID:程序pid
USER:拉起程序的使用者
PR:該列值加100為程序優先順序,若優先順序小於100,則該程序為實時(real-time)程序,否則為普通(normal)程序,實時程序的優先順序更高,更容易獲得cpu排程,以上輸出結果中,java程序優先順序為120,是普通程序,had程序優先順序為2,為實時程序,migration程序的優先順序RT對應於0,為最高優先順序
NI:程序的nice優先順序值,該列中,實時程序的nice值為0,普通程序的nice值範圍為-20~19
VIRT:程序所佔虛擬記憶體大小(預設單位kB)
RES:程序所佔實體記憶體大小(預設單位kB)
SHR:程序所佔共享記憶體大小(預設單位kB)
S:程序的執行狀態
%CPU:取樣週期內程序所佔cpu百分比
%MEM:取樣週期內程序所佔記憶體百分比
TIME+:程序使用的cpu時間總計
COMMAND:拉起程序的命令
-
對輸出結果進行排序
top輸出的下半部分有很多程序資訊列,我們可以根據這些列對程序輸出進行排序,預設情況下根據cpu使用率對程序排序。在top命令執行時,按”O”,可以看到排序項以及相應的按鍵:
各項預設以從大到小排序,top執行中,按”R”可反向顯示輸出結果。
-
顯示特定使用者相關程序
在top執行時,按”u”快捷鍵,可以過濾出特定使用者拉起的程序:
執行top命令時,使用”top -U www”可以起到相同效果。
-
顯示特定程序
執行top時,使用”-p”選項可以指定要顯示的程序:
-
7顯示所有cpu核使用情況
預設情況下,top上半部分資源負載資訊中,顯示的是cpu整體的使用情況:
按數字”1”快捷鍵,可以開啟/關閉顯示各個cpu核的資訊: