tidb写入慢,insert超过900ms

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

  • 【TiDB 版本】:4.0
  • 【问题描述】:insert慢有时候 可以达到900多ms**

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

你好,麻烦上传下 insert 慢的 slow query 日志,并参考(https://asktug.com/t/topic/37248)导出 TiDB 和 TiKV-Details 的 Grafana 监控快照。

tidb-TiDB_2020-12-22T05_40_35.602Z.rar (319.1 KB) tidb-TiKV-Details_2020-12-22T05_47_06.023Z.rar (1.3 MB)

慢查询里面就是一些简单insert语句 ,有一些敏感信息

很多类似基于ID更新也很慢
update xxx where id=4981638;

慢查询里面有没有打印 Prewrite 或 Commit 的耗时信息?

从监控上看,8:28 的 insert 延迟上涨到 900ms+


出现在 10.10.28.200 这个 tidb server 上

但是这个时间 99 KV Request Duration 看不到明显变化

也可以先将 KV Request Duration 的精度从 99 调大,比如 999,观察是否是请求 KV 比较慢导致

把时间调到 12-22 08:28:00,看看 Prewrite or Comimt 是不是慢了

Cop 请求是访问 TiKV Coprocessor 读请求延迟,和 insert 没有关系

遇到和你差不多情况,读写明显比mysql慢,操作相同的SQL :sweat_smile:

这个是悲观锁模式导致的?

是什么类型的 insert,update 和 insert on duplicate 可能有悲观锁等锁

就是普通的insert values

从监控上定性分析,12-22 08:28:00 这个时间除了 PessimisticLock 比较高,其他请求都没有抖动,可以具体再看看我开始提到的慢查询日志。

上面截图最上面那个 sql 点进去,看看具体的呢

因为SQL里面涉及到敏感数据,


截取部分,就是一个简单的nsert

执行时间的具体耗时看下

从目前给出的监控和截图,暂时看不出 insert 哪里耗时较高,想了解下

  1. insert 延迟抖动出现频率如何
  2. 抖动是发生在1个 tidb server 上面还是所有的 tidb server 都有
  3. 能否导出 prometheus 监控数据以便进一步查看更细的监控粒度,可以参考 【SOP 系列 02】 Prometheus 等监控组件迁移 导出一段时间内的监控数据