2017-12-25 14 views
0

MaxPoolSizeの値を3000に増やしました。これは、このインスタンスを使用して同時に3000の同時接続が許可されていることを意味しますか、他のオブジェクトインスタンスを介して他の接続もカウントしますか?MongoDB、MaxPoolSizeの制限はすべてのクライアントインスタンスに適用されますか?

var connectionString = "mongodb://username:[email protected]:27017/MyDB?maxPoolSize=3000" 
var client = new MongoClient(connectionString); 
return client.GetDatabase(databaseName); 

答えて

0

あなたの言った通りではありません。このarticleは、接続プーリングがどのように動作するかを簡単に、について説明を提供し、それは基本的にと述べている:

ほとんどのMongoDBドライバは、アプリケーションで利用できる 接続(プールサイズ)の最大数を設定するパラメータをサポートしています。接続 のプールサイズは、ドライバがサービスできる最大同時リクエスト数 と考えることができます。デフォルトのプールサイズは、ドライバ からドライバ(たとえば、 Nodeの場合は5ですが、Pythonの場合は100です。 アプリケーションで多数の同時または長時間の同時実行または長時間実行される要求がある場合は、プールサイズを増やすことをお勧めします。

サーバ上の総着信接続の制限は、オペレーティングシステムまたはmaxIncomingConnectionsによって課される制限の少ない(MongoDBの2.4またはmaxConns以前)によって決定されます。

次のように実際には、2つの設定間の差である:クライアント

  • 接続制限ごとの接続の

    • 接続プーリング=限界=総許容クライアント接続
  • +0

    おかげ。私は、サーバー上でデフォルトの 'maxIncomingConnections'が' 65536'であることを見ています。しかし、クライアント側では、それは私にとっては明らかではありません。たとえば、上記のコードで、3000 maxのプールを持つ 'client'というMongoClientオブジェクトを作成し、同じ接続文字列を持つ' client2'という別のオブジェクトを作成すると、6000の接続ができますか? – Blendester

    +0

    いいえ、これは、サーバーが各クライアントに対して3000件を超える同時要求を許可しないことを意味します。両方のクライアントを接続すると、65536のうち2つが割り当てられます。 –

    関連する問題