insert批量插入遇到性能瓶颈

你好,请教一下
环境配置:
pd 3台 16c64g
tidb 3台 16c64g
tikv 3台 16c64g
监控 1台16c64g
我用代码压测一张表的写入性能
表结构如下:
CREATE TABLE XXX (
id bigint NOT NULL AUTO_INCREMENT,
caller_service_id int(11) NOT NULL COMMENT ‘调用方服务id’,
caller_endpoint_id int(11) NOT NULL COMMENT ‘调用发起接口id’,
callee_service_id int(11) NOT NULL COMMENT ‘被调用方服务id’,
callee_endpoint_id int(11) NOT NULL COMMENT ‘被调用方接口id’,
qps float NOT NULL COMMENT ‘调用qps’,
rt float NOT NULL COMMENT ‘调用平均rt’,
error_count int(11) NOT NULL COMMENT ‘错误数’,
metric_time timestamp NOT NULL COMMENT ‘数据时间’,
gmt_create timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
gmt_modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘最后修改时间’,
type tinyint(4) NOT NULL DEFAULT ‘0’ COMMENT ‘0:http\ 1:dubbo’,
PRIMARY KEY (id),
KEY metric_time_idx (metric_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT=‘rpc调用qps,平均rt,错误数’;
假设insert values的一次插入量为batch_size,
不管我开启64,128,256个线程压测,每秒插入的数据量batch_size * tps 始终在10W左右。
并且扩展tikv或者tidb也没效果,目前不太清楚问题出在哪里。

另外我的表主键做了打散,没有热点region的情况。

  1. 请问您压测指标使用什么来决定呢? tps, qps ? 希望达到多少?
  2. 麻烦上传下 over-view , tidb, detail-tikv 的监控,多谢。

(1)、chrome 安装这个插件https://chrome.google.com/webstore/detail/full-page-screen-capture/fdpohaocaechififmbbbbbknoalclacl

(2)、鼠标焦点置于 Dashboard 上,按 ?可显示所有快捷键,先按 d 再按 E 可将所有 Rows 的 Panels 打开,需等待一段时间待页面加载完成。

(3)、使用这个 full-page-screen-capture 插件进行截屏保存

1.我希望插入的性能能够满足tps*batch_size>=20w每秒的插入性能
2.图片无法上传。
3.能否提供一下解决思路,调参太多,没生效。
4.能否加微信,我传图片

如果不想上传图片,可以参考 TiDB 调优辅助神器 TiDB Performance Map 即将上线!欢迎试用反馈 排查下,多谢。

抱歉不是不想上传,是上传附件总是失败。我截图给你看
over_view

tidb


tikv_detail




如果加载很慢,麻烦下载看下。

  1. 查看监控,tidb 侧的duration 为 4s ,detail-tikv侧为 1s,主要在 tidb-server
  2. 查看tidb-server 主要消耗在 execution duraiton
  3. 我们再分析下

执行慢是因为 distsql duration 比较大,kv backoff 出现了一些 regionMiss 和清锁请求(插入时有其他业务吗?)的错误,因此会有导致 PD 端的请求变化,甚至影响到了 get tso 的延迟

请求压测程序是均匀打在 3 台 TiDB 上的吗?既然主键被打散了,这里就不多说了。是单纯的插入嘛?看到有些 reslove lock 的请求,是不是混有其他业务?

目前就是我自己测试的,是均匀打散到3台tidb机器,没有别的业务,就我自己在用。128并发,每个并发循环1000次,每次一条insert values128个。

您好,其他同事已经和您联系暂时不在帖子跟了, 多谢。

谢谢你,辛苦了

:handshake: