为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
- 【TiDB 版本】:v4.0.3
- 【问题描述】:写入数据量不大,但tiflash磁盘io很高。
硬件配置:
华为云ARM鲲鹏服务器
tiflash: 2台:32C64G 1.5TB SSD云盘
磁盘ext4系统,挂载参数:(rw,noatime,nodelalloc)
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
IO 占用较高的线程大部分属于 jbd2,可能是盘本身的 fsync 指标较差的表现,也可能 ext4 的 jbd2 日志系统性能问题。
建议评估
1、升级到 io 性能更好的磁盘如 local ssd,并测试 fsync 指标
为了获得更高的性能,目前版本建议磁盘 fsync iops 不低于 8k(云主机 nvme ssd 的标准),可以用如下 fio 命令测试
fio -direct=0 -fdatasync=1 -iodepth=4 -thread=4 -rw=write -ioengine=libaio -bs=4k -filename=./fio_test -size=20G -runtime=60 -group_reporting -name=write_test
2、将 ext4 更换为 xfs 文件系统,关注同样吞吐量下的 IO Util
tiflash 支持多盘部署,如果有多块盘,推荐把性能最好磁盘的挂载目录放在最前面,承载 raft log 的数据写入同步,参考 https://docs.pingcap.com/zh/tidb/stable/tiflash-configuration#多盘部署