すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for MongoDB:接続数をクエリして制限するにはどうすればよいですか?

最終更新日:Jun 21, 2024

このトピックでは、接続の使用状況を照会する方法と、接続プールの最大接続数を指定する方法について説明します。 データ管理 (DMS) またはmongoシェルを使用して、ApsaraDB for MongoDBデータベースにログインできます。

現在の接続数を照会する

接続の最大数は、購入したApsaraDB for MongoDBインスタンスの仕様によって異なります。 詳細は、「インスタンスタイプ」をご参照ください。
説明 接続の最大数は、インスタンスの各ノードに適用されます。 たとえば、1 vCPUと2 GiBメモリを持つ3ノードのレプリカセットインスタンスを購入した場合、インスタンスのプライマリノードとセカンダリノードのそれぞれに最大500の接続が許可されます。 隠しノードは、隠しノードの特別なアーキテクチャにより、外部システムにサービスを提供しません。
mongo シェルを使用して、インスタンスに接続します。 詳細は、ApsaraDB for MongoDB インスタンスへの接続をご参照ください。 次に、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 インスタンスに接続します。 詳細は、ApsaraDB for MongoDB インスタンスへの接続をご参照ください。 admin データベースへ切り替えます。
    use admin
  2. db.ru nCommand({currentOp: 1, $all: true}) コマンドを実行します。
    mgset-123456:PRIMARY> db.ru nCommand({currentOp: 1, $all:[{"active" : true}]})

コマンド出力で各接続のソースIPアドレスを照会できます。 これにより、各ターミナルとApsaraDB for MongoDBインスタンスとの間に確立された接続数を取得できます。 詳細については、db.currentOp() をご参照ください。

接続数の制限

接続文字列URIを使用して、ApsaraDB for MongoDBインスタンスに接続できます。 接続文字列URIを使用してデータベースに接続する場合は、URIに &maxPoolSize=<integer> を追加します。 maxPoolSizeは、接続プール内の接続の最大数を指定します。

mongo shellを使用してインスタンスに接続する次の例では、接続プール内の最大接続数を10に設定します。 データベースアカウントはtestで、データベースはadminです。
mongo "mongodb:// test:**** @ dds-bp19f409d7512 **** -pub.mongodb.rds.aliyuncs.com:3717、dds-bp19f409d7512 **** -pub.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-6108 ****&maxPoolSize=10"
説明 さまざまなプログラミング言語のクライアントの接続プールでの接続数を制限する方法の詳細については、「MongoDBでの開発開始」をご参照ください。