歡迎光臨
每天分享高質量文章

用 30 個實體完全解讀 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個視窗(譯註:分別關註不同的欄位):

  1. Def (預設欄位組)

  2. Job (任務欄位組)

  3. Mem (記憶體欄位組)

  4. 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狀態和記憶體信息的概況顯示。

不顯示平均負載

不顯示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’將運行行程高亮顯示(橫行)。依賴於你的顯示設置,你可能需要讓輸出彩色來看到這些高亮。

X 和 Y高亮

2.15 ‘u’: 特定用戶的行程

顯示特定用戶的行程。你會被提示輸入用戶名。空白將會顯示全部用戶。

raghu的行程

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 raghu
top: conflicting process selections (U/p/u)

《Linux雲計算及運維架構師高薪實戰班》2018年07月16日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網絡,部分內容會有所改動,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯繫我們刪除或授權事宜。

    – END –


    更多Linux好文請點擊【閱讀原文】

    ↓↓↓

    赞(0)

    分享創造快樂