我是ElasticSearch的新手,但在生产站点上已经使用了ElasticSearch。
我在一个EC2实例中安装了ElasticSearch。 在使用ElasticSearch几个月之后,现在当前实例的CPU在高峰时间已经达到100%,并且查询变得如此缓慢。 但在非高峰期,CPU使用率只有10%。
我知道我可以使用自动缩放来旋转新的实例,如果某个实例处于某个较高的CPU使用率的情况下。 我已经在我的web服务器中使用了AWS自动扩展和Elastic Load Balancer的帮助。 但是,我可以使用ElasticSearch来做到这一点吗? 我从哪说起呢?
这在StackOverflow上得到了很好的回答
完整的答案值得一读,但这里是关键点:
也就是说,我实际上已经把我的ES服务器放在了Auto-Scale之后。 但我已经设置始终保持相同数量的服务器; 只有在那里才能确保手头上有两台服务器,而不是放大或缩小。
我的build议? 设置两个t2.small或t2.micro服务器作为您的服务器而不是一个服务器。 都一直在运行。 然后,当你知道一段时间(例如一个星期左右)的stream量将会很高时,停止一台服务器,调整它的实例types(你可以在不改变服务器的任何其他方面的情况下做到这一点),然后再次启动服务器。 如果按顺序执行此操作,并确保群集返回到绿色状态,则可以升级第二台服务器,并且用户不应该有任何服务中断。
TLDR: 不build议ElasticSearch服务器基于负载自动扩展。 移动到一对微小的实例(位于负载平衡器后面),如果您可以预料负载,则根据需要逐个升级每个服务器。