TiProxy のトラブルシューティング
このドキュメントでは、TiProxy の一般的な問題、原因、および解決策について説明します。
TiProxyに接続できません
次の手順に従って、問題をトラブルシューティングできます。
- コネクタバージョンがサポートされているかどうかを確認します。コネクタがリストにない場合は、コネクタが認証プラグインをサポートしているかどうかを確認します。
- クライアントが
No available TiDB instances, please make sure TiDB is available
報告する場合は、TiDBサーバーが存在するかどうか、および TiDBサーバーの SQL ポートと HTTP ステータス ポートに正常に接続できるかどうかを確認します。 - クライアントが
Require TLS enabled on TiProxy when require-backend-tls=true
報告する場合は、TiProxy が TLS 証明書で正しく構成されているかどうかを確認します。 - クライアントが
Verify TiDB capability failed, please upgrade TiDB
報告する場合は、TiDBサーバーのバージョンが v6.5.0 以降であるかどうかを確認します。 - クライアントが
TiProxy fails to connect to TiDB, please make sure TiDB is available
報告した場合は、 TiProxy ノードが TiDBサーバーに接続できるかどうかを確認します。 - クライアントが
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サーバーでproxy-protocol
有効になっていないかどうかを確認します。 - TiProxy が
max-connections
に設定され、TiProxy 上の接続数が最大接続制限を超えているかどうかを確認します。 - TiProxy ログでエラー メッセージを確認してください。
TiProxyは接続を移行しません
次の手順に従って、問題をトラブルシューティングできます。
- TiProxy の制限が満たされていないかどうか。TiProxy ログを確認することでこれをさらに確認できます。
security.session-token-signing-cert
security.session-token-signing-key
graceful-wait-before-shutdown
で正しく構成されているかどうか。
TiDBサーバー上の CPU 使用率の不均衡
次の手順に従って、問題をトラブルシューティングできます。
- TiDB サーバー間で CPU 使用率に大きな差があるかどうかを確認します。TiProxy は、TiDB サーバー間で同一の CPU 使用率を保証するものではありません。CPU 使用率の差がクエリのレイテンシーに影響を与えるほど大きい場合にのみ負荷分散実行します。
- TiDBサーバーの接続数が徐々にゼロに減少する場合は、他の負荷分散ポリシーの影響を受けている可能性があります。Grafana の
Session Migration Reasons
メトリックをチェックして、他のポリシーに基づく移行があるかどうかを確認できます。 - TiProxy 構成項目
policy
がlocation
に設定されているかどうかを確認します。場所に基づく優先順位付けが有効になっている場合、TiProxy は異なる場所間で CPU 使用率を分散しません。 - TiProxy のバージョンを確認してください。CPU ベースの負荷分散をサポートするのは、v1.1.0 以降のバージョンのみです。それより前のバージョンでは、最小接続数に基づく負荷分散ポリシーが使用されます。
- 上記のいずれの状況にも当てはまらない場合は、接続の移行が失敗した可能性があります。さらにトラブルシューティングするには、 TiProxyは接続を移行しません参照してください。
レイテンシーが大幅に増加
次の手順に従って、問題をトラブルシューティングできます。
- Grafana を通じて TiProxy のレイテンシーを確認します。TiProxy のレイテンシーが高くない場合は、クライアントの負荷が高いか、クライアントと TiProxy 間のネットワークレイテンシーが高いことを意味します。
- Grafana を使用して TiDBサーバーのレイテンシーを確認します。TiDBサーバーのレイテンシーが高い場合は、 遅延が大幅に増加するの手順に従ってトラブルシューティングを行います。
- Grafana でTiProxyとTiDBサーバー間のネットワーク継続時間確認します。
- TiProxy の CPU 使用率を確認します。CPU 使用率が 90% を超える場合は、TiProxy をスケールアウトする必要があります。