elasticsearch OOM
elasticsearch OOM
一次 elasticsearch挂掉,查看日志显示是 java.lang.OutOfMemoryError ,并且报错是由 netty 报出来的。netty 是节点间或 外部对 ES 集群的通信组件;
[2022-01-21T11:17:29,031][ERROR][o.e.b.ElasticsearchUncaughtExceptionHandler] [web8.es0] fatal error in thread [Thread-322], exiting
java.lang.OutOfMemoryError: Java heap spaceat java.util.Arrays.copyOf(Arrays.java:3332) ~[?:1.8.0_131]at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) ~[?:1.8.0_131]at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) ~[?:1.8.0_131]at java.lang.StringBuilder.append(StringBuilder.java:136) ~[?:1.8.0_131]at org.apache.logging.log4j.core.pattern.LineSeparatorPatternConverter.format(LineSeparatorPatternConverter.java:66) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:38) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.layout.PatternLayout$PatternSerializer.toSerializable(PatternLayout.java:333) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.layout.PatternLayout.toText(PatternLayout.java:232) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:217) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:57) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:177) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:170) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:161) ~[log4j-core-2.8.2.jar:2.8.2]at org.apache.logging.log4j.core.appender.RollingFileAppender.append(RollingFileAppender.java:268) ~[log4j-core-2.8.2.jar:2.8.2]at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926)at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:134)at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:644)at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:544)at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:498)at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:458)at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)at java.lang.Thread.run(Thread.java:748)
[2022-01-21T11:17:29,031][ERROR][o.e.t.n.Netty4Utils ] fatal error on the network layerat org.elasticsearch.transport.netty4.Netty4Utils.maybeDie(Netty4Utils.java:179)at org.elasticsearch.xpack.security.transport.netty4.SecurityNetty4HttpServerTransport.exceptionCaught(SecurityNetty4HttpServerTransport.java:61)at org.elasticsearch.http.netty4.Netty4HttpRequestHandler.exceptionCaught(Netty4HttpRequestHandler.java:82)at io.netty.channel.AbstractChannelHandlerContext.invokeExceptionCaught(AbstractChannelHandlerContext.java:285)at io.netty.channel.AbstractChannelHandlerContext.notifyHandlerException(AbstractChannelHandlerContext.java:850)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:364)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)at org.elasticsearch.http.netty4.pipelining.HttpPipeliningHandler.channelRead(HttpPipeliningHandler.java:63)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)at io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
查看 {cluster}_access.log 查看有大量 bulk 日志,并且是 写的index 是不存在,因为 action.auto_create_index: false 禁止自动创建 index。
使用 PUT index 命令,创建那个不存在的 index, 然后ES 恢复正常;
后记:
不清楚这里的逻辑, 给一个不存在的index 写数据啥会 OOM, 还有就是这块的逻辑看看有优化的空间?如果发现自动创建 index 关闭,并且没有这个index 的话,直接返回,做到轻量级处理。
elasticsearch OOM相关推荐
- Elasticsearch OOM(内存溢出)
首先,说明笔者的机器环境(不结合环境谈解决方案都是耍流氓): cpu 32核,内存128G,非固态硬盘:RAID0 (4T * 6),单节点,数据量在700G到1800G,索引15亿~21亿.敖丙大人 ...
- Elasticsearch大数据量写入调优和原理解析
前言 千万.亿级别数据批量写入ES的调优和原理解析 Elasticsearch version (bin/elasticsearch --version): 7.8 Plugins installed ...
- 互联网摸鱼日报(2022-10-20)
互联网摸鱼日报(2022-10-20) InfoQ 热门话题 81% 的 IT 团队被公司高层指示要减少或停止云支出 编程神器Copilot逐字抄袭他人代码?GitHub 回应:相似,但不同- 开发者 ...
- Elasticsearch内存分配设置详解
Elasticsearch默认安装后设置的内存是1GB,对于任何一个现实业务来说,这个设置都太小了.如果你正在使用这个默认堆内存配置,你的集群配置可能会很快发生问题. 这里有两种方式修改Elast ...
- 腾讯Elasticsearch海量规模背后的内核优化剖析
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:黄华,腾讯 TEG 云架构平台部研发工程师 背景 Elast ...
- Elasticsearch性能优化实战指南
点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 0.背景 在当今世界,各行各业每天都有海量数据产生,为了从这些海量数据中获取想要的分析结果,需 ...
- 58同城 Elasticsearch 应用及平台建设实践
分享嘉宾:于伯伟 58同城 高级架构师 编辑整理:陈树昌 内容来源:DataFunTalk 导读:Elasticsearch是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三 ...
- 滴滴千万级ElasticSearch平台发展之路!
来自:滴滴技术 导读:滴滴 ElasticSearch 团队经过 7 个月的奋斗,将维护国内的 30 多个 ES 集群,2000 多个 ES 节点,4PB 的数据,从 2.3.3 跨大版本无缝升级到 ...
- 滴滴ElasticSearch平台跨版本升级以及平台重构之路
来自:滴滴技术 导读:滴滴 ElasticSearch 团队经过 7 个月的奋斗,将维护国内的 30 多个 ES 集群,2000 多个 ES 节点,4PB 的数据,从 2.3.3 跨大版本无缝升级到 ...
最新文章
- Struts2自定义拦截器实例—登陆权限验证
- WP评论系统更换小结(转)
- java applet退出功能_java-如何使用内置在applet中的Button在浏览器中停止applet?
- Python3 字符串拼接
- 文献学习(part52)--基于泛岭估计对岭估计过度压缩的改进方法
- 如何用 TypeScript 代码区分一个 button 动作是由键盘还是鼠标触发的
- 成功驱动HD4600-Clover引导
- SSL 1624——小萨的烦恼【最短路】【枚举】
- 在Hadoop上安装HBase
- 利用函数重载编写函数max_彻底理清重载函数匹配
- matlab 编程——一些细节、常犯错误的汇总
- Ambari HDP 完整安装手册
- 【需求】如何编写高质量“软件需求说明书”(转)
- 用matlab辨识系统,Matlab系统辨识工具箱
- XML数据结构 SAX 解析
- flutter 的像素尺寸
- 星浩资本-以流程为中心
- c/c++静态变量和静态函数
- (学习笔记)JAVA开发需要掌握哪些技术?
- 【广州华锐互动】VR数字虚拟展厅为企业提升品牌形象和知名度
热门文章
- svpwm的matlab仿真实现
- 怎么有的帖子发不了啊
- python位运算用途_Python 位运算符与位运算
- 数据库发展史 特性,安装区别
- GetAsyncKeyState函数中按键的信息
- visual studio 错误:在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include StdAfx.h”?
- Sound Forge使用技巧之制作手机铃声
- Python错误之 SyntaxError: invalid syntax的解决方法总结
- 2019 My excel
- 基于JAVASE的彩票摇号系统