30 個例項詳解 ,讓運維徹底搞清TOP 命令!
Linux中的top命令顯示系統上正在執行的程式。它是系統管理員最重要的工具之一。被廣泛用於監視伺服器的負載。在本篇中,我們會探索top命令的細節。top命令是一個互動命令。在執行top的時候還可以執行很多命令。我們也會探索這些命令。
(譯註:不同發行版的top命令在各種細節有不同,如果發現不同時,請讀你的幫助手冊和命令內的幫助。)
1Top 命令輸出
首先,讓我們瞭解一下輸出。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狀態和記憶體資訊的概況顯示。
不顯示平均負載
不顯示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)
英文:Linoxide,編譯:Linux中國/geekpi
linux.cn/article-2352-1.html
雲端計算免費課程火熱開講中,5天運維經典課程免費學,會雲端計算的運維人才到底需要掌握哪些技術,未來前景發展怎麼樣?跟隨行業大咖一起剖根究底,點選文末“閱讀原文”或長按下方二維碼即可報名免費課程!抓住免費學習的機會,逆襲2019~~
PS:記得查收小編送你的免費大禮包呦~
福利 | 一萬多套PPT模板等你免費來拿!無條件領取!
免費送 | 1000多套簡歷模板免費拿,附贈簡歷製作教程!
免費領 | 《Shell指令碼 100例》電子書免費拿,運維必備乾貨~
▼▼點選【閱讀原文】,5天運維免費課程,開講在即!
相關文章
- 5個點徹底搞清楚SpringBoot註解Spring Boot
- Crontab例項-命令詳解
- 30分鐘,讓你徹底明白Promise原理Promise
- FTP命令詳解(含操作例項)FTP
- top命令詳解
- 一文徹底搞清 Gradle 依賴Gradle
- 一文徹底搞清楚 Material DesignMaterial Design
- Java 徹底搞清楚進位制轉換Java
- 徹底搞清楚 JavaScript 的原型和原型鏈JavaScript原型
- top命令資訊詳解
- TOP命令詳解(轉)
- 將一個多維陣列徹底的降維陣列
- 一個故事讓你徹底理解 HttpsHTTP
- crontab定期執行命令詳解,以及例項
- 一篇文章讓你徹底搞清楚Python中self的含義Python
- top命令輸出詳解
- linux top 命令詳解Linux
- Linux命令top詳解Linux
- linux top命令詳解Linux
- top命令詳細解釋
- Linux命令----top詳解Linux
- 50個典型電路例項詳解
- linux下find,xargs命令詳解和例項Linux
- 一帖讓PHP小白徹底瞭解PDO運算元據庫的方法PHP
- MySQL 8.0能徹底解決困擾運維的複製延遲問題!MySql運維
- 徹底搞清楚c#中的委託和事件C#事件
- 57張PPT徹底搞清楚區塊鏈技術。。區塊鏈
- 讓你徹底理解 “==”與 Equals
- curl例項詳解
- sudo 詳解+例項
- 提高 Linux 運維效率的 30 個命令列常用快捷鍵Linux運維命令列
- linux top命令詳解--轉Linux
- 徹底學會使用epoll(三)——ET的讀操作例項分析
- 徹底學會使用epoll(四)——ET的寫操作例項分析
- 徹底搞清楚library cache lock的成因和解決方法
- SQL TOP 例項SQL
- 看完讓你徹底搞懂Websocket原理Web
- 元件例項 $el 詳解元件