使用G1后报错

Caused by: org.elasticsearch.common.breaker.CircuitBreakingException: [parent] Data too large, data for [<transport_request>]

ES: 7.5.0

今天在优化ES的GC配置的时候又踩了坑,因为之前在7.1上使用过G1,感觉效果还不错,这次的7.5上也就直接升级成了G1,jvm.options的配置是

-Xms24g
-Xmx24g## GC configuration
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=75
-XX:+UseCMSInitiatingOccupancyOnly## G1GC Configuration
# NOTE: G1GC is only supported on JDK version 10 or later.
# To use G1GC uncomment the lines below.
10-:-XX:-UseConcMarkSweepGC
10-:-XX:-UseCMSInitiatingOccupancyOnly
10-:-XX:+UseG1GC
10-:-XX:InitiatingHeapOccupancyPercent=75

升级完成之后,集群中的节点在查询的时候有时候会报错

Caused by: org.elasticsearch.common.breaker.CircuitBreakingException: [parent] Data too large, data for [<transport_request>] would be [24714355312/23gb], which is larger than the limit of [24481313587/22.7gb], real usage: [24714353312/23gb], new bytes reserved: [2000/1.9kb], usages [request=0/0b, fielddata=11807/11.5kb, in_flight_requests=2932/2.8kb, accounting=45086480/42.9mb]at org.elasticsearch.indices.breaker.HierarchyCircuitBreakerService.checkParentLimit(HierarchyCircuitBreakerService.java:343) ~[elasticsearch-7.5.0.jar:7.5.0]at org.elasticsearch.common.breaker.ChildMemoryCircuitBreaker.addEstimateBytesAndMaybeBreak(ChildMemoryCircuitBreaker.java:128) ~[elasticsearch-7.5.0.jar:7.5.0]

从这个报错来看是触发了集群的熔断操作导致的,最开始没有注意,后来发现在低流量的时候也很容易触发复现,感觉问题似乎并不简单。使用关键字看到官方有这样的文档

G1 GC were setup to use an InitiatingHeapOccupancyPercent of 75. This
could leave used memory at a very high level for an extended duration,
triggering the real memory circuit breaker even at low activity levels.
The value is a threshold for old generation usage relative to total heap
size and thus it should leave room for the new generation. Default in
G1 is to allow up to 60 percent for new generation and this could mean that the
threshold was effectively at 135% heap usage. GC would still kick in of course and
eventually enough mixed collections would take place such that adaptive adjustment
of IHOP kicks in.The JVM has adaptive setting of the IHOP, but this does not kick in
until it has sampled a few collections. A newly started, relatively
quiet server with primarily new generation activity could thus
experience heap above 95% frequently for a duration.The changes here are two-fold:Use 30% default for IHOP (the JVM default of 45 could still mean
105% heap usage threshold and did not fully ensure not to hit the
circuit breaker with low activity)
Set G1ReservePercent=25. This is used by the adaptive IHOP mechanism,
meaning old/mixed GC should kick in no later than at 75% heap. This
ensures IHOP stays compatible with the real memory circuit breaker also
after being adjusted by adaptive IHOP.

也就是说

10-:-XX:InitiatingHeapOccupancyPercent=75

这个配置是有问题的,这个配置了老年代的初始化内存,但是G1允许新生代使用60%的jvm内存,所以总的内存量可能很容易达到135%,因为这个时候可能并没有占满内存,G1的回收可能不会触发,但是对于ES来说,已经触发了内存熔断机制,所以即使请求量级不大,可能也会频繁报内存熔断的错误,需要注意哦。

修正的方法是

10-:-XX:-UseConcMarkSweepGC
10-:-XX:-UseCMSInitiatingOccupancyOnly
10-:-XX:+UseG1GC
10-:-XX:G1ReservePercent=25
10-:-XX:InitiatingHeapOccupancyPercent=30

增加和修改了配置

10-:-XX:G1ReservePercent=25
10-:-XX:InitiatingHeapOccupancyPercent=30

坑死了,刚重启完毕,又要重启一遍

使用G1后报错-CircuitBreakingException: [parent] Data too large相关推荐

  1. Kibana查询ES报错:[circuit_breaking_exception] [parent] Data too large

    一.kibana浏览器报错 {"statusCode":429,"error":"Too Many Requests","mess ...

  2. 【es】FATAL [circuit_breaking_exception] [parent] Data too large, data for [<http_request>] would be

    1.背景 本地运行etl集群,一个es,一个head,一个kibana,然后如下 上图显示es还初处于正常状态,但是head已经不能访问了 然后kibana报错如下 FATAL [circuit_br ...

  3. Elasticsearch-circuit_breaking_exception [parent] Data too large, data for [<http_request>]

    文章目录 异常信息 不同版本的配置的差异 ES6.4 ES7.6 Solutions 异常信息 {"root_cause":[{"type":"cir ...

  4. Elasticsearch exception [type=circuit_breaking_exception, reason=[parent] Data too large, data

    以上异常原因是field data 的缓存不够用. 修改方法,向Elasticsearch发送如下请求,设置fielddata缓存占用jvm内存的30%或者更小: 之后再发送请求即可成功.

  5. 【Elasticsearch】Data too large, data for which is larger than the limit of

    1.概述 参考:elasticsearch报Data too large异常处理 在线上ES集群日志中发现了如下异常,elasticsearch版本为7.3.2 [2021-03-16T21:05:1 ...

  6. elasticsearch线上调优[ Data too large]

    项目场景: 最近es的线上经常出现一个内存的异常的问题,我解决了各种的途径都无效.最后再方案一种解决最终办法,方案二能解决部分问题. 问题描述:[[parent] Data too large, da ...

  7. 记录一次尝试修复elasticsearch Data too large问题

    前言 这周三,一边调试api crashloopbackoff的问题,一边准备写promSQL语句,然后开发小伙伴说环境3的es又挂了,表现就是查询数据报错: circuit_breaking_exc ...

  8. 解决ES Data too large问题

    问题描述: 最近搭建ELK测试系统,运行一段时间后,Kibana无法连接,并且报以下错误: [parent] Data too large, data for [<http_request> ...

  9. [fielddata] Data too large, data for [_id] would be [13181907968/12.2gb]

    问题描述 使用ES search after查询报如下错误,fielddata缓存熔断异常. org.frameworkset.elasticsearch.ElasticSearchException ...

最新文章

  1. ryu的防火墙功能 ryu.app.rest_firewall,配合mininet和open vswitch(OVS)
  2. 扩散模型就是自动编码器!DeepMind研究学者提出新观点并论证
  3. noip模拟赛 蒜头君的兔子
  4. [系统安全] 四十四.APT系列(9)Metasploit技术之基础用法万字详解及防御机理
  5. SAP CRM schedule line i
  6. Azure 上使用 Windows Server Core 运行 ASP.NET Core 网站
  7. java的文本框如何回车键触发按钮_java回车触发按钮的代码
  8. 用Instant client批量安装Oracle客户端-安装配置
  9. 解决eclipse启动停在一个空白窗口的问题
  10. php $表达式,PHP表达式概念及实例详解
  11. java sdk怎么配置_Java SDK环境配置教程
  12. PPC软件字体太小的调整
  13. latex附录中放python代码_LaTeX 里「添加程序代码」的完美解决方案
  14. java架构师之路-并发编程
  15. 视频通信系统的关键技术与挑战
  16. 5c5cSs,暗光提升明显 iPhone 5s/5c/5样张对比
  17. 南京大学学生用7000张照片算出院系“平均脸”
  18. 用adb pull复制Android手机里的文件到服务器遇到system/bin/sh: adb: not found
  19. DCS、PLC与SCADA的区别
  20. java 通过User-Agent来判断是否是移动浏览器

热门文章

  1. 进程间通信 - 剪贴板实现
  2. 第31讲:抓包利器 Charles 的使用
  3. 费解 | 为什么很多程序员工作时都戴耳机?
  4. 力扣--扁平化嵌套列表迭代器
  5. 淘系的音视频编辑方案:非线性编辑引擎
  6. 周小鹏:努力让FPGA支持更多开源库和框架
  7. LiveVideoStack秋季招聘(编辑、会务运营、项目经理)
  8. 腾讯移动分析系统揭密
  9. HttpDns 原理是什么
  10. lua-nginx-module directives 中文版