vmstat命令

leon830216發表於2014-03-01
1. 將 vmstat 輸出為 csv 格式
$ vmstat 1 | tr -s ' ' ','
$ vmstat 1 | sed 's/  */,/g'

$ vmstat 1 >> tmp.txt
$ cat tmp.txt | sed 's/  */,/g' | sed 's/^,//'

2. vmstat 輸出時間
$ vmstat 1 | awk '{print strftime("%H:%M:%S"), $0}'

3. vmstat [間隔]
第一行是目前為止的平均值
================================================================================
1-1. procs 區

1-1-1. r 列
執行和等待 cpu 時間片的程式數
如果長期大於 cpu 數, 說明 cpu 不足, 需要增加 cpu
如果大於系統中可用 CPU 個數的 4 倍, 則系統面臨著 CPU 短缺或 CPU 的速率過低, 有多數的程式在等待 CPU

1-1-2. b 列
在等待資源的程式數, 正在等待 I/O, 或記憶體交換等

1-1-3. r + b
r + b 相當於 uptime 的 load average, 如果長期高於 cpu 數, 說明 cpu 不足


1-2. cpu 區

1-2-1. us 列
使用者方式下所花費 CPU 時間的百分比
us 的值比較高時, 說明使用者程式消耗的 cpu 時間多, 但是如果長期大於 50, 需要考慮最佳化使用者的程式
us 的值較高 (上升) 時, r 列值也較高

1-2-2. sy 列
核心程式所花費的 cpu 時間的百分比

當 us + sy 的值接近 100 的時, 表示 CPU 正在接近滿負荷工作. 但 CPU 滿負荷工作並不能說明什麼, UNIX 總是試圖要 CPU 儘可能的繁忙, 使得任務的吞吐量最大化. 唯一能夠確定 CPU 瓶頸的還是 r 列值

1-2-3. wa 列
I/O 等待所佔用的CPU時間的百分比
wa 的參考值為 30, 如果 wa 超過 30, 說明對磁碟操作比較頻繁, I/O 等待嚴重, 這可能是磁碟大量隨機訪問造成的, 也可能磁碟或者磁碟訪問控制器的頻寬瓶頸造成的(主要是塊操作)
wa 的值較高 (上升) 時, b 列值也較高

1-2-4. id 列
cpu 處在空閒狀態的時間百分比

1-2-5. st 列
顯示採集間隔內發生的中斷數

1-2-6. in 列
某一時間間隔中觀測到的每秒裝置中斷數

1-2-7. cs 列
每秒產生的上下文切換次數, 如當 cs 比磁碟 I/O 和網路資訊包速率高得多, 應進行進一步調查


1-3. memory 區

1-3-1. swpd 列
切換到記憶體交換區的記憶體數量 (單位 kbyte)
如果 swpd 的值不為 0, 或者比較大 (> 100M), 只要 si so 的值長期為 0, 系統效能還是正常

1-3-2. free 列
當前的空閒頁面列表中記憶體數量 (單位 kbyte)

1-3-3. buff 列
buffer cache 的記憶體數量, 一般對塊裝置的讀寫才需要緩衝

1-3-4. cache 列
page cache的記憶體數量, 一般作為檔案系統的 cache
如果 cache 較大, 說明用到 cache 的檔案較多, 如果此時 I/O 中 bi 比較小, 說明檔案系統效率比較好


1-4. swap 區

1-4-1. si 列
由記憶體交換區進入記憶體的數量

1-4-2. so 列
由記憶體進入記憶體交換區的數量


1-5. I/O 區

1-5-1. bi 列
從塊裝置讀入到記憶體資料的總量 (讀磁碟, kbyte/s)
bi 列值高時, 讀操作是瓶頸 (記憶體瓶頸)

1-5-2. bo 列
從記憶體寫出到塊裝置資料的總量 (寫磁碟, kbyte/s)
bo 列值高時, 寫操作是瓶頸 (I/O瓶頸)

1-5-3 bi + bo
參考值為 1000, 如果超過 1000, 而且 wa 值較大, 應該考慮均衡磁碟負載, 可以結合 iostat 輸出來分析

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

相關文章