tiflash磁盘IO很高

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.3
  • 【问题描述】:写入数据量不大,但tiflash磁盘io很高。
    硬件配置:
    华为云ARM鲲鹏服务器
    tiflash: 2台:32C64G 1.5TB SSD云盘
    磁盘ext4系统,挂载参数:(rw,noatime,nodelalloc)
    %E9%AB%98io-1
    若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

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#多盘部署