配置项作用 #
transform.circuit_breaker.jvm.threshold 配置项用于控制Transform 断路器的 JVM 内存使用阈值。
当 JVM 堆内存使用率超过此值时,Transform 任务将被阻止执行。
配置项属性 #
- 配置路径:
transform.circuit_breaker.jvm.threshold - 数据类型:
Integer(整数,百分比) - 默认值:
85 - 是否可选: 是
- 作用域: NodeScope(节点级别)
- 动态更新: 是(可以动态更新,无需重启)
配置项详解 #
工作机制 #
内存阈值控制
默认阈值: 85%
内存使用率 < 85%:
├── Transform 正常执行 ✅
├── 不受限制
└-- 全速处理
内存使用率 >= 85%:
├── Transform 被阻止 ⚠️
├── 暂停新任务
├── 等待内存释放
├── 定期检查恢复
└── 内存下降后恢复
恢复条件:
内存使用率 < threshold
│
├── 允许新任务
├── 逐渐恢复
└── 继续执行
阈值选择 #
不同阈值的影响
threshold = 75 (保守):
├── 保护: 严格 ✅
├── OOM 风险: 很低 ✅
├── Transform 吞吐: 较低 ⚠️
└-- 适用: 内存受限环境
threshold = 85 (默认):
├── 保护: 良好 ✅
├── OOM 风险: 低 ✅
├── Transform 吞吐: 平衡 ✅
└-- 适用: 大多数场景 ✅
threshold = 90 (激进):
├── 保护: 基础
├── OOM 风险: 中等 ⚠️
├-- Transform 吞吐: 较高
└── 适用: 内存充足环境
threshold = 95+ (危险):
├── 保护: 弱 ⚠️
├── OOM 风险: 高 ❌
├-- Transform 吞吐: 高
└-- 不推荐 ❌
JVM 内存计算 #
JVM 堆内存使用率
计算方式:
内存使用率 = (已用内存 / 堆内存总量) × 100
示例:
堆内存总量: 8GB
已用内存: 6GB
使用率: 6/8 × 100 = 75%
已用内存: 7GB
使用率: 7/8 × 100 = 87.5%
└── 超过 85% → 阻止 Transform
相关 JVM 指标:
├── Heap Memory Usage
├── Old Gen Usage
├── GC Frequency
└── GC Time
配置建议 #
默认配置(推荐) #
transform:
circuit_breaker:
jvm:
threshold: 85 # 默认值
建议: 大多数场景使用默认值。
保守配置 #
transform:
circuit_breaker:
jvm:
threshold: 75 # 更保守
建议: 内存受限或高负载环境使用。
大内存环境 #
transform:
circuit_breaker:
jvm:
threshold: 90 # 更激进
建议: 大内存、低负载环境使用。
动态更新 #
PUT /_cluster/settings
{
"transient": {
"transform.circuit_breaker.jvm.threshold": 80
}
}
相关配置 #
| 配置项 | 作用 | 默认值 |
|---|---|---|
circuit_breaker.jvm.threshold | 内存阈值 | 85 |
circuit_breaker.enabled | 断路器开关 | true |
注意事项 #
默认值: 默认值为
85,平衡保护和吞吐量。动态更新: 支持动态更新。
百分比单位: 值为百分比(0-100)。
与 enabled 配合: 必须启用断路器才生效。
监控建议: 监控 JVM 内存使用率和 GC 情况。
合理设置: 根据实际内存大小和负载调整。





