Tikv延时问题

【 Tikv 使用环境】测试
【 Tikv 版本】v5.4.0
【使用方式】我们测试使用的raw tikv,借助 golang版本的tikv client完成的事务处理( https://github.com/tikv/client-go

在测试tikv client和tikv server之间的GRPC连接数对性能影响发现,当设置GrpcConnectionCount越大的时候,P99长尾延迟反而变高了。

【压测场景】getObjectInfo、deleteObjectInfo、putObjectInfo是我们测试暴露延迟的事务类型名称,这些类型的事务我们指定12K qps压测,压测的client只有一台机器。
我们发现:
GrpcConnectionCount=1时,稳定下来后,P99长尾延时反而最小。
GrpcConnectionCount=16,稳定下来后,P99长尾延时反而最大。
压测场景下,机器的资源并没有使用太多,也就是说机器硬件资源剩余比较富裕。

这个grpc连接数的最佳实践应该怎么设置呢?

这个值啊,需要看并发和延迟,定期监测和评估连接数的性能,以及根据需要进行调整和优化

https://docs.pingcap.com/zh/tidb/stable/tune-tikv-thread-performance#tikv-线程池调优

我觉得你可以参考一下这个文档中的 gRPC 线程池部分。
我猜测是,你调高了client端的连接数量,但tikv server端的线程池还是那么多。所以客户端的连接反而有额外的等待。

特别是文档中说server端的默认线程数是5,而你的图上,大于4就有明显的延迟增高,这是能对应上的。
可以尝试调整一下看看效果如何。

这个我再试试看

有具体的指导文档可以分享下嘛

这里面讲的很不错

1 个赞