--- title: "分片恢复活动超时配置" date: 2026-03-14 lastmod: 2026-03-14 description: "控制分片恢复无活动超时时间的配置项说明" tags: ["索引配置", "分片恢复", "超时配置"] summary: "配置项作用 # indices.recovery.recovery_activity_timeout 配置项控制分片恢复过程中允许无活动的最大时间间隔。如果在指定时间内没有检测到任何恢复活动(数据传输、文件操作等),恢复操作将被标记为失败。 配置项类型 # 该配置项为动态配置,可以在运行时通过集群设置 API 进行修改。 默认值 # 30m(继承自 indices.recovery.internal_action_long_timeout) 是否必需 # 可选配置项(有默认值) 取值范围 # 0 ~ 正无穷(0 表示禁用活动超时检查) 配置格式 # # 默认配置(继承 long_timeout) indices.recovery.recovery_activity_timeout: 30m # 自定义活动超时 indices.recovery.recovery_activity_timeout: 15m # 禁用活动超时检查 indices.recovery.recovery_activity_timeout: 0 # 快速检测停滞 indices.recovery.recovery_activity_timeout: 5m 相关配置项 # 配置项 默认值 说明 indices.recovery.recovery_activity_timeout 30m 恢复活动超时 indices.recovery.internal_action_timeout 15m 内部操作超时 indices." --- ## 配置项作用 `indices.recovery.recovery_activity_timeout` 配置项控制分片恢复过程中允许无活动的最大时间间隔。如果在指定时间内没有检测到任何恢复活动(数据传输、文件操作等),恢复操作将被标记为失败。 ## 配置项类型 该配置项为**动态配置**,可以在运行时通过集群设置 API 进行修改。 ## 默认值 ``` 30m(继承自 indices.recovery.internal_action_long_timeout) ``` ## 是否必需 **可选配置项**(有默认值) ## 取值范围 ``` 0 ~ 正无穷(0 表示禁用活动超时检查) ``` ## 配置格式 ```yaml # 默认配置(继承 long_timeout) indices.recovery.recovery_activity_timeout: 30m # 自定义活动超时 indices.recovery.recovery_activity_timeout: 15m # 禁用活动超时检查 indices.recovery.recovery_activity_timeout: 0 # 快速检测停滞 indices.recovery.recovery_activity_timeout: 5m ``` ## 相关配置项 | 配置项 | 默认值 | 说明 | |-------|-------|------| | `indices.recovery.recovery_activity_timeout` | 30m | 恢复活动超时 | | `indices.recovery.internal_action_timeout` | 15m | 内部操作超时 | | `indices.recovery.internal_action_long_timeout` | 30m | 长操作超时 | ## 工作原理 活动超时检测机制: ``` ┌─────────────────────────────────────────────────────────────────┐ │ 活动超时检测 │ └─────────────────────────────────────────────────────────────────┘ 恢复操作进行中 │ ├── 检测到活动(传输数据、文件操作) │ │ │ └── 重置活动计时器 │ └── 无活动持续 activity_timeout │ └── 恢复操作超时 │ └── 标记恢复失败 │ └── 触发重新恢复 ``` ## 使用场景 ### 1. 默认配置(推荐) ```yaml indices.recovery.recovery_activity_timeout: 30m ``` 适用于大多数集群配置。 ### 2. 快速检测停滞 ```yaml indices.recovery.recovery_activity_timeout: 5m ``` **适用场景:** - 需要快速检测问题 - 网络不稳定环境 - 有自动重试机制 ### 3. 大分片慢速恢复 ```yaml indices.recovery.recovery_activity_timeout: 60m ``` **适用场景:** - 大分片恢复 - 低带宽网络 - 容忍长传输间隙 ### 4. 禁用检查 ```yaml indices.recovery.recovery_activity_timeout: 0 ``` **适用场景:** - 极慢速网络 - 不希望因间隙而失败 - 手动监控恢复状态 ## 推荐设置建议 | 恢复类型 | 推荐超时 | 说明 | |---------|---------|------| | 默认 | 30m | 继承 long_timeout | | 标准 | 15-30m | 标准配置 | | 大分片 | 30-60m | 大分片容忍间隙 | | 跨地域 | 60-120m | 高延迟环境 | | 不稳定网络 | 5-10m | 快速检测 | | 禁用检查 | 0 | 不限制 | ## 动态配置示例 ```bash # 更新集群配置 PUT /_cluster/settings { "transient": { "indices.recovery.recovery_activity_timeout": "20m" } } # 禁用活动超时 PUT /_cluster/settings { "transient": { "indices.recovery.recovery_activity_timeout": "0" } } ``` ## 监控建议 ```bash # 查看恢复进度 GET /_cat/recovery?v&h=i,s,t,bytes_percent,stage # 查看恢复速率 GET /_cat/recovery?v&h=i,s,t,bytes,recovery_rate # 查看超时配置 GET /_cluster/settings?filter_path=*.recovery.recovery_activity_timeout ``` ## 注意事项 1. **动态更新**:此配置为动态配置,可在线修改 2. **检测停滞恢复**:帮助检测卡住的恢复操作 3. **与网络相关**:网络不稳定时可能需要更小的值 4. **与分片大小相关**:大分片恢复间隙可能较长 5. **设置为 0 禁用**:0 表示不检查活动超时