vmstat 效能分析工具

2021-09-20 19:10:13 字數 1645 閱讀 5116

vmstat 全面的效能分析工具,可以觀察到系統的程序狀態、記憶體使用、虛擬記憶體使用、磁碟的io、中斷、上下文切換、cpu使用等。

在系統中使用root身份,執行vmstat 1 命令,觀察效能狀況。各引數值含義見下方:

vmstat

procs

執行的和等待(cpu時間片)執行的程序數,這個值也可以判斷是否需要增加cpu(長期大於1)

b:處於不可中斷狀態的程序數,常見的情況是由io引起的

memory

swpd: 切換到交換記憶體上的記憶體(預設以kb為單位)

如果 swpd 的值不為0,或者還比較大,比如超過100m了,但是 si, so 的值長期為 0,這種情況我們可以不用擔心,不會影響系統效能。

free: 空閒的物理記憶體

buff: 作為buffer cache的記憶體,對塊裝置的讀寫進行緩衝

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

如果 cache 的值大的時候,說明cache住的檔案數多,如果頻繁訪問到的檔案都能被cache住,那麼磁碟的讀io bi 會非常小。

swap

si: 交換記憶體使用,由磁碟調入記憶體

so: 交換記憶體使用,由記憶體調入磁碟

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

常有人看到空閒記憶體(free)很少或接近於0時,就認為記憶體不夠用了,實際上不能光看這一點的,還要結合si,so,如果free很少,但是si,so也很少(大多時候是0),那麼不用擔心,系統效能這時不會受到影響的。

iobi: 從塊裝置讀入的資料總量(讀磁碟) (kb/s),

bo: 寫入到塊裝置的資料總理(寫磁碟) (kb/s)

隨機磁碟讀寫的時候,這2個 值越大(如超出1m),能看到cpu在io等待的值也會越大

system

in: 每秒產生的中斷次數

cs: 每秒產生的上下文切換次數

上面這2個值越大,會看到由核心消耗的cpu時間會越多

cpu

us: 使用者程序消耗的cpu時間百分比

us 的值比較高時,說明使用者程序消耗的cpu時間多,但是如果長期超過50% 的使用,那麼我們就該考慮優化程式演算法或者進行加速了

sy: 核心程序消耗的cpu時間百分比

sy 的值高時,說明系統核心消耗的cpu資源多,這並不是良性的表現,我們應該檢查原因。

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

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

id: cpu處在空閒狀態時間百分比

情景分析

這個vmstat的輸出那些資訊值得關注?

procs r: 執行的程序比較多,系統很繁忙

io bo: 磁碟寫的資料量稍大,如果是大檔案的寫,10m以內基本不用擔心,如果是小檔案寫2m以內基本正常

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

cpu wa: 稍微有些高

cpu id:持續小於50,服務高峰期可以接受

效能分析命令 vmstat

usage vmstat options delay count delay代表每過多少秒顯示一條,count代表要顯示的總條數 options a,active active inactive memory f,forks number of forks since boot m,slabs sl...

效能 如何利用vmstat分析系統效能

vmstat是乙個系統效能分析工具,具體的引數介紹可以參看各大搜尋引擎。知道引數的意義如何準確分析系統的效能問題才是王道 通過vmstat識別cpu瓶頸 r 執行佇列 展示了正在執行和等待cpu資源的任務個數。當這個值超過了cpu數目,就會出現cpu瓶頸了。當r值超過了cpu個數3倍,例如你有兩個c...

Linux效能監控工具集之vmstat命令

vmstat命令是linux下一款功能比較齊全的監測工具。它可以統計cpu 記憶體 swap i o操作 上下文切換 時鐘切換等的使用情況。vmstat可以指定取樣週期和取樣次數。舉個栗子使用vmstat進行資料採集,每秒鐘一次,共採集3次,命令為 vmstat 1 3。來看下執行結果 採集3次共3...