4. 疲劳度定义与量化

疲劳度是衡量 On-Call 工程师在连续值班周期内身心负荷累积程度的量化指标。合理的疲劳度定义能够帮助排班系统提前识别高风险值班安排,避免因过度疲劳导致的响应延迟、误判或人为故障。本节将系统阐述疲劳度的核心指标及其量化公式。

4.1 疲劳度核心指标

经过对多家互联网公司 On-Call 实践的数据分析,疲劳度由以下四个核心维度构成:

指标名称 符号 定义 单位 疲劳权重范围
连续值班天数 Dc 工程师连续处于 On-Call 状态的自然日天数 天 0.20 ~ 0.35
夜间值班次数 Nn 在统计周期内(通常为 7 天)覆盖 22:00~08:00 时段的值班次数 次 0.25 ~ 0.40
值班时长 Hs 单次值班或周期内累计值班的小时数 小时 0.15 ~ 0.25
响应次数 Ra 值班期间实际处理告警或事件的次数 次 0.10 ~ 0.20
指标选择依据:上述四个指标在业界 SRE 团队中具有最高的疲劳解释方差(累计解释度 > 85%)。连续值班天数反映生理节律破坏程度,夜间值班次数影响睡眠质量,值班时长决定持续注意力消耗,响应次数衡量认知负荷强度。

4.2 疲劳度计算公式推导

疲劳度采用加权指数衰减模型,核心思想是:疲劳不仅随指标值线性增长,还会因连续累积产生非线性放大效应。公式推导分为三步:

4.2.1 单指标疲劳分量

每个核心指标先经过归一化处理,再乘以对应的疲劳权重,得到单指标疲劳分量:

F_d = w_d × min(D_c / D_max, 1.0)
F_n = w_n × min(N_n / N_max, 1.0)
F_h = w_h × min(H_s / H_max, 1.0)
F_r = w_r × min(R_a / R_max, 1.0)

其中:

  • D_max = 7 天(连续值班上限阈值)
  • N_max = 4 次(7 天内夜间值班上限)
  • H_max = 12 小时(单次值班时长上限)
  • R_max = 20 次(单次值班响应次数上限)
  • w_d, w_n, w_h, w_r 为对应权重,且 w_d + w_n + w_h + w_r = 1.0

4.2.2 累积衰减因子

引入连续值班指数衰减因子,模拟疲劳随连续值班天数的非线性增长:

α = e^(k × (D_c - 1))

其中 k 为衰减系数,默认取 0.15。当 D_c = 1 时,α = 1.0;当 D_c = 7 时,α ≈ 2.46,表示连续值班 7 天时疲劳放大 2.46 倍。

4.2.3 综合疲劳度公式

最终疲劳度 F 的计算公式为:

F = α × (F_d + F_n + F_h + F_r)

其中:
F ∈ [0, 1.0]
α = e^(0.15 × (D_c - 1))
F_d = w_d × min(D_c / 7, 1.0)
F_n = w_n × min(N_n / 4, 1.0)
F_h = w_h × min(H_s / 12, 1.0)
F_r = w_r × min(R_a / 20, 1.0)
疲劳度阈值定义:
  • F < 0.30:低疲劳,适合安排值班
  • 0.30 ≤ F < 0.55:中等疲劳,需关注
  • 0.55 ≤ F < 0.75:高疲劳,建议替换
  • F ≥ 0.75:严重疲劳,强制替换

4.3 疲劳度计算流程

下图展示了疲劳度从原始数据采集到最终输出的完整计算流程:

疲劳度计算流程 值班原始数据 工程师排班表 告警响应记录 核心指标提取:D_c | N_n | H_s | R_a 单指标归一化:min(值/阈值, 1.0) 加权求和 × 指数衰减因子 α = e^(0.15×(D_c-1))

4.4 疲劳度计算示例

假设某工程师当前状态如下:

  • 连续值班天数 D_c = 5 天
  • 7 天内夜间值班次数 N_n = 3 次
  • 本次值班时长 H_s = 10 小时
  • 本次响应次数 R_a = 8 次
  • 权重配置:w_d=0.30, w_n=0.35, w_h=0.20, w_r=0.15
步骤1:计算单指标疲劳分量
F_d = 0.30 × min(5/7, 1.0) = 0.30 × 0.714 = 0.214
F_n = 0.35 × min(3/4, 1.0) = 0.35 × 0.750 = 0.263
F_h = 0.20 × min(10/12, 1.0) = 0.20 × 0.833 = 0.167
F_r = 0.15 × min(8/20, 1.0) = 0.15 × 0.400 = 0.060

步骤2:计算衰减因子
α = e^(0.15 × (5 - 1)) = e^(0.60) ≈ 1.822

步骤3:计算综合疲劳度
F = 1.822 × (0.214 + 0.263 + 0.167 + 0.060)
F = 1.822 × 0.704 ≈ 1.283

步骤4:截断处理(F 上限为 1.0)
F = min(1.283, 1.0) = 1.0

结论:该工程师疲劳度达到 1.0(严重疲劳),系统应强制替换。
注意:当 F > 1.0 时,表示疲劳已超过最大可承受阈值。实际系统中应对 F 进行截断处理,同时记录超限次数作为长期疲劳追踪的辅助指标。

4.5 权重动态调整策略

不同团队的业务特点不同,疲劳权重可依据历史数据进行动态校准。推荐使用层次分析法(AHP)或熵权法确定初始权重,再通过以下规则进行微调:

调整场景 调整规则 调整幅度
夜间告警密集团队 提升 w_n,降低 w_r ±0.05
长值班周期团队(12h+) 提升 w_h,降低 w_d ±0.05
高告警量团队(日均 > 50 次) 提升 w_r,降低 w_n ±0.05
轮转周期短(3 天轮换) 提升 w_d,降低 w_h ±0.05

权重调整后需满足 w_d + w_n + w_h + w_r = 1.0,建议每季度根据值班质量反馈(如响应延迟率、误判率)进行一次权重复盘。