ApsaraDB for MongoDBインスタンスへの接続数が上限に達すると、新しい接続リクエストに応答できなくなります。 このトピックでは、接続数が上限に達した後に失敗したデータベース接続をトラブルシューティングする方法について説明します。
症状
ApsaraDB for MongoDBインスタンスへの最大接続数は、インスタンスタイプによって異なります。 詳細については、「概要」をご参照ください。 ApsaraDB for MongoDBインスタンスへの接続数が上限に達すると、次の問題が発生する可能性があります。
アプリケーションがインスタンス内のデータベースに接続できません。
インスタンスにホワイトリストが適切に設定されています。 ただし、mongoシェルを使用してインスタンス内のデータベースに接続すると、次のエラーメッセージが返されます。
2019-07-10T10:30:43.597 + 0800 E QUERY [js] エラー: ホスト 'dds -bpxxxxxxxx.mongodb.rds.aliyuncs.com:3717 'でコマンド 'isMaster' を実行しようとしたときのネットワークエラー: connect @ src/mongo/shell/mongo.js:328:13 @ (接続):1:6 例外: 接続に失敗しました
インスタンスにホワイトリストが適切に設定されています。 ただし、Data Management (DMS) を使用してインスタンス内のデータベースに接続すると、次のエラーメッセージが返されます。
接続数が上限に達しているかどうかを確認します
レプリカセットインスタンスまたはシャードクラスターインスタンスページに移動します。 上部のナビゲーションバーで、インスタンスが存在するリージョンを選択します。 次に、管理するインスタンスを見つけ、インスタンスのIDをクリックします。
インスタンスの詳細ページの左側のナビゲーションウィンドウで、監視情報をクリックします
表示されるページの 監視情報 タブで、[接続使用率 (%)] メトリックを表示します。
説明インスタンスがシャードクラスターインスタンスの場合、[基本モニタリング] タブの右上隅で使用中のmongosノードを選択する必要があります。
異なるインスタンスタイプの最大接続数の詳細については、「インスタンスタイプ」をご参照ください。
解決策
インスタンスまたはノードを再起動して、インスタンスへのすべての接続を一時的に解放できます。 詳細については、「ApsaraDB For MongoDBインスタンスまたはノードの再起動」をご参照ください。 この問題の再発を防ぐには、インスタンスの再起動後に次のいずれかの方法を使用することを推奨します。
インスタンスを再起動すると、すべてのインスタンスノードが 1 つずつ再起動されます。 各ノードで、約 30 秒の一時的な切断が発生します。 インスタンスに10,000を超えるノードがある場合、一時的な切断はより長く続きます。 インスタンスを再起動する前に、ビジネスを手配し、アプリケーションがインスタンスに自動的に再接続できることを確認します。
接続プールを適切に設定します。 詳細については、「接続数の制限」をご参照ください。
現在の接続のソースIPアドレスを照会します。 ワークロードがすべての接続を使い果たす場合は、インスタンスをアップグレードする必要があります。 詳細については、「現在の接続の送信元IPアドレスの照会」および「概要」をご参照ください。