token-limit设置问题

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
请问大家token-limit都是设置的多大,我使用的默认值1000,经常有报连接数过大的告警,我打算设置成3000,不知有什么不利因素。

【TiDB 版本】

【问题描述】


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

  1. token-limit 的官方文档说明:
  • TiDB 中同时允许运行的 Session 数量,用于流量控制
  • 默认:1000
  • 如果当前运行的连接多于该 token-limit,那么请求会阻塞,等待已经完成的操作释放 Token
  1. 如果增大token-limit 到3000,那么同时运行的连接数就会是3000, 那么需要考虑的影响就是,多的这些session是否会对 tidb-server 和 tikv-server 产生大的压力。

  2. 可以查看当前的监控系统资源,over-view,如果峰值业务时间段,系统资源占用很低,那么增加token-limit 应该没有问题,如果峰值时间段,系统负载已经很高,业务延时也比较高,那么建议尽量不调整,或者可以试试先少调高一些。

  3. 修改方式参考文档:https://docs.pingcap.com/zh/tidb/stable/maintain-tidb-using-tiup#修改配置参数

参数模板选择对应版本: https://github.com/pingcap/tidb/blob/v4.0.11/config/config.toml.example

tidb server不限制 客户端 链接 tidb server的连接数,只是限制获取token,默认1000,表示可以并发存在1000的连接得到tidb server的响应。

报连接数过大的告警,看一下是不是慢sql太多,导致连接数满,或者是客户端连接池设置的问题,如果tidb server的cpu负载不高,tikv的负载不高,可以增大token