压测读写查询非常慢

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】5.2
【复现路径】热点大表不停的写入数据,并发查询
【遇到的问题:问题现象及影响】
100个线程,每个线程128个SQL,查询速度越来越慢,之前秒级别的SQL变成几分钟,排队

【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面

【附件:截图/日志/监控】


执行计划,慢在KV

点进去看看慢在哪?

100个并发线程 ,8个CPU pd/tidb共用,资源不够啊 ,你看那时间的监控

tidb 8cpu 你跑 100并发,资源少了呢。看下监控的信息

要是热点插入的话,那你要改下,把数据打散呢


慢在KV

看下kv的监控,磁盘读写 io是不是打满了

TiDB Dashboard中的流量可视化 可以看到热点表。
1、ALTER TABLE t SHARD_ROW_ID_BITS = 4; 方式打散
SHARD_ROW_ID_BITS = 4 表示 16 个分片
SHARD_ROW_ID_BITS = 6 表示 64 个分片
SHARD_ROW_ID_BITS = 0 表示默认值 1 个分片
2、 AUTO_INCREMENT 改为 AUTO_RANDOM 方式打散

写的话就没有热点了

读的高,写的正常

fk-pro-TiKV-Details-1693970578251.json (2.1 MB)

有主键的,不适合这个

你看压测时间段 tikv detail → thread CPU 、 TiDB → server → CPU usage

tikv的cpu满了吧

没有满


你低并发跑下看 单个SQL速度会不会越来越慢的厉害. 另外看下 show config where name like ‘%use-unified-pool%’

tikv 192.168.2.16:20161 readpool.coprocessor.use-unified-pool true
tikv 192.168.2.16:20161 readpool.storage.use-unified-pool false
tikv 192.168.2.15:20161 readpool.coprocessor.use-unified-pool true
tikv 192.168.2.15:20161 readpool.storage.use-unified-pool false
tikv 192.168.2.14:20161 readpool.coprocessor.use-unified-pool true
tikv 192.168.2.14:20161 readpool.storage.use-unified-pool false

false的建议都改成true ,统一使用unified_pool

UnifyReadPool 负责处理所有的读取请求。默认配置(readpool.unified.max-thread-count )大小为机器 CPU 数的 80% (如机器为 16 核,则默认线程池大小为 12),看你的图上unified read pool cpu使用峰值都达到1300%了,基本就是用到极致了

改了还是一样,没上去

低并发测了吗