高性能服务器应按实际处理能力设大权重,如依cpu核数设为16:8:8即weight=2:1:1,或依压测qps设为6:3:2;权重宜用小整数,需显式配置且配合健康检查。

给高性能服务器分配大权重,核心是根据服务器实际处理能力做合理比例设定,不是随意填个大数字。
按硬件资源比例设权重
比如三台服务器:一台 16 核 CPU(高性能),两台 8 核(中等)。可设权重为 16 : 8 : 8,即 weight=2、weight=1、weight=1。这样高性能服务器承担约 50% 的请求,符合其算力优势。
常见参考依据包括:
- CPU 核心数或 vCPU 数量
- 内存容量(如 32GB vs 16GB,可对应 weight=2 vs weight=1)
- 磁盘 I/O 能力(SSD 阵列可比单块 SATA 盘高 3–5 倍,权重可酌情上浮)
结合压测结果动态调权
理论配置需用真实流量验证。建议先用 ab 或 wrk 对每台后端单独压测,记录在相同并发下能稳定支撑的 QPS:
- 服务器 A:QPS = 1200
- 服务器 B:QPS = 600
- 服务器 C:QPS = 400
按 QPS 比例归一化,总和取整(如 1200:600:400 ≈ 6:3:2),直接作为 weight 值写入配置。
配置时注意关键细节
加权轮询不是“一次分配多个请求”,而是长期统计趋近于权重占比。Nginx 内部使用当前权重(current_weight)累加机制,所以:
- 权重值无需过大,保持小整数更利于收敛和调试(如 3、5、10 比 100、200、500 更稳妥)
- 所有 server 行必须显式写
weight,否则默认为 1,容易打破预期比例 - 配合
max_fails=3 fail_timeout=30s使用,避免故障节点持续拉低整体权重效果
一个典型配置示例
假设你有三台应用服务器,性能差异明显:
upstream backend {
server 192.168.1.10:8080 weight=5; # 16核 + 32GB RAM
server 192.168.1.11:8080 weight=3; # 8核 + 16GB RAM
server 192.168.1.12:8080 weight=2; # 4核 + 8GB RAM
}
总权重 = 10,各服务器理论承接比例分别为 50%、30%、20%,与硬件能力基本对齐。











