用 30 個實例完全解讀 TOP 命令
來自專欄 Linux高薪集訓營
轉載一篇文藏,來源於: TOP 命令 - 文章 - 伯樂在線。
Linux中的top命令顯示系統上正在運行的進程。它是系統管理員最重要的工具之一。被廣泛用於監視伺服器的負載。在本篇中,我們會探索top命令的細節。top命令是一個交互命令。在運行top的時候還可以運行很多命令。我們也會探索這些命令。
(譯註:不同發行版的top命令在各種細節有不同,如果發現不同時,請讀你的幫助手冊和命令內的幫助。)
1. Top 命令輸出:
首先,讓我們了解一下輸出。top命令會顯示系統的很多信息。我們需要理解不同部分輸出的意義:默認運行時,top命令會顯示如下輸出:
前幾行水平顯示了不同系統參數的概括,接下來是進程和它們在列中的屬性。
1.1 系統運行時間和平均負載:
top命令的頂部顯示與uptime命令相似的輸出。
這些欄位顯示:
- 當前時間
- 系統已運行的時間
- 當前登錄用戶的數量
- 相應最近5、10和15分鐘內的平均負載。
可以使用』l』命令切換uptime的顯示。
1.2 任務:
第二行顯示的是任務或者進程的總結。進程可以處於不同的狀態。這裡顯示了全部進程的數量。除此之外,還有正在運行、睡眠、停止、殭屍進程的數量(殭屍是一種進程的狀態)。這些進程概括信息可以用』t』切換顯示。
1.3 CPU 狀態:
下一行顯示的是CPU狀態。 這裡顯示了不同模式下的所佔CPU時間的百分比。這些不同的CPU時間表示:
- us, user: 運行(未調整優先順序的) 用戶進程的CPU時間
- sy,system: 運行內核進程的CPU時間
- ni,niced:運行已調整優先順序的用戶進程的CPU時間
- wa,IO wait: 用於等待IO完成的CPU時間
- hi:處理硬體中斷的CPU時間
- si: 處理軟體中斷的CPU時間
- st:這個虛擬機被hypervisor偷去的CPU時間(譯註:如果當前處於一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的)。
可以使用』t』命令切換顯示。
1.4 內存使用:
接下來兩行顯示內存使用率,有點像』free』命令。第一行是物理內存使用,第二行是虛擬內存使用(交換空間)。
物理內存顯示如下:全部可用內存、已使用內存、空閑內存、緩衝內存。相似地:交換部分顯示的是:全部、已使用、空閑和緩衝交換空間。
內存顯示可以用』m』命令切換。
1.5 欄位/列:
在橫向列出的系統屬性和狀態下面,是以列顯示的進程。不同的列代表下面要解釋的不同屬性。
默認上,top顯示這些關於進程的屬性:
PID
進程ID,進程的唯一標識符
USER
進程所有者的實際用戶名。
PR
進程的調度優先順序。這個欄位的一些值是』rt』。這意味這這些進程運行在實時態。
NI
進程的nice值(優先順序)。越小的值意味著越高的優先順序。
VIRT
進程使用的虛擬內存。
RES
駐留內存大小。駐留內存是任務使用的非交換物理內存大小。
SHR
SHR是進程使用的共享內存。
S
這個是進程的狀態。它有以下不同的值:
- D – 不可中斷的睡眠態。
- R – 運行態
- S – 睡眠態
- T – 被跟蹤或已停止
- Z – 殭屍態
%CPU
自從上一次更新時到現在任務所使用的CPU時間百分比。
%MEM
進程使用的可用物理內存百分比。
TIME+
任務啟動後到現在所使用的全部CPU時間,精確到百分之一秒。
COMMAND
運行進程所使用的命令。
還有許多在默認情況下不會顯示的輸出,它們可以顯示進程的頁錯誤、有效組和組ID和其他更多的信息。
2. 交互命令:
我們之前說過top是一個交互命令。上一節我們已經遇到了一些命令。這裡我們會探索更多的命令。
2.1 『h』: 幫助
首先,我們可以用』h』或者』?』顯示交互命令的幫助菜單。
2.2 『』 或者 『』: 刷新顯示
top命令默認在一個特定間隔(3秒)後刷新顯示。要手動刷新,用戶可以輸入回車或者空格。
2.3 『A』: 切換交替顯示模式
這個命令在全屏和交替模式間切換。在交替模式下會顯示4個窗口(譯註:分別關注不同的欄位):
- Def (默認欄位組)
- Job (任務欄位組)
- Mem (內存欄位組)
- Usr (用戶欄位組)
這四組欄位共有一個獨立的可配置的概括區域和它自己的可配置任務區域。4個窗口中只有一個窗口是當前窗口。當前窗口的名稱顯示在左上方。(譯註:只有當前窗口才會接受你鍵盤交互命令)
我們可以用』a』和』w』在4個 窗口間切換。』a』移到後一個窗口,』w』移到前一個窗口。用』g』命令你可以輸入一個數字來選擇當前窗口。
2.4 『B』: 觸發粗體顯示
一些重要信息會以加粗字體顯示。這個命令可以切換粗體顯示。
2.5 『d』 或『s』: 設置顯示的刷新間隔
當按下』d』或』s』時,你將被提示輸入一個值(以秒為單位),它會以設置的值作為刷新間隔。如果你這裡輸入了1,top將會每秒刷新。
2.6 『l』、『t』、『m』: 切換負載、任務、內存信息的顯示
這會相應地切換頂部的平均負載、任務/CPU狀態和內存信息的概況顯示。
2.7 『f』: 欄位管理
用於選擇你想要顯示的欄位。用』*』標記的是已選擇的。
上下游標鍵在欄位內導航,左游標鍵可以選擇欄位,回車或右游標鍵確認。
按<『移動已排序的欄位到左邊,』>』則移動到右邊。
2.8 『R』: 反向排序
切換反向/常規排序。
2.9 『c』: 觸發命令
切換是否顯示進程啟動時的完整路徑和程序名。
2.10 『i』: 空閑任務
切換顯示空閑任務。
2.11 『V』: 樹視圖
切換樹視圖。
2.12 『Z』: 改變配色
按下』Z』向用戶顯示一個改變top命令的輸出顏色的屏幕。可以為8個任務區域選擇8種顏色。
下面顯示的是4中顏色顯示的top視圖。
2.13 『z』: 切換彩色顯示
切換彩色,即打開或關閉彩色顯示。
2.14 『x』 或者 『y』
切換高亮信息:』x』將排序欄位高亮顯示(縱列);』y』將運行進程高亮顯示(橫行)。依賴於你的顯示設置,你可能需要讓輸出彩色來看到這些高亮。
2.15 『u』: 特定用戶的進程
顯示特定用戶的進程。你會被提示輸入用戶名。空白將會顯示全部用戶。
2.16 『n』 或 『#』: 任務的數量
設置最大顯示的任務數量
2.17 『k』: 結束任務
top命令中最重要的一個命令之一。用於發送信號給任務(通常是結束任務)。
2.18 『r』: 重新設置優先順序
重新設置一個任務的調度優先順序。
3. 命令行選項:
這些命令行選項與上面討論的命令大多相同。top的輸出可以用命令交互操作,但是你也可以帶參數運行top來設置你想要的效果。
3.1 -b: 批處理模式
-b選項以批處理模式啟動top命令。當你想要在文件中保存輸出時是很有用的。
3.2 -c: 命令/程序名 觸發:
如上面所討論到的命令,這個選項會以上次記住的程序/命令顯示的狀態顯示(是否顯示完整路徑)。
3.3 -d: 設置延遲間隔
設置top的顯示間隔(以秒計)。比如:
$ top -d 1
將會以1秒的刷新間隔啟動top。
3.4 -i: 切換顯示空閑進程
這個選項設置top命令的上一次記住的相反的『i』狀態。
3.5 -n: 設置迭代數量
用-n選項,你可以設置top退出前迭代的次數。
$ top -n 3
將會在刷新輸出3次後退出。
3.6 -p: 監控特定的PID
你可以用-p選項監控指定的PID。PID的值為0將被作為top命令自身的PID。
3.7 -u 或 -U: 用戶名 或者 UID
可以用這些選項瀏覽特定用戶的進程。用戶名或者UID可以在選項中指定。-p、-u和-U選項是互斥的,同時只可以使用這其中一個選項。當你試圖組合使用這些選項時,你會得到一個錯誤:
$ top -p 28453 -u raghutop: conflicting process selections (U/p/u)
你想更深入了解學習Linux知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:
【超全整理】《Linux雲計算從入門到精通》linux學習入門教程系列實戰筆記
推薦閱讀:
※這裡有多少人脫離 Windows 完全使用 Linux?你花了多少時間適應?
※在Windows上安裝Oracle VM VirtualBox Linux系統,共享目錄的原理是什麼?
※在 i3 中使用 Dolphin
※Archlinux 真的很好嗎?真的適合深入學習Linux嗎?
※linux 分區有什麼好處?哪些是必要的?