| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
权重轮询调度算法(Weighted Round-Robin Scheduling)
网管u家u.bitscn@com
上面所讲的轮询调度算法并没有考虑每台服务器的处理能力,在实际情况中,可能并不是这种情况。由于每台服务器的配置、安装的业务应用等不同,其处理能力会不一样。所以,我们根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。 网管网www_bitscn_com
权重轮询调度算法流程 网管论坛bbs_bitsCN_com
假设有一组服务器S = {S0, S1, …, Sn-1},W(Si)表示服务器Si的权值,一个指示变量i表示上一次选择的服务器,指示变量cw表示当前调度的权值,max(S)表示集合S中所有服务器的最大权值,gcd(S)表示集合S中所有服务器权值的最大公约数。变量i初始化为-1,cw初始化为零。其算法如下: 网管联盟bitsCN@com
| while (true) { i = (i + 1) mod n; 网管论坛bbs_bitsCN_com if (i == 0) { cw = cw - gcd(S); if (cw <= 0) { cw = max(S); 中国网管论坛bbs.bitsCN.com if (cw == 0) return NULL; } 网管联盟bitsCN_com } if (W(Si) >= cw) return Si; 中国网管论坛bbs.bitsCN.com
} |
这种算法的逻辑实现如图2所示,图中我们假定四台服务器的处理能力为3:1:1:1。
网管联盟bitsCN_com
网管下载dl.bitscn.com
由于权重轮询调度算法考虑到了不同服务器的处理能力,所以这种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。所以,在实际应用中比较常见。
网管网www_bitscn_com
总结 中国网管论坛bbs.bitsCN.com
轮询调度算法以及权重轮询调度算法的特点是实现起来比较简洁,并且实用。目前几乎所有的负载均衡设备均提供这种功能。
网管网www_bitscn_com
网管联盟bitsCN@com|
0
|
评论加载中…