在elasticsearch中堆内存使用

时间:2014-12-31 23:33:13

标签: elasticsearch heap

目前,我正在开发一个使用elasticsearch 1.4.1的项目。

集群由22个节点组成,其中20个是数据节点,每个节点有16GB作为堆内存。

问题是,当我进行大量查询时,一些节点(2或3)消耗70%的堆内存,而其余节点只占不到10%。

所以我想知道这是因为大多数查询会转到那些2或3个节点吗?

如果没有,我可以进一步获得更好的表现吗?

谢谢!

刚刚更新:

我刚刚运行了这个命令:curl -XGET localhost:9200 / _cat / shards?v,它返回了:

index              shard prirep state       docs    store ip         node
....
mm                 2     r      STARTED  2248969  293.6mb 10.2.4.117 Mark Todd           
mm                 2     p      STARTED  2248969  293.6mb 10.2.4.129 Saint Elmo          
mm                 19    r      STARTED 30172116    3.5gb 10.2.4.126 Fixer               
mm                 19    p      STARTED 30172116    3.5gb 10.2.4.123 Loki  
....

我想知道这里的商店意味着什么?如果它是文件的实际大小,我可以将它们全部加载到内存中吗?

1 个答案:

答案 0 :(得分:0)

这可能是因为该查询的文档匹配以某种方式被殖民化为这两台机器。 也就是说,如果有2000万场比赛,那么800万场比赛可能属于一台机器,800万场比赛来自另一台机器,只有200万场来自18台机器的其余部分。 我猜你也在使用聚合,因为制作了字段数据缓存。