EXT4与XFS文件系统对I/O的影响

背景说明

最近一直在讨论关于MySQL的优化问题,谈论到了关于文件系统的话题,由于历史原因,线上机器的部署虽然使用的是centos7,但是文件系统并没有使用默认的xfs,而是使用的ext4,原因是ext4相对于xfs更稳定一些,所以当时选择了ext4。在决定是否需要切回到xfs之前,先做了两者的比较。
说明:不做压测,只做数据结果对比,观察EXT4和XFS文件系统对文件I/O操作和MySQL场景下的性能表现差异。

文件系统读写逻辑和流程

  1. 文件系统读操作
    在这里插入图片描述
  2. 文件系统写操作
    在这里插入图片描述

环境准备

OS版本:centos7.6
kernel版本:3.10.0-957.el7.x86_64
磁盘:NVMe SSD U.2 3.2T
mount参数:defaults
MySQL版本:5.7.29
工具:sysbench 1.1.0

测试过程

说明:全部测试只采用sysbench工具,测试数据盘NVMe SSD,挂载目录/ssd,挂载选项默认defaults,未对挂载参数做优化(atime,barrier),结果影响不大。

1、格式化ext4,并挂载

mkfs.ext4 /dev/nvme0n1
mount /dev/nvme0n1 /ssd

2、测试文件I/O,分别测试顺序读,顺序写,随机读,随机写和随机读写,测试文件块大小为4k,16k,64k,128k和512k,每种场景测试10分钟,测试过程中注意清除缓存,记录数据,并观察CPU和磁盘利用率。

sysbench fileio --file-num=1 --file-total-size=500G --file-block-size=4k --file-test-mode=seqrd --file-io-mode=sync --file-extra-flags=direct
sysbench fileio --file-num=1 --file-total-size=500G --file-block-size=4k --file-test-mode=seqwr --file-io-mode=sync --file-extra-flags=direct
sysbench fileio --file-num=1 --file-total-size=500G --file-block-size=4k --file-test-mode=rndrd --file-io-mode=sync --file-extra-flags=direct
sysbench fileio --file-num=1 --file-total-size=500G --file-block-size=4k --file-test-mode=rndwr --file-io-mode=sync --file-extra-flags=direct
sysbench fileio --file-num=1 --file-total-size=500G --file-block-size=4k --file-test-mode=rndrw --file-io-mode=sync --file-extra-flags=direct

3、测试数据库MySQL的查询,插入,更新和读写操作,测试并发数12、24、36、48、60,测试数据库大小100000记录,每种场景测试10分钟,测试过程中注意清除缓存,记录数据,并观察CPU和磁盘利用率。

sysbench /tmp/test/sysbench-master/src/lua/oltp_point_select.lua --tables=1 --table_size=100000  --threads=12
sysbench /tmp/test/sysbench-master/src/lua/oltp_insert.lua --tables=1 --table_size=100000 --threads=12
sysbench /tmp/test/sysbench-master/src/lua/oltp_update_index.lua --tables=1 --table_size=100000--threads=12
sysbench /tmp/test/sysbench-master/src/lua/oltp_read_write.lua --tables=1 --table_size=100000 --threads=12

4、重新格式化xfs,并挂载

mkfs.xfs /dev/nvme0n1
mount /dev/nvme0n1 /ssd

5、重复2和3

测试结果

文件I/O测试
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MySQL场景测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试结论

1、ext4和xfs没有孰强孰弱之分,性能几乎一致
2、在数据库场景下,读有3%左右的提升,但是在写方面没有明显优势
3、xfs相比ext4而言,磁盘io利用率低。文件I/O时CPU利用率xfs要高一些,数据库场景下CPU利用率ext4要高一些
4、综上,没有做替换的必要

参考文档

https://github.com/kernel-z/filesystem
https://github.com/akopytov/sysbench

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值