利用vmstat命令監控Linux資源使用並將數據通過圖形化方式顯示

利用vmstat命令監控Linux資源並將數據通過圖形化方式顯示

一、vmstat基礎知識

Vmstat可以實時查看系統資源使用情況,如內存、CPU、IO等,如下圖所示:

下面詳細介紹具體的含義:
procs
r 列表示運行和等待cpu時間片的進程數,如果長期大於1,說明cpu不足,需要增加cpu。
b 列表示在等待資源的進程數,比如正在等待I/O、或者內存交換等。
cpu 表示cpu的使其用狀態
us 列顯示了用戶方式下所花費 CPU 時間的百分比。us的值比較高時,說明用戶進程消耗的cpu時間多,但是如果長期大於50%,需要考慮優化用戶的程序。
sy 列顯示了內核進程所花費的cpu時間的百分比。這裏us + sy的參考值爲80%,如果us+sy 大於 80%說明可能存在CPU不足。
wa 列顯示了IO等待所佔用的CPU時間的百分比。這裏wa的參考值爲30%,如果wa超過30%,說明IO等待嚴重,這可能是磁盤大量隨機訪問造成的,也可能磁盤或者磁盤訪問控制器的帶寬瓶頸造成的(主要是塊操作)。 
id 列顯示了cpu處在空閒狀態的時間百分比 
system 顯示採集間隔內發生的中斷數
in 列表示在某一時間間隔中觀測到的每秒設備中斷數。
cs列表示每秒產生的上下文切換次數,如當 cs 比磁盤 I/O 和網絡信息包速率高得多,都應進行進一步調查。
memory
swpd 切換到內存交換區的內存數量(k表示)。如果swpd的值不爲0,或者比較大,比如超過了100m,只要si、so的值長期爲0,系統性能還是正常 
free 當前的空閒頁面列表中內存數量(k表示) 
buff 作爲buffer cache的內存數量,一般對塊設備的讀寫才需要緩衝。 
cache: 作爲page cache的內存數量,一般作爲文件系統的cache,如果cache較大,說明用到cache的文件較多,如果此時IO中bi比較小,說明文件系統效率比較好。 
swap
si 由內存進入內存交換區數量。
so由內存交換區進入內存數量。 
IO
bi 從塊設備讀入數據的總量(讀磁盤)(每秒kb)。
bo 塊設備寫入數據的總量(寫磁盤)(每秒kb)
這裏我們設置的bi+bo參考值爲1000,如果超過1000,而且wa值較大應該考慮均衡磁盤負載,可以結合iostat輸出來分析。

二、vmstat使用方法

一般最常用就是vmstat  T表示每隔一段時間採集一次數據,T單位爲秒。

如果想每隔一段時間採集一次,並想固定採集次數,可以使用vmstat T count其中count就表示採集的次數。

更常用的的是將採集的文件輸出到文件中,如將每5秒採集一次,共採集100次的數據輸出到文件resource.txt文件中,就用vmstat 5 100 > resource.txt即可。

三、vmstat輸出數據文件處理

Vmstat命令生成的數據文件中,每列數據都是以空格分開,如下圖所示:

         爲了便於將這些文件在Excel表格中顯示,需要將數據中的空格替換爲其它字符後,再進行處理。

         本文中將空格替換爲逗號,將vmstat生成的文件用vi編輯器打開,如下圖所示:

輸入:1,$s/ /+/,/g,回車,即可將空格替換爲逗號,如圖所示:

將替換後的文件保存,並下載下來,另存爲.csv文件,即可在Excel中打開進行處理了。

下圖是通過Excel處理後生成的CPU使用曲線圖。

 

其實也可以將vmstat生成的數據文件,直接在Excel中打開,打開時選擇分隔符號爲“空格”,如下圖所示,同樣方法在Excel處理。

                                                            圖1 選擇分隔符號

                                                  圖2 選擇分隔符號爲空格

【注】推薦使用第二種方法,簡單方便,O(∩_∩)O~。

 

【數據處理小知識】vmstat監控輸出到文件中的數據,每20行後,有新的標題行,在導入到Excel中後,處理時需要刪除這些標題行,可以利用sed命令刪除。

處理前:

處理後:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章