0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

脱Excel Elastic Stack(docker-compose)でcsvログを分析・可視化 - LogstashのOutOfMemoryErrorが出た時の2つの対応方法

Posted at

はじめに

どうも!生産技術部で製品の検査工程を担当しているエンジニアです。脱Excel Elastic Stack(docker-compose)でcsvログを分析・可視化 - Elastic Stackとはの続きになります。

対象読者

この記事では、Elastic Stackをそもそも知らない方、これから試そうと思っている方を対象としています。

この記事の内容

大量のファイルをfilebeatからlogstashに転送すると、以下のエラーが出てlogstashが落ちることがあります。その対応方法を紹介します。

java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid1.hprof ...
Heap dump file created [3178685347 bytes in 34.188 secs]
warning: thread "[main]>worker11" terminated with exception (report_on_exception is true):
warning: thread "[main]>worker4" terminated with exception (report_on_exception is true):
java.lang.OutOfMemoryError: Java heap space

GitLabに設定ファイル一式を置いておきましたので参考にしてください。
リポジトリはこちら -> elastic-stack

エラーの原因

エラー内容が示す通り、ヒープサイズが足りないことが原因です。

物理メモリのサイズに余裕がある場合の対応方法

jvm.optionsファイルを作成し、以下のヒープサイズを変更します。
どれくらいに設定すればいいのかは、JVM Settingの説明に従い、使用するマシンと相談してください。

logstash/config/jvm.options
## JVM configuration

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms1g
-Xmx1g

物理メモリのサイズに余裕がない場合の対応方法

pipeline.batch.sizeもしくはpipeline.workersを変更することで、処理量に制限をかけることが出来ます。
batchサイズのデフォルト値は125、workersはホストPCのCPUの数となっています。
公式のドキュメントはこちらです。

logstash/config/pipelines.yml
- pipeline.id: filebeat-processing
  pipeline.batch.size: 50

最後に

Elasticsearchに関してですが、公式のブログによると、7.7からElasticsearchのヒープ領域使用量が大幅にダウンするそうです。Elasticsearchのメモリでお困りの方はバージョンを見直してみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?