はじめに
Elasticsearchを使っていて、もやもやした内容を、
メモ書きレベルで、思うがまま書いてみます。
ElasticsearchでJVMヒープサイズを設定する?
Elasticsearchのインストール関連資料を読むと、
JVMヒープサイズ設定は要る、要らない二つの説が。
その違いや使い分けに、モヤモヤ感が。。。
JVMヒープサイズ設定の要/不要を比較してみた
-
JVMヒープサイズとは
- Elasticsearchを起動する際、JVMサイズのオプション設定
- OSメモリサイズの半分を割り当てるとよいらしい
- 最小値(
-Xms
)と最大値(-Xmx
)を同じサイズにする必要あり(二つに分けた理由は?)
-
JVMヒープサイズ設定は不要との根拠
-
Elasticsearchリファレンス
- Elasticsearchがノードロールやトータルメモリにより自動設定する
- ので、本番環境では気にせずデフォルトのまま使ってね?
-
Elasticsearchリファレンス
By default, Elasticsearch automatically sets the JVM heap size
based on a node’s roles and total memory.
Using the default sizing is recommended for most production environments.
-
JVMヒープサイズ設定は必要との根拠
- Kibana画面が応答しない事象の対処として、デフォルトサイズを変更
- Elasticsearchが大量にメモリを消費し、システム全体のメモリ枯渇
- 主に、メモリが潤沢に積まれていない開発環境で発生する模様
-
結論は出ませんが
- システムのメモリ使用状況をモニタリングした上で
- JVMヒープサイズを設定するか、設定値はいかに、を決めたほうがよさそうです
おわりに
ElasticsearchのJVMヒープサイズ設定の要/不要を比較しました。
ケースバイケースなので、もやもや感は残る感じですが。。。