--- title: "分片恢复长操作超时配置" date: 2026-03-24 lastmod: 2026-03-24 description: "控制分片恢复长操作超时时间的配置项说明" tags: ["索引配置", "分片恢复", "超时配置"] summary: "配置项作用 # indices.recovery.internal_action_long_timeout 配置项控制分片恢复过程中耗时较长的内部操作的超时时间。此超时时间大于 standard internal_action_timeout,用于需要更长时间完成的恢复阶段。 配置项类型 # 该配置项为动态配置,可以在运行时通过集群设置 API 进行修改。 默认值 # 30m 是否必需 # 可选配置项(有默认值) 取值范围 # 0 ~ 正无穷 配置格式 # # 默认配置 indices.recovery.internal_action_long_timeout: 30m # 增加超时时间 indices.recovery.internal_action_long_timeout: 60m # 减少超时时间 indices.recovery.internal_action_long_timeout: 20m # 大分片恢复 indices.recovery.internal_action_long_timeout: 120m 相关配置项 # 配置项 默认值 说明 indices.recovery.internal_action_timeout 15m 标准操作超时 indices.recovery.internal_action_long_timeout 30m 长操作超时 indices.recovery.max_bytes_per_sec 40mb 恢复速率限制 工作原理 # 长操作超时机制:" --- ## 配置项作用 `indices.recovery.internal_action_long_timeout` 配置项控制分片恢复过程中耗时较长的内部操作的超时时间。此超时时间大于 standard `internal_action_timeout`,用于需要更长时间完成的恢复阶段。 ## 配置项类型 该配置项为**动态配置**,可以在运行时通过集群设置 API 进行修改。 ## 默认值 ``` 30m ``` ## 是否必需 **可选配置项**(有默认值) ## 取值范围 ``` 0 ~ 正无穷 ``` ## 配置格式 ```yaml # 默认配置 indices.recovery.internal_action_long_timeout: 30m # 增加超时时间 indices.recovery.internal_action_long_timeout: 60m # 减少超时时间 indices.recovery.internal_action_long_timeout: 20m # 大分片恢复 indices.recovery.internal_action_long_timeout: 120m ``` ## 相关配置项 | 配置项 | 默认值 | 说明 | |-------|-------|------| | `indices.recovery.internal_action_timeout` | 15m | 标准操作超时 | | `indices.recovery.internal_action_long_timeout` | 30m | 长操作超时 | | `indices.recovery.max_bytes_per_sec` | 40mb | 恢复速率限制 | ## 工作原理 长操作超时机制: ``` ┌─────────────────────────────────────────────────────────────────┐ │ 恢复操作超时分层 │ └─────────────────────────────────────────────────────────────────┘ 恢复操作 │ ├── 普通操作阶段 │ │ │ └── 使用 internal_action_timeout (15m) │ └── 长操作阶段 │ └── 使用 internal_action_long_timeout (30m) │ ├── 文件传输(大分片) ├── 段合并操作 └── 完整恢复 ``` ## 使用场景 ### 1. 默认配置(推荐) ```yaml indices.recovery.internal_action_long_timeout: 30m ``` 适用于大多数集群配置。 ### 2. 超大分片恢复 ```yaml indices.recovery.internal_action_long_timeout: 60m indices.recovery.max_bytes_per_sec: 20mb ``` **适用场景:** - 超大分片(> 50GB) - 慢速存储 - 需要更长恢复时间 ### 3. 跨地域恢复 ```yaml indices.recovery.internal_action_long_timeout: 120m indices.recovery.max_bytes_per_sec: 10mb ``` **适用场景:** - 跨地域复制 - 低带宽网络 - 长距离传输 ### 4. 快速检测问题 ```yaml indices.recovery.internal_action_long_timeout: 20m ``` **适用场景:** - 希望更快检测问题 - 不希望过长等待 - 有监控和告警 ## 推荐设置建议 | 分片大小 | 恢复速率 | 推荐超时 | 说明 | |---------|---------|---------|------| | < 10GB | 标准 | 30m | 默认配置 | | 10-50GB | 标准 | 30-45m | 根据传输时间 | | 50-100GB | 标准 | 45-60m | 大分片 | | > 100GB | 标准 | 60-120m | 超大分片 | | 任意 | 慢速 | 60-120m | 低带宽环境 | ## 与 internal_action_timeout 的区别 | 特性 | internal_action_timeout | internal_action_long_timeout | |-----|----------------------|-------------------------------| | 默认值 | 15m | 30m | | 适用阶段 | 普通操作 | 长操作 | | 典型场景 | 小分片、快速阶段 | 大分片、传输阶段 | | 超时策略 | 标准超时 | 扩展超时 | ## 动态配置示例 ```bash # 更新集群配置 PUT /_cluster/settings { "transient": { "indices.recovery.internal_action_long_timeout": "60m" } } # 跨地域恢复配置 PUT /_cluster/settings { "transient": { "indices.recovery.internal_action_long_timeout": "120m", "indices.recovery.max_bytes_per_sec": "10mb" } } ``` ## 监控建议 ```bash # 查看恢复进度 GET /_cat/recovery?v&h=i,s,t,bytes_percent,stage # 查看大文件传输进度 GET /_cat/recovery?v&h=i,s,t,bytes,file_percent # 查看超时配置 GET /_cluster/settings?filter_path=*.recovery.internal_action_long_timeout ``` ## 注意事项 1. **动态更新**:此配置为动态配置,可在线修改 2. **长操作专用**:用于需要更长时间的操作 3. **与分片大小相关**:大分片需要更长超时 4. **与网络带宽相关**:低带宽需要更长超时 5. **平衡超时时间**:过长的超时会延迟问题发现