That is the right setting to disable store throttling, but even without
throttling writes MB/sec for merges, the merges can still fall behind,
leading to index throttling. ES does this to protect the health of the
index because too many segments will cause all sorts of trouble.
What IO system is your index on? If you're on spinning disks you could try
setting index.merge.scheduler.max_thread_count to 1 since spinning disks
struggle with concurrent merges. See
Also, do you leave enough (at least 50%) free RAM to the OS for buffering
pages? This can make a difference with spinning disks since the OS has
more freedom to do read-ahead on the files being merged...
On Fri, Mar 13, 2015 at 6:09 AM, Michael McCandless mike@elastic.co wrote:
That is the right setting to disable store throttling, but even without throttling writes MB/sec for merges, the merges can still fall behind, leading to index throttling. ES does this to protect the health of the index because too many segments will cause all sorts of trouble.
What IO system is your index on? If you're on spinning disks you could try setting index.merge.scheduler.max_thread_count to 1 since spinning disks struggle with concurrent merges. See Merge | Elasticsearch Guide [8.11] | Elastic
Also, do you leave enough (at least 50%) free RAM to the OS for buffering pages? This can make a difference with spinning disks since the OS has more freedom to do read-ahead on the files being merged...
The index is on an SSD (EC2 m3.large). I'll look into what else is
going on, had just noticed a few of those log entries, and thought
setting indices.store.throttle.type: none might be a quick fix
Hi Erik,
have you resolved this issue somehow?
We have same problem with ES 1.6.0 and using SSDs but still throttling happening (which brings to big ratio of deleted docs)
have you understood where this maxNumMerges comes from?
thanks in advance
You should disable store throttling when using SSDs: the default is horribly low (20 MB/sec) and very easily leads to merging falling behind, and then index throttling, under heavy indexing.
In ES 2.0 Lucene has switched to an adaptive IO throttle that sets itself according to merge backlog ...
actually we already disabled it with indices.store.throttle.type: none
still I see in HQ plugin that the rate of merges is around 8MB/s which is very low imho
we also increased index.merge.policy.reclaim_deletes_weight: 3
I had this problem, I am using elasticsearch 1.6.0 , and indices.store.throttle.type: none,index.refresh_interval: 30s, index.translog.flush_threshold_size: 1gb, indices.memory.index_buffer_size: 20%, index.merge.scheduler.max_thread_count: 1. Is there some thing i could do to stop this, which can improve my indexing speed.
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.