-1

数百万の製品を扱う大規模な e コマース操作に MongoDB を使用しています。すばやくアクセスできるように、カテゴリと一部の製品データを mongo にキャッシュします。

まだ開発中ですが、調査したい動作があります。一晩中、サーバーはアイドル状態です。夜に出発すると、すべてが高速で、キャッシングがうまく機能しています。サーバーが一晩アイドル状態になった後、朝に来ると、非常に遅くなります。しかし、しばらくすると加速します。

メモリを見ると、mongoDB がよりアクティブになるため、この間に (予想どおり) 急増していることがわかります。私は、Mongo がアイドル時間中にデータをディスクに移動し、翌朝アクセスされたときにメモリにバックアップしていると想定しています。

その場合、この問題は、ページが頻繁にアクセスされる本番環境では解消される可能性があります。

誰か(そこにいるモンゴの第一人者)は私の仮説を理解していますか?確かに他の原因(DBアクセス、CF初期化など)を調査していますが、これが最も可能性が高いようです。

4

2 に答える 2

2

Mongo はメモリ管理を OS に中継します (メモリ マップ ファイル メカニズム)。そのため、一部のメモリ領域がしばらくアクセスされない場合、システムは変更をディスクにフラッシュし (存在する場合)、解放します。

はい、常にアクティビティがある場合、これは本番環境では発生しないはずです。

于 2012-05-10T14:15:28.773 に答える
2

MongoDB がメモリ マップ ファイルを使用し、メモリ処理が完全に下層のオペレーティング システムに依存することはよく知られています。そのため、OS が「それほどホットではない」ページをメモリから削除する可能性があります。

于 2012-05-10T14:17:15.903 に答える