1. 作用 動態查看進程的變化,常用來查找最耗CPU資源的進程。 2. 用法 top 【參數】 參數: -d:後接秒數,就是整個進程界面更新的秒數。預設是5秒; -b:以批次的方式執行top,通常會搭配數據流重定向來將批處理的結果輸出成為文件; -n:後面接整數數字,與-b搭配使用,表示需要進行幾次 ...
1. 作用
動態查看進程的變化,常用來查找最耗CPU資源的進程。
2. 用法
top 【參數】
參數:
-d:後接秒數,就是整個進程界面更新的秒數。預設是5秒;
-b:以批次的方式執行top,通常會搭配數據流重定向來將批處理的結果輸出成為文件;
-n:後面接整數數字,與-b搭配使用,表示需要進行幾次top的輸出結果;
-p:後面接PID,指定某進程來進行查看。
在top執行過程中可以使用的按鍵命令:
?:顯示在top當中可以輸入的按鍵命令;
P:以CPU的使用資源排序顯示;
M:以記憶體的使用資源排序顯示;
N:以PID來排序;
T:以該進程使用的CPU時間累積(TIME+)排序;
k:給予某個PID一個信號;
r:給予某個PID重新制定一個nice值;
q:離開top。
3. 範例
3.1 top -d 2
每2秒更新一次top:
欄位說明:
1)第一行top,任務隊列信息,同uptime執行的結果:
【14:10:19】目前的時間;
【up 4 days, 4:21】開機到目前為止所經過的時間;
【1 user】已經登錄系統的用戶數;
【load average: 1.80, 1.09, 0.82】系統在1、5、15分鐘的平均工作負載,表示系統平均要負責運行幾個進程的意思。越小代表系統越閑置;
2)第二行Tasks:
【1200 total】目前進程的總量;
【1 running】正在運行的進程數;
【1199 sleeping】睡眠的進程數;
【0 stopped】停止的進程數;
【0 zombie】僵屍進程數;
3)第三行Cpus,顯示CPU的整體負載:
【1.1%us】用戶空間占用CPU百分比;
【1.6%sy】內核空間占用CPU百分比;
【0.0%ni】用戶進程空間內改變過優先順序的進程占用CPU百分比;
【97.1%id】空閑CPU百分比;
【0.2%wa】I/O wait百分比;
【0.0%hi】硬中斷(Hardware Interrupts)CPU占比;
【0.0%si】軟中斷(Software Interrupts)CPU占比;
【0.0%st】被虛擬機所盜用的CPU占比;
4)第四行Mem,物理記憶體:
【total】物理記憶體總量;
【used】使用的物理記憶體量;
【free】空閑的物理記憶體量;
【buffers】用作內核緩存的物理記憶體量;
5)第五行Swap,交換分區/虛擬記憶體:
【total】交換區總量;
【used】使用的交換區量;
【free】空閑的交換區量;
【cached】可用交換區記憶體量;
6)第六行,空行,這個是在top進程中輸入命令時顯示狀態的地方;
7)往下是進程信息:
【PID】每個進程的ID;
【USER】該進程所屬的用戶;
【PR】Priority的簡寫,進程的優先執行順序,越小越早被執行;
【NI】Nice的簡寫,與PR有關,也是越小越早被執行;
【VIRT】進程占用的虛擬記憶體,單位kb;
【RES】進程占用的物理記憶體,單位kb;
【SHR】進程使用的共用記憶體,單位kb;
【S】進程的狀態。D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/停止,Z=僵屍進程;
【%CPU】CPU的使用率,預設使用CPU使用率作為排序重點;
【%MEM】記憶體的使用率;
【TIME+】該進程啟動後占用的總的CPU時間,即占用CPU使用時間的累加值;
【COMMAND】進程啟動命令名稱。
3.2 top -b -n 2 > /tmp/top.txt
將top的信息進行2次,然後將結果輸出到/tmp/top.txt文件中:
3.3 top -p 44991
當前的bash PID可以由$$變數取得,使用top持續查看該PID:
3.4 修改NI值
上面bash的NI值為0,我們改成10,輸入 r:
輸入PID號44991,enter:
輸入要更改的NI值,輸入10,enter: