--- title: "Transform 断路器 JVM 内存阈值配置" date: 2026-01-07 lastmod: 2026-01-07 description: "transform.circuit_breaker.jvm.threshold 配置项用于控制 Transform 断路器的 JVM 内存使用阈值。" tags: ["Transform", "断路器", "内存管理", "JVM"] summary: "配置项作用 # 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." --- ## 配置项作用 `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 ``` ## 配置建议 ## 默认配置(推荐) ```yaml transform: circuit_breaker: jvm: threshold: 85 # 默认值 ``` **建议**: 大多数场景使用默认值。 ## 保守配置 ```yaml transform: circuit_breaker: jvm: threshold: 75 # 更保守 ``` **建议**: 内存受限或高负载环境使用。 ## 大内存环境 ```yaml transform: circuit_breaker: jvm: threshold: 90 # 更激进 ``` **建议**: 大内存、低负载环境使用。 ## 动态更新 ```json PUT /_cluster/settings { "transient": { "transform.circuit_breaker.jvm.threshold": 80 } } ``` ## 相关配置 | 配置项 | 作用 | 默认值 | |--------|------|--------| | `circuit_breaker.jvm.threshold` | 内存阈值 | 85 | | `circuit_breaker.enabled` | 断路器开关 | true | ## 注意事项 1. **默认值**: 默认值为 `85`,平衡保护和吞吐量。 2. **动态更新**: 支持动态更新。 3. **百分比单位**: 值为百分比(0-100)。 4. **与 enabled 配合**: 必须启用断路器才生效。 5. **监控建议**: 监控 JVM 内存使用率和 GC 情况。 6. **合理设置**: 根据实际内存大小和负载调整。