1. 做用緩存
動態查看進程的變化,經常使用來查找最耗CPU資源的進程。bash
2. 用法spa
top 【參數】blog
參數:排序
-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】系統在一、五、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: