題記 對於top命令來說,基本是都是linux命令入門中,第一個使用的命令,在windows中電腦如果卡頓,回去任務欄中查看cpu和記憶體的使用情況。top命令實現的就是這個重要的功能。 在系統維護的過程中,隨時可能有需要查看 CPU 使用率,並根據相應信息分析系統狀況的需要。在 CentOS 中,可 ...
題記
對於top命令來說,基本是都是linux命令入門中,第一個使用的命令,在windows中電腦如果卡頓,回去任務欄中查看cpu和記憶體的使用情況。top命令實現的就是這個重要的功能。
在系統維護的過程中,隨時可能有需要查看 CPU 使用率,並根據相應信息分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來查看 CPU 使用狀況。運行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 -- 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 運行中敲 q 鍵一次)。
top命令結果解析
top命令中展現的信息非常的豐富:
最上部的 系統信息欄 :
第一行(top):
“00:11:04”為系統當前時刻;
“3:35”為系統啟動後到現在的運作時間;
“2 users”為當前登錄到系統的用戶,更確切的說是登錄到用戶的終端數 -- 同一個用戶同一時間對系統多個終端的連接將被視為多個用戶連接到系統,這裡的用戶數也將表現為終端的數目;
“load average”為當前系統負載的平均值,後面的三個值分別為1分鐘前、5分鐘前、15分鐘前進程的平均數,一般的可以認為這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的進程;
第二行(Tasks):
“59 total”為當前系統進程總數;
“1 running”為當前運行中的進程數;
“58 sleeping”為當前處於等待狀態中的進程數;
“0 stoped”為被停止的系統進程數;
“0 zombie”為被覆原的進程數;
第三行(Cpus):
分別表示了 CPU 當前的使用率;
第四行(Mem):
分別表示了記憶體總量、當前使用量、空閑記憶體量、以及緩衝使用中的記憶體量;
第五行(Swap):
表示類別同第四行(Mem),但此處反映著交換分區(Swap)的使用情況。通常,交換分區(Swap)被頻繁使用的情況,將被視作物理記憶體不足而造成的。
進程關鍵信息的解釋
PID:進程的ID
USER:進程所有者
PR:進程的優先順序別,越小越優先被執行
NInice:值
VIRT:進程占用的虛擬記憶體
RES:進程占用的物理記憶體
SHR:進程使用的共用記憶體
S:進程的狀態。S表示休眠,R表示正在運行,Z表示僵死狀態,N表示該進程優先值為負數
%CPU:進程占用CPU的使用率
%MEM:進程使用的物理記憶體和總記憶體的百分比
TIME+:該進程啟動後占用的總的CPU時間,即占用CPU使用時間的累加值。
COMMAND:進程啟動命令名稱
top 參數解釋
-b:以批處理模式操作;
-c:顯示完整的治命令;
-d:屏幕刷新間隔時間;
-I:忽略失效過程;
-s:保密模式;
-S:累積模式;
-i<時間>:設置間隔時間;
-u<用戶名>:指定用戶名;
-p<進程號>:指定進程;
-n<次數>:迴圈顯示的次數。
top交互命令
h:顯示幫助畫面,給出一些簡短的命令總結說明;
k:終止一個進程;
i:忽略閑置和僵死進程,這是一個開關式命令;
q:退出程式;
r:重新安排一個進程的優先順序別;
S:切換到累計模式;
s:改變兩次刷新之間的延遲時間(單位為s),如果有小數,就換算成ms。輸入0值則系統將不斷刷新,預設值是5s;
f或者F:從當前顯示中添加或者刪除項目;
o或者O:改變顯示項目的順序;
l:切換顯示平均負載和啟動時間信息;
m:切換顯示記憶體信息;
t:切換顯示進程和CPU狀態信息;
c:切換顯示命令名稱和完整命令行;
M:根據駐留記憶體大小進行排序;
P:根據CPU使用百分比大小進行排序;
T:根據時間/累計時間進行排序;
w:將當前設置寫入~/.toprc文件中。
記憶體相關命令 free
在Linux下查看記憶體我們一般用free命令:
下麵是對這些數值的解釋:
total:總計物理記憶體的大小。
used:已使用多大。
free:可用有多少。
Shared:多個進程共用的記憶體總額。
Buffers/cached:磁碟緩存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
區別:第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別。
這兩個的區別在於使用的角度來看,第一行是從OS的角度來看,因為對於OS,buffers/cached 都是屬於被使用,所以他的可用記憶體是16176KB,已用記憶體是3250004KB,其中包括,內核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是從應用程式角度來看,對於應用程式來說,buffers/cached 是等於可用的,因為buffer/cached是為了提高文件讀取的性能,當應用程式需在用到記憶體的時候,buffer/cached會很快地被回收。
所以從應用程式的角度來說,可用記憶體=系統free memory+buffers+cached。
接下來解釋什麼時候記憶體會被交換,以及按什麼方交換。 當可用記憶體少於額定值的時候,就會開會進行交換。
如何看額定值:
cat /proc/meminfo
/proc中放了很多關於系統的信息,後面會專門講述。
free命令參數
-b:以Byte為單位顯示記憶體使用情況;
-k:以KB為單位顯示記憶體使用情況;
-m:以MB為單位顯示記憶體使用情況;
-o:不顯示緩衝區調節列;
-s<間隔秒數>:持續觀察記憶體使用狀況;
-t:顯示記憶體總和列;
-V:顯示版本信息。
更多教程:阿貓學編程