此前听说过某公司把xfs都替换成了ext4,感觉有些诧异,才有了本次测试。此次测试本意是想对比下xfs和ext4的差异,看看xfs是否还一如既往的靠谱。在测试的过程中,我还顺带测试了下MySQL 5.7.7和Percona-5.6.23的对比。
最终的建议写在前面:
1、 可以继续放心大胆的采用xfs文件系统 ;
2、使用xfs文件系统时,无需刻意加一些优化参数,默认的(defaults,noatime,nodiratime,nobarrier)就够了;
3、可以继续优先选择Percona分支版本,除了thread pool,它还有其他很多优秀的特性(MySQL官方暂无计划把thread pool功能移植到社区版);
4、 MySQL 5.7版本同样非常值得期待,但更希望加入Percona/MariaDB已经采用的、成熟的优秀补丁(thread pool、slowlog、锁/mutex拆分等);
5、在一些高IOPS设备服务器上跑MySQL时,建议采用
多实例模式
,不建议只运行一个实例,尽可能发挥服务器的最大性能。
来看看下面的测试结果:
2、再来看下在做fio测试时,I/O设备的iowait以及%util值,还有PCIe-SSD卡监控到的写延迟数据:
小结:
1、 在%util基本相差不大的情况下, xfs相对ext4拥有绝对优势以及更好的IOPS提升空间 ;
2、 xfs没必要刻意进行优化,默认的参数就足够了。
欢迎各位同行们也分享下您在PCIe-SSD设备下相关测试结果,相互借鉴下。
上面图表中几个不同颜色分别表示含义:
1) 蓝色 :表示经过优化的xfs
格式化时的参数:
mkfs.xfs -d agcount=256 -l size=128m,lazy-count=1,version=2 /dev/diska1
mount时的参数defaults,noatime,nodiratime,nobarrier,discard,allocsize=256m,logbufs=8,attr2,logbsize=256k
2) 灰色 :表示默认的xfs
格式化时的参数:
mkfs.xfs -f -L /data /dev/diska1
mount时的参数defaults,noatime,nodiratime,nobarrier
2) 黄色 :表示ext4。
格式化时的参数:
mkfs.ext4 /dev/diska2
mount时的参数:defaults,noatime,nodiratime,nobarrier
顺便还可以看下CPIe卡提供的读写延迟监控数据对比(xfs有明显的读写低延迟特性):
延伸阅读:
1、
MySQL 5.6.17/Percona5.6.16/MariaDB 10.0.11/OneSQL 5.6.16 TpmC测试
2、 tpcc-mysql安装、使用、结果解读
3、 SAS vs SSD各种模式下MySQL TPCC OLTP对比测试结果
4、 XFS设计