VMSTAT的語法詳解及使用

2021-05-28 18:14:36 字數 3083 閱讀 2337

在linux下有很多系統效能分析工具,比較常見的有top、free、ps、time、timex、uptime等。下文將介

紹vmstat的使用。

用vmstat監視記憶體使用情況

vmstat是virtual meomory statistics(虛擬記憶體統計)的縮寫,可對作業系統的虛擬記憶體、程序、

cpu活動進行監視。它是對系統的整體情況進行統計,不足之處是無法對某個程序進行深入分析。

vmstat的語法如下:

vmstat [-v] [-n] [delay [count]]

其中,-v表示列印出版本資訊;-n表示在週期性迴圈輸出時,輸出的頭部資訊僅顯示一次;delay

是兩次輸出之間的延遲時間;count是指按照這個時間間隔統計的次數。對於vmstat輸出各字段的含義,

可執行man vmstat檢視

oracle@oracle [/home/oracle] vmstat 30        

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st

0  7 191060  46436   8516 6320140    0    0 25145  3988 2953 2568  7  2 45 47  0

0  8 191060  46772   8944 6262940    0    0 18306  4123 2762  821  6  2 42 50  0

0  8 191060  46048   9476 6214968    0    0 16523  5260 2444 3257  7  2 39 52  0

0  8 191060  45504  10584 6260116    3    0 14665  5954 2553 2630  5  5 40 49  0

0  7 191060  80140  11088 6280616    0    0 20427  2419 2942  612  4  2 55 39  0

1  6 191060  46632  10948 6305656    0    0 17997  4201 1295  430  4  3 60 33  0

1  8 191060  45676  10240 6191764    7    0 29717   888 1258 1532  5  6 58 31  0

0  9 191060  45600   8608 6180256    0    0 24880  2717 1220 1470  3  1 56 40  0

0 10 191060  44984   9056 6169620    0    0 24803  1591 1224 1480  3  1 51 44  0

0  9 191060  46476   9816 6165352    0    0 20735  2587 1186 1154  3  1 50 46  0

0  8 191060  46524  11084 6011804    9    0 15602  5370 1223 1671  5  2 46 47  0

ps: 30秒寫一次,沒有限制,如果有限制列印5次:  vmstat 30 5

procs

r: 等待執行的程序數   

b: 處在非中斷睡眠狀態的程序數      (等待io程序數)

w: 被交換出去的可執行的程序數。

此數由 linux 計算得出,但 linux 並不耗盡交換空間

準測r,b≈0

memory

swpd: 虛擬記憶體使用情況,單位:kb   (切換到交換記憶體上得記憶體)

如果swpd的值不為0,或者還比較大,但是si,so的值長期為0,這種情況不必擔心影響系統效能

free: 空閒的記憶體,單位kb      (空閒的物理記憶體)

buff: 被用來做為快取的記憶體數,單位:kb    (作為buffercache的記憶體,對塊裝置的讀寫進行緩衝)

cache: 作為page cache的記憶體,檔案系統的cache

如果cache的值大的時候,說明cache出得檔案數多,如果頻繁訪問到的檔案都被cache到,那麼磁

盤的讀io bi會非常小。

swap

si: 從磁碟交換到記憶體的交換頁數量,單位:kb/秒  

so: 從記憶體交換到磁碟的交換頁數量,單位:kb/秒  

記憶體夠用的時候這兩個值都是0,如果這兩個值長期大於0,系統效能會受到影響,磁碟的io和cpu資

源都會唄消耗

如果free很少,但是si so也很少(大多數時候為0),不用擔心效能受到影響。

io

bi: 傳送到塊裝置的塊數,單位:塊/秒          (讀磁碟)

bo: 從塊裝置接收到的塊數,單位:塊/秒        (寫磁碟)

這兩個值越大,能看到cpu在io等待的值也會越大。

system

in: 每秒的中斷數,包括時鐘中斷

cs: 每秒的環境(上下文)切換次數

這兩個值越大,會看到由核心消耗的cpu時間會越大。

cpu

按 cpu 的總使用百分比來顯示

us: cpu 使用時間

sy: cpu 系統使用時間

id: 閒置時間

wa: io等待消耗的cpu時間百分比

通常情況下 sy所占用的時間百分比小於10%,否則就需要檢查系統消耗cpu情況,

在單使用者下最理想的狀態是使cpu處於100%工作狀態,

如果在多使用者環境中us+sys》80,程序就會在執行佇列中花費等待時間,響應時間和吞吐量就會下降。

wa值高時,說明io等待比較嚴重,可能由於磁碟大量隨機訪問,也有可能磁碟出現瓶頸(塊操作)

wa>40表明磁碟io沒有也許存在不合理的平衡,或者對磁碟操作比較頻繁。

us持續大於50,服務高峰期可以接受。

vmstat的使用詳解

vmstat命令是最常見的linux unix監控工具,可以展現給定時間間隔的伺服器的狀態值,包括伺服器的cpu使用率,記憶體使用,虛擬記憶體交換情況,io讀寫情況。這個命令是我檢視linux unix最喜愛的命令,乙個是linux unix都支援,二是相比top,我可以看到整個機器的cpu,記憶體...

關於vmstat命令的使用詳解1 0

vmstat命令 用來檢視並獲取程序,虛擬記憶體,頁面交換空間以及cpu活動狀況的資訊,綜合這些資訊可以分析系統當前的負載情況。1 用法 vmstat report virtual memory statistics a,active display active and inactive memo...

詳解中括號語法及點語法

點語法 點語法根據物件中的鍵來獲取相應的值.let obj a a console.log obj.a a 建立相應的鍵值對 obj.b b console.log obj.b b 中括號語法 中括號語法也能根據物件中的鍵來獲取值.let obj a a console.log obj a a 需要...