tidb在使用导入数据过程中应用报 unable to commit against jdbc connection 错误

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

  • 【TiDB 版本】:3.0.5
  • 【问题描述】:
    tidb在使用dsg导入数据过程中应用软件报 unable to commit against jdbc connection 错误

tidb.log 报
[“tikv reports ServerIsBusy retry later”] [reason=“scheduler is busy”]
[region_cache.go:393] [“switch region peer to next due to send request fail”]
等大量错误

7min.rar (131.7 KB) tidb.log
7mkv.log (148.9 KB) kv.log

谢谢

从日志看是 scheduler is busy 导致的 tikv server is busy
可以根据 4.3.2 确认一下,应该是写入量比较大导致的

https://github.com/pingcap/tidb-map/blob/master/maps/diagnose-map.md#43-客户端报-server-is-busy-错误通过查看监控-grafana---tikv---errors-监控确认具体-busy-原因server-is-busy-是-tikv-自身的流控机制tikv-通过这种方式告知-tidbti-client-当前-tikv-的压力过大等会再尝试

你好,现在已经知道是dsg写入导致的scheduler is busy 报错,那么要如何改进才能提高kv的吞吐避免这个报错呢?现在硬盘的配置是nvme2.0、 32核cpu、256g内存 。

以下是kv的参数,都是默认值
scheduler-worker-pool-size = 8
scheduler-pending-write-threshold = “100MiB”
store-pool-size = 2
apply-pool-size= 2
raft-max-inflight-msgs = 256

谢谢

文档中有相关的的参数设置
[storage] scheduler-pending-write-threshold = “100MB”
可以先查看一下 TiKV 节点的 IO/内存/load/网络资源是否还有剩余,如果有剩余,可以将这个参数调整大一些再观察一下,如果系统资源已经达到瓶颈,可以考虑减小 dsg 导入数据的并发度,减小写入压力