我在爲我的項目進行彈性搜索時做了一些性能調整,我需要一些幫助來提高彈性搜索索引速度。我正在使用ES 5.1.1,並且我有2個節點設置了索引的8個碎片。我有2個節點的服務器,每個服務器配有16GB RAM和12個CPU,時鐘速度爲2.2GHz。我需要在1.5小時內索引大約25,000,000份文件,目前我正在大約4小時內完成這項工作。我已經完成了以下配置更改以提高索引時間。Elasticsearch索引速度隨着時間而降低
- 設置 'indices.store.throttle.type' 爲 'none'
- 設置 'refresh_interval' 到 '-1'
- 增加 'translog.flush_threshold_size' 到1GB
- 設置 'number_of_replicas'爲 '0'
- 使用8個碎片爲索引
- 設置VM選項-Xms8g -Xmx8g(在RAM大小的一半)
我正在使用批量處理器在我的Java應用程序中生成文檔,並且正在使用以下配置來設置批量處理器。
批量操作數:10000
批量大小在MB:100個
併發請求:100
刷新間隔:30
起初,我可繞356167指數在第一分鐘。但隨着時間的推移,它下降,約1小時後,其每分鐘121280文件。
如何在一段時間內保持索引率穩定?有沒有其他方法可以提高性能?
嗨@alr,非常感謝您對此的看法。我同意你的觀點。其實我從一個分片和默認配置開始。通過使用上述配置,我可以大大縮短時間。此外,我可以通過在早期使用自定義ID的情況下使用自動生成的ID來節省大量時間。我使用上述配置多次測試索引,但沒有得到EsRejectedExecutionException。所以這並不意味着我的所有對象都被索引了嗎?再次感謝你。 –