[20180109]使用vmstat監測效能的輸出解析

lfree發表於2018-01-10

[20180109]使用vmstat監測效能的輸出解析.txt

在linux/unix下,常用vmstat作為系統效能監測工具。常用用法如下
# vmstat 1 100
--//我一般習慣使用-w引數,這樣支援寬行顯示.效果要好一些.
# vmstat -w 1 100
--//表示以1秒為間隔,做相關引數的取樣,一共100次。輸出範例如下:

# vmstat -w 1 100
procs -------------------memory------------------ ---swap-- -----io---- --system-- -----cpu-------
r  b       swpd       free       buff      cache   si   so    bi    bo   in   cs  us sy  id wa st
0  1        152      44424     255588    5322852    0    0     6    14    0    0   0  0  98  1  0
1  0        152      44440     255588    5322852    0    0     0     4 1192  228   0  0 100  0  0
0  0        152      44440     255588    5322852    0    0     0    36 1182  204   0  0  99  1  0
0  0        152      48456     255588    5318348    0    0     0    36 1220  269   1  0  97  1  0
0  0        152      48704     255588    5318244    0    0     0   172 1461  453   0  0  93  7  0
0  1        152      48704     255588    5318244    0    0     0    88 2800 1305   2  1  95  2  0
0  0        152      49108     255592    5318244    0    0     0    36 1189  217   0  0  99  1  0
0  0        152      48604     255592    5318244    0    0     0   108 1554  498   1  1  95  2  0
1  0        152      48604     255592    5318244    0    0     0    44 1243  281   0  0  98  2  0
0  0        152      48720     255592    5318244    0    0     0    60 1816  691   1  0  97  2  0
0  0        152      48712     255592    5318244    0    0     0   192 3094 1580   2  1  94  3  0
0  0        152      48712     255592    5318244    0    0     0    36 1337  321   0  0  99  1  0
0  0        152      48720     255592    5318244    0    0     0   116 1461  476   1  0  96  3  0
0  0        152      48720     255592    5318244    0    0     0    76 1315  321   0  0  98  2  0
0  0        152      48720     255592    5318244    0    0     0    44 2587 1235   2  1  96  1  0
1  0        152      47068     255592    5318244    0    0     0    76 3053 1576   3  2  93  2  0

--//注意第一行的輸出,是系統啟動至今總的統計的平均值(我的理解不知道是否正確)!!
--//其他列的解析:
procs 列
r: 當前在就緒佇列中的程式,可以看做系統cpu資源利用飽和度的指標
b: The number of processes in uninterruptible sleep.

swap列
si(swapped in): 每秒交換進記憶體的記憶體大小
so(swapped out):每秒交換出磁碟的記憶體大小

--//如果這兩項比較高,說明swap頻繁,可能實體記憶體不足,或者一些程式佔用記憶體異常.我遇到的多數情況沒有使用hugepage.
--//或者開啟了hugepage,但是資料庫可能設定的原因.沒有使用.導致浪費而出現的記憶體不足的情況.

io列
bi:每秒讀入記憶體的資料量
bo:每秒寫出到磁碟的資料量

--//如果這兩項數值較高,說明磁碟IO的負載比較重.

System列
in: The number of interrupts per second, including the clock.
cs: 每秒上下文切換的次數

--//如果此數值較高,說明系統中上下文切換過於頻繁,會導致系統效能下降。需要進一步確定造成的原因

CPU列
us: 執行非核心程式碼消耗的時間
sy: 執行核心程式碼消耗的時間
id: 系統空閒的時間
wa: IO等待消耗的時間

CPU
These are percentages of total CPU time.
us: Time spent running non-kernel code. (user time, including nice time)
sy: Time spent running kernel code. (system time)
id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.

--//充分了解這些細節,才能很好分析系統以及資料庫問題.
--//實際以上內容來自網路,直接查詢man vmstat也可以瞭解這方面內容。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2149960/,如需轉載,請註明出處,否則將追究法律責任。

相關文章