(Intel Xeon 8コア2.1 Ghz、32 GB RAM)サーバーで実行されている単一のmongod(2.0.2)があります。mongostat からのサンプル統計 (通常の通常の穏やかな日) を次に示します。
insert query update delete getmore command flushes mapped vsize res faults locked % idx miss % qr|qw ar|aw netIn netOut conn repl time
0 186 3 0 0 5 0 42.6g 87.8g 22.6g 2 0.8 0 0|0 0|0 35k 1m 319 M 20:36:00
0 177 3 0 0 4 0 42.6g 87.8g 22.5g 2 0.7 0 0|0 0|0 28k 993k 319 M 20:36:30
0 181 3 0 0 3 0 42.6g 87.8g 22.6g 1 0.6 0 0|0 0|1 28k 878k 319 M 20:37:00
0 177 4 0 0 4 0 42.6g 87.8g 22.6g 2 0.7 0 0|0 0|0 31k 851k 319 M 20:37:30
0 171 2 0 0 3 0 42.6g 87.8g 22.6g 2 0.4 0 0|0 1|0 25k 912k 319 M 20:38:00
0 133 1 0 0 3 0 42.6g 87.8g 22.5g 0 0.3 0 0|0 0|0 20k 673k 319 M 20:38:30
0 180 3 0 0 4 0 42.6g 87.8g 22.5g 1 0.6 0 0|0 1|0 29k 890k 319 M 20:39:00
しかし、オンラインのユーザーが 500 ~ 600 人いる場合 (私は訪問カウンターを Mongo に保存しているので、訪問者が来ると多くの更新があります)、クエリは 1 秒あたり最大 500 まで跳ね上がり、読み取りキューは急速に増加し、約 40 ~ 50 に留まります。スクリプトがタイムアウトする数分。
同じマシン (これ以上物理サーバーがない) にレプリカ セット メンバーを追加すると、役に立ちますか? プライマリ インスタンスへの書き込みが読み取りをブロックしないように、セカンダリ メンバーを指すように読み取り設定を設定したいと考えています。