Radware中的轮询调度算法考虑到了每台服务器的处理能力,在实际情况中由于每台服务器的配置、安装的业务应用等不同,其处理能力也会不一样。所以我们应该根据服务器的不同处理能力,给每个服务器分配不同的权重,使其能够接受相应权重值的服务请求以平衡压力。
实际场景:两台WEB应用服务器(IBM X3650 M3),内存和CPU配置不同,其中一台的内存是8G,另一台是16G。在负载均衡中,把两台WEB应用设为一个FARM组并设置一个VIP地址。在LoadRunner中,对两台应用的VIP虚地址做400并发的上行压力测试。
现象:发现两台WEB应用服务器承受的压力不均衡,8G内存配置较低的服务器承受了较高压力而16G内存配置较好的服务器却承担了较低的压力。
需求:我们需要调整8G内存配置较低的服务器承受较低压力而让16G内存配置较好的服务器承担较高的压力。
负载均衡调整过程:
1、调整负载均衡算法
进入AppDirector >Farms>Farm Table,调整负载均衡算法为Weighted Cyclic (按权重进行轮询)
注意:Aging Time: 60 , 用户会话表的老化时间,单位是秒, 越长会话保持的越久。
如果把
Aging Time的值设置的较大,比如设为1000秒,即便你设置了负载均衡算法为轮询,你也会发现另一台主机的压力较小。因为新增的会话表都保持在一台主机上,1000秒后才老化。
2、调整对应主机的权重比例
进入AppDirector>Server>Application Server>Table
注意:默认的权重比例为1,也就是两台服务器是均等的1:1比例,我们把8G内存配置较低的服务器权重设为1,把16G内存配置较高的服务器权重设为2,也就是1:2比例,意思就是一个服务器分担的请求是另一个服务器的2倍。
3、调整后的观察
通过TOP命令,发现两台WEB服务器的CPU利用率和磁盘读写率基本持平,CPU利用率都在60%左右,而之前几乎相差一倍。
进入Performance -> Servers -> Application Server Statistics,查看服务器TCP连接统计,也比较均衡了。
总结:权重轮询负载均衡算法可支持您均匀地分配流量,以便在等容连接上获得最大的传输效率,从而有效的利用服务器。并且我们还可以采用比率负载平衡算法来根据不同链路宽带均匀分配负载,这样方便我们使用不同的连接类型来匹配不同的带宽要求。