このトピックでは、接続の使用状況を照会する方法と、接続プールの最大接続数を指定する方法について説明します。 データ管理 (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アドレスの照会
- mongo shell を使用して、ApsaraDB for MongoDB インスタンスに接続します。 詳細は、ApsaraDB for MongoDB インスタンスへの接続をご参照ください。 admin データベースへ切り替えます。
use admin
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での開発開始」をご参照ください。