系统IO优化相关思路

-----------------------

最近原搭建的vcloud+vsphere5.1+openfiler的测试环境出现I/O瓶颈。

具体环境如下:

hostX4---单通道8GHBAX4-------------双通道8GHBAX2----openfilerX1  

VM数量 60台

在openfiler端使用vmstat命令查看

 

 

在host段利用iostat工具查看

 

系统IO优化相关思路_第1张图片

#iostat,这个需要先安装sysstat ,即yum -y install sysstat 

 

系统IO优化相关思路_第2张图片

 ----------------------相关数值说明

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多台