top常用參數如下:
-d :後面可以接秒數,就是整個程序畫面更新的秒數。預設是 5 秒;
-b :以批次的方式執行 top ,還有更多的參數可以使用喔!
通常會搭配數據流重導向來將批次的結果輸出成為檔案。
-n :與 -b 搭配,意義是,需要進行幾次 top 的輸出結果。
-p :指定某些個 PID 來進行觀察監測而已。
在 top 執行過程當中可以使用的按鍵指令:
? :顯示在 top 當中可以輸入的按鍵指令;
P :以 CPU 的使用資源排序顯示;--%CPU
M :以 Memory 的使用資源排序顯示;--%MEM
N :以 PID 來排序--從大到小
T :由該 Process 使用的 CPU 時間累積 (TIME+) 排序。
k :給予某個 PID 一個訊號 (signal)
r :給予某個 PID 重新制訂一個 nice 值。
常用命令組合:
[oracle@bys3 ~]$ top -d 2 ---兩秒刷新一次
[oracle@bys3 ~]$ top -bn 1 >abc.log ---將輸出寫入到指定文件
[oracle@bys3 ~]$ top -d 2 -p 2955 ---只輸出指定進程的信息
top - 23:57:41 up 6:03, 4 users, load average: 0.02, 0.02, 0.00
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.5%us, 16.4%sy, 0.0%ni, 83.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1026688k total, 918396k used, 108292k free, 38260k buffers
Swap: 4249144k total, 0k used, 4249144k free, 627300k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2955 oracle -2 0 365m 13m 12m S 13.0 1.4 44:39.75 oracle
實用----使用top命令後,還可以輸入 P M N T等對輸出信息進去排序--注意是大寫。?號可以調出幫助。
TOP命令輸出信息的解讀:
top 可以持續的監測整個系統的程序工作狀態,默認每5秒刷新一次。
輸出分為上下兩個部分:上部6行:系統概況。下部:每個process使用的資源情況,
默認只使用top命令時此部分輸出的process行數不是固定的,按窗口大小來顯示的,窗口越大顯示越多。
如果使用top -bn 1這樣,只輸出一次結果,則會將所有進程信息都輸出--此時可以將輸出重定向到文件文件查看。
示例:
[oracle@bys3 ~]$ top -bn 1
top - 23:30:46 up 5:36, 4 users, load average: 0.00, 0.00, 0.00
Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.0%us, 19.2%sy, 0.3%ni, 76.1%id, 3.3%wa, 0.0%hi, 0.1%si, 0.0%st
Mem: 1026688k total, 933452k used, 93236k free, 35964k buffers
Swap: 4249144k total, 0k used, 4249144k free, 638360k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2955 oracle -2 0 365m 13m 12m S 11.7 1.4 41:13.71 oracle
1 root 20 0 2160 572 484 S 0.0 0.1 0:02.76 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
以下輸出省略。
上部分--前五行:
第一行:
top - 23:30:46 up 5:36, 4 users, load average: 0.00, 0.00, 0.00
和uptime輸出一樣
[oracle@bys3 ~]$ uptime
23:36:07 up 5:41, 4 users, load average: 0.00, 0.00, 0.00
系統的當前時間,系統啟動時間,當前登陸的用戶數,1、5、10分鐘的CPU負載情況-一般不過1
第二行:
Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie
更多精彩內容:http://www.bianceng.cn/OS/Linux/
當前總進程數量,正在運行的,睡眠中的,停止的,zombie僵屍進程數-非0要注意查看
第三行:
Cpu(s): 1.0%us, 19.2%sy, 0.3%ni, 76.1%id, 3.3%wa, 0.0%hi, 0.1%si, 0.0%st
用戶進程占用的CPU比例,內核戰勝CPU比例,改變過優先級的用戶進程占用CPU百分比,空閒CPU百分比,
等待輸入輸出的CPU時間百分比
第四行:
Mem: 1026688k total, 933452k used, 93236k free, 35964k buffers
物理內存總量-有單位K,已經使用的,空閒的,內核緩沖的內在量
第五行:
Swap: 4249144k total, 0k used, 4249144k free, 638360k cached
SWAP空間總大小-單位K,已經使用的,空閒的,緩沖的交換區總量--使用過又未被覆蓋的SWAP
###############################################
第二部分:各進程詳細信息--進程各列的具體含義
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2955 oracle -2 0 365m 13m 12m S 11.7 1.4 41:13.71 oracle
進程信息各列的具體含義:
PID 進程ID,
USER 進程所有者名,
PR Priority 的簡寫,程序的優先執行順序,越小越早被執行
NI NICE值-負高優先,
VIRT 使用虛擬內存總量;
RES 進程使用的、未被換出的物理內存大小
SHR 共享內存大小。
S 進程狀態-R運行-S睡眠-T跟蹤/停止-Z僵屍-D不可中斷的睡眠狀態
%CPU 上次更新到現在的CPU時間占用百分比
%MEM 進程使用的物理內存百分比
TIME+ 進程使用的CPU時間總計,單位1/100秒-毫秒
COMMAND 命令名/命令行