Linux系統中,top監控工具能夠顯示CPU佔用率爲前幾位的進程,並提供CPU的實時活動狀況
語法:top [-s time] [-d count] [-q] [-h] [-n number] [-f filename] [-o field][-U usename]
-S 將系統進程信息也顯示到屏幕上,默認狀況下,top不顯示系統進程的信息
-b 使用」batch」方式運行top。在此種方式下,全部來自終端的輸入都將被忽略,但交互鍵(好比C and )
依然起使用。這是運行top輸出到啞終端或輸到非終端的默認運行方式
-i 使用交互運行top程序,在此種方式下,命令會被進程當即被處理。無論命令是否是能被top所理解執行,
屏幕都將當即更新。這是top的默認運行方式。
-I 不顯示空閒進程,在默認狀況下,top連同空閒進程的信息一同輸出。
-t 不顯示top進程本身
-n 不以交互方式使用top命令,做用同」batch」方式。
-s time 設置屏幕刷新的延時,單位爲秒,默認值5秒
-d count 設置屏幕刷新的次數,刷新顯示完count次後退出
-q 若是通過nice受權,使用-q能夠使top運行的更快一些,這樣,在系統反應緩慢的時候,能夠會更快的找到存在的問題。
此選項在FreeBSD下只有root能夠使用
-u 用顯示User ID代替username,提升命令運行速度
-n number 設置每一屏幕顯示的進程數目,number值超過進程最大數目,則設置無效
-v 顯示程序版本號後,當即退出。若是要在top運行時查看版本號,輸入」?」
-o 以指定的字段排序顯示進行信息。字段名必須爲輸入在屏幕的可見列的名字,並且必須是小寫。
好比」cpu」、」size」、」res」與」time」,但不一樣的操做系統間有許多的不一樣。注意不是每一個UNIX操
做系統都支持此選項。
-U 只顯示屬於後面所跟用戶名的進程的信息
屏幕控制命令
交換方式下,能夠使用如下命令控制top
^L – 刷新屏幕
q – 退出
h or ? – 顯示幫助
d – 修改刷新顯示的次數
e – 顯示最近」kill」或」renice」命令所產生的錯誤
i – 顯示/不顯示處於空閒的進程
I – 做用同 ‘i’
k – kill 進程; 發送一個信號到某個進程列表
n or # – 修改顯示進程的數目
o – 以特定的字段排序 (pri, size, res, cpu, time)
r – renice 一個進程
s – 修改輸入的更新時間
u – 只顯示屬於某個用戶的進程 (+ selects all users)
順序顯示下面三個常規的信息
一. 系統信息:
last pid: 22228; load averages: 0.25, 0.97, 1.56 up 44+03:25:56 21:39:36
274 processes: 3 running, 259 sleeping, 12 zombie
CPU states: 2.9% user, 0.0% nice, 4.3% system, 0.4% interrupt, 92.4% idle
Mem: 483M Active, 120M Inact, 222M Wired, 25M Cache, 112M Buf, 153M Free
Swap: 2048M Total, 143M Used, 1905M Free, 6% Inuse
首部的幾行顯示系統的幾個信息,其中包括:
+ Load averages:1分鐘、5分鐘和15分鐘內運行的負載平均數
+ system:系統名和當前日期.
通常來講只要每一個CPU的當前活動進程數不大於 3那麼系統的性能就是良好的,若是每一個CPU的任務數大於5,
那麼就表示這臺機器的性能有嚴重問題
+ 最近一次更新時存在的進程總數,並分別列出run(運行)、sleep(睡眠)、idle(中止)和zomb(‘殭屍’)狀態的進程數
+ CPU state:用戶佔用時間的百分比、系統佔用CPU時間的百分比、被nice命令改變優先級的任務佔用的CPU時間百分比、以及CPU空閒時間的百分比。
(被nice命令改變優先級的任務僅指那些nice值爲負的任務)。花費在被nice命令改變優先級的任務上的時間也將被計算在系統和用戶時間內,所以
整個時間加起來可能會超過百分之百
二.內存信息
Memory: 610008K (24424K) real, 995344K (30304K) virtual, 12588K free Page# 1/4
Memory:關於內存使用狀況的統計,包括實際(real)內存的活動值/總值,虛擬(virtual)內存的使用值/總值,剩餘的內存。
DESCRIPTION OF MEMORY
Mem: 9220K Active, 1032K Inact, 3284K Wired, 1MB Cache, 2M Buf, 1320K
Free Swap: 91M Total, 79M Free, 13% Inuse, 80K In, 104 K Out
K: Kilobyte(K)
M: Megabyte(兆)
%: 1/100(百分比)
Active:
活動頁的數目
Inact: 非活動頁的數目
Wired: 已經被寫入頁的數目, 包括緩存文件數據頁碼
Cache: 被用於 VM-level 磁盤緩衝的頁的數目
Buf: 被用於 BIO-level 磁盤緩衝的頁的數目
Free: 空閒頁
Total: 總的可以使用交換區
Free: 總共空閒的交換區
Inuse: 交換區的使用狀況
In: pages paged in from swap devices (最近的時間間隔)
Out: pages paged out to swap devices (最近的時間間隔)
三.進程信息
CPU PID USERNAME PRI NI SIZE RES STATE TIME %WCPU %CPU COMMAND
1 33 root 152 20 0K 0K run 153:43 1.18 1.18 vxfsd
0 1751 root 154 20 2500K 868K sleep 2084:19 0.52 0.52 ARMServer
0 1730 root 154 20 4500K 332K sleep 1664:55 0.44 0.44 acactmgr
列出系統裏每個處理器的信息,當信息在一個屏幕內沒法顯示時,會被分紅多個屏幕顯示,能夠前面提到l,k和t命令查看
(1)CPU:處理器號(僅當多處理器系統時列出)
(2)PID:進程號
(3)USERNAME:用戶名
(4)PRI:任務的優先級
(5)NICE:任務的nice值,一個具備較低值的進程在系統上將具備優先權。能夠經過改變nice值提升某些進程速度,可是這其實是一種交易,由於那些nice值被升高的進程此時將運行得很慢。
(6)SIZE:任務的代碼加上數據再加上棧空間的大小。
(7)RES:任務使用的物理內存的總數量。
(8)STATE:任務的狀態
(9)TIME:自任務開始時使用的總CPU時間,單位爲秒,如153:43,對應是153秒43毫秒
(10)%WCPU:進程的CPU利用率權重百分比
(11)%CPU:進程的原始的CPU利用率百分比,自上一次屏幕刷新以來任務佔用CPU 時間的份額
(12)COMMAND:啓動進程的命令名。若是名字太長而不能在一行顯示時,它將被截短