ngx_http_upstream_vnswrr_module.
介绍
VNSWRR
模块是一个高效的负载均衡算法,同Nginx官方的加权轮询算法SWRR
相比,VNSWRR
具备 平滑、散列和高性能特征。
配置列子
http { |
安装方法
在Tengine中,通过源码安装此模块:
|
指令描述
vnswrr
Syntax: vnswrr |
在upstream里面启用 vnswrr
加权轮询算法。
性能数据
在相同的压测环境下,VNSWRR
算法核心函数(ngx_http_upstream_get_vnswrr
)CPU消耗占比仅有 0.27%
,而在SWRR
算法下其核心处理函数(ngx_http_upstream_get_peer
)CPU消耗占比高至 39%
。 其CPU消耗比VNSWRR
算法要高出一个数量级。
- 压测环境
CPU型号: Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz |
在上述的压测环境下,VNSWRR
算法的QPS处理能力相比SWRR
提升 60%
左右,如下图所示。
通过试验,控制变量是upstream里面配置的server数量,观察不同场景下Nginx的QPS处理能力以及响应时间RT变化情况。从图中可以发现当后端upstream里面的server数量每增加500台则Nginx的QPS处理能力下降 10% 左右,响应RT增长 1ms 左右。