我被要求将3 * 10 ^ 12个以上的文档索引到弹性集群中,该集群有50个节点和40个核心,以及128G内存。 我可以使用python语言(多线程)中的_bulk来做到这一点,但一个节点每秒的记录数不能超过50,000。
所以我想知道:
答案 0 :(得分:2)
根据您的问题:
平衡您的资源。为了获得最佳性能,Elasticsearch和您的应用程序都需要尝试以服务器利用率的60-80%运行。您可以通过在python或Unix xargs
+ Elasticsearch _bulk
API中使用多重处理,从应用程序一侧实现这种利用。
根据我的经验,Elasticsearch的性能几乎呈线性增长,达到99%。如果您对群集/索引分片设置的设计正确无误。每个节点可以使用50,000 records/second
。
以下一些有用的链接将对您有所帮助:
https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-performance.html
https://www.elastic.co/guide/en/elasticsearch/reference/5.6/modules-threadpool.html(用于在工作负载期间监视集群)
建议进行性能测试,然后在工作负载期间密切监视群集+应用程序服务器。 (我使用的是unix htop + newrelic组合的:D)。