磁盘IO一直很高

【 TiDB 使用环境】生产环境
【 TiDB 版本】v4.0.12
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】

目前kv节点io一直占用很大。如第一张图,然后对应各台kv节点,就是第二张图这样。io占用是有高有低。
kv节点总数100+,但是io一直这样的就是10多个,按官方手册排查也没有明确看到热点读热点写
业务上的表现是写入慢,读没有反馈问题。
大表都没有自增主键,也没有分片。感觉还是大表集中写,然后数据分散不均导致的。有遇到过同样问题的大佬吗?

【资源配置】
【附件:截图/日志/监控】

1、检查下磁盘使用寿命情况,尤其是SSD
2、关注下


看下是否有TIKV duration值比较高
3、检查下磁盘具体的iops 或者吞吐情况
4、看看集群整体得QPS 情况

tikv duration很高

看看tikv-details->rocksdb-kv
里面有compact-flow, write-flow,read-flow
看看分别是多少?
还有个pending_compact_bytes
这些反映了磁盘的读写有多少。
然后还有write duration之类的





这不就清楚了,Scan比较高。

节点部署跟官方手册有差异,文件系统是xfs,挂载方式也没加nodelalloc,noatime,不知道这两项对IO影响大吗?

磁盘读写速度怎么样

看你这是读引起的,可以分析下几个TIDB-SERVER的那个点慢日志情况 ,及TIKV的慢日志,分析下慢日志和对应的REGION ,基本能够确定是哪个引起的

如果 TiKV 的磁盘 I/O 一直很高,可能是由于以下原因导致的:

  1. 热点读写:如果某个 TiKV 节点上的数据被频繁读写,就会导致该节点的磁盘 I/O 高。您可以使用 pd-ctl 工具来查看热点信息,具体命令为 pd-ctl hot readpd-ctl hot write。如果发现某个 Region 的读写热点比较高,可以考虑对该 Region 进行拆分或者调整副本分布,以减轻该节点的负载。
  2. 大表写入:如果某个 TiKV 节点上的数据写入比较频繁,就会导致该节点的磁盘 I/O 高。您可以使用 pd-ctl 工具来查看 TiKV 节点的写入流量,具体命令为 pd-ctl store stats <store_id>。如果发现某个 TiKV 节点的写入流量比较高,可以考虑对该节点进行扩容,或者对数据进行分片,以减轻该节点的负载。
  3. 磁盘空间不足:如果 TiKV 节点的磁盘空间不足,就会导致磁盘 I/O 高。您可以使用 df -h 命令来查看磁盘空间使用情况。如果发现某个 TiKV 节点的磁盘空间不足,可以考虑对该节点进行扩容,或者清理磁盘上的无用数据。
  4. 磁盘性能不足:如果 TiKV 节点的磁盘性能不足,就会导致磁盘 I/O 高。您可以使用 iostat 命令来查看磁盘的 I/O 性能。如果发现某个 TiKV 节点的磁盘性能不足,可以考虑对该节点进行升级,或者更换更快的磁盘。
1 个赞

感谢大家帮助,问题已定位。
由于上游Flink使用问题导致的,目前采用的是流处理入库,修改批处理后,磁盘IO已降低比较多,写入性能提高百倍以上。
下一步需要对Flink的使用进行优化处理。如果直接使用流处理,好像TiDB端磁盘IO压力还是太大了

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。