ES:一次分片设计问题导致的故障

news2024/9/29 15:33:04

### 现象:

1. 单节点CPU持续高

 2.写入骤降

3.线程池队列积压,但没有reject

 4.使用方没有记录日志

### 排查

1.ES监控

只能看到相应的结果指标,无法反应出原因。

2.ES日志:大量日志打印相关异常(routate等调用栈)

core.appender.OutputStreamManager.writeToDestination(OutputStreamManager.java:263)
at org.apache.logging.log4j.core.appender.FileManager.writeToDestination

3.查询CPU的使用,GET _nodes/hot_threads

35.3% (176.7ms out of 500ms) cpu usage by thread 'elasticsearch[xxxxx-es-hot2-13][write][T#10]'
     10/10 snapshots sharing following 179 elements
       app//org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.runWithPrimaryShardReference(TransportReplicationAction.java:433)
       app//org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.lambda$doRun$0(TransportReplicationAction.java:374)
       app//org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction$$Lambda$3657/0x0000000800d2f440.accept(Unknown Source)
       app//org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)
       app//org.elasticsearch.index.shard.IndexShard.lambda$wrapPrimaryOperationPermitListener$14(IndexShard.java:2588)
       app//org.elasticsearch.index.shard.IndexShard$$Lambda$3659/0x0000000800d2fc40.accept(Unknown Source)
       app//org.elasticsearch.action.ActionListener$1.onResponse(ActionListener.java:61)
       app//org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:273)
       app//org.elasticsearch.index.shard.IndexShardOperationPermits.acquire(IndexShardOperationPermits.java:240)
       app//org.elasticsearch.index.shard.IndexShard.acquirePrimaryOperationPermit(IndexShard.java:2563)
       app//org.elasticsearch.action.support.replication.TransportReplicationAction.acquirePrimaryOperationPermit(TransportReplicationAction.java:996)
       app//org.elasticsearch.action.support.replication.TransportReplicationAction$AsyncPrimaryAction.doRun(TransportReplicationAction.java:370)





....



35.0% (174.7ms out of 500ms) cpu usage by thread 'elasticsearch[xxxxxx-es-hot2-13][write][T#5]'
     5/10 snapshots sharing following 216 elements
       app//org.apache.logging.log4j.core.layout.TextEncoderHelper.encodeChunkedText(TextEncoderHelper.java:146)
       app//org.apache.logging.log4j.core.layout.TextEncoderHelper.encodeText(TextEncoderHelper.java:58)
       app//org.apache.logging.log4j.core.layout.StringBuilderEncoder.encode(StringBuilderEncoder.java:68)
       app//org.apache.logging.log4j.core.layout.StringBuilderEncoder.encode(StringBuilderEncoder.java:32)
       app//org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:220)
       app//org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:58)
       app//org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:177)
       app//org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:170)
       app//org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:161)
       app//org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:156)
       app//org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:129)
       app//org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:120)
       app//org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:84)

“CPU高” 和写入、日志打印相关,无法获取更详细的信息,且由于瞬时抓取,也并不非常精准。

4.火焰图

大致确认和日志相关。

5. 根据以往经验,可能和单分片doc数量限制相关

6.继续搜索日志,确认是单分片超过限制

2023-08-21 02:31:10,215 elasticsearch[xxxx-es-hot2-13][write][T#1] ERROR Recovering from StringBuilderEncoder.encode('[2023-08-21T02:31:10,201][DEBUG][o.e.a.b.TransportShardBulkAction] [xxxxx-es-hot2-13][cp0001001_2023_08][0] failed to execute bulk item (index) index {[xxxxx001_2023_08][event_xxx][xxxxxxxxx], source[{"id":"9f61ef55-0334-4363-9bcf-xxxx","rowkey":"xxxxxxd83ce110","column01":"1007922682","datachangelasttime":1692584511322,"column19":"xxx","column20":"80,295",xxx.......}]}
2023-08-21T02:31:10.237858677Z java.lang.IllegalArgumentException: number of documents in the index cannot exceed 2147483519

### 处理

删除索引重建,并设计好分片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/906311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker安装Oracle11gR2

文章目录 目录 文章目录 前言 一、前期准备 二、具体配置 2.1 配置oracle容器 2.2 配置navicat连接 总结 前言 使用docker模拟oracle环境 一、前期准备 安装好docker #拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g #启动 docker run -…

书单背景图怎么设置,怎么把书单转成视频?

书单是一种记录阅读内容的方式,它可以让我们更好地跟踪我们的阅读进度并分享我们的阅读心得。有时候你想要将自己的书单转化为视频格式来与更多人分享,但你不知道如何做到这一点。在本文中,我将向你介绍如何设置书单背景图并将书单转成视频。…

操作系统-笔记-第二章-锁

目录 二、第二章——【锁】 1、互斥锁​编辑 2、信号量机制 (1)信号量机制——整形信号量 (2)信号量机制——记录信号量 (3)总结(重点——记录信号量) 3、信号量机制——实现…

数仓分类及基本概念

【数仓建设系列之二】数仓分类及基本概念 随着移动互联网的快速发展,数据的生产也成几何式的增长,传统意义上的数据库已经无法满足日益增长的需求,建设一个好的数仓,不仅可以为企业的决策和发展带来具有价值的指导意义&#xff0c…

Python自动化测试代理程序可用性

在网络爬虫和数据采集过程中,代理服务器扮演着重要的角色。然而,代理服务器的可用性经常会受到影响,给爬虫工作带来一定的挑战。本文将介绍如何使用Python自动化测试代理程序的可用性,为您提供具备实际操作价值的解决方案。让我们…

同为科技(TOWE)65W快充插排插线板,快人一步,乐享生活

在现代生活中,手机、平板、笔记本电脑等电子设备已成为人们生活中不可或缺的工具。然而,诸多电子产品在充电方面也出现了许多问题,比如充电过程慢、插口不够用、充电时温度过高等。随着随着技术的更新迭代,满足高功率、多接口且多…

机器学习与模式识别2:KNN(k近邻)

一、简介 首先,随机选择K个对象,而且所选择的每个对象都代表一个组的初始均值或初始的组中心值,对剩余的每个对象,根据其与各个组初始均值的距离,将他们分配各最近的(最相似)小组,然…

Redis原理剖析

一、Redis简介 Redis是一个开源的,基于网络的,高性能的key-value数据库,弥补了memcached这类key-value存储的不足,在部分场合可以对关系数据库起到很好的补充作用,满足实时的高并发需求。 Redis跟memcached类似&#…

会声会影和Pr哪个好?

会声会影是加拿大Corel公司制作的一款功能强大的视频编辑软件,正版英文名:Corel VideoStudio,具有图像抓取和编修功能,可以抓取,转换MV、DV、V8、TV和实时记录抓取画面文件,并提供有超过100 多种的编制功能…

小研究 - Android 字节码动态分析分布式框架(四)

安卓平台是个多进程同时运行的系统,它还缺少合适的动态分析接口。因此,在安卓平台上进行全面的动态分析具有高难度和挑战性。已有的研究大多是针对一些安全问题的分析方法或者框架,无法为实现更加灵活、通用的动态分析工具的开发提供支持。此…

水电站防雷工程综合解决方案

水电站防雷工程是指为了保护水电站的建筑物、设备和人员免受雷电危害而采取的一系列技术措施。水电站防雷工程的主要内容包括接地装置、引下线、接闪器、等电位连接、屏蔽、综合布线和电涌保护器等分项工程。水电站防雷工程的施工和质量验收应遵循国家标准《建筑物防雷工程施工…

算法leetcode|72. 编辑距离(rust重拳出击)

文章目录 72. 编辑距离:样例 1:样例 2:提示: 分析:题解:rust:二维数组(易懂)滚动数组(更加优化的内存空间) go:c:python&a…

vue引入 import { decode } from ‘js-base64‘

vue引入 import { decode } from ‘js-base64’ package.json 里面加上 需要用的地方 加上 import { decode } from ‘js-base64’ let params decode(loook)最后 npm install

【数据分享】2006-2021年我国城市级别的节约用水相关指标(免费获取\20多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况,在之前的文章中,我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国城市级别的市政设施水平相关指标、2006-2021年我国城市级别的各类建设用地面积数…

@Accessors和@Builder区别

目录 Accessors和Builder Accessors(chaintrue)BuilderAccessors和Builder的区别Accessors和Builder使用的坑详细看看Accessors注解 Accessors的源码Accessors属性说明 fluent属性chain属性makeFinal属性prefix属性 Accessors和Builder Accessors(chaintrue) 就是new一个对象…

c语言每日一练(10)

前言:每日一练系列,每一期都包含5道选择题,2道编程题,博主会尽可能详细地进行讲解,令初学者也能听的清晰。每日一练系列会持续更新,暑假时三天之内必有一更,到了开学之后,将看学业情…

计算机农业类重点SCIE征稿中

SciencePub学术 刊源推荐: 计算机农业类重点SCIE征稿中!信息如下,录满为止: 一、期刊概况: 计算机农业类重点SCIE 【期刊简介】IF:3.0-3.5,JCR2区,中科院4区; 【版面类型】正刊&a…

传统车间VS数字化车间,以MES为核心打造智能工厂!

传统车间的生产制造场景往往存在着信息沟通不顺畅,传达不到位的情况,导致生产效率受影响。 其次车间数据的“缓存期”偏短,无法进行长时间的复盘总结,从而难以发现企业管理问题,无法持续改善。 随着大数据、工业互联…

Gate相关记录

1 如何在virtual box里面创建共享文件夹 如果没有设置密码,密码就是默认的virtual 需要现在设置-共享文件夹-设置windows的共享路径,然后再执行下面的命令,Gateshare是我自己建的在windows里面的共享文件夹名字 sudo mount -t vboxsf GateS…

中期国际:外汇新手必读:常见的外汇交易误区与避免方法

对于外汇交易的新手来说,了解和避免常见的交易误区是非常重要的。在本文中,我们将带您一起探讨一些常见的误区,并提供一些实用的避免方法,帮助您在外汇市场上取得更好的交易结果。 误区一:盲目跟单 很多新手会犯一个错…