系統IO優化相關思路
-----------------------
最近原搭建的vcloud+vsphere5.1+openfiler的測試環境出現I/O瓶頸。
具體環境如下:
hostX4---單通道8GHBAX4------<FC鏈路>-------雙通道8GHBAX2----openfilerX1
VM數量 60臺
在openfiler端使用vmstat命令查看
在host段利用iostat工具查看
#iostat,這個需要先安裝sysstat ,即yum -y install sysstat
----------------------相關數值說明
I/O 操作: 總IO(io)/s = r/s(讀) +w/s(寫)
平均等待時間 = 單個I/O 服務時間 * ( 1 + 2 + ... + 請求總數-1) / 請求總數
rrqm/s: 每秒進行 merge 的讀操作數目。即 delta(rmerge)/s
wrqm/s: 每秒進行 merge 的寫操作數目。即 delta(wmerge)/s
r/s: 每秒完成的讀 I/O 設備次數。即 delta(rio)/s
w/s: 每秒完成的寫 I/O 設備次數。即 delta(wio)/s
rsec/s: 每秒讀扇區數。即 delta(rsect)/s
wsec/s: 每秒寫扇區數。即 delta(wsect)/s
rkB/s: 每秒讀K字節數。是 rsect/s 的一半,因爲每扇區大小爲512字節。(需要計算)
wkB/s: 每秒寫K字節數。是 wsect/s 的一半。(需要計算)
avgrq-sz: 平均每次設備I/O操作的數據 大小 (扇區)。delta(rsect+wsect)/delta(rio+wio)
avgqu-sz: 平均I/O隊列長度。即 delta(aveq)/s/1000 (因爲aveq的單位爲毫秒)。
await: 平均每次設備I/O操作的等待時間 (毫秒)。即 delta(ruse+wuse)/delta(rio+wio)
svctm: 平均每次設備I/O操作的服務 時間 (毫秒)。即 delta(use)/delta(rio+wio)
%util: 一秒中有百分之多少的時間用於 I/O 操作,或者說一秒中有多少時間 I/O 隊列是非空的。即 delta(use)/s/1000 (因爲use的單位爲毫秒)
如果%util 接近100%,說明產生的I/O請求太多,I/O系統 已經滿負荷,該磁盤
可能存在瓶頸;idle 小於70% IO壓力就較大了,一般讀取速度有較多的wait。
同時可以結合vmstat 查看查看b參數 (等待資源的進程數 )和wa參數(IO等待所佔用的CPU時間的百分比,高過30%時IO壓力高 )
-----------------------------
結合其他工具分析,問題出在openfiler的IO處理性能上,磁盤事件等待時間遠大於磁盤處理時間。openfiler是用DELLR510搭建的用的SATA2TB做的raid5,本身磁盤性能較低,在多臺host上多臺vm同時讀取數據時候會出現處理排隊過長。。。。這個時候測試硬盤速度是正常的
後續因爲測試環境不能申請高級存儲設備,決定拆掉1拖4的存儲佈局,改成利用多臺openfiler組ipsan線路做分散式存儲配合vm的磁盤DRS
HOST-------<多條IP-san鏈路>----磁盤DRS池------openfiler多臺