TOP命令詳解
?
??? top命令和ps命令的基本作用是相同的,顯示系統當前的進程和其它狀況;但是top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態。如在前臺執行該命令,它將獨占前臺,直到用戶終止該程序為止。
?
??? 比較準確的說,top命令提供了實時的對系統處理器的狀態監視。它將顯示系統中CPU最“敏感”的任務列表。該命令可以按CPU使用、內存使用、執行時間對任務進行排序;而且該命令的很多特性都可以通過交互式命令或者在個人定制文件中進行設定。在后面的介紹中將把命令參數和交互命令分開講述。
?
top命令語法:
?
?????? The command-line syntax for top consists of:
?
??????????? -hv | -bcHisS -d delay -n iterations -p pid [,pid...]
?
?????? The typically mandatory switches ('-') and? even? whitespace? are? com-
?????? pletely optional.
?
?????? -b : Batch mode operation
??????????? 運行在Batch模式下,此模式下不接受任何前端輸入,直到運行結束退出(使用-n命令)
??????????? 或kill進程為止(可以使用Ctrl+C)
?
?????? -c : Command line/Program name toggle
??????????? 顯示整個命令行而不只是顯示命令名。(進程的command列顯示進程的對應命令行或命
??????????? 令名)
?
?????? -d : Delay time interval as:? -d ss.tt (seconds.tenths)
??????????? 設置每次刷新的間隔時間,格式為ss.tt,不能為負
?????? -h : Help
?
?????? -H : Threads toggle
??????????? 顯示進程中的每一個線程
?
?????? -i : Idle Processes toggle
??????????? 只顯示當前運行的進程
?
?????? -n : Number of iterations limit as:? -n number
??????????? 指定刷新的次數,到達次數之后即退出
?
?????? -u : Monitor by user as:? -u somebody
??????????? 只顯示后面跟的用戶名下的進程信息
?
?????? -U : Monitor by user as:? -U somebody
??????????? 同上
?
?????? -p : Monitor PIDs as:? -pN1 -pN2 ...? or? -pN1, N2 [,...]
??????????? 顯示指定進程號的進程,注意如上所示的格式
?????? -s : Secure mode operation
??????????? 保護模式下執行,禁止一些破壞性命令
?
?????? -S : Cumulative time mode toggle
??????????? 在累計時間模式下執行,顯示每個進程占用的CPU累計時間
?
?????? -v : Version
?
?
執行窗口的命令如下:
?
? Z,B?????? Global: 'Z' change color mappings; 'B' disable/enable bold
? l,t,m???? Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
? 1,I?????? Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode
?
? f,o???? . Fields/Columns: 'f' add or remove; 'o' change display order
? F or O? . Select sort field
? <,>???? . Move sort field: '<' next col left; '>' next col right
? R,H???? . Toggle: 'R' normal/reverse sort; 'H' show threads
? c,i,S?? . Toggle: 'c' cmd name/line; 'i' idle tasks; 'S' cumulative time
? x,y???? . Toggle highlights: 'x' sort field; 'y' running tasks
? z,b???? . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
? u?????? . Show specific user only
? n or #? . Set maximum tasks displayed
?
? k,r?????? Manipulate tasks: 'k' kill; 'r' renice
? d or s??? Set update interval
? W???????? Write configuration file
? q???????? Quit
????????? ( commands shown with '.' require a visible task display window )
?
?
??? h/?:進入help
??? Z:更改顏色配置
??? B:顯示粗體(僅對頭部數據有效)
??? l:顯示or隱藏 Summaries 信息
??? t:顯示or隱藏 task/cpu 信息
??? m:顯示or隱藏 mem 信息
??? 1:顯示SMP信息(CPU)
??? I:切換 Irix/Solaris 模式
??? f:增加/減少顯示的信息字段
??? o:調整顯示信息字段的順序
??? F/O:選擇排序的字段
??? <>:使用左邊or右邊的字段排序
??? R:調整順序or逆序排列
??? H:是否顯示進程的詳細線程
??? c:是否顯示command完全信息
??? i:是否只顯示running進程信息
??? S:切換累計時間模式
??? x:將排序字段列加粗顯示
??? y:將running task加粗顯示
??? z:是否切換顏色模式
??? b:在x/y模式下,切換使用粗體or反色
??? u:只顯示指定用戶進程
??? n/#:設定進程顯示數量,0為默認
??? k:結束某進程
??? r:re nice
??? d/s:更改每次刷新的時間間隔
??? W:將信息寫入文件
??? q:退出
???
???
top命令結果詳解:
?
??? top命令顯示的項目很多,默認值是每5秒更新一次。顯示的各項目為:
?
1、top類
?
??? 該項顯示的是系統啟動時間、已經運行的時間和三個平均負載值(最近1秒,5秒,15秒的負載值)。
???
top - 11:18:35 up 54 days, 19:08,? 1 user,? load average: 0.02, 0.01, 0.00
2、Task類
?
??? 自最近一次刷新以來的運行進程總數。這些進程被分為正在運行的,休眠的,停止的等很多種類。
??? Tasks: 166 total,?? 1 running, 165 sleeping,?? 0 stopped,?? 0 zombie
?
3、CPU states
?
??? 顯示用戶模式,系統模式,優先級進程(只有優先級為負的列入考慮)和閑置等各種情況所占用CPU時間的百分比。
??? 優先級進程所消耗的時間也被列入到用戶和系統的時間中,所以總的百分比將大于100%。
??? Cpu0? :? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
??? Cpu1? :? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
??? Cpu2? :? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
??? Cpu3? :? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
??? Cpu4? :? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
??? Cpu5? :? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
??? Cpu6? :? 0.2%us,? 0.0%sy,? 0.0%ni, 99.8%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
??? Cpu7? :? 0.0%us,? 0.0%sy,? 0.0%ni,100.0%id,? 0.0%wa,? 0.0%hi,? 0.0%si,? 0.0%st
?
4、Mem & Swap
?
??? Mem:內存使用情況統計,其中包括總的可用內存,空閑內存,已用內存,共享內存和緩存所占內存的情況。
??? Swap:交換空間統計,其中包括總的交換空間,可用交換空間,已用交換空間。
??? Mem:?? 4043588k total,? 3876352k used,?? 167236k free,?? 204512k buffers
??? Swap:? 2031608k total,????? 160k used,? 2031448k free,? 3290012k cached
?
5、Process類
?
? PID USER????? PR? NI? VIRT? RES? SHR S %CPU %MEM??? TIME+??? TIME COMMAND????????????????????????????????????????????????????????
30060 oracle??? 18?? 0? 654m? 16m? 12m S? 0.0? 0.4?? 0:00.02?? 0:00 ora_q001_devMISowb?????????????????????????????????????????????
30058 oracle??? 18?? 0? 654m? 18m? 15m S? 0.0? 0.5?? 0:00.02?? 0:00 ora_q000_devMISowb?????????????????????????????????????????????
30050 oracle??? 15?? 0? 654m? 17m? 13m S? 0.0? 0.4?? 0:00.01?? 0:00 ora_qmnc_devMISowb?????????????????????????????????????????????
30046 oracle??? 18?? 0? 655m? 15m? 11m S? 0.0? 0.4?? 0:00.02?? 0:00 ora_s000_devMISowb?????????????????????????????????????????????
30044 oracle??? 15?? 0? 654m? 16m? 12m S? 0.0? 0.4?? 0:00.02?? 0:00 ora_d000_devMISowb?????????????????????????????????????????????
30042 oracle??? 18?? 0? 654m? 24m? 20m S? 0.0? 0.6?? 0:00.03?? 0:00 ora_mmnl_devMISowb?????????????????????????????????????????????
30040 oracle??? 15?? 0? 656m 107m 100m S? 0.0? 2.7?? 0:08.63?? 0:08 ora_mmon_devMISowb????????
?
* A: PID???? = Process Id??????????? = 每個進程的ID
* E: USER??? = User Name???????????? = 每個進程所有者的用戶名
* H: PR????? = Priority????????????? = 每個進程的優先級別
* I: NI????? = Nice value??????????? = 進程的優先級值
* O: VIRT????= Virtual Image (kb)??? = 虛擬內存值
* Q: RES???? = Resident size (kb)??? = 常駐內存值
* T: SHR???? = Shared Mem size (kb)? = 共享內存值
* W: S?????? = Process Status??????? = 該進程的狀態。
???????????????????????????????????????S:休眠狀態;D:不可中斷的休眠;R:運行;Z:僵死;T:停止或跟蹤。
* K: %CPU????= CPU usage???????????? = 占用的CPU和總CPU的百分比
* N: %MEM????= Memory usage (RES)??? = 占用的物理內存占總內存的百分比
* M: TIME+?? = CPU Time, hundredths? = CPU時間占用百分比
? b: PPID??? = Parent Process Pid??? = 進程的父進程ID
? c: RUSER?? = Real user name??????? = Real user name?
? d: UID?????= User Id?????????????? = User Id
? f: GROUP?? = Group Name??????????? = Group Name
? g: TTY???? = Controlling Tty?????? =
? j: P?????? = Last used cpu (SMP)?? =
? p: SWAP????= Swapped size (kb)???? = Swapped size
* L: TIME??? = CPU Time????????????? =
? r: CODE??? = Code size (kb)??????? = Code size
? s: DATA????= Data+Stack size (kb)? =
? u: nFLT??? = Page Fault count????? =
? v: nDRT??? = Dirty Pages count???? =
? y: WCHAN?? = Sleeping in Function? =
? z: Flags?? = Task Flags <sched.h>? =
* X: COMMAND = Command name/line???? = 該進程的命令名稱
?
?