查看Linux下系統資源占用常用命令(top、free、uptime)


本文介紹下,在linux中查看系統資源占用的三個命令:top、free、uptime,通過實例學習下它們的用法,有需要的朋友參考下

一,top命令

1.作用
top命令用來顯示執行中的程序進程,使用權限是所有用戶。

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分鍾前到現在的平均值。

第二、三行為進程和CPU的信息。當有多個CPU時,這些內容可能會超過兩行。eg.

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命令是一個功能十分強大的監控系統的工具,對於系統管理員而言尤其重要。但是,它的缺點是會消耗很多系統資源。

二、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秒更新一次。

查看Linux下系統占用的資源(top,free,uptime)(圖2)

三、uptime 命令
在linux系統中,有一種說法,當load avarage <3 系統良好,大於5 則有嚴重的性能問題。注意,這個值還應當除以CPU數目。

如果load avarage=8 ,CPU=3,8/3=2.666,2.66這個值表示系統狀態良好
大於5也不一定是嚴重性能問題,有可能是的確主機提供的服務超過了他能夠提供的能力,需要擴容了。要具體看看。

查看Linux下系統占用的資源(top,free,uptime)(圖3)

另外,在linux下查看系統資源的占用情況,還有二個命令,它們分別是:vmstat 與 iostat 。有興趣的朋友,也可以研究下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM