DMS または mongo シェルを使用して、ApsaraDB for MongoDB にログインできます。 このトピックでは、接続の使用状況を照会する方法および接続プールの最大接続数を設定する方法について説明します。

現在の接続数を照会する

最大接続数は、購入したApsaraDB for MongoDB インスタンスの仕様によって異なります。 詳細は、「インスタンス仕様 」をご参照ください。
最大接続数は、インスタンス内の各ノードに対して適用されます。 たとえば、1 つのコアと 2 GBのメモリを備えた 3 ノードのレプリカセットインスタンスを購入した場合、インスタンスのプライマリノードおよびセカンダリノードの最大接続数はそれぞれ 500 です。 非表示ノードは、アーキテクチャが特殊であるため、外部システムに対してサービスを提供しません。
mongo シェルを使用して、インスタンスに接続します。 詳細については、「インスタンスへの接続」をご参照ください. 次に、コマンド db.serverStatus().connections を実行します。
mgset-123456:PRIMARY> db.serverStatus().connections
{
        "current" : 1,
        "available" : 999,
        "internal_current" : 10,
        "internal_available" : 990,
        "totalCreated" : 632
}             
以下のパラメーターとその値に注意する必要があります。
  • current:確立された接続の数を示します。
  • available:使用可能な接続の数を示します。

現在の接続の接続元 IP アドレスを照会する

  1. mongo shell を使用して、ApsaraDB for MongoDB インスタンスに接続します。 詳細については、「インスタンスへの接続」をご参照ください。 admin データベースへ切り替えます。
    use admin
  2. コマンド db.runCommand({currentOp: 1, $all: true}) を実行します。
    mgset-123456:PRIMARY> db.runCommand({currentOp: 1, $all:[{"active" : true}]})                    

コマンド出力を分析することにより、各接続の接続元 IP アドレスを照会できます。 この方法により、各端末と MongoDB インスタンスの ApsaraDB の間に確立された接続の数を知ることができます。

接続の数を照会し、制限する

接続文字列 URI を使用して、MongoDBのApsaraDBに接続できます。 接続文字列 URI を使用してデータベースに接続する場合、URIに &maxPoolSize=<integer> を追加します。 この方法により、接続プールの最大接続数を設定できます。

以下に、mongoシェルを使用してデータベースに接続するコードの例を示します (接続の最大数は10に設定されています)。
mongo "mongodb://root:xxxxxx@dds-bpxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717,dds-bpxxxxxxxx-pub.mongodb.rds.aliyuncs.com:3717/admin? replicaSet=mgset-xxxxxx&maxPoolSize=10"
さまざまなプログラミング言語を使用して、クライアントの接続プールの接続数を制限する方法の詳細については、 MongoDB APIドキュメント をご参照ください。