1

1 分あたり約 30,000 のリクエストで mongodb エンドポイントに到達しています。20,000 リクエストまではすべて正常に動作しているように見え、その後はすべてのリクエストが失敗します

t [オブジェクト オブジェクト]。(/home/ubuntu/node_modules/mongodb/lib/mongodb/connection/server.js:530:7) [オブジェクト オブジェクト].emit (events.js:88:20) [オブジェクト オブジェクト] で。(/home/ubuntu/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:104:15) at [object Object].emit (events.js:70:17) at Socket. (/home/ubuntu/node_modules/mongodb/lib/mongodb/connection/connection.js:411:10) Socket.emit (events.js:67:17) で Array.0 (net.js:319:25) EventEmitter._tickCallback (node.js:192:41) で

繰り返しごとに db 接続を閉じます。参考までに、毎回複数の DB に接続しています。

同じプロセスをもう一度繰り返すと、同じ結果になります。

4

1 に答える 1

1

これは通常、サーバーでの ulimit の問題です。開いている接続が多すぎるためです。ただし、確実に mongod/mongos ログを確認する必要があります。この場合、リソースを割り当てたり、新しいスレッドを作成したりできないというエラーが表示されます。これを修正する方法については、こちらをご覧ください。

http://docs.mongodb.org/manual/administration/ulimit/

また、使用しているドライバーによっては、接続を閉じることは非常に悪い考えであり、問​​題の根本的な原因になる可能性があります (特に ulimits を適切に設定している場合)。ノードを含む最近のドライバーのほとんどは、接続を適切に管理し、再利用できる接続プールを持っていると思います。それらを明示的に閉じると、実際には古い接続が短期間で構築される可能性があります。

于 2013-02-12T18:37:22.627 に答える