磁盘读取约5MB,写入约1MB。
?
iostat -d -x -k 1
Device: ? ?rrqm/s wrqm/s ? r/s ? w/s ?rsec/s ?wsec/s ? ?rkB/s ? ?wkB/s avgrq-sz avgqu-sz ? await ?svctm ?%util
sda ? ? ? ? ?1.56 ?28.31 ?7.84 31.50 ? 43.65 ? ?3.16 ? ?21.82 ? ? 1.58 ? ? 1.19 ? ? 0.03 ? ?0.80 ? 2.61 ?10.29
sda ? ? ? ? ?1.98 ?24.75 419.80 ?6.93 13465.35 ?253.47 ?6732.67 ? 126.73 ? ?32.15 ? ? 2.00 ? ?4.70 ? 2.00 ?85.25
sda ? ? ? ? ?3.06 ?41.84 444.90 54.08 14204.08 2048.98 ?7102.04 ?1024.49 ? ?32.57 ? ? 2.10 ? ?4.21 ? 1.85 ?92.24
?
可以看到磁盘的平均响应时间<5ms,磁盘使用率>80。磁盘响应正常,但是已经很繁忙了。
?
4. 磁盘IO优化
?
磁盘IO在优化之前,首先要弄清楚系统的IO情况,是随机IO多,还是顺序IO多,是大文件IO多,还是小文件IO多(小文件IO一般也就是随机IO)。比如随机IO多,那么就可以通过加磁盘使用RAID技术来优化,如果是顺序IO遇到瓶颈,一般可能是磁盘驱动的带宽有瓶颈,就可以换一个更快的disk controller。搞清楚是磁盘有瓶颈,还是磁盘驱动的带宽有瓶颈。
?
因为磁盘IO的操作分成了4个层面,所以IO的优化也可以从这四个方面入手:
?
1)正对mysql系统的调优,还需要选择正确的IO调度算法,如果是SSD,选择NOOP调度算法,如果是磁盘,那么选择deadline调度算法;
?
2)针对mysql还显然可以通过maser-slave来读写分离进行磁盘IO优化。
?
3)另外增大内存,可以对更多的磁盘文件进行缓存,也能减轻IO压力。
?
4)还有文件系统的挂载选项 noatime, nodiratime也能减轻IO压力,另外选择正确的文件系统也能提高磁盘的tps. mysql
数据库推荐使用XFS文件系统。
?
注:上面显示的磁盘IO的数据,很多都是0,这是因为数据来自于
虚拟机中的Linux
系统。