Application に mongodb を使用しています。collectiondb.setProfilingLevel(1,25)
からの遅いクエリを特定するために、mongo シェルで を実行しました。system.profile
読み取り操作は高速ですが、更新操作は非常に遅いことがわかりました
これは私のmongostatのサンプルです
insert/s query/s update/s delete/s getmore/s command/s flushes/s mapped vsize res faults/s locked % idx miss % q t|r|w conn time
0 950 469 0 0 471 0 10396 12295 3207 27 34.9 0 0|0|0 152 07:18:49
0 838 418 0 0 422 0 10396 12295 3209 21 34.6 0 0|0|0 152 07:18:50
0 1005 502 0 0 504 0 10396 12295 3211 21 35.5 0 0|0|0 152 07:18:51
0 837 410 0 0 418 0 10396 12295 3212 20 35.7 0 0|0|0 152 07:18:52
0 754 377 0 0 379 0 10396 12295 3214 19 36.7 0 0|0|0 152 07:18:53
0 841 420 0 0 422 0 10396 12295 3216 24 35.9 0 0|0|0 152 07:18:54
0 877 438 0 0 442 0 10396 12295 3217 23 37.2 0 0|0|0 152 07:18:55
0 799 393 0 0 395 0 10396 12295 3219 21 37 0 0|0|0 152 07:18:56
0 947 471 0 0 479 0 10396 12295 3221 26 39 0 0|0|0 152 07:18:57
0 855 427 0 0 429 0 10396 12295 3222 24 38.4 0 0|0|0 152 07:18:58
0 1007 504 0 0 506 0 10396 12295 3224 31 36 0 0|0|0 152 07:18:59
0 841 413 0 0 417 0 10396 12295 3226 23 37.2 0 0|0|0 152 07:19:00
統計は開発環境からのものであり、本番環境から実際に推測することはできません。
アーキテクチャごとに、そのコレクションのインデックス サイズを減らすことはできませんが、この場合、 usePowerOf2Sizes が mongodb の書き込み/更新応答時間を改善するのに役立つことがわかりました。
多くの usePowerOf2Sizes を聞いたことがあります。
usePowerOf2Sizes は断片化を減らすことができるので。すべてのデータが mmemory に設定され、パフォーマンスが向上します。このオプションを使用すると、MongoDB はスペースをより効果的に再利用できます。usePowerOf2Sizes は、大量のドキュメントを挿入および削除して、MongoDB がディスク上のスペースを効果的に使用できるようにするコレクションに役立ちます。
オプション usePowerOf2Sizes を使用すると悪影響があるかどうかを知りたいですか?? mongodb に 17 個のコレクションがあり、1 つのコレクションだけに usePowerOf2Sizes を使用したいと考えています。
事前にお知らせください。