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的内存也是可以的,毕竟内存大了,可能永远就达不到熔断了。

相关推荐
AI行业应用研究1 分钟前
会务问答机器人落地拆解:三级路由、知识库组织与防幻觉——会务小程序能自己回答参会者提问吗?
大数据·人工智能·安全·小程序·架构
合米AI SOP系统4 分钟前
医疗器械|组件组装工位,合米科技AI SOP视觉防错系统满足高合规要求下的精益生产
大数据·人工智能·科技
大大大大晴天️5 分钟前
大数据数据治理体系建设:从平台能力到组织闭环的完整蓝图
大数据·数据治理
机核研创社5 分钟前
双头全自动接橡筋机工作原理与核心参数详解:内裤橡筋环接工序的自动化改造
大数据·人工智能·自动化
峥嵘life9 分钟前
2026免费的 opencode 使用分享:Windows端 + 服务器CLI 实战总结
android·大数据·开发语言
蓝速科技13 分钟前
数字人一体机芯片选型:RK3576 与 X86 场景化对比指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
金融小师妹34 分钟前
事件驱动分析:美联储决议临近,黄金弱势运行的AI政策定价框架
大数据·eclipse·时序数据库
IT毕设实战小研40 分钟前
基于大数据的人工智能社交媒体情绪分析与可视化的设计与实现
大数据·信息可视化·数据挖掘·数据分析·课程设计
像豆芽一样优秀1 小时前
用 Codex + 阿里云 DataWorks MCP 实现数仓自动化
大数据·人工智能
峥嵘life1 小时前
2026华为AI码道 CodeArts 使用分享:Windows端 + 服务器CLI 实战总结
android·大数据·开发语言·python