top監控命令在FreeBSD上的使用
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可以使用
-n number 設定每一螢幕顯示的進程數目,number值超過進程最大數目,則設定無效
-u 用顯示User ID代替username,提高命令運行速度
-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.2% system, 0.4% interrupt, 92.5% 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:啟動進程的命令名。如果名字太長而不能在一行顯示時,它將被截短
摘自 derek-zuo的部落格