2

現在、node.js(Native MongoDB)ドライバーを使用してMongodbを操作していますが、プールされた接続数を設定することは可能ですが、同じ動作が観察されます。

問題のコード:

(function init(){
    db.connect("mongodb://localhost/test",function(err, database){

    });
})();

これはサーバーからのログです。

Thu Dec 06 20:19:32 [initandlisten] connection accepted from 127.0.0.1:58663 #6
(1 connection now open)
Thu Dec 06 20:19:32 [initandlisten] connection accepted from 127.0.0.1:58664 #7
(2 connections now open)
Thu Dec 06 20:19:32 [initandlisten] connection accepted from 127.0.0.1:58665 #8
(3 connections now open)
Thu Dec 06 20:19:32 [initandlisten] connection accepted from 127.0.0.1:58666 #9
(4 connections now open)
Thu Dec 06 20:19:32 [initandlisten] connection accepted from 127.0.0.1:58667 #10
 (5 connections now open)
Thu Dec 06 20:19:36 [conn9] end connection 127.0.0.1:58666 (4 connections now op
en)
Thu Dec 06 20:19:36 [conn10] end connection 127.0.0.1:58667 (4 connections now o
pen)
Thu Dec 06 20:19:36 [conn8] end connection 127.0.0.1:58665 (4 connections now op
en)
Thu Dec 06 20:19:36 [conn6] end connection 127.0.0.1:58663 (4 connections now op
en)
Thu Dec 06 20:19:36 [conn7] end connection 127.0.0.1:58664 (4 connections now op
en)

接続は明らかに閉じていますが、接続が正しく増加していても、現在開いている接続数は減少しません。意図された振る舞い?

PS。mongodbにnodejsラッパーを使用して答えないでください。

4

1 に答える 1

1

MongoDBカウンターに問題があります。データベースは、すべての接続(複数のクローズシグナル)を閉じる際に非同期で動作しており、非常に高速であるため、カウンターの更新に追いつくことができません。MongoDBのソースコードを参照すると、メッセージ出力がカウンターの更新にほど遠いことがわかります。

同様の出力を下回りますが、最大1msの精度で、問題のIMOを少しよく示しています。

Mon Dec  2 17:42:09.059 [conn675] end connection 127.0.0.1:65198 (9 connections now open)
Mon Dec  2 17:42:09.059 [conn676] end connection 127.0.0.1:65199 (8 connections now open)
Mon Dec  2 17:42:09.059 [conn677] end connection 127.0.0.1:65200 (8 connections now open)
Mon Dec  2 17:42:09.059 [conn678] end connection 127.0.0.1:65201 (7 connections now open)
Mon Dec  2 17:42:09.059 [conn679] end connection 127.0.0.1:65202 (6 connections now open)
Mon Dec  2 17:42:09.059 [conn680] end connection 127.0.0.1:65203 (5 connections now open)
Mon Dec  2 17:42:09.059 [conn681] end connection 127.0.0.1:65204 (4 connections now open)
Mon Dec  2 17:42:09.059 [conn682] end connection 127.0.0.1:65205 (3 connections now open)
Mon Dec  2 17:42:09.059 [conn683] end connection 127.0.0.1:65206 (2 connections now open)
Mon Dec  2 17:42:09.059 [conn684] end connection 127.0.0.1:65207 (2 connections now open)
于 2013-12-10T09:06:49.833 に答える