Amazon OpenSearch Service クラスターで JVM のメモリ負荷が高く、これを解決する方法がわかりません。
簡単な説明
デフォルトでは、OpenSearch Service はインスタンスの RAM の 50% を最大 32 GiB の JVM ヒープに使用します。JVM のメモリ負荷は、クラスターノード内の Java ヒープの割合を指定します。次のガイドラインは、JVM のメモリ負荷率の意味を示しています。
- JVM のメモリ負荷が 75% に達すると、OpenSearch Service は x86 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスタイプのコンカレントマークスイープ (CMS) ガベージコレクタを開始します。ARM ベースの Graviton Amazon EC2 インスタンスタイプは、ガベージファースト (G1) ガベージコレクタを使用しており、このガベージファースト (G1) ガベージコレクタでは追加の短い一時停止とヒープデフラグが行われます。ガベージコレクションは CPU に大きな負荷がかかるプロセスです。メモリ使用量が増え続けると、** ClusterBlockException**、JVM OutOfMemoryError、またはその他のクラスターのパフォーマンスの問題が発生する可能性があります。詳細については、「継続的な高負荷からの復旧」を参照してください。
- JVM のメモリ負荷が 30 分間で 92% を超えると、OpenSearch Service はすべての書き込みオペレーションをブロックします。
- JVM のメモリ負荷が 100% に達すると、OpenSearch Service JVM は終了し、最終的にはメモリ不足 (OOM) で再起動するように設定されます。
次の理由により、JVM のメモリ負荷が高くなる可能性があります。
- クラスターへのリクエスト数が急増します。
- 集計、ワイルドカード、およびクエリで広い時間範囲を選択します。
- ノード間のシャード割り当てが不均衡か、クラスター内のシャードが多すぎる。
- フィールドデータまたはインデックスマッピングの急激な展開。
- 着信した負荷を処理できないインスタンスタイプ。
解決策
クラスターへのトラフィックを減らすことで、JVM メモリ負荷が高くなる問題を解決できます。クラスターへのトラフィックを減らすには、以下のベストプラクティスに従ってください。
JVM のメモリ負荷が高い場合のトラブルシューティング方法の詳細については、「OpenSearch Service ノードがクラッシュしたのはなぜですか?」を参照してください。
関連情報
Amazon OpenSearch Service のトラブルシューティング
Amazon OpenSearch Service のドメインをスケールアップまたはスケールアウトするにはどうすればよいですか?
Amazon Elasticsearch Service の開始方法 シャードはいくつ必要ですか?