標籤:linux效能監控工具iostat詳解
作為一個營運工程師來說掌握一些系統的分析工具是必須的。
命令工具:iostat
那麼它能做什麼呢?通過man page可以看出來
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6B/82/wKioL1UvfsKgbz1aAADSA6zbhYA838.jpg" title="1.png" alt="wKioL1UvfsKgbz1aAADSA6zbhYA838.jpg" />
【一】:統計cpu的狀態
【二】:統計裝置或者分區的I/O資訊
以下對常用參數做簡單的說明
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6B/82/wKioL1UvfuLTUwYxAAM9W4b14l8085.jpg" title="2.png" alt="wKioL1UvfuLTUwYxAAM9W4b14l8085.jpg" />
-c:顯示cpu的統計資訊,不能和-d同時使用
-d:輸出裝置和分區的I/O資訊,不能與-c同時使用
-h:顯示可讀性更好的NFS目錄統計資訊
-k:用“kbytes/s”來代替“塊/s”顯示統計資訊。要求kernel>=2.4
-m:用“mbytes/s”來代替“塊/s”顯示統計資訊。要求kernel>=2.4
-t:顯示NFS目錄統計資訊。Kernel>=2.6.17 && 不能與-x同時使用
-x:顯示擴充統計資訊。不能與-p和-n同時使用,kernel>=2.5因為它需要/proc/diskstats或者載入sysfs擷取統計資訊
-p:顯示系統使用的塊裝置和它們的分區統計資訊。不能與-x同時使用,如果指定了裝置名稱,將顯示指定裝置和它的所有分區的統計,如果使用了關鍵字ALL,將顯示系統所有塊裝置和分區統計資訊。
count:重新整理次數
interval:重新整理的時間間隔
ok For examples
統計cpu使用方式,輸出三次且每一秒重新整理一次
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6B/82/wKioL1UvfxHQJfWOAADijwMfmKk581.jpg" title="3.png" alt="wKioL1UvfxHQJfWOAADijwMfmKk581.jpg" />
%system:系統進程佔用cpu的百分比
%iowait:系統輸出資料至磁碟時閒置cpu時間百分比,也叫iowait等待
%idle:系統沒有任何資料輸出至磁碟的cpu時間百分比,即當前的cpu空閑率。
有此可見我的server 的cpu是很夠用的
統計磁碟使用方式,輸出三次且每隔兩秒重新整理一次
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6B/86/wKiom1Uvfe3gzPK4AAFMb7VEQN4138.jpg" title="4.png" alt="wKiom1Uvfe3gzPK4AAFMb7VEQN4138.jpg" />
device:即裝置名稱
tps:裝置每秒的傳輸次數,一個I/O請求表示一個傳輸。多個邏輯請求可能會合并為“一次I/O請求”,“一次傳輸”請求的大小是未知數。
BLK_read/s:每秒從裝置讀取資料量
BLK_writn/s:每秒寫入裝置的資料量
BLK_read:讀取的總資料量
BLK_wrtn:寫入的總資料量
最常用的分析
Iostat –d –k 1 10
Iostat –d –m 3
Iostat –d –x –k 1 10
執行個體分析如下:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/86/wKiom1UvfiywLNe2AAKhQbzo7CY142.jpg" title="5.png" alt="wKiom1UvfiywLNe2AAKhQbzo7CY142.jpg" />
上述中,我只分析xvdd這個裝置(dev)
可以看到,磁碟每3秒傳輸次數平均值約為10.5左右,每3秒磁碟讀取約為62kb,寫入約為:110kb,這個值並不是一個準確值,why ? do you know why?因為時間段的問題
最好的測試就是多次求平均值或者使用一次的方式求當前值
如下所示:
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/6B/86/wKiom1Uvfk2jn_KzAAC-70HOJzU414.jpg" title="6.png" alt="wKiom1Uvfk2jn_KzAAC-70HOJzU414.jpg" />
那麼對於iostat還有很多的詳細擴充,通過-x選項來擷取詳細
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/6B/86/wKiom1UvfuHiIC7XAAFHAhXTLuE741.jpg" title="8.png" alt="wKiom1UvfuHiIC7XAAFHAhXTLuE741.jpg" />
這個就非常詳細了,比如有每秒讀/寫扇區數,I/O隊列長度,I/O操作的時間等等
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/6B/82/wKioL1Uvf8OjyKCPAAO0LVKcMO0842.jpg" title="7.png" alt="wKioL1Uvf8OjyKCPAAO0LVKcMO0842.jpg" />
關於iostat的其他參數的用法請man或者google
##########################################################################################
【後記】
為何iostat是這樣輸出的呢?那麼iostat命令到底對linux的效能測試有多大的作用呢?其實這些我也不懂,此時你需要知道iostat是如何設計的,看原始碼
主要涉及的內容大概就4個都是和kernel相關的
/proc/目錄下的diskstats,partitions,stat,cpuinfo
此處略去,需要請google或wget
本文出自 “Hello_World” 部落格,請務必保留此出處http://coward.blog.51cto.com/7599475/1633520
Linux效能監控工具Iostat詳解