tidb通过jdbc写入数据超慢

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

麻烦补充上传一下下面相关监控内容:

  1. TiKV-Detail -> Raft IO
  2. TiKV-Detail -> Raft propose
  3. TiKV-Detail -> RocksDB KV
  4. Overview -> System Info

如果方便的话,可以导出所有监控给我们看下: 导出监控为 pdf 的方式: 1)使用 chrome 浏览器,安装“Full Page Screen Capture”插件: https://chrome.google.com/webstore/detail/full-page-screen-capture/fdpohaocaechififmbbbbbknoalclacl

2)展开grafana 监控的 “cluster-name-overview” 的所有 dashboard (先按 d 再按 E 可将所有 Rows 的 Panels 打开,需等待一段时间待页面加载完成)

3)使用插件导出 pdf

screencapture-192-168-100-39-3000-d-eDbRZpnWk-poitech-tidb-test-cluster-overview-2020-03-05-15_31_26.pdf (3.9 MB) screencapture-192-168-100-39-3000-d-RDVQiEzZz2-poitech-tidb-test-cluster-tikv-details-2020-03-05-15_32_28.pdf (4.7 MB)


从 磁盘监控上有看到 io 负载比较高的情况

目前插入数据的提交方式是自动提交还是一个事务包含多条插入语句的批量提交?


另外看集群延迟 99 Duration 达到1min了,可以看下慢日志中的情况

是jdbc批量写入 磁盘io也不是一直高啊 而且写入速度也不应该这么点啊 200多 怎么感觉耗时都是普遍偏高啊 要关掉binlog 么 还能优化么

Time: 2020-03-05T15:51:07.669713665+08:00

Txn_start_ts: 415077407703695365

User: root@192.168.100.41

Conn_ID: 541440

Query_time: 0.951111408

Parse_time: 0.0000185

Compile_time: 0.000030802

Prewrite_time: 0.016359707 Binlog_prewrite_time: 0.917660863 Commit_time: 0.030176404 Get_commit_ts_time: 0.000882538 Write_keys: 1001 Write_size: 150766 Prewrite_region: 1

Is_internal: false

Digest: 9505cacb7c710ed17125fcc6cb3669e8ddca6c8cd8af6a31f6b3cd64604c3098

Num_cop_tasks: 0

Prepared: false

Has_more_results: false

Succ: true

Prev_stmt: insert into poit_dev.prod_s_fact_data (ecode,collectime,type,version,equipment,metrictag,metricval,devname,pt) values (‘jianhui_test’,‘2020-02-27 20:11:20’,‘electric’,1.0,‘PM15_15_202’,‘IC’,0.0,‘jianhui_test_device2’,‘20200227’)

commit;

是开了 Binlog 么,看慢日志中提交时间耗时主要是在 Binlog prewrite 上,可以考虑关闭 Binlog

我关闭了binlog 但是还是不行 写入速度依旧只有上不去 刚发现有节点cpu 飙升 但是该节点也没有什么操作啊

Time: 2020-03-05T17:04:42.656021848+08:00
Txn_start_ts: 415078568116617218
User: root@192.168.100.41
Conn_ID: 62

Query_time: 0.678557449
Parse_time: 0.000090304
Compile_time: 0.000081604

Is_internal: false
Digest: eacfcab5fede92209c99d93fdb775f25d6be6c33fbd0608996402ee63613393d
Num_cop_tasks: 0
Prepared: false
Has_more_results: false
Succ: true
insert into poit_dev.prod_s_fact_data (ecode,collectime,type,version,equipment,metrictag,metricval,devname,pt) values (‘jianhui_test’,‘2020-02-29 05:44:24’,‘electric’,1.0,‘PM01_03_304’,‘Q’,640.0,‘jianhui_test_device2’,‘20200229’);

可以看下是不是有写入热点的问题

https://pingcap.com/docs-cn/dev/reference/best-practices/high-concurrency/#热点产生的实例

您好:

  1. 从您反馈的截图看,每个insert都是一样的value? 之前有过类似的使用相同的sql插入,由于热点问题导入慢
  2. 如果确实是insert语句values一样,请尝试使用不同的值,或者线上真实的数据导入,多谢

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