linux top命令介紹

來源《鳥哥的linux私房菜》 html

top:動態觀察程序的變化 mysql

 

?
[root@linux~]# top [-d] | top [-bnp]
參數:
-d :後面能夠接秒數,就是整個程序畫面更新的秒數。預設是5秒;
-b :以批次的方式執行 top ,還有更多的參數可使用喔!
一般會搭配數據流重導向來將批次的結果輸出成爲檔案。
-n :與 -b 搭配,意義是,須要進行幾回 top 的輸出結果。
-p :指定某些個PID來進行觀察監測而已。
在 top 執行過程中可使用的按鍵指令:
? :顯示在 top 當中能夠輸入的按鍵指令;
P:以CPU的使用資源排序顯示;
M:以 Memory 的使用資源排序顯示;
N:以PID來排序喔!
T:由該 Process 使用的CPU時間累積 (TIME+) 排序。
k :給予某個PID一個訊號 (signal)
r :給予某個PID從新制訂一個 nice 值。

 

 

範例1:每兩秒鐘更新一次 top ,觀察總體信息 linux

 

?
[root@linux~]# top -d 2
top -18:30:36up30days,7min,1user, load average:0.42,0.48,0.45
Tasks:163total,1running,161sleeping,1stopped,0zombie
Cpu(s):4.7% us,4.0% sy,6.3% ni,82.5% id,0.4% wa,0.1% hi,2.0% si
Mem: 1033592k total, 955252k used, 78340k free, 208648k buffers
Swap: 1052216k total, 728k used, 1051488k free, 360248k cached
<==若是加入 k 或 r 時,就會有相關的字樣出如今這裏喔!
 
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
3981apache34198401211m7352S17.31.20:00.09httpd
1454mysql160289m 40m2228S3.84.0115:01.32mysqld
3985dmtsai1502148904668R3.80.10:00.03top
1root1603552552472S0.00.10:08.90init
2rootRT0000S0.00.00:52.76migration/0
3root3419000S0.00.00:03.01ksoftirqd/0

 

 

範例2:將 top 的信息進行 2 次,而後將結果輸出到 /tmp/top.txt sql

 

?
[root@linux~]# top -b -n 2 > /tmp/top.txt
# 這樣一來,嘿嘿!就能夠將 top 的信息存到 /tmp/top.txt 檔案中了。

 

 

範例3:假設 10604 是一個已經存在的 PID ,僅觀察該程序? apache

 

?
[root@linux~]# top -d 2 -p10604
top -13:53:00up51days,2:27,1user, load average:0.00,0.00,0.00
Tasks:1total,0running,1sleeping,0stopped,0zombie
Cpu(s):0.0% us,0.0% sy,0.0% ni,100.0% id,0.0% wa,0.0% hi,0.0% si
Mem: 385676k total, 371760k used, 13916k free, 131164k buffers
Swap: 1020116k total, 880k used, 1019236k free, 95772k cached
 
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
10604root160539615441244S0.00.40:00.07bash

 

 

範例四:承上題,上面的 NI 值是 0 ,想要改爲 10 的話? bash

 

?
# 在範例三的 top 畫面當中直接按下 r 以後,會出現以下的圖樣!
top -13:53:00up51days,2:27,1user, load average:0.00,0.00,0.00
Tasks:1total,0running,1sleeping,0stopped,0zombie
Cpu(s):0.0% us,0.0% sy,0.0% ni,100.0% id,0.0% wa,0.0% hi,0.0% si
Mem: 385676k total, 371760k used, 13916k free, 131164k buffers
Swap: 1020116k total, 880k used, 1019236k free, 95772k cached
PIDto renice:10604
 
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
10604root160539615441244S0.00.40:00.07bash
# 以後,能夠輸入 nice 值了!
top -13:53:00up51days,2:27,1user, load average:0.00,0.00,0.00
Tasks:1total,0running,1sleeping,0stopped,0zombie
Cpu(s):0.0% us,0.0% sy,0.0% ni,100.0% id,0.0% wa,0.0% hi,0.0% si
Mem: 385676k total, 371760k used, 13916k free, 131164k buffers
Swap: 1020116k total, 880k used, 1019236k free, 95772k cached
RenicePID10604to value:10
 
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
10604root3010539615441244S0.00.40:00.07bash

 

 

 

?
top 也是個挺不錯的程序觀察工具!但不一樣於 ps 是靜態的結果輸出, top 這個程序能夠持續的監測 (monitor) 整個系統的程序工做狀態,例如上面的範例一所示啊! 在預設的狀況下,每次更新程序資源的時間爲5秒,不過,可使用 -d 來進行修改。 top 主要分爲兩個畫面,上面的畫面爲整個系統的資源使用狀態,基本上總共有六行, 顯示的內容依序是:
• 第一行:顯示系統已啓動的時間、目前上線人數、系統總體的負載(load)。 比較須要注意的是系統的負載,三個數據分別表明1,5,10分鐘的平均負載。 通常來講,這個負載值應該不太可能超過1纔對,除非您的系統很忙碌。 若是持續高於5的話,那麼.....仔細的看看究竟是那個程序在影響總體系統吧!
• 第二行:顯示的是目前的觀察程序數量,比較須要注意的是最後的 zombie 那個數值,若是不是0,嘿嘿!好好看看究竟是那個 process 變成疆屍了吧?!
• 第三行:顯示的是CPU的總體負載,每一個項目可以使用 ? 查閱。須要觀察的是 id (idle) 的數值,通常來講,他應該要接近100% 纔好,表示系統不多資源被使用啊! ^_^。
• 第四行與第五行:表示目前的物理內存與虛擬內存 (Mem/Swap) 的使用狀況。
• 第六行:這個是當在 top 程序當中輸入指令時,顯示狀態的地方。 例如範例四就是一個簡單的使用例子。
至於 top 底下的畫面,則是每一個 process 使用的資源狀況。比較須要注意的是:
•PID:每一個 process 的ID啦!
•USER:該 process 所屬的使用者;
•PR:Priority 的簡寫,程序的優先執行順序,越小越早被執行;
•NI:Nice 的簡寫,與 Priority 有關,也是越小越早被執行;
• %CPU:CPU的使用率;
• %MEM:內存的使用率;
•TIME+:CPU使用時間的累加;
通常來講,若是鳥哥想要找出最損耗CPU資源的那個程序時,大多使用的就是 top 這支程序啦!而後強制以CPU使用資源來排序 (在 top 當中按下P便可), 就能夠很快的知道啦! ^_^。多多愛用這個好用的東西喔!
相關文章
相關標籤/搜索