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...