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:啟動進程的命令名。如果名字太長而不能在一行顯示時,它將被截短