高性能服务器weight应基于硬件指标初估并用压测QPS校准,以最低稳态QPS为基准按比例取整,再配max_fails、fail_timeout和slow_start实现负载均衡与容错。

给高性能服务器设更高权重,核心是让 weight 值真实反映它相比其他节点的处理能力——不是拍脑袋定数字,而是基于硬件和实测数据换算出来的相对比例。
看硬件指标粗估初始 weight
从物理资源出发,快速拉出一个合理起点:
- CPU 核心数:双路 24 核服务器可设为 48,单路 8 核设为 8
- 内存容量:若某节点内存是其他节点的 2 倍,且应用明显吃内存,weight 可按 2 倍设(如别人是 2,它就设 4)
- 磁盘类型:用 NVMe SSD 的节点,比用 SATA HDD 的同配置节点,weight 可上浮 1.5–2 倍
用压测结果校准 weight
硬件只是基础,真正决定承载力的是实际服务表现。建议用 wrk 或 ab 对每台后端单独压测:
- 在相同并发、相同请求路径下,记录各节点稳定不超时的 QPS 上限
- 取最低 QPS 节点为基准(比如 200 QPS → weight=1),其余按比例换算(如 600 QPS → weight=3,400 QPS → weight=2)
- 避免直接套用峰值 QPS,应取持续 5 分钟不抖动的稳态值
配置时注意几个关键细节
weight 本身简单,但要起效得配合其他参数一起用:
- weight 必须写在 upstream 的 server 行里,不能放在 location 或 http 块中
- 数值是无量纲整数,默认为 1;Nginx 内部自动归一化,总和不必凑 100
- 单靠 weight 不防故障,务必加 max_fails 和 fail_timeout(例如 max_fails=3 fail_timeout=30s)
- 新上线或刚恢复的高性能节点,建议加 slow_start=60s,避免瞬间流量打满
一个典型配置示例
假设你有三台机器:
- 192.168.1.10:双路 32 核 + 128G 内存 + NVMe,压测稳态 QPS 1200
- 192.168.1.11:单路 16 核 + 64G 内存 + SATA SSD,压测稳态 QPS 500
- 192.168.1.12:单路 8 核 + 32G 内存 + SATA HDD,压测稳态 QPS 200
以最低 QPS 200 为基准(weight=1),则比例约为 6 : 2.5 : 1 → 取整为 weight=6、weight=3、weight=1,再补上健康检查与平滑上线:
upstream backend {server 192.168.1.10:8080 weight=6 max_fails=2 fail_timeout=20s slow_start=60s;
server 192.168.1.11:8080 weight=3 max_fails=2 fail_timeout=20s;
server 192.168.1.12:8080 weight=1 max_fails=2 fail_timeout=20s;
}



















