vmstat命令
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 輸出來分析
$ 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 效能分析命令:vmstat
- Linux vmstat命令基本使用Linux
- Linux 命令使用筆記【vmstat】Linux筆記
- stat 命令家族(1)- 詳解 vmstat
- 使用 vmstat 命令確定記憶體使用情況記憶體
- vmstat的使用
- Linux裡面vmstat命令作用是什麼?Linux運維課程Linux運維
- [20190402]跟蹤vmstat.txt
- linux系統使用vmstat命令顯示虛擬記憶體狀態的方法教程Linux記憶體
- vmstat檢視分析Linux系統負載效能Linux負載
- Linux命令之rz命令與sz命令Linux
- git命令列命令Git命令列
- windows命令列命令Windows命令列
- cmd 命令列 命令命令列
- 【Linux命令】grep命令Linux
- Linux命令—–CP命令Linux
- Linux系統中的管道命令、grep命令、sed命令和awk命令Linux
- Linux命令篇 - tar 命令Linux
- Linux命令之lldptool命令Linux
- Linux命令篇 - grep 命令Linux
- Linux命令篇 - sed 命令Linux
- java命令--jmap命令使用Java
- Linux命令(1)——xargs命令Linux
- Linux命令篇 - nc(ncat) 命令Linux
- linux每日命令(5):mkdir命令Linux
- linux-mysql命令,tomcat命令LinuxMySqlTomcat
- linux每日命令(2):cd命令Linux
- linux每日命令(18):whereis命令Linux
- linux每日命令(12):nl命令Linux
- linux每日命令(10):touch命令Linux
- linux每日命令(11):cat命令Linux
- linux每日命令(38):iostat命令LinuxiOS
- linux每日命令(39):lsof命令Linux
- linux每日命令(32):gzip命令Linux
- linux每日命令(35):grep命令Linux
- linux每日命令(36):wc命令Linux
- linux每日命令(37):top命令Linux
- linux每日命令(29):chown命令Linux
- Linux命令總結--mkdir命令Linux