a. 刚入职几天,主要负责维护公司的 ES 集群,头大。。。
b. 简单整理了集群的相关情况,见下文,烦请有相关经验的大佬,帮忙看看优化方法合理吗,有没有更好的建议,非常感谢。
c. 自己感觉集群资源已经非常充足了,但不合理的节点配置和不完善的索引管理策略 [严重] 影响了整体的性能
d. 自己对 ES 维护优化经验不多,欢迎大佬指点一二。
a. 版本信息:CentOS7, ES 7.3.0, 单机多实例配置
b. 数据方面:20+ indices,650+ shards,80 亿+ doc
c. 节点方面:1 master,36 data + ingest + coordinating , 1 ingest + coordinating
e. 资源方面:具体如下图,每个数据节点挂载了两块 1.5T 的机械磁盘,并都配在了 path.data 下。
a. 每个索引 32 个分片,1 个副本分片
b. 每月生成一个新索引,按月滚动
c. 单个索引有 500G ~ 800G 数据量
d. 索引中使用了 [父子文档]
e. 单个分片中有些超过了 26G
f. 从 2019.11 ~ 2020.5 数据增长来看,每天大概增长 20G 左右
a. 没有划分节点属性,也就没有做冷热数据分离
b. 索引生命周期管理不完善,仅仅对超过 30 天的索引 forcemerge 和超过 90 天的副本分片置为 0,freeze 索引
a. 数据节点有时会离线 (猜测是不合理的查询耗尽了堆空间)
b. 写入数据慢,rabbitmq 队列数据堆积 (还没整明白具体的情况)
c. 集群恢复耗时长 (应该是索引没有划分优先级)
d. 下图是 kibana 24h 的数据,索引包含了 kibana 的一些索引和分片,上述叙述中去掉了该部分。
a. 根据主机资源情况划分合理的节点角色,节点属性,提高集群的资源利用性,可用性,健壮性。
b. 冷热数据分离,hot 节点高配置低存储,warm 节点低配置大存储。
c. 热数据节点单主机单实例,冷数据节点单主机多实例。
d. 索引生命周期的管理,包括减少主分片数,合适的模板,索引 Rollover,索引 Allocation 等。
e. 健全 ES 主机资源监控告警,JVM 重点指标监控告警。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.