9

私は、「ホット」データと他のデータの使用パターンにかなり劇的な違いがあるアプリケーションに取り組んでいます。私たちはデータ リポジトリとして 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 つの展開オプションの利点と欠点についての洞察も歓迎します。

4

1 に答える 1

5

Linux を使用している場合、これは実際には非常に簡単に行うことができます。

  1. directoryPerDB構成オプションを有効にします。
  2. 必要なデータベースを作成します。
  3. インスタンスをシャットダウンします。
  4. 個々のデータベース ディレクトリから別のブロック デバイス (ディスク、RAID アレイ、論理ボリューム、iSCSI ターゲットなど) にデータをコピーします。
  5. それぞれのブロック デバイスを、ディレクトリを超えた対応する位置にマウントします(対応する行を!dbpathに追加することを忘れないでください)。/etc/fstab
  6. モンゴッドを再起動します。

編集:補足として、MongoDB の実稼働用の OS として Windows を使用しないでください。利用可能なファイルシステムである NTFS および ReFS は、ext4 または XFS と比較するとパフォーマンスが著しく低下します (後者は本番用に推奨されるファイルシステムです。詳細については、MongoDB のプロダクション ノートを参照してください)。この理由だけでも、Linux をお勧めします。もう 1 つの理由は、GUI など、Windows の不要なサブシステムによって使用される RAM です。

于 2014-12-25T12:57:53.603 に答える