一部の Alibaba Cloud Elasticsearch (ES) インスタンスでは、ガーベッジコレクターの設定がサポートされています。ご利用の ES インスタンスでヒープメモリを大量に使用している場合、GC 性能を向上させるために G1 ガーベッジコレクターへの切り替えを推奨します。本トピックでは、ガーベッジコレクターの設定手順について説明します。
背景情報
Alibaba Cloud ES の 8.x より前のバージョンでは、デフォルトで CMS ガーベッジコレクターが使用されます。これはヒープメモリ使用量が 75 % に達した際にトリガーされます。インスタンスのヒープメモリが大きい場合は、パフォーマンス最適化のため G1 ガーベッジコレクターへの切り替えを推奨します。一方、ES の 8.x 以降のバージョンでは、デフォルトで G1 ガーベッジコレクターが使用され、その設定は変更できません。
前提条件
対象インスタンスは、以下の要件を満たす必要があります:
バージョン:6.7.0 ~ 8.x(8.x より前)
データノードのメモリ:32 GB 以上
インスタンスのメモリ確認方法:
対象インスタンスの 基本情報 ページへ移動します。
ノード可視化 セクションで、データノードの仕様を確認します。
合計メモリ = 単一ノードのメモリ × データノード数
上記のメモリ要件を満たさない場合は、インスタンスの仕様アップをご検討ください。詳細については、「クラスターのスペックアップ」をご参照ください。
操作手順
Alibaba Cloud Elasticsearch コンソール にログインします。
左側ナビゲーションウィンドウで、Elasticsearch クラスター をクリックします。
対象のターゲットインスタンスへアクセスします。
上部のメニューバーから、リソースグループおよびリージョンを選択します。
Elasticsearch クラスター 一覧より、対象のインスタンス ID をクリックします。
左側ナビゲーションウィンドウで、 を選択します。
基本設定 セクションで、ガベージコレクター の右側にある 変更 をクリックします。
変更 ボタンがグレーアウトしている場合、以下のいずれかが原因として考えられます:
インスタンスのデータノードメモリが 32 GB 未満です。
インスタンスのバージョンがサポート範囲外です(対応バージョン:6.7.0 ~ 8.x(8.x より前))。
この場合、インスタンスのスペックアップまたはバージョン互換性の確認を行ってください。
重要ガーベッジコレクターの変更を行う前に、クラスターが正常な状態であることをご確認ください。本操作はクラスターのローリングリスタートをトリガーします。リスタートの持続時間は、クラスター規模、データ量、負荷によって異なります。業務の閑散時間帯に実行することを推奨します。
クラスターのインデックスにレプリカシャードが存在し、クラスター負荷が正常(CPU 使用率約 60 %、ヒープメモリ使用率約 50 %、load_1m が CPU コア数未満)である場合、変更中もクラスターは通常どおりサービスを提供できます。
クラスター負荷が過大であり、インデックスにレプリカがなく、多数の書き込みまたはクエリ操作が行われている場合、変更中に一時的なアクセスタイムアウトが発生する可能性があります。ビジネスへの影響を最小限に抑えるため、クライアント側のアクセスにリトライ機構を設定してください。
設定の編集 ページで、G1 を選択し、OK をクリックします。
確認後、クラスターは自動的に再起動します。再起動が正常に完了すると、ガーベッジコレクターの切り替えが完了します。
予想される再起動時間:小規模クラスターでは約 10 ~ 30 分、大規模クラスターでは約 30 ~ 60 分(クラスター規模およびデータ量により異なります)。
ローリングリスタート中は、クラスターは引き続き利用可能ですが、一時的な応答遅延が発生する場合があります。
参考文献
ガーベッジコレクター切り替えの API リファレンス: UpdateAdvancedSetting