直接查看man top 或者man free即可查看其更詳細的使用,這裡簡單介紹一下基本功能及輸出。
free 用來顯示所有可用及已經使用的系統內存數,包括物理內存總數及使用量、交換區、buffer、共享內存等,其參數及含義如下:
使用格式: free [-b | -k | -m | -g] [-o] [-s delay ] [-t] [-V]
-b -k -m -g這四個是輸出單位參數,分別表示輸出數值的單位為BYTE、KB、MB及GB
-t顯示匯總行total
-o不顯示+/-buffers行
-V顯示版本號
-s刷新時間 如free -ms2會每2秒刷新一次
輸出結果列包括:
物理內存總數、已使用物理內存數、可使用物理內存數、共享內存數、buffers和cached數
-/+buffers/cache表示已使用的數量減去用作cached和buffers數後真正現在使用掉的內存數,及可用量加上cached和buffers後真正可使用的量
buffer和cache的區別在於,buffer是讀寫的緩沖區,而cache是將硬盤的東西放一部分到內存中來,如果訪問的東東在裡面,則有命中的概念,而buffer沒有命令的概念
top動態實時顯示進程對資源的使用情況,定時刷新,top指令對系統的性能會有比較大的損耗
top命令運行後,顯示分為基本信息匯總區和進程區。基本信息匯總區顯示了進程、cpu、內存、swap分區的使用情況概述,進程區顯示了各個進程對資源的具體使用情況。
第一行顯示:系統運行了10天又4小時16分,當前1個用戶登錄,過去5、10、15分鐘的load average是1.12,1.50,1.43.由於是8核,因此load是很低的,通過上面的free命令可以看到,內存是目前102環境上的瓶頸。
第二行顯示:有182個進程在運行,1個正在運行,181個休眠,0個停止,0個僵死
第三行顯示:cpu有5.5%us用戶使用率,0.6%sy系統使用率,0.0%ni表示各進程間更改nice值所用的時間,93.8%id系統idle(空閒)的時間,0.0%wa為io等待cpu的時間,hi表示軟中斷占cpu的時間,si表示硬中斷占cpu的時間,st表示流逝時間(監控程序未監控到的)
第四和第五行的內存及swap區情況比較簡單明了,free命令也有描述,不再多說。
任務區輸出列的含義如下(默認情況下只顯示一部分列):
PID 進程id
PPID 父進程id
RUSER Real user name
UID 進程所有者的用戶id
USER 進程所有者的用戶名
GROUP 進程所有者的組名
TTY 啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
PR 優先級
NI nice值。負值表示高優先級,正值表示低優先級
P 最後使用的CPU,僅在多CPU環境下有意義
%CPU 上次更新到現在的CPU時間占用百分比
TIME 進程使用的CPU時間總計,單位秒
TIME+ 進程使用的CPU時間總計,單位1/100秒
%MEM 進程使用的物理內存百分比
VIRT 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
SWAP 進程使用的虛擬內存中,被換出的大小,單位kb。
RES 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
CODE 可執行代碼占用的物理內存大小,單位kb
DATA 可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb
SHR 共享內存大小,單位kb
nFLT 頁面錯誤次數
nDRT 最後一次寫入到現在,被修改過的頁面數。
S 進程狀態。
D=不可中斷的睡眠狀態
R=運行
S=睡眠
T=跟蹤/停止
Z=僵屍進程
COMMAND 命令名/命令行
WCHAN 若該進程在睡眠,則顯示睡眠中的系統函數名