es内存溢出启动报错java.lang.OutOfMemoryError: Java heap space

这篇具有很好参考价值的文章主要介绍了es内存溢出启动报错java.lang.OutOfMemoryError: Java heap space。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

问题:

es容器自己停止,重启之后启动失败,报错如下:

java.lang.OutOfMemoryError: Java heap space:
Unable to create data/java_pid6.hprof: File exists
Terminating due to java.lang.OutOfMemoryError: Java heap space

原因分析

原因:
容器中es由于数据量过大,超过了elasticsearch进程的最大内存量,elasticsearch 会将启动脚本中的JAVA_OPTS 选项传递给 JVM 来启动elasticsearch. 其中最重要的一个参数是 -Xmx ,此参数用于控制系统分配给elasticsearch 进程的最大内存量。另外 -Xms用于控制系统分配给elasticsearch进程的最小内存量(通常情况下,分配的内存越多越好)


解决方案

解决办法:

[root@localhost]# docker run -d \
 --name es7.17.4 -p 9200:9200 -p 9300:9300 \
 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
 -v /var/lib/docker/volumes/es-data/_data:/usr/share/elasticsearch/data \
 -v  /var/lib/docker/volumes/es-plugins:/usr/share/elasticsearch/plugins \
 -v  /var/lib/docker/volumes/es-config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
 --privileged \
 --network es-net \
  elasticsearch:7.17.4

将其中的: -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \这个配置中的内存大小改大,我的直接全部改成512.问题解决。


其他可能

1.读取过多的数据到内存,尤其是field data字段(在使用sorting和aggregations)

2.配置出错,设置的heap size没有生效,可能是设置错地方了。默认的heap size(min 256M,max 1G)是不够用的。

3.做索引的数据过多,比如bulk size设置过大

4.查询时,要求返回的数据量太大(size设置过大)

5.主节点的内存不够用,这种情况下可能是由于cluster state引起的。若索引使用大量的别名(alias),cluster state就会使用大量的内存。


其他解决方案

修改ES的配置文件,增大ES的JVM的Heap Size大小,默认是1G的启动内存。我们可以根据自己的机器情况,适当增加。
修改容器内的config目录下jvm.options文件,但有一个问题是你容器启动不了没办法进入容器修改这个文件,除非你提前挂载出来了。
es内存溢出启动报错java.lang.OutOfMemoryError: Java heap space


两种解决方案大家都试试,万一好了呢.文章来源地址https://www.toymoban.com/news/detail-413455.html

到了这里,关于es内存溢出启动报错java.lang.OutOfMemoryError: Java heap space的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OutOfMemoryError内存溢出和StackOverFlowError栈溢出及解决方法

    前一篇: JVM 内存结构 线程的堆栈存储 线程局部原始数据类型、变量、对象的引用、返回值。如果线程堆栈大小超出分配的内存限制,就会出现栈溢出错误。 这里用递归调演示错误 解决方法: 1、修改代码 2、修改栈大小配置 64位电脑默认栈大小为 1024k=1m。可以修改为-Xss2

    2024年02月10日
    浏览(46)
  • IDE运行项目内存溢出 outOfMemoryError

    IDE-settings-shared build process heap size 调大一些

    2024年01月25日
    浏览(42)
  • 分析和解决java.lang.OutOfMemoryError: Java heap space问题

    最近客户反馈在生产环境导入操作时遇到任务一直执行中,并且入库的数据量一直不改变。通过日志查询,终于定位到报错信息如下: java.lang.OutOfMemoryError: Java heap space (JVM 堆空间溢出)简单来说就是在创建新的对象时, 堆内存中的空间不足以存放新创建的对象,导致此种问题

    2024年02月05日
    浏览(55)
  • 解决idea出现的java.lang.OutOfMemoryError: Java heap space的问题

    今天使用 idea 开发时,突然报出如下错误:

    2023年04月19日
    浏览(50)
  • Flink 运行错误 java.lang.OutOfMemoryError: Direct buffer memory

    如遇到如下错误,表示需要调大配置项 taskmanager.memory.framework.off-heap.size 的值,taskmanager.memory.framework.off-heap.size 的默认值为 128MB,错误显示不够用需要调大。 2022-12-16 09:09:21,633 INFO  [464321] [org.apache.hadoop.security.UserGroupInformation.initialize(UserGroupInformation.java:366)]  - Hadoop UGI auth

    2024年02月03日
    浏览(53)
  • 解决Error:java: java.lang.OutOfMemoryError: WrappedJavaFileObject...GC overhead limit exceeded的错误

    今天在启动项目时,报出如下错误: 即 Error:java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObject[file:xxx.java]]@pos242:@pos242: GC overhead limit exceeded 将错误 Error:java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObject[file:xxx.java]]@pos242:@pos242: GC

    2024年02月04日
    浏览(42)
  • java.lang.OutOfMemoryError: GC overhead limit exceeded问题分析及解决

    出现该问题的原因:当GC为释放很小空间占用大量时间时会抛出此异常,即(Sun 官方对此的定义,超过98%的时间用来做GC并且回收了不到2%的堆内存时会抛出此异常)。一般是因为堆太小,导致异常的原因:没有足够的内存。 对于该项目我的启动命令如下:堆内存空间开辟的

    2024年01月21日
    浏览(51)
  • IDEA 编译项目时报错:java: java.lang.OutOfMemoryError:GC overhead limit exceeded解决方法

    在Intellij IDEA下编译Java项目,报错:java.lang.OutOfMemoryError: …(此处忽略) GC overhead limit exceeded 错误是发生在编译阶段,而不是运行阶段。通过查询相关资料发现, 1.idea编译Java项目使用的虚拟机和idea软件自身使用的虚拟机是分开的(也就是独立的进程) 2.只需要给编译器使用的

    2024年02月05日
    浏览(41)
  • 使用jmeter做性能测试时遇到java.lang.OutOfMemoryError: Java heap space. 提示怎么办

    使用jmeter做性能测试遇到java.lang.OutOfMemoryError: Java heap space.时是jvm的问题,需要调大jvm的内存,windows压力机通过编辑bin文件下的jmeter.bat文件来修改jvm的内存大小。在jmeter.bat文件的编辑状态下查询if not defined HEAP可快速查找到需要修改的位置。 修改前为默认大小: 修改后(根

    2024年02月16日
    浏览(59)
  • java.lang.OutOfMemoryError- unable to create new native thread 问题排查

    最近连续两天大约凌晨3点,线上服务开始异常,出现OOM报错。且服务所在的物理机只能ping通,但是无法登录。报错信息如下: 根据日志OOM报错,怀疑是内存不足或内存泄露的原因,需要查看内存的使用情况。考虑到 JConsole 或 VisualVM 具有可视化界面,能看出历史变化趋势,

    2023年04月13日
    浏览(98)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包