在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,完全取消