前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES版本升级报错之CheckClusterState4Scalelnerr(FailedOperation.ErrorClusterState)

ES版本升级报错之CheckClusterState4Scalelnerr(FailedOperation.ErrorClusterState)

原创
作者头像
空洞的盒子
修改2022-10-27 09:42:56
7891
修改2022-10-27 09:42:56
举报
文章被收录于专栏:JD的专栏JD的专栏

问题背景:

用户升级集群版本报错检查集群状态错误。

企业微信截图_16661540206406.png
企业微信截图_16661540206406.png

排查集群日志发现如下信息

o.e.x.m.c.n.NodeStatsCollector collector node_stats timed out when collecting data

o.e.x.m.c.i.IndexStatsCollector collector index-stats timed out when collecting data

o.e.x.m.c.i.IndexRecoveryCollector collector index_recovery timed out when collecting data

企业微信截图_cc76c9f0-03cb-46f5-b1c3-2c554b5fe289.png
企业微信截图_cc76c9f0-03cb-46f5-b1c3-2c554b5fe289.png

问题原因:

用户在执行GET /_cat/indices在3s内也接收不到数据返回。排查日志发现集群获取nodes-stats状态超时,获取index-stats状态超时,由于集群状态检测超时导致版本升级自检无法通过。排查发现集群没有配置专用主节点,由数据节点承担主节点角色。该数据节点磁盘类型为高性能云盘。ES版本升级需要调用GET _nodes/stats接口来验证集群与节点的状态。

通过火焰图分析:

企业微信截图_ca4de701-0d23-4f6e-b4ca-83d3471667f3.png
企业微信截图_ca4de701-0d23-4f6e-b4ca-83d3471667f3.png

时间主要消耗在读取translog文件的阶段。

GET _nodes/stats接口主要瓶颈在translog 的getLastModifyTime,每次会去读盘获取所有分片信息,集群索引较多,导致性能比较低。

解决办法:

对于存量索引遇到类似问题的话执行以下语句, 可以清理过多的translog。

代码语言:javascript
复制
POST */_flush?force

在6.x版本中需要调整一下索引的translog文件的生存时间,再执行flush就可以把文件数量降下来了。

对于新建的索引加下这个配置,在index settings中添加如下配置,否则后期无法清理清理过多的translog。

{

代码语言:javascript
复制
{"index" : {
         "translog" : {
            "flush_threshold_size" : "64mb",
            "retention" : {
               "size" : "64mb",
               "age" : "30s"
            }
         }
      }
}

通过_flush降低translog数量不生效,调整了下translog文件的生存时间再执行flush就可以把文件数量降下来了。

分析:

6.x版本默认12个小时,7.x之后该参数默认值较小。

企业微信截图_16661633104163.png
企业微信截图_16661633104163.png

该类问题多发于6.x版本,主节点磁盘类型为高性能云盘(HDD)的es集群中。

官方文档参考:https://www.elastic.co/guide/en/elasticsearch/reference/6.8/index-modules-translog.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档