首页/网络/网络排障速查/超时预算:各层超时值的合理设置

超时预算:各层超时值的合理设置

超时值要分层预算、由内到外递增:数据库 5s、应用调下游 10s、网关(LB/nginx)30s、客户端 60s;错配会引发重试风暴与资源堆积。

网络排障速查网络更新于 2026-10-12

典型配置参考

典型配置参考
# 数据库连接/查询:5-10s
# 应用 HTTP 客户端:连接 2s / 读取 10s
# nginx → 上游:proxy_connect_timeout 3s; proxy_read_timeout 30s;
# LB/网关:空闲与请求超时 ≥ 应用侧超时(如 60s)
# 客户端:总超时 60-120s
原则内层超时应小于外层,让失败在最内层尽早暴露
反例外层 30s、内层 60s:外层先超时后内层仍在跑,请求堆积且重复执行
重试仅在幂等接口上重试,并加退避与熔断
观测超时日志要能区分『连接超时/读超时/总超时』
超时值不是越短越好:设得过短会在高延迟链路(跨地域)上造成大面积误判失败;应基于 P99 时延与业务容忍度设定。

易错点

  • 各层超时随意设置,外层小于内层,导致重复执行与资源堆积
  • 在非幂等接口上盲目重试,造成数据重复

数据来源与参考

  • Google SRE Book:超时与重试的级联失败
  • nginx 文档:proxy_read_timeout

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌