[前回] Elasticsearchで見る検索エンジンの仕組み(8): Kibana起動エラーのトラブルシューティング
はじめに
今回は、Kibana画面が応答しない事象のトラブルシューティングですが、
その原因は、KibanaではなくElasticsearchのメモリ使用量(JVMヒープサイズ)でした。
トラブル事象
-
kibanaの画面が固まって、応答しない
- ElasticsearchやKibanaのログに、それらしきエラーメッセージは見当たらず。。。
-
試しにKibanaを何回も再起動してみる
- 改善せず、どういうこと???
原因調査
-
タスクマネージャーからシステムリソースの使用率を確認
- Elasticsearchのjava.exeプロセスが、メモリ4GBを使っている(長時間稼働しつづけていたから?)
- メモリ枯渇により、システム全体が遅くなっている、まずい
-
Elasticsearchのリファレンスから、JVMヒープサイズの設定を確認
- Elasticsearchは、デフォルトでノードのロール数と合計メモリに基づき、JVMヒープサイズを自動設定してくれる
- ほとんどの実稼働環境で、デフォルトのサイズ設定を使用することをお勧めするとのこと
- デフォルトのヒープサイズを上書きするには、最小ヒープサイズ(Xms)および最大ヒープサイズ(Xmx)を設定
- 最小値と最大値は同じである必要あり
- Elasticsearchは、デフォルトでノードのロール数と合計メモリに基づき、JVMヒープサイズを自動設定してくれる
-
ElasticsearchのJVM設定ファイルにもJVMヒープサイズの記載があった
elasticsearch-{version}/config/jvm.options
対処
- リファレンスの手順とおり、
config/jvm.options.d
ディレクトリに設定ファイルを追加- 開発環境なので、一旦ヒープサイズを1GBに設定してみる
elasticsearch-{version}/config/jvm.options.d/jvm.options.d
-Xms1g
-Xmx1g
- Elasticsearchを再起動
- 起動ログから、JVMオプションに
-Xms1g, -Xmx1g
が含まれていることを確認
- 起動ログから、JVMオプションに
... ...
[2022-07-27T07:56:05,276][INFO ][o.e.n.Node ] [81KRV93] JVM home [C:\es\elasticsearch-8.3.1\jdk], using bundled JDK [true]
[2022-07-27T07:56:05,276][INFO ][o.e.n.Node ] [81KRV93] JVM arguments [
... ...
-Xms1g, -Xmx1g,
... ...
- Kibanaを起動
- Kibanaが正常に機能するようになった
おわりに
Kibanaが応答しない事象のトラブルシューティングでした。
次回も続きます。お楽しみに。