Hello,
We had a problem with slow indexing speed with ES cluster of 3 nodes (5.6.14) with the following roles:
- 70G RAM, SATA HDD, "mi" role
- 48G RAM, SSD HDD, "mdi" role
- 8G RAM, SATA HDD, "mi" role
All ES nodes have heap size in a half of available RAM and indices.memory.index_buffer_size: 60% and are tuned for maximum performance according to the recommendations in the ES documentation.
Also we have hourly dynamic template for indices for logging pretty heavy nginx logs with the following setting and store only last hour index:
"settings": {
"index": {
"number_of_shards": "2",
"number_of_replicas": "0",
"refresh_interval": "5s"
}
}
Nginx is installed and collecting logs on the same node1 and node2. Bulk requests (5-10MB) are sending with rsyslog-omelasticsearch output module installed on the node1 and node2 through the node2. At the moments of the high traffic nginx requests indexing can't go over 16-17k documents per second so sending rsyslog queue is growing and in stuck. We noticed that LA on the data node2 is quite big (20-22 with 11 cores) at this high traffic moments and is caused by ES java process. Also we tried to redistribute bulk requests through node1 and note2 but it did not help.
Can you please help to investigate bottlenecks and speed up indexing?