加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

PB 级大规模 Elasticsearch 集群运维与调优落地

发布时间:2021-05-31 09:28:07 所属栏目:创业 来源:互联网
导读:配景 由于游戏营业自己的日记数据量很是大(写入峰值在 100w qps),在处事客户的几个月中,踩了不少坑,颠末数次优化与调解,把客户的 ES 集群调解得较量不变,避

由于游戏营业自己的日记数据量很是大(写入峰值在 100w qps),在处事客户的几个月中,踩了不少坑,颠末数次优化与调解,把客户的 ES 集群调解得较量不变,停止了在营业岑岭时客户集群的读写非常,而且低落了客户的资金本钱和行使本钱。

场景 1:与客户的首次交手

办理方案架构师 A: bellen, XX 要上线一款新游戏,日记存储抉择用 ELK 架构,他们抉择在 XX 云和我们之间二选一,我们起首去他们公司和他们交换一下,争取拿下!

bellen: 好,随时有空!

和架构师一路前去该公司,跟认真底层组件的运维部分的认真人举办雷同。

XX 公司运维老大:不要讲你们的 PPT 了,先汇报我你们能给我们带来什么!

bellen:呃,我们有许多上风,好比可以机动扩缩容集群,还可以一键滑腻进级集群版本,而且提供有跨机房容灾的集群从而实现高可用……

XX 公司运维老大:你说的这些此外厂商也有,我就问一个题目,我们此刻要存储一年的游戏日记,不能删除数据,天天就按 10TB 的数据量算,一年也得有个 3PB 多的数据,这么大的数目,都放在 SSD 云盘上,本钱太高了。你们有什么方案既可以或许满意我们存储这么大数据量的需求,同时可以或许低落我们的本钱吗?

bellen: 我们自己提供的有冷热模式的集群,热节点回收 SSD 云硬盘,冷节点回收 SATA 盘,回收 ES 自带的 ILM 索引生命周期打点成果,按期把较老的索引从热节点迁徙到冷节点上,这样从整体上可以低落本钱。其它,也可以按期把更老的索引通过 snapshot 快照备份到 COS 工具存储中,然后删除索引,这样本钱就更低了。

XX 公司运维老大:存储到 COS 就是冷存储呗,我们必要查询 COS 里的数据时,还得再把数据规复到 ES 里?这样不可,速率太慢了,营业等不了那么长时刻,我们的数据不能删除,只能放在 ES 里!你们能不能给我们提供一个 API, 让老的索引数据固然存储在 COS 里,可是通过这个 API 依然可以查询到数据,而不是先规复到 ES, 再举办查询?

bellen:呃,这个可以做,可是必要时刻。是否可以回收 hadoop on COS 的架构,把存量的老的索引数据通过器材导入到 COS,通过 hive 去查询,这样本钱会很是低,数据依然是随时可查的。

XX 公司运维老大:那不可,我们只想用成熟的 ELK 架构来做,再增进 hadoop 那一套对象,我们没那么多人力搞这个事!

bellen: 好吧,那可以先搞一个集群测试起来,看看机能怎么样。关于存量数据放在 COS 里可是也必要查询的题目,我们可以先拟定方案,尽快实验起来。

XX 公司运维老大:行吧,我们此刻按天天 10TB 数据量预估,先购置一个集群,能撑 3 个月的数据量就行,能给一个集群设置的提议吗?

bellen: 今朝支持单节点磁盘最大 6TB, cpu 和内存的话可以放到 8 核 32G 单节点,单节点跑 2w qps 写入没有题目,后头也可以举办纵向扩容和横向扩容。

XX 公司运维老大:好,我们先测试一下。

场景 2:集群扛不住压力了

N 天后,架构师 A 直接在微信群里反馈:bellen, 客户反馈这边的 ES 集群机能不可啊,行使 logstash 斲丧 kafka 中的日记数据,跑了快一天了数据还没追平,这是线上的集群,贫困紧张看一下吧。

我一看,一脸懵, 什么时辰已经上线了啊,不是还在测试中吗?

XX 公司运维 B: 我们购置了 8 核 32G*10 节点的集群,单节点磁盘 6TB, 索引配置的 10 分片 1 副本,此刻行使 logstash 斲丧 kafka 中的数据,一向没有追平,kafka 中尚有很大都据积存,感受是 ES 的写入机能有题目。

随后我当即查察了集群的监控数据,发明 cpu 和 load 都很高,jvm 堆内存行使率均匀都到了 90%,节点 jvm gc 很是频仍了,部门节点由于相应迟钝,不断的离线又上线。

颠末雷同,发明用户的行使姿势是 filebeat+kafka+logstash+elasticsearch, 当前已经在 kafka 中存储了有 10 天的日记数据,启动了 20 台 logstash 举办斲丧,logstash 的 batch size 也调到了 5000,机能瓶颈是在 ES 这一侧。客户 8 核 32G*10 节点的集群,理论上跑 10w qps 没有题目,可是 logstash 斲丧积存的数据往 ES 写入的 qps 远不止 10w,以是是 ES 扛不住写入压力了,只能对 ES 集群举办扩容,为了加速存量数据的斲丧速率,先纵向扩容单节点的设置到 32 核 64GB,之后再横向增进节点,以担保 ES 集群可以或许最大支持 100w qps 的写入(这里必要留意的是,增进节点后索引的分片数目也必要调解)。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读