目前,我正在开发一个使用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
....
我想知道这里的商店意味着什么?如果它是文件的实际大小,我可以将它们全部加载到内存中吗?
答案 0 :(得分:0)
这可能是因为该查询的文档匹配以某种方式被殖民化为这两台机器。 也就是说,如果有2000万场比赛,那么800万场比赛可能属于一台机器,800万场比赛来自另一台机器,只有200万场来自18台机器的其余部分。 我猜你也在使用聚合,因为制作了字段数据缓存。