Elasticsearch セットの最大メモリ サイズ

Elasticsearch Settono Zui Damemori Saizu



「メモリーは、Elasticsearch を使用する場合に不可欠ですが、限られたリソースです。これは、Lucene が使用可能なすべてのメモリを使用するためです。ただし、メモリ設定を誤って構成すると、パフォーマンスが低下し、メモリの使用効率が低下する可能性があります。」

このチュートリアルでは、Elasticsearch を使用する場合の最大および最小の JVM ヒープ サイズの構成を示します。







始めましょう。



ヒープメモリとは?

Elasticsearch のコンテキストでは、ヒープ メモリは、Elasticsearch ノード内の Java 仮想マシンに割り当てられたメモリの合計量を指します。



Elasticsearch は、ベース システムの合計メモリとノードの役割に基づいて、デフォルトで JVM ヒープ サイズを設定します。つまり、ヒープ メモリ サイズの割り当ては、マスター ノード、データ、取り込み、data_cold などによって異なる場合があります。





ほとんどの実稼働環境では、Elasticsearch がヒープ サイズを管理できるようにすることが推奨されており、十分すぎるほどです。

ノート : Docker で Elasticsearch を実行している場合、合計ヒープ メモリは、Docker のホストではなく、Docker コンテナーの合計サイズに基づいています。



最小および最大ヒープ サイズの構成

最小および最大のヒープ サイズを構成するには、Xms パラメーターと Xmx パラメーターを使用できます。 Elasticsearch プロビットは、最大メモリを合計メモリの 50% 以下に設定しています。これは、JVM ヒープとは別に、Elasticsearch がファイルシステム キャッシュやネットワーク通信などの他の操作のために、より多くのメモリを必要とするためです。同様に、JVM は残りの 50% メモリのセクションを使用します。

次に、xms と xmx の値を oops のしきい値よりも大きく設定しないでください。安全な構成のために、一部のシステムでは 26GB または 30GB に制限してください。

しきい値は Elasticsearch ログで確認できます。

猫elasticsearch.log | grep 'オブジェクト ポインタ'

次のようなエントリが表示されます。

[2022-08-19T20:01:50,275][INFO][o.e.e.NodeEnvironment ] [debian11] ヒープサイズ [1.9gb]、圧縮された通常のオブジェクトポインタ [true]
[2022-08-19T20:08:07,207][INFO][o.e.e.NodeEnvironment ] [debian11] ヒープサイズ [1.9gb]、圧縮された通常のオブジェクトポインタ [true]
[2022-08-19T20:36:47,244][INFO][o.e.e.NodeEnvironment ] [debian11] ヒープサイズ [1.9gb]、圧縮された通常のオブジェクトポインタ [true]

xms および xmx 値のノード情報 API を照会することもできます。

curl -X GET localhost:9200/_nodes/_all/jvm?pretty

次のような出力が表示されます。

最小および最大ヒープ サイズの設定

JVM ヒープ サイズの値を変更するには、/etc/elasticsearch/jvm.options.d ディレクトリに構成ファイルを追加する必要があります。このファイルは .options 拡張子で終わる必要があります。

例えば:

$ sudo touch /etc/elasticsearch/jvm.options.d/heap.options

ファイルを編集する

$ sudo nano /etc/elasticsearch/jvm.options.d/heap.options

必要な最小ヒープ メモリ サイズと最大ヒープ メモリ サイズを追加します。

たとえば、以下のエントリは最小および最大ヒープ サイズを 4GB に設定します。

ファイルを保存し、Elasticsearch サービスを再起動します。

結論

このチュートリアルでは、Elasticsearch のコンテキストでの JVM ヒープ、Elasticsearch が JVM ヒープを構成する方法、およびヒープ サイズを変更する方法について学習しました。

読んでくれてありがとう!!