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

Linux監控命令之==>top

順序 分開 模式 排序 cache and 系統 ota task

一、命令說明

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 鍵可以將當前的排序倒轉。

Linux監控命令之==>top