Hi,
Our logstash servers are only configured to use in-memory queue since we are still prototyping. We have experienced a few times that the logstash process exited because of an out-of-memory exception.
This seems only to happen when logstash is under high load. For instance, after Elastic was stopped for a few hours and therefore a huge backlog (millions of messages) from many filebeats and winlogbeats. When this happens, the memory usage of logstash will keep going up to the max available heap (10GB) and then eventually it will throw out-of-memory error.
I would like to confirm, with memory queue only:
- Will logstash be able to stop accepting new messages when the queue is full?
- Will it apply back-pressure to slow down the beats (such as filebeat, metricbeat, and winlogbeat) when the queue is full?
If answer to the above questions is yes, do you have any suggestion why we are experiencing the crashing behavior? I would expect when the queue is full or close to full, it will apply back-pressure to all the beats or even stop accepting new messages. But seems like this is not the case.
Maybe only persistent queue can do that?
Any help would be much appreciated! Thanks!
Ed