1. 程式人生 > 其它 >Linux監控命令之top

Linux監控命令之top

一、命令說明

top 命令能夠實時監控系統的執行狀態,並且可以按照CPU、記憶體和執行時間進行排序,同時top 命令還可以通過互動式命令進行設定顯示,通過top 命令可以檢視即時活躍的進行。

二、引數說明

  • -b:批次模式執行。通常用作來將top 的輸出的結果傳送給其他程式或儲存成檔案
  • -c:顯示執行任務的命令列
  • -d:設定延遲時間
  • -h:幫助
  • -H:顯示執行緒。當這個設定開啟時,將顯示所有程序產生的執行緒
  • -i:顯示空閒的程序
  • -n:執行次數。一般與-b 搭配使用
  • -u:監控指定使用者相關程序
  • -U:監控指定使用者相關程序
  • -p:監控指定的程序。當監控多個程序時,程序ID 以逗號分隔。這個選項只能在命令列下使用
  • -s:安全模式操作
  • -S:累計時間模式
  • -v:顯示top 版本,然後退出
  • -M:自動顯示記憶體單位(k/M/G)

三、top互動命令

1、全域性命令

  • 回車、空格:重新整理顯示資訊
  • ?或h:幫助
  • =:移除所有任務顯示的限制
  • A:交替顯示模式切換
  • B:粗體顯示切換
  • d或s:更改介面重新整理時間間隔
  • G:選擇其它視窗/欄位組
  • I:Irix 或Solaris 模式切換
  • u或U:監控指定使用者相關程序
  • k:結束程序
  • q:退出top
  • r:重新設定程序的nice 值
  • W:儲存當前設定
  • Z:改變顏色模板

2、摘要區命令

  • l:平均負載及系統執行時間顯示開關
  • m:記憶體及交換空間使用率顯示開關
  • t:當前任務及CPU 狀態顯示開關
  • 1:彙總顯示CPU 狀態或分開顯示每個CPU 狀態

3、任務區命令

  • 外觀樣式
  •  b:黑體/反色顯示高亮的行/列。控制x 和y 互動命令的顯示樣式
  •     x:高亮顯示排序的列
  •  y:高亮顯示正在執行的任務
  •  z:彩色/黑白顯示。
  • 顯示內容
  •  c:任務執行的命令列或程序名稱
  •  f或o:增加和移除程序資訊欄位及調整程序資訊欄位顯示順序
  •  H:顯示執行緒
  •  S:時間累計模式
  •  u:監控指定使用者相關程序
  • 任務顯示的數量
  •  i:顯示空閒的程序
  •  n或#:設定任務顯示最大數量
  • 任務排序(shift+f)
  •  M:按記憶體使用率排序
  •  N:按PID 排序
  •  P:按CPU 使用率排序
  •  T:按Time+排序
  •  <:按當前排序欄位左邊相鄰欄位排序
  •  >:按當前排序欄位右邊相鄰欄位排序
  •  F或O:選擇排序欄位
  •  R:反向排序

四、引數解釋

1、第一行是任務佇列資訊,同uptime 命令,其內容解釋如下:

21:59:09 當前時間
up 11:21 系統執行時間,格式為:時:分
2 users 當前登入使用者數
load average:0.05,0.01,0.01 系統負載,即任務佇列的平均長度,三個數值分別為:1分鐘、5分鐘、15分鐘前到現在的平均值

2、第二三行為程序和CPU的資訊,當有多個CPU 時,這些內容可能會超過兩行,內容如下:

Task:113 total 程序總數
1 running 正在執行的程序數
112 sleeping 休眠的程序數
0 stoped 停止的程序數
0 zombie 殭屍程序數
Cpu(s):0.3%us 使用者程序消耗的CPU時間百分比
0.0%sy 系統程序消耗的CPU時間百分比
0.0%ni 使用者程序空間內改變過優先順序的程序佔CPU時間百分比
99.7%id CPU空閒狀態的時間百分比
0.0%wa I/O等待所佔的CPU時間百分比
0.0%hi CPU服務於硬中斷所耗費的時間總額
0.0%si CPU服務於軟中斷所耗費的時間總額
0.0%st CPU服務於軟中斷所耗費的Steal Time

3、第四五行為記憶體資訊

Mem:1030616K total 實體記憶體總量
698152k used 已使用的實體記憶體總量
332464k free 空閒的實體記憶體總量
31392k buffers 用做核心快取的記憶體總量
Swap:2064376k total 交換分割槽總量
0k used 已使用的交換分割槽
2064376k free 空閒的交換分割槽
117716k cached 緩衝的交換分割槽總量。

4、程序資訊

PID 程序ID
PPID 父程序ID
RUSER Real User Name
UID 程序所有者的使用者ID
USER 程序所有者的使用者名稱
GROUP 程序所有者的組名
TTY 啟動程序的終端名,不是從終端啟動的程序則顯示為?
PR 優先順序
NI nice值,負值表示高優先順序,正值表示低優先順序
P 最後使用的CPU,僅在多CPU環境下有意義
%CPU 上次更新到現在的CPU時間佔用百分比
TIME 程序使用的CPU時間總計,單位秒
TIME+ 程序使用的CPU時間總計,單位百分之一秒
%MEM 程序使用的實體記憶體百分比
VIRT 程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
SWAP 程序使用虛擬記憶體中,被換出的大小,單位kb
RES 程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
CODE 可執行程式碼佔用的實體記憶體大小,單位kb
DATA 可執行程式碼以外的部分(資料段+棧)佔用的實體記憶體大小
SHR 共享記憶體大小,單位kb
nFLT 頁面錯誤次數
nFRT 最後一次寫入到現在,被修改過的頁面數
S

程序狀態:

D:不可中斷的睡眠狀態

R:執行

S:睡眠

T:跟蹤/停止

Z:殭屍程序

COMMAND 命令名/命令列
WCHAN 若該程序在睡眠,則顯示睡眠中的系統函式名
Flags 任務標誌,參考sched.h
  • 預設情況下僅顯示比較重要的列:PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND
  • 可以通過下面的快捷鍵來更改顯示內容:
  •   更改顯示內容通過 f 鍵可以選擇顯示的內容(按 f 鍵之後會顯示列的列表,按 a-z  即可顯示或隱藏對應的列,最後按回車鍵確定)
  •   按 o 鍵可以改變列的顯示順序(按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z  可以將相應的列向左移動,最後按回車鍵確定)
  •   按大寫的 F 或 O 鍵,然後按 a-z 可以將程序按照相應的列進行排序,而大寫的  R 鍵可以將當前的排序倒轉。