elasticsearch,Twitter,elasticsearch" /> elasticsearch,Twitter,elasticsearch" />

Twitter 弹性搜索&x2B;推特河-我需要多少台机器?

Twitter 弹性搜索&x2B;推特河-我需要多少台机器?,twitter,elasticsearch,Twitter,elasticsearch,我在twitter river上运行弹性搜索服务器,从twitter公共流下载数据。最近,我添加了大约40条经过过滤的溪流,这些溪流跟踪了与我的体验相关的40个不同关键字。然而,这已经导致服务器变得相当慢。当我在服务器上执行top时,它总是显示>100%的CPU消耗 我的问题是,对于这样一个系统,我需要多少台机器。每天下载的数据约为几GB。目前,我正在一台8核机器上运行它(Intel(R)Xeon(R)CPU E31280@3.50GHz),内存为8GB 另外,现在我有大约437个未分配的碎片,

我在twitter river上运行弹性搜索服务器,从twitter公共流下载数据。最近,我添加了大约40条经过过滤的溪流,这些溪流跟踪了与我的体验相关的40个不同关键字。然而,这已经导致服务器变得相当慢。当我在服务器上执行top时,它总是显示>100%的CPU消耗

我的问题是,对于这样一个系统,我需要多少台机器。每天下载的数据约为几GB。目前,我正在一台8核机器上运行它(Intel(R)Xeon(R)CPU E31280@3.50GHz),内存为8GB


另外,现在我有大约437个未分配的碎片,总共约800个。我已经多次尝试重新启动服务器,但它们仍然没有得到分配。

假设elasticsearch配置为使用超过您列出的默认内存机器规格,则应该足够了(除非您的磁盘可能非常慢?)-我可以用更少的内核和内存做类似的事情,但使用SSD存储数据,数据将在没有副本的情况下存储到单个碎片索引(此时不是生产数据,我可以丢失)

您是否尝试过将数据索引到没有副本的单个分片索引或5分片索引中?不确定为什么单个节点上有800个碎片,除非您计划将集群扩展到多台机器,或者有其他必要的要求,比如必须有多个索引。那个节点上有多少个索引


此外,您是否可以将40个关键字放在一条经过过滤的溪流中?如果所有数据都将进入一个索引,该索引可能会减少溪流的cpu使用,并且应该收集相同的数据。

我认为,为了获得最佳性能和可靠性,应该有:

  • a每个索引至少有一个副本
  • 一些碎片能够在几个物理服务器上使用单个DB
默认配置5个碎片/1个副本似乎相当不错,考虑到应该在几个服务器上使用的重载系统索引*每个索引的碎片数*(副本+1)不应小于DB主机的服务器数


单个节点中的碎片总数肯定不会超过几十个,因此考虑到每个关键字的数量,最好不要对每个关键字使用单独的索引。

是的,删除索引并为所有4o个关键字创建一个索引就成功了。