1

ノードにネイティブの mongo.db ドライバーを使用する場合、アプリケーションごと、ページ「サーブ」ごとに 1 つの接続を開くか、必要なときに開いて閉じる必要がありますか?

私はいくつかの古い回答を見てきましたが、プロジェクトは常に発展していることを知っているので、今日の状況を知りたいです。

4

1 に答える 1

2

これは変わる状況ではありません。サーバーへの新しい接続を開くと、確立された接続を使用するよりもパフォーマンスが低下します。

注:これはサーバー アプリケーションの一般的なケースであり、MongoDB に固有のものではありません。

一般的なオーバーヘッドは次のとおりです。

  • サーバー名を IP に解決する
  • サーバーへのネットワーク接続の確立
  • サーバーに割り当てられた接続ごとのメモリ

特に MongoDB の場合:

  • 新しい接続を開くことは、サーバー上の新しいソケット接続とスレッドを意味します
  • 各接続 (MongoDB 2.0 以降) は、サーバーに 1Mb の RAM を割り当てます (参照: Checking Memory Usage )
  • 開いているファイル/接続には、プロセスごとの制限があります ( Too Many Open Filesも参照してください) 。

MongoDB Node.js ドライバーの場合、コンストラクターでpoolSizeを設定することにより、接続プールを利用できます。これを使用する例を含むブログ投稿: Node.js: Connection Pools and MongoDB

于 2012-07-27T00:54:03.580 に答える