ES写入数据时:circuit_breaking_exception[[parent] Data too large

这篇具有很好参考价值的文章主要介绍了ES写入数据时:circuit_breaking_exception[[parent] Data too large。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

报错:

circuit_breaking_exception[[parent] Data too large, data for [<transport_request>] would be [12318476937/11.2gb], which is larger than the limit of [12237372108/12.2gb], real usage: [12318456248/11.2gb]

原因:

(1)表面原因是在ES中大量内存被占用,GC无法对heap进行垃圾回收,导致node内存用量超出limit限制。

(2)根本原因是ES设置有问题,默认配置是JVM内存使用达到75%的时候进行full GC,默认配置总熔断器indices.breaker.total.use_real_memory 它的值直接影响JVM堆内存分配的大小, 1、值为 true, indices.breaker.total.limit 为堆大小的 95%。 2、值为 false,indices.breaker.total.limit 为堆大小的70%

如果在还未到ES的full GC的时候,已经达到ES总熔断器的上限了,那么此时ES的内存一直没有回收,不断插入新数据,那么就会产生报错。

解决:1、在elasticsearch.yml添加配置:

indices.breaker.total.use_real_memory:false
indices.breaker.total.limit: 70%

2、修改ES的jvm.options:

-Xms10g
-Xmx10g
## GC configuration
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=60
-XX:+UseCMSInitiatingOccupancyOnly

假如JVM的内存设置的是10GB,经过以上配置后,熔断器的内存范围是7GB,GC的内存范围是6GB,那么在未达到熔断器的最高标准时,JVM会进行full GC,那么就不会报错了。或者就无脑加大ES的内存也是可以的,毕竟内存大了,可能永远就达不到熔断了。文章来源地址https://www.toymoban.com/news/detail-761677.html

到了这里,关于ES写入数据时:circuit_breaking_exception[[parent] Data too large的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 配置数据写入es的时间

    1、设置es的pipeline 2、检查pipeline是否设置成功 3、在索引的setting里设置默认pipeline 这样,在数据写es时候,就会生成字段date,数据写入时间

    2024年02月22日
    浏览(28)
  • java try throw exception finally 遇上 return break continue造成异常丢失

        如下所示,是一个java笔试题,考察的是抛出异常之后,程序运行结果,但是这里抛出异常,并没有捕获异常,而是通过finally来进行了流程控制处理。     运行程序,打印结果如下所示:       这里结果有些出人意料,并没有打印异常信息,其实就是try finally遇到了con

    2024年02月08日
    浏览(33)
  • python读取、写入以及删除es数据

    最近这段时间被es所困扰,庆幸最终学会了python操作es,怕以后忘记了,把代码放出来: 1.python读取es数据 2.python删除es数据: 3.python读取txt文档,再写入数据:

    2024年02月12日
    浏览(33)
  • Es无法写入数据的原因分析

    原因一: ElasticSearch入“只读”模式,只允许删除。当ES数据所在目录磁盘空间使用率超过90%后,ES将修改为只读状态,所以初步判断是磁盘空间不足导致es自动关闭了索引的写功能,只能进行读取或者删除。 解决: 手动将 index.blocks.read_only_allow_delete 改成false 查看index.blocks.

    2024年02月07日
    浏览(38)
  • ElasticSearch第十五讲 ES数据写入过程和写入原理以及数据如何保证一致性

    ES 数据并发冲突控制是基于的乐观锁和版本号的机制 一个document第一次创建的时候,它的_version内部版本号就是1;以后,每次对这个document执行修改或者删除操作,都会对这个_version版本号自动加1;哪怕是删除,也会对这条数据的版本号加1(假删除)。 对于更新操作 客户端对

    2024年02月12日
    浏览(32)
  • E往无前|腾讯云大数据ES索引原理剖析及写入性能优化最佳实践

    导读 本文经过大量案例总结和踩坑复盘,归纳整理了Elastisearch集群在写入性能优化方面一些常用的优化技巧和避坑指南。 在我们服务腾讯云ES的客户过程中,经常会收到一些客户对云上ES集群读写性能未能达到预期的反馈,并希望我们能够配合做一些性能压测及调优的工作。

    2024年02月09日
    浏览(38)
  • 运用easy-es保存数据时,报错:cn.easyes.common.exception.EasyEsException: no such method:

    cn.easyes.common.exception.EasyEsException: no such method:     at cn.easyes.common.utils.ExceptionUtils.eee(ExceptionUtils.java:39)     at cn.easyes.core.cache.BaseCache.lambda$setterMethod$6(BaseCache.java:127)     at cn.easyes.core.cache.BaseCache$$Lambda$2307/809171830.get(Unknown Source)     at java.util.Optional.orElseThrow(Optional.java:29

    2024年02月03日
    浏览(28)
  • Elasticsearch:解决并发写入导致版本冲突异常version_conflict_engine_exception

         数据同步中,在使用阿里云Elasticsearch7.10.0版本的集群作为目标数据源时,在连续写入同一文档(document)出现版本冲突问题。 注意:以下所述均以阿里云7.10.0版本的Elasticsearch集群为前提(不同版本可能会稍有不同)       以生产环境的错误日志信息为例: ElasticsearchSta

    2024年02月08日
    浏览(32)
  • ES 查询及写入优化

    ES数据区分热、温、冷三个阶段 ES索引按月滚动生成 mapping设置合理的数据类型是否需要分词 使用别名管理索引??? 1 单条写入改为多条数据写入 2 自动生成ID 3 索引刷盘时间,index.refresh_interval: 30s; 默认1s改为30s,减少刷盘频次 4 大批量数据导入时,可以把副本分片设置为

    2024年02月08日
    浏览(30)
  • ES 异常写入解决流程

    问题说明 一天下午,在北京客户现场的同学反馈我们elasticsearch出现的大量的异常,他反馈说他使用多线程写入大量数据到elasticsearch集群时,隔一段时间之后就会出现CircuitBreakingException,多尝试几次后,他就把问题反馈到我们这边了 解决思路 1.降低并发度 看到这个问题我首

    2024年02月02日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包