TiDB共六台
并发低(500并发)时avg延迟到20ms
并发高(3000并发)后avg延迟到100ms
如下是insert语句
insert into `table` values ( ... ) on duplicate key update `a` = values ( `a` ) , `b` = values ( `b` ) , `c` = values ( `c` )
我应该查看哪些指标来排查此问题
TiDB共六台
并发低(500并发)时avg延迟到20ms
并发高(3000并发)后avg延迟到100ms
如下是insert语句
insert into `table` values ( ... ) on duplicate key update `a` = values ( `a` ) , `b` = values ( `b` ) , `c` = values ( `c` )
我应该查看哪些指标来排查此问题
看下 Dashboard 的热力图,看下有没有热点问题,你这个场景能批量写入吗,批量写入的话吞吐量也会有提升
谢谢。这个只有一条记录,没法批量
那就主要看有没有热点吧,去 Dashboard 看热力图吧
你好,dashboard有点问题,grafana是可以的。可以指导下看grafana哪个指标嘛
检查Grafana监控面板中的"KV Cmd Duration"指标
观察TiKV的CPU利用率,特别是gRPC线程、raftstore线程和apply线程的CPU使用情况
检查PD的TSO (Timestamp Oracle) 延迟
排查PD leader选举是否存在异常
检查Region数量是否过多,考虑开启Hibernate Region功能
看看各线程池cpu 使用率
感觉Region是有点多了
主要是想知道延迟为啥一下子增加这么多
你指定是 Region 多了,你看看你这 raftstore 线程池随着 gc (默认间隔 10 分钟)起伏的频率,你截图这段应该是没负载吧,都能到 400%,你是改参数了吧,正常这个线程池可能都没这么大
是的参数是改过,调大了raft store的线程数
我准备用默认参数再试一下,我想TiDB这么成熟 默认参数应该都是有道理的
使用默认配置,高并发下avg降到60ms
看来配置和硬件还是要平衡,才能高效
去 Dashboard 看热力图吧
我做压测,tidb大概500并发就都性能极限了,最好控制并发别搞出来3000
看你用的是这个写法,有没有可能有锁的存在?就是会不会有写冲突?