このページでは、ベアメタル環境と仮想化環境における自己管理型 mongot (MongoDB Search と MongoDB ベクトル検索プロセス)配置のストレージの選択に関するガイダンスを提供します。
パフォーマンスは、ストレージシステム全体(デバイス、コントローラ、ホストする、ネットワーク、ファイルシステム)に依存します。本番に配置する前に、代表的な負荷の下で選択したクラスを検証します。
ストレージ クラスが重要な理由 mongot
mongot メモリマップファイルを介してインデックス セグメントにアクセスし、クエリの提供とバックグラウンドのインデックスの維持の両方において低レイテンシのランダム読み取りに依存する Apache Lucene にビルドされています。ストレージのレイテンシは、次のような影響を与えます。
クエリのレイテンシ。キャッシュのミスは、すべてのクエリのクリティカル パス上でディスクにフォールバックします。
インデックスの作成とレプリケーションのスループット。セグメントの統合、最初の同期、レプリケーションはすべて既存のセグメントを読み取り、新しいセグメントを書き込み (write) ます。書き込み専用の前提は成り立ちません。
負荷に対する安定性。ファイルシステムキャッシュの負荷が増加すると、クエリのレイテンシはストレージのレイテンシとともに非線形的に劣化します。
これらのプロパティにより、ストレージ クラスは mongot 配置における最も影響の大きいインフラストラクチャーの決定の 1 つとなります。
推奨概要
本番環境の
mongotインデックス ストレージには、デフォルトで専用のローカル NVMe SSD を使用します。NVMe が使用できなく、ワークロードが小から中程度の場合にのみ、ローカルエンタープライズ SATA または Serial Attached SCSI (SAS) SSD を使用します。
ブロックデバイスとして表示され、代表的な混合読み取りと書き込みの負荷の下で検証される場合にのみ、オールフラッシュ SAN を使用します。
使用しないでください:
NFS、NAS、SMB、またはその他の共有ファイル プロトコル
本番インデックス階層としての汎用クラウド SSD
すべての回転メディア
ストレージ クラスのガイダンス
次の表は、各ストレージ クラスの推奨事項をまとめたものです。レイテンシと IOPS バンドは、クラスの公開ベンチマークを反映しています。ハードウェアは異なる場合があります。結果は異なる場合があります。
カテゴリ | ストレージクラス | ランダム読み取りレイテンシ帯域 | ランダム読み取り IOPS バンド | 推奨事項 |
|---|---|---|---|---|
推奨 | ローカル PCIe/NVMe SSD | ~20-150 µs | プレミアム エンタープライズ ドライブでは、デバイスごとに170K+、拡大して1M+になります。 | 本番環境でのおすすめのデフォルト。Lucene のランダム読み取りプロファイルに最適です。 |
条件付き | ローカルエンタープライズ SATA/SAS SSD | ~100-200 µs | デバイスごとに~95K-100K | 専用データ ボリューム上の小規模から中規模のワークロードに対する許容可能なベースライン。レイテンシに影響されやすい配置やインデックスの作成が多い配置にはお勧めできません。 |
条件付き | オールフラッシュSAN、ブロックデバイス(FC、iSCSI、NVMe-oF) | 通常の負荷ではサブミリ秒ですが、プロトコルとネットワークによって大きく異なります | 200K+ですが、実際のスループットはホストするから配列へのパス全体によって異なります | ブロックマウント、オールフラッシュ、および代表的な負荷の下でエンドツーエンドで検証されている場合のみ、許容される次の選択。 |
非推奨 | 一般的なクラウドSSD(例:ブート向けのネットワークSSD階層) | 1 桁ミリ秒 | プロビジョニングに応じて拡大する数千のベースライン IOPS | ブート、開発、テスト、および広範なトランザクションの使用に適しています。低レイテンシーのランダム読み込みワークロードには適していません。 |
非推奨 | NFS、NAS、SMB、またはその他の共有ファイル プロトコル | 根拠を参照 | 根拠を参照 | パフォーマンスに加えて正確性のリスク: Lucene は NFS でのファイルロックとキャッシュの一貫性の失敗を記録しています。使用しないでください。 |
非推奨 | HDD、スループット最適化HDD、コールドHDD、またはその他の磁気メディア | 5-10 ミリ秒 | 75-500 per volume | SSD クラスのメディアよりも大幅に低速であり、Lucene のアクセス パターンとは根本的に一致しません。 |
ストレージの選択をモニターする
ストレージクラスがローカル NVMe 以外の場合は、ストレージの選択とモニタリングを結び付けてください。
インデックスボリュームで持続的に約1 K を超えるディスク IOPS を調査します。健全な操作は、デバイスの飽和点の近くにあってはなりません。
モニターサーチページのページフォールトが約 1000/s を超える場合は、オペレーティング システムが必要なインデックスページをファイルシステム キャッシュから提供するのではなく、ディスクから繰り返し引き出していることを示しています。増加したIOPSとともに、これはクリティカルパス上のストレージまたはメモリの圧力を示しています。
p99クエリのレイテンシを監視します。ロードが増加すると、非線形的な増加が見られます。ストレージにバウンドされた配置は、円滑に劣化するのではなく、急激に劣化します。
これらのシグナルが SAN、ジェネラルパーパス、SATA/SAS 配置で見られる場合は、拡大する前にストレージ クラスを再検討してください。ローカル NVMe で見られる場合は、まずファイルシステム キャッシュのメモリ ヘッドルームを確認し、ボリュームが本当に mongot 専用であるかどうかを確認してください。