Linux 磁盘性能测试工具

公司的 MySQL io性能遇到了瓶颈, MySQL 层面的优化基本已经都做完了, 而应用层面的优化又会过于繁琐与复杂。 于是我们最初的结论是最简单的方法就是上 SSD。后来询问了豆瓣flex关于SSD的经验, 发现SSD还不是那么成熟,出现问题的情况还是比较多,而我们又没有这方面的经验, 所以就把SSD这个方案给搁置了。

豆瓣flex给出豆瓣这方面的经验是:用15000转的硬盘做RAID 10。使用RAID卡的 缓存以后,性能相对于直接使用硬盘有极大的提升。而且RAID的技术已经非常的成熟,这个方案看起来是比较靠谱的。

我们的机器是 R710,默认自带的RAID卡性能非常弱,只能做 RAID 0或 RAID 1。flex推荐的是 H700,因为 R710 的背板线与 H700不兼容,所以连线也要一起换掉。

做完RAID以后,第一件事情就是要测试下磁盘的性能。常用的工具有 hdparm 和 dd,但是这两个测试的都是顺序读写,而实际的使用情景很大一部分都是随机读写。flex推荐了一个工具 fio,一个专门用来测试硬盘io的工具。

有一篇文章很好的介绍了它的使用方法: http://www.linux.com/learn/tutorials/442451-inspecting-disk-io-performance-with-fio/

我只用了它最基本的测试随机读的功能。在RAID1 10上测试的结果是平均读取的速度到了 80M/s。而我在现有的服务器上面(未做RAID,7500转硬盘),这个数值只有 1M/s 左右。没做15000转硬盘的性能测试,所以不是很清楚 RAID 10 得到的性能提升有多少。