我正在为我的项目进行弹性搜索中的一些性能调整,我需要一些帮助来提高弹性搜索索引速度。我使用ES 5.1.1并且我有2个节点设置,其中8个分片用于索引。我有2个节点的服务器,16GB RAM和12CPU为每台服务器分配2.2GHz时钟速度。我需要在1.5小时内索引大约25,000,000份文档,我目前在大约4小时内完成。我已完成以下配置更改以改善索引时间。
我正在使用批量处理器在我的java应用程序中生成文档,并且我使用以下配置来设置批量处理器。
批量操作计数:10000
批量大小(MB):100
并发请求:100
冲洗间隔:30
最初我可以在第一分钟索引356167左右。但随着时间的推移,它会减少,大约1小时后,每分钟大约121280个文档。
如何在整个时间内保持索引率稳定?还有其他方法可以改善表现吗?
答案 0 :(得分:0)
我强烈建议不要更改配置参数,例如translog刷新大小,限制,除非你知道你在做什么(这并不意味着在互联网上阅读一些博客文章: - )
每个服务器尝试一个分片,特别是将批量大小减小到10MB。 100MB * 100并发请求意味着您需要10GB的堆来处理这些(没有做任何其他事情)。我想并非所有文档都被索引,因为你的线程池中被拒绝的任务。
从小处开始,变大,而不是开始大,但对索引没有任何见解。