在Elasticsearch的早期版本中,过度的合并将会拖慢集群,以至于索引和搜索请求慢得无法接收,或者是所有得节点都无法响应,这都是因为合并时对I/O产生了压力,导致新分段得写入很缓慢。此外,由于I/O得等待,CPU得负载也会很高。
因此,Elasticsearch使用了存储限流,来限制合并可以使用得I/O吞吐量。默认情况下有一个节点层级得设置,称为:indices.store.throttle.max_bytes_per_sec。
这个限制在很多应用中对于稳定性很好,如果你有高速得机器和许多所有,即使有足够得CPU和I/O来执行合并,但是由于限流得原因合并还是无法跟上节奏。此时,Elasticsearch只使用单个线程来进行内部索引,将其速度放缓,使得合并可以跟得上。
如果你的机器使用SSD硬盘得节点,通常可以将这个限流增大到100~200MB。
如何修改:
当然也可以将indices.store.throttle.type设置为none,完全取消