1. 程式人生 > 實用技巧 >linux top命令

linux top命令


轉自:https://www.jianshu.com/p/aabd8232b866

這裡僅展示top命令結果的引數含義,具體操作跳轉Linux的top命令(操作篇)
top命令是很強大的機器分析命令,類似於windows的工作管理員,但是可以看的效能指標更多。下面記錄一下,top的詳細引數意義和操作。

引數的含義

我們詳細看看,輸入top命令以後,各個引數的意義,如下:

top
top

第一行的引數意義

10:59:22 : 當前系統時間
up 37 days, 20:48 : 系統累積以及執行的時間
3 users : 當前使用者數量
load average: 0.00,0.00,0.00 : 系統負載

系統負載

系統負載的三個數值分別表示的是1分鐘,5分鐘和15分鐘系統負載的平均值
假設機器的cpu核心數為n,則當負載的平均值為n的時候,機器就是剛好滿負載運行了,如果大於n,就是超負荷運行了。

#檢視cpu核心數,可以通過這個命令看看有多少個cpu資訊
cat /proc/cpuinfo

我這臺機器是雙核心的,所以負荷是很低的
0.00 < 2

第二行的意義

Tasks: 112 total : 程序總數
1 running : 正常執行的程序數量
121 sleeping : 休眠的程序數量
0 stopped : 停止的程序數量
0 zombie : 僵死程序數量

第三行的意義

0.2 us

: 使用者程序佔用cpu資源的百分比
0.2 sy : 核心程序佔用cpu資源的百分比
0.0 ni : 使用者程序空間內改變過優先順序的程序佔cpu資源的百分比
99.7 id : 空閒cpu百分比
0.0 wa : 等待io的程序佔cpu資源的百分比
0.0 hi : 硬中斷佔用cpu的百分比
0.0 si: 軟中斷佔用的百分比
0.0 st : 虛擬機器佔用百分比

第四行的意義

38660168k total : 實體記憶體的總容量
3106020k used : 使用的實體記憶體總量
754148k free : 空閒的實體記憶體總量
157796k buffers : 用在核心快取的記憶體總量

第五行的意義

524280k total

: 交換區記憶體總容量
0k used : 交換區記憶體使用的容量
524280k used: 交換區空閒的記憶體容量
848380k cached : 快取的交換區總量

記憶體

Swap:表示硬碟上交換分割槽的使用情況。一般來說只有實體記憶體被當前程序實際佔用完,才會使用到swap。實際上核心可能會主動地將一些暫時不用的記憶體塊寫入到磁碟的交換區(swap),這樣節約出來的記憶體就可以用作他用了。這些被寫入swap的記憶體,只有當實際需要的時候,才會被重新寫入記憶體。

計算實際記憶體佔用
機器還有多少剩餘記憶體是我們比較關心的,linux上看剩餘記憶體相對來說不是那麼直觀。從top命令看到的free並不是實際的剩餘記憶體,used檢視的使用記憶體也並不是實際佔用的記憶體,因為used記憶體包括了bufferd和cached記憶體,這部分也是屬於可用的。我們可以用 free -h檢視實際使用的記憶體:如下圖:

free -h
實際使用記憶體=used - buffers - cached = 3.0G - 154M - 828M = 2.0G
實際空餘記憶體=free + buffers + cached = 740M + 154M + 828M = 1.7G
顯然,free -h命令,所得結果的第二行就是我們上面兩個計算公式計算出來的結果:
free -h

程序資訊

介紹完top命令頭幾行的資訊意義,接下來就看具體程序的資訊含義了。
程序的資訊含義如下:
PID : 程序id,標記唯一程序
USER : 程序使用者名稱
PR : 優先順序
NI : nice值。負值表示高優先順序,正值表示低優先順序
VIRT : 程序使用的虛擬記憶體的大小
RES : 指程序除去使用交換區swap的記憶體,使用的實體記憶體的大小
SHR : 程序共享記憶體的大小
S : process status 程序狀態 。 分別有D R S T Z ,分別表示不可中斷的休眠、正在執行、休眠中、暫停或者跟蹤狀態、僵死狀態
%CPU : cpu的使用量佔總cpu時間的百分比
%MEM : 程序使用的實體記憶體百分比
TIME+ : 程序使用的CPU時間總計,精確到1/100秒
COMMAND : 命令或者程序名稱

命令選項

-b:以批處理模式操作,即不斷輸出重新整理的資訊到終端
-c:顯示完整的治命令
-d:螢幕重新整理間隔時間
-I:忽略失效過程
-s:保密模式
-S:累積模式
-i <時間>:設定間隔時間 ,重新整理間隔時間
-u <使用者名稱>:指定使用者名稱
-p <程序號>:指定程序
-n <次數>:迴圈顯示的次數

互動命令

h:顯示幫助畫面,給出一些簡短的命令總結說明
k :終止一個程序
i:忽略閒置和僵死程序
q:退出程式
r:重新安排一個程序的優先級別
S:切換到累計模式
s:改變兩次重新整理之間的延遲時間(單位為s),如果有小數,就換算成ms。輸入0值則系統將不斷重新整理,預設值是5s
f或者F:從當前顯示中新增或者刪除專案
o或者O:改變顯示專案的順序
l:切換顯示平均負載和啟動時間資訊
m:切換顯示記憶體資訊
t:切換顯示程序和CPU狀態資訊
c:切換顯示命令名稱和完整命令列
M:根據駐留記憶體大小進行排序
P:根據CPU使用百分比大小進行排序
T:根據時間/累計時間進行排序
w:將當前設定寫入~/.toprc檔案中