我正在使用AWS提供的弹性搜索。
我的网站上有一个注册页面,每次注册都有;新用户的新索引被创建(稍后由他的工作组使用),这意味着索引的数量在不断增长,(现在它达到了大约4~5k)。
我的问题是:索引数量是否有性能限制?在每个新用户中动态创建新索引是否安全(性能方面)?
答案 0 :(得分:3)
如果我没有弄错,唯一的限制是服务器的磁盘空间,但如果你的索引增长太快,你应该考虑拥有更多的副本服务器。我建议您阅读此页面:Indexing Performance Tips
答案 1 :(得分:1)
注意:我还没有使用过AWS-Elasticsearch,所以这个答案可能会有所不同,因为他们已经开始使用Elsticsearch的开放发行版并分支了main分支。但是许多原则应该是相同的。另外,这个问题没有明确的答案,取决于各种因素,但我希望这个答案对思考过程有帮助。
因素之一是每个索引的分片和副本数,因为这将影响每个节点的分片总数。每个分片都会消耗一些内存,因此您必须限制每个节点的分片数量,以使它们不超过建议的最大30GB堆空间。根据{{3}} 600 to 1000
应该是合理的,您可以据此扩展集群。
此外,您还必须监视文件描述符的数量,并确保不会为节点操作造成任何瓶颈。
HTH!
答案 2 :(得分:0)
索引本身没有限制,但是分片却没有限制,每GB堆的建议分片数量为20(JVM堆-您可以在kibana堆栈监视选项卡上检查),这意味着如果您有5GB的JVM堆,则建议数量是100。
请记住,1个索引可以占用1到x个分片(1个主节点和x个辅助节点),通常人们有1个主节点和1个辅助节点,如果是这种情况,那么您将能够使用5GB创建50个索引堆