MongoDB Search は、 MongoDB Search プロセスで使用される CPU とメモリの量が指定されたしきい値に達したときに MongoDB Search アラートをトリガーします。検索プロセス (mongot
) でメモリが不足すると、インデックス作成とクエリが失敗します。プロジェクトアラート設定モーダルで、 MongoDB Searchアラート条件を構成できます。クラスター モニタリングを使用してMongoDB Search メトリクスを表示することもできます。
警告: MongoDB Searchインデックスがすでに存在するコレクションをシャード化する場合、コレクションがシャードに表示され始めるときにクエリのダウンタイムが短時間発生する可能性があります。また、 MongoDB Searchインデックスを含むすでにシャーディングされたコレクションにシャードを追加する場合、追加されたシャードで最初の同期プロセスが完了するまで、そのコレクションに対する検索クエリは失敗します。詳しくは、「 最初の同期プロセス 」を参照してください。
アラート条件
プロジェクト レベルのアラート設定ページで次のアラート条件を構成して、trigger アラートを起動できます。
Atlas Search: Index Replication Lag
は、 MongoDB Search が のmongod
oplog からの変更を複製する際に遅延しているおおよそのミリ秒数がしきい値を超えているか下回っている場合に発生します。
Atlas Search: Index Size on Disk
ディスク上のすべてのMongoDB Search インデックスの合計サイズ(バイト単位)がしきい値を上回るか下回る場合に発生します。
Atlas Search: Max Number of Lucene Docs
はデフォルトで を自動的に実行します。このアラートは、特定のレプリカセットまたはシャードのMongoDB Search インデックスの保存に使用される Lucene Docs の上限数がしきい値を超えている場合に発生します。
Atlas Search: Mongot stopped replication
はデフォルトで 自動的に実行されます。このアラートは、ディスク使用率が高いためにMongoDB Search mongot
プロセスによってレプリケーションが中断された場合にのみ、専用の検索ノードで発生します。一時停止レプリケーションしきい値は 90% で、再開レプリケーションしきい値は 85% のディスク使用率です。
レプリケーションが長時間停止されると、mongot
プロセスはoplogから削除されます。Atlas は、mongot
プロセスがoplogから削除された場合、インデックスを再構築します。ただし、検索インスタンスをアップスケールしたり、 MongoDB Search インデックスを削除したりすると、mongot
がoplogから削除されるのを防ぐことができます。
Atlas Search: Number of Error Queries
は、 MongoDB Search が応答を返せないクエリの数がしきい値を上回るか下回る場合に発生します。
Atlas Search: Number of Index Fields
MongoDB Searchインデックスに存在する一意のフィールドの総数がしきい値を上回るか下回る場合に発生します。
Atlas Search: Number of Successful Queries
は、 MongoDB Search が応答を正常に返したクエリの数がしきい値を上回るか下回る場合に発生します。
Atlas Search: Total Number of Queries
は、 MongoDB Search に送信されたクエリの数がしきい値を上回るか下回る場合に発生します。
Atlas Search Opcounter: Delete
1 秒あたりに削除されるドキュメントまたはフィールド(インデックス定義で指定)の合計数がしきい値を上回るか下回る場合に発生します。
Atlas Search Opcounter: Getmore
は、1 秒あたりにすべてのMongoDB Search クエリで実行される getmore
コマンドの合計数がしきい値を上回るか下回る場合に発生します。
Atlas Search Opcounter: Insert
は、 MongoDB Search が 1 秒あたりにインデックスするドキュメントまたはフィールド(インデックス定義で指定)の総数がしきい値を上回るか下回る場合に発生します。
Atlas Search Opcounter: Update
MongoDB Search が 1 秒あたりに更新するドキュメントまたはフィールド(インデックス定義で指定)の合計数がしきい値を上回るか下回る場合に発生します。
Insufficient disk space to support rebuilding search indexes
はデフォルトで を自動的に実行します。このアラートは、クラスターでMongoDB Search インデックスをサポートするのに十分な空きディスク領域が不足した場合に発生します。
注意
このアラートは、Atlas が検索インデックスを自動的にアップグレードして新機能を有効にする場合に表示されることがあります。 クラスターには、インデックスの以前と新しいバージョンの両方に十分なディスク領域が必要です。 再ビルドによりディスク容量の使用量が90 % 以上に増加した場合、オートスケーリングを有効にすると Atlas はクラスター ストレージを増加させます。 インデックスのアップグレードが完了すると、Atlas は古いバージョンのインデックスを削除し、ディスク領域を解放します。
Search Memory: Resident
MongoDB Search プロセスが占める常駐メモリの合計バイト数がしきい値を上回るか下回る場合に発生します。
Search Memory: Shared
MongoDB Search プロセスが占める共有メモリの合計バイト数がしきい値を上回るか下回る場合に発生します。
Search Memory: Virtual
MongoDB Search プロセスが占める仮想記憶の合計バイト数がしきい値を上回るか下回る場合に発生します。
Search Process: CPU (Kernel) %
は、CPU がMongoDB Search プロセスのオペレーティング システム呼び出しの処理に費やした時間の割合がしきい値を超えている場合に発生します。
Search Process: CPU (User) %
は、CPU がMongoDB Search プロセスに費やした時間の割合がしきい値を超えている場合に発生します。
Search Process: Disk space used
MongoDB Search プロセスで使用されるディスク領域の合計バイト数がしきい値を超えている場合に発生します。
Search Process: Ran out of memory
はデフォルトで自動的に実行されます。アラート設定を構成して、この通知を無効にできます。このアラートは、検索プロセス(mongot
)がメモリ不足になったときに発生します。検索プロセスでメモリが不足すると、インデックス作成とクエリが失敗します。
一般的な Triggers
MongoDB Search アラートは、大規模なまたは複雑な検索インデックスを作成しようとすると多く発生します。メモリの問題が解決されるまで、これらのインデックスは Initial Sync フェーズに残ります。
当面の問題の修正
検索プロセス( mongot
)でメモリまたはディスク容量が不足した場合は、クラスターをアップグレードして当面の問題を修正できます。 より多くのメモリ、ストレージ、 IOPSを持つクラスター階層を選択できます。
長期的な解決策の実装
将来、 MongoDB Search アラートが発生しないようにするには、 MongoDB Search のMongoDB Search パフォーマンスの向上 を慎重に検討してください。
インデックスを最適化するには、専用の検索ノードを配置することをお勧めします。これにより、Atlas クラスターと$search
ワークロードを個別にスケーリングできます。 専用検索ノードはmongot
プロセスのみを実行するため、 mongot
プロセスの可用性、パフォーマンス、ワークロードのバランスが向上します。
進捗状況の監視
利用可能なMongoDB Search チャートを表示して、 MongoDB Search メトリクスを監視します。
MongoDB Search メトリクスを監視して、 MongoDB Search インデックスを評価および最適化します。
詳細については、 「 クラスター メトリクスの表示 」を参照してください