Linux下top命令詳解

學識都 人氣:1.94W

Linux系統下top命令參數你知道嗎?下面本站小編爲大家一一解讀!

Linux下top命令詳解

top:動態觀察程序的變化

使用權限:

所有使用者

語法格式:

top [-] [d delay] [q] [c] [S] [s] [n]

使用說明:

即時顯示 process 的動態

主要參數:

-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 ,觀察整體信息

123456789101112131415[root@linux~]# top -d 2top - 18:30:36 up 30 days, 7 min, 1 user, load average: 0.42, 0.48, 0.45Tasks: 163 total, 1 running, 161 sleeping, 1 stopped, 0 zombieCpu(s): 4.7% us, 4.0% sy, 6.3% ni, 82.5% id, 0.4% wa, 0.1% hi, 2.0% siMem: 1033592k total, 955252k used, 78340k free, 208648k buffersSwap: 1052216k total, 728k used, 1051488k free, 360248k cached<==如果加入 k 或 r 時,就會有相關的字樣出現在這裏喔!PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND3981 apache 34 19 84012 11m 7352 S 17.3 1.2 0:00.09 httpd1454 mysql 16 0 289m 40m 2228 S 3.8 4.0 115:01.32 mysqld3985 dmtsai 15 0 2148 904 668 R 3.8 0.1 0:00.03 top1 root 16 0 3552 552 472 S 0.0 0.1 0:08.90 init2 root RT 0 0 0 0 S 0.0 0.0 0:52.76 migration/03 root 34 19 0 0 0 S 0.0 0.0 0:03.01 ksoftirqd/0

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

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

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

123456789[root@linux ~]# top -d 2 -p10604top - 13:53:00 up 51 days, 2:27, 1 user, load average: 0.00, 0.00, 0.00Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombieCpu(s): 0.0% us, 0.0% sy, 0.0% ni, 100.0% id, 0.0% wa, 0.0% hi, 0.0% siMem: 385676k total, 371760k used, 13916k free, 131164k buffersSwap: 1020116k total, 880k used, 1019236k free, 95772k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND10604 root 16 0 5396 1544 1244 S 0.0 0.4 0:00.07 bash

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 即可), 就可以很快的知道啦!

TAGS:Linux TOP 命令