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

报错:

txt 复制代码
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添加配置:

yml 复制代码
indices.breaker.total.use_real_memory:false
indices.breaker.total.limit: 70%

2、修改ES的jvm.options:

yml 复制代码
-Xms10g
-Xmx10g
## GC configuration
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=60
-XX:+UseCMSInitiatingOccupancyOnly

假如JVM的内存设置的是10GB,经过以上配置后,熔断器的内存范围是7GB,GC的内存范围是6GB,那么在未达到熔断器的最高标准时,JVM会进行full GC,那么就不会报错了。或者就无脑加大ES的内存也是可以的,毕竟内存大了,可能永远就达不到熔断了。

相关推荐
智能零售小白白38 分钟前
零售多平台商品数据标准化:从字段混乱到一键同步的技术实践
大数据·零售
龙山云仓1 小时前
No153:AI中国故事-对话毕昇——活字印刷与AI知识生成:模块化思想与信息革
大数据·人工智能·机器学习
雪兽软件1 小时前
什么是大数据?定义、类型、重要性和最佳实践
大数据
狒狒热知识1 小时前
2026年软文营销发稿平台优选指南:聚焦178软文网解锁高效传播新路径
大数据·人工智能
小王毕业啦1 小时前
2007-2024年 上市公司-投资者情绪数据(xlsx)
大数据·人工智能·数据挖掘·数据分析·数据统计·社科数据·经管数据
wwj20242 小时前
红海云数字化如何赋能“十五五”人才规划高效落地
大数据·人工智能
TYFHVB122 小时前
2026工业级CRM系统选型攻略:6款主流产品深度评测与场景适配剖析
大数据·人工智能
岁岁种桃花儿2 小时前
Flink从入门到上天系列第五篇:Flink集群化部署模式
大数据·flink
AC赳赳老秦3 小时前
2026主权AI趋势:DeepSeek搭建企业自有可控AI环境,保障数据安全实战
大数据·数据库·人工智能·python·科技·rabbitmq·deepseek
莫叫石榴姐3 小时前
数据开发需求工时如何评估?
大数据·数据仓库·人工智能·数据分析·产品运营