DBAtlas · 数据库运维图谱

circuit_breaking_exception: CircuitBreakingException[[parent] Data too large, data for [<...>] would be [...], which is larger than the limit of [...]](数据过大,超过熔断器限制)

Elasticsearch

含义

由于请求将超出内存(堆)熔断器限制而被拒绝。Elasticsearch 预先终止该请求,以防节点因 OutOfMemoryError 崩溃。[parent] 熔断器控制总内存使用;[fielddata] 熔断器控制 text 字段上的 fielddata 内存。

原因

JVM 堆不足、非常大/复杂的聚合、大型结果集、大型 bulk 请求、在 text 字段上加载 fielddata,或大量并发重型查询占满堆。通常是堆压力的症状。

解决方法

缩小查询:减少聚合规模、bulk 批次大小和返回字段。在 keyword 子字段(.keyword)上聚合,而不是使用 text 字段上的 fielddata。增大 JVM 堆(约为服务器 RAM 的 50%,最多约 31GB)。监控堆压力:GET _cat/nodes?v&h=name,heap.percent。解决根本原因(内存/查询),而不是临时提高熔断器限制。用 GET _nodes/stats/breaker 检查是哪个熔断器触发的。

在 DBAtlas 中打开 →

同一数据库的其他条目