【发布时间】:2017-05-15 22:21:32
【问题描述】:
我们有一个社交类应用,我们开始在生产环境中使用 AWS ElasticcSearch 服务,但我们开始遇到 ES 问题,ES 版本是 2.3。
集群配置为:
- 数据节点:2
- 数据节点类型:m3.medium.elasticsearch
- 专用主实例数:3
- 专用主实例类型:t2.small.elasticsearch。
- 每个数据节点的容量:50GB。
问题是在不到三十分钟的时间里,其中一个节点的空闲存储大小从 9 GB 变为 0 GB,我们不知道这是怎么发生的。
我们有 4 种类型的文档,其中一种是动态类型,我们称之为 Group 类型,因为 Group 的每个文档都可以有 N 个字段代表 Group 的朋友。 像
{
13: [1,2,3,4],
5: [1,3,4],
user_ids: [1,2,3,4,6,7],
id: 1
}
这意味着 ID 为 13 和 5 的用户与 ID 为 1 的 Group 中的一些用户是朋友。
所以这个文档可以根据用户的数量增长。
如果有人遇到过或遇到过同样的问题,或者只是完全了解 Elastic Search 架构,那么他的帮助将非常棒。
指数信息:
curl -XGET 'http://host/_cat/indices?v
health status index pri rep docs.count docs.deleted store.size pri.store.size
green open .kibana-4 1 1 5 0 1.9mb 1017.3kb
green open X 1 1 2259502 29575 57.5gb 28.7gb
green open Y 1 1 113156 0 21.7mb 10.8mb
curl -XGET 'http://host/_cat/nodes?v&h=host,id,ip,rp,hp,d,cpu,v,r,m,n
host id ip rp hp d cpu v r m n
x.x.x.x tIgm x.x.x.x 95 5 5.7gb 0 2.3.2 - m Shatter
x.x.x.x puUF x.x.x.x 95 6 5.7gb 0 2.3.2 - m Justice
x.x.x.x 1qZi x.x.x.x 97 54 17.7gb 7 2.3.2 d - Allatou
x.x.x.x lcty x.x.x.x 97 60 17.7gb 8 2.3.2 d - Amergin
x.x.x.x Nq1H x.x.x.x 5 15 5.7gb 0 2.3.2 - * Arkus
非常感谢!
【问题讨论】:
-
那么你的两个数据节点基本都满了吧?此外,您应该为操作系统提供更多 RAM,因为您似乎将几乎所有 RAM 分配给 ES。
-
是的,它们都已满。我可以在 AWS 中配置的唯一一件事就是更改我们正在使用的实例类型。
-
好吧,您可能需要弄清楚是什么填充了您的节点...哪些客户端进程正在向您的集群发送数据?
-
elasticsearch IRC 中的 @Val 建议我运行 forcemerge 命令,运行需要很长时间吗?因为我在文档中读到索引在合并完成之前一直处于阻塞状态
-
这意味着您有很多相同文档的更新,并且会创建大量已删除的文档,请参阅上面的
docs.deleted计数。运行_forcemerge时,那些已删除的文档会被清除。
标签: amazon-web-services elasticsearch