TiProxy 常见问题
本文介绍了一些 TiProxy 常见问题、原因及解决办法。
TiProxy 连接不上
可以通过以下步骤依次排查:
- 检查连接器版本 是否支持。如果连接器不在列表中,请查看连接器是否支持认证插件。
- 如果客户端报错
No available TiDB instances, please make sure TiDB is available
,请检查是否有 TiDB server,且 TiDB server 的 SQL 端口和 HTTP 状态端口是否都可以正常连接。 - 如果客户端报错
Require TLS enabled on TiProxy when require-backend-tls=true
,请检查 TiProxy 是否正确配置了 TLS 证书。 - 如果客户端报错
Verify TiDB capability failed, please upgrade TiDB
,请检查 TiDB server 版本是否为 v6.5.0 及以上版本。 - 如果客户端报错
TiProxy fails to connect to TiDB, please make sure TiDB is available
,请检查 TiProxy 的节点是否能连接到 TiDB server。 - 如果客户端报错
Require TLS enabled on TiDB when require-backend-tls=true
,请检查 TiDB 是否配正确配置了 TLS 证书。 - 如果客户端报错
TiProxy fails to connect to TiDB, please make sure TiDB proxy-protocol is set correctly
,请检查是否 TiProxy 开启了 proxy.proxy-protocol 而 TiDB server 没有开启proxy-protocol。 - 检查 TiProxy 是否配置了
max-connections
且 TiProxy 上的连接数超过了最大连接数限制。 - 检查 TiProxy 日志,查看错误信息。
TiProxy 没有迁移连接
可以通过以下步骤依次排查:
- 是否没有满足 TiProxy 的使用限制。可以结合 TiProxy 日志进一步确认。
- 是否正确配置了 TiDB 的
security.session-token-signing-cert
,security.session-token-signing-key
,和graceful-wait-before-shutdown
。
TiDB server 的 CPU 使用率不均
先检查 TiDB server 上的连接数是否均衡,如果不均衡,根据 TiProxy 没有迁移连接排查。
如果连接数均衡,则可能是部分连接占用的 CPU 较高,而其他连接较空闲。TiProxy 是根据 TiDB server 上的连接数进行均衡的,而不是通过实际的负载进行均衡。
延迟明显升高
可以通过以下步骤依次排查:
- 通过 Grafana 监控指标检查 TiProxy 上显示的延迟。如果 TiProxy 上显示的延迟不高,则是客户端负载高或客户端与 TiProxy 之间的网络延迟高。
- 通过 Grafana 监控指标检查 TiDB server 上显示的延迟。如果 TiDB server 上显示的延迟高,则通过 TiDB 的延迟明显升高 的步骤排查。
- 通过 Grafana 监控指标检查 TiProxy 与 TiDB server 之间网络通信时间。
- 检查 TiProxy 的 CPU 使用率。如果 CPU 使用率超过 90%,则需要扩容 TiProxy。