MongoDBを使用して、定期的に測定された値を保存します。〜100ミリ秒ごとに、一連の値がドキュメントとして挿入されます。正常に動作しますが、パフォーマンスの問題が心配です。(私は安全な挿入を使用しますが、PyMongoではこれがデフォルトです。)
mongodがハードディスクに保存できるよりも多くの挿入が毎秒ある場合はどうなりますか?警告はありますか、それとも単に黙って失敗しますか?
書き込み負荷を監視する方法はありますか?db.serverStatus().writeBacksQueued
呼び出したときに常にfalseに設定されているものだけが見つかりました。書き込みキューを満たすために挿入する必要があるデータの量をどのようにテストできますか?
mongostat
ロックを表示します。これは私が心配すべきことですか?
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn repl time
*117 *0 *0 *0 0 2|0 0 17.4g 35.3g 3.76g 0 .:6.5% 0 0|0 0|0 124b 6k 2 SLV 09:58:10
*111 *0 *0 *0 0 2|0 0 17.4g 35.3g 3.76g 0 .:0.8% 0 0|0 0|0 124b 6k 2 SLV 09:58:11
*111 *0 *0 *0 0 2|0 0 17.4g 35.3g 3.76g 0 .:4.2% 0 0|0 0|0 124b 6k 2 SLV 09:58:1
書き込みロックについて心配する必要はありますか?書き込みロック期間中に挿入はどうなりますか?後でキューに入れられて保存されますか?
1つのマスターと1つのスレーブを使用した簡単なレプリケーションセットアップについて考えています。初期同期または再同期プロセスはデータベースをロックしますか?
(バージョン2.4.3を使用しています。)
更新: 私自身の質問に部分的に答えたと思う。小さなテストドキュメントを挿入する単純なwhileループを使用して、1秒あたり最大12.000の挿入を処理しました。ただし、qr | qwは、読み取りおよび書き込みキューがまだ空であることを示しています。
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn repl time
11234 *0 2 *0 1563 1|0 1 21.9g 44.3g 1.22g 0 testdb:58.9% 0 1|0 1|1 797k 980k 6 PRI 10:26:32
12768 *0 2 *0 1284 1|0 0 21.9g 44.3g 1.22g 0 testdb:58.0% 0 0|0 0|1 881k 1m 6 PRI 10:26:33
12839 *0 2 *0 1231 1|0 0 21.9g 44.3g 1.22g 0 testdb:60.3% 0 0|0 0|1 883k 1m 6 PRI 10:26:34
12701 *0 2 *0 910 1|0 0 21.9g 44.3g 1.22g 0 testdb:61.8% 0 0|0 0|1 858k 1m 6 PRI 10:26:35
12241 *0 2 *0 1206 1|0 0 21.9g 44.3g 1.22g 0 testdb:56.7% 0 0|0 0|0 843k 1m 6 PRI 10:26:36
11581 *0 2 *0 1406 1|0 0 21.9g 44.3g 1.22g 0 testdb:61.8% 0 0|0 0|1 811k 1m 6 PRI 10:26:37
8719 *0 2 *0 1210 1|0 0 21.9g 44.3g 1.22g 0 testdb:43.8% 0 0|0 0|1 618k 762k 6 PRI 10:26:38
11429 *0 2 *0 1469 1|0 0 21.9g 44.3g 1.22g 0 testdb:60.6% 0 0|0 0|1 804k 993k 6 PRI 10:26:39
12779 *0 2 *0 1092 1|0 0 21.9g 44.3g 1.22g 0 testdb:60.2% 0 1|0 0|1 872k 1m 6 PRI 10:26:40
12757 *0 2 *0 436 1|0 0 21.9g 44.3g 1.22g 0 testdb:59.7% 0 0|0 0|1 838k 432k 6 PRI 10:26:41
これは、挿入だけでは多くの問題が発生しないことを意味すると思います。「広範囲の削除など、他の書き込みの重い操作と並行して多くの書き込み操作を行うと、キューが急増する傾向があります。」(ここにあります)
私の未解決の質問:書き込みキューが長期間増加すると、データはどうなりますか?