本文介紹下,在linux中查看系統資源佔用的三個命令:top、free、uptime,經過實例學習下它們的用法,有須要的朋友參考下html
一,top命令linux
1.做用
top命令用來顯示執行中的程序進程,使用權限是全部用戶。ios
2.格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]緩存
3.主要參數
d:指定更新的間隔,以秒計算。
q:沒有任何延遲的更新。若是使用者有超級用戶,則top命令將會以最高的優先序執行。
c:顯示進程完整的路徑與名稱。
S:累積模式,會將己完成或消失的子行程的CPU時間累積起來。
s:安全模式。
i:不顯示任何閒置(Idle)或無用(Zombie)的行程。
n:顯示更新的次數,完成後將會退出top。安全
top命令顯示的前五行是系統總體的統計信息。函數
第一行是任務隊列信息,同uptime命令的執行結果。eg.工具
top - 15:09:51 up 17 days , 3:38 , 4 users , load average : 1.09 , 3.39 , 4.76性能
15:09:51 當前時間
up 17 days , 3:38 系統運行時間,格式爲時:分
4 users 當前登陸用戶數
load average : 1.09 , 3.39 , 4.76 系統負載,即任務隊列的平均長度。
三個數值分別爲1分鐘、5分鐘、15分鐘前到如今的平均值。學習
第2、三行爲進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。eg.spa
Tasks : 115 total , 1 running , 114 sleeping , 0stopped , 0zombie
Cpu(s) : 16.1% us , 2.0% sy , 0.0% ni , 79.5% id , 1.4% wa , 0.0% hi , 1.0% si
Tasks : 115 total 進程總數
1 running 正在運行進程數
114 sleeping 睡眠進程數
0 stopped 中止進程數
0 zombie 殭屍進程數
Cpu(s) : 16.1% us 用戶空間佔用CPU百分比
2.0% sy 內核空間佔用CPU百分比
0.0% ni 用戶進程空間內改變過優先級的進程佔用CPU百分比
79.5% id 空閒CPU百分比
1.4% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si
最後兩行爲內存信息。eg.
Mem : 8169876 k total , 7686472 k used , 483404 k free , 35272 k buffers
Swap : 4096532 k total , 160 k used , 4096372 k free , 2477532 k cached
Mem : 8169876 ktotal 物理內存總量
7686472 k used 使用的物理內存總量
483404 k free 空閒內存總量
35272 k buffers 用做內核緩存的內存量
Swap : 4096532 k total 交換分區總量
160 k used 使用的交換區總量
4096372 k free 空閒交換區總量
2477532 k cached 緩衝的交換區總量。
內存中的內容被換出到交換區,然後又被換入到內存,但使用過的交換區還沒有被覆蓋,該數值即爲這些內容已存在於內存中的交換區的大小。相應的內存再次被換出時可沒必要再對交換區寫入。
統計信息區域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
序號列名含義
PID 進程id
PPID 父進程id
RUSER Realusername
UID 進程全部者的用戶id
USER 進程全部者的用戶名
GROUP 進程全部者的組名
TTY 啓動進程的終端名。不是從終端啓動的進程則顯示爲?
PR 優先級
NInice 值。負值表示高優先級,正值表示低優先級
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 若該進程在睡眠,則顯示睡眠中的系統函數名
Flags 任務標誌,參考sched.h
top裏能夠設置按照某一項來排序,默認的狀況下,是按照CPU的使用狀況來排序,
M,(注意大寫),按內存使用狀況排序
P , 根據CPU使用百分比大小進行排序
T, 根據時間/累計時間進行排序。
輸入字母k(小寫),而後再輸入想要kill的PID
固然你也可直接運行命令,kill PID
能夠看到,top命令是一個功能十分強大的監控系統的工具,對於系統管理員而言尤爲重要。可是,它的缺點是會消耗不少系統資源。
2、free命令
1.做用
free命令用來顯示內存的使用狀況,使用權限是全部用戶。
2.格式
free [-b-k-m] [-o] [-s delay] [-t] [-V]
3.主要參數
-b -k -m:分別以字節(KB、MB)爲單位顯示內存使用狀況。
-s delay:顯示每隔多少秒數來顯示一次內存使用狀況。
-t:顯示內存總和列。
-o:不顯示緩衝區調節列。
4.應用實例
free命令是用來查看內存使用狀況的主要命令。和top命令相比,它的優勢是使用簡單,而且只佔用不多的系統資源。經過-S參數可使用free命令不間斷地監視有多少內存在使用,這樣能夠把它看成一個方便實時監控器。
#free -b -s5
使用這個命令後終端會接二連三地報告內存使用狀況(以字節爲單位),每5秒更新一次。
3、uptime 命令
在linux系統中,有一種說法,當load avarage <3 系統良好,大於5 則有嚴重的性能問題。注意,這個值還應當除以CPU數目。
若是load avarage=8 ,CPU=3,8/3=2.666,2.66這個值表示系統狀態良好
大於5也不必定是嚴重性能問題,有多是的確主機提供的服務超過了他可以提供的能力,須要擴容了。要具體看看。
另外,在linux下查看系統資源的佔用狀況,還有二個命令,它們分別是:vmstat 與 iostat 。有興趣的朋友,也能夠研究下。