I tested some heavy injections with tuning and those under helped. In my test case, injection rate was higher than yours and used high-end servers. You may need to find your own numbers by testing as Christian suggested.
more core, memory and using SSD.
increased refresh interval; I used 60 sec.
maintained index size: < 30GB per shard
tuned index.translog.flush_threshold_size: I used 10G
tuned bulk size (buffering before sending out to Elasticsearch): ~30MB
To get these numbers: I pushed injection rate higher until I got rejections (429, Too many requests)
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.