私は、「ホット」データと他のデータの使用パターンにかなり劇的な違いがあるアプリケーションに取り組んでいます。私たちはデータ リポジトリとして MongoDB を選択しましたが、ほとんどの点で、私たちが構築している種類のアプリケーションに非常に適しているようです。
これが問題です。かなり頻繁に検索してアクセスする必要がある中央ドキュメント リポジトリが作成されます。サイズは現在約 2 GB で、今後数年で 4 GB に増加します。パフォーマンスを向上させるために、その DB をサーバー クラスのミラーリングされた SSD アレイに配置します。データの合計サイズを考えると、メモリが問題になるとは考えないでください。
システムは、記録バージョン、監査証跡、顧客とのやり取り、通知記録なども保持します。これはめったに参照されず、サイズが非常に大きくなる可能性があります。これはめったにアクセスされないため、より伝統的な回転ディスクに配置したいと考えています (典型的なレコードは年に 4 ~ 5 回アクセスされる可能性があり、調査と顧客サービスの問い合わせを満たすためだけに必要になると推測しています) 。 、そしてかなり大きくなる可能性もあります。
MongoDB が異なるデータベースを異なるディスクに配置できるかどうかを示す参考資料は見つかりませんでした (Windows で mongod を実行していましたが、実稼働に移行する場合はそうである必要はありません。
ここで詳細を説明して申し訳ありませんが、これらは展開を計画する際に考慮しなければならない主な要因です。利用可能なすべてのメモリを取得するという Mongo の傾向と、24 GB のメモリが最大になるマシンで実行されることを考慮して、データベースに最適な運用構成を見つけようとしています。
したがって、ここに私たちのオプションのように見えるものがあります:
複数のデータベースを持つ Mongo の単一インスタンス これには単純さの利点があるようですが、データベースをマシン上の異なる物理ドライブに分割する方法については、まだ決定的な答えが見つかりません。
Mongo の 2 つのインスタンス。1 つは「ホット」データ用、もう 1 つはアーカイブ用です。リソースをめぐって競合する mongod の 2 つのインスタンスを Mongo がどれだけうまく処理できるかはわかりませんが、サーバーの 32 ビット バージョンは 2GB のメモリに制限されているため、アーカイブ用に使用できると考えていました。マシンのリソースを圧倒します。「ホット」データについては、SSD アレイを使用するようにデータベース エンジンの 64 ビット インスタンスを簡単に構成できます。また、データのサイズが比較的小さいため、ページ フォールトなしで DB とインデックス全体を直接メモリ マップできます。 .
2 つの別々の仮想マシンにある Mongo の 2 つのインスタンスは、 VMWare などを使用して、Mongo を別々にホストできる 2 つの Linux マシンを作成できます。管理上の負担が少し増えるかもしれませんが、これにより、IIS とそれ自体のプロセスを実行するのに十分なメモリを Windows Server ホストに残しながら、システム リソースの使用を最もきめ細かく制御できるように思えます。
しかし、これはすべて憶測に過ぎません。これまで大規模な MongoDB の展開を行ったことがないため、利用できる優れた経験ベースがありません。
私の実際の質問は、同じ mongod サーバー インスタンス内の 2 つのデータベースで完全に別々のドライブを使用するオプションがあるかどうかです。ただし、特定された 3 つの展開オプションの利点と欠点についての洞察も歓迎します。