权重配置不提升吞吐量上限,但能提高实际达成率与资源利用率均衡性;需依实测QPS设权、配合健康检查与keepalive、避免策略冲突,并通过监控验证效果。

权重配置本身不直接提升吞吐量上限,但它能显著改善吞吐量的**实际达成率**和**资源利用率均衡性**。关键在于让请求更合理地流向处理能力更强的节点,避免强节点空闲、弱节点过载的“木桶效应”。
根据后端真实性能设定权重
不要凭经验或服务器型号粗略分配。建议先对每台后端做基准压测(如用 wrk 或 ab 测试单节点 QPS),再按实测吞吐能力比例设 weight。例如:
- 节点 A 实测稳定 QPS 为 1200,节点 B 为 800 → weight 比例设为 3:2
- 若某节点内存更大但 CPU 较弱,应以瓶颈指标(通常是 CPU 或响应延迟)为准
- 权重总和无需归一化,Nginx 按相对比值计算分发比例
配合健康检查动态调整权重
静态权重在节点负载波动时易失效。建议启用主动健康检查,并结合 max_fails / fail_timeout 实现自动降权或剔除:
- server 192.168.1.101 weight=5 max_fails=2 fail_timeout=30s;
- 当连续失败 2 次,该节点 30 秒内不再接收新请求,相当于临时权重归零
- 可进一步搭配 slow_start 参数,让恢复节点逐步承接流量,避免雪崩
避免权重与连接模型冲突
高并发场景下,权重需与 upstream 的连接复用机制协同:
- 务必配置 keepalive N(如 keepalive 32),否则每个请求新建 TCP 连接,权重调度意义减弱
- 若使用 least_conn 策略,权重会被忽略 —— 此时应改用加权最少连接(需 nginx-plus)或改用 least_time(响应时间加权)
- proxy_max_temp_file_size 设为 0,防止大响应体触发磁盘缓冲,拖慢整体响应节奏,间接削弱权重效果
监控验证权重有效性
配置后必须通过指标确认是否真正提升了吞吐效率:
- 观察各 upstream server 的 active connections 和 requests 计数是否符合权重比例
- 对比优化前后平均响应时间(avg RT)和 95 分位延迟 —— 理想情况是 RT 下降或持平,QPS 上升
- 检查 error.log 中是否有大量 “upstream timed out” 或 “no live upstreams” 报错,这说明权重失衡导致部分节点过载


















