Separate per event and bulk-event queues #649
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Have separate queues with different buffer sizes
for single events and bulk events in publisher.
Default queues size for single events is 1000 elements and for bulk events is set to 0.
Default values dramatically reduce total number of buffered events and memory usage in case elasticsearch/logstash become unresponsive.
Introduce (hidden) configuration in shipper section:
When using async publisher number of buffered events is about given by:
Q_e = queue size (default 1000)
Q_b = bulk queue size (default 0)
B = bulk_max_size
W = number of load balancing workers (only if load balancing is enabled)
N = number of events in memory
using default values:
Q_e = 1000
Q_b = 0
B = 2048
topbeat/packetbeat with default values + single output:
topbeat/packetbeat with default values + load balancing with 4 workers: