前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LVS负载均衡的调度算法

LVS负载均衡的调度算法

作者头像
dys
发布2018-04-03 10:58:13
1.1K0
发布2018-04-03 10:58:13
举报
文章被收录于专栏:性能与架构性能与架构

LVS是如何决定把用户请求转给哪台服务器的?LVS有很多种调度算法,下面介绍几个最常用的算法

(1)轮询

这是最简单的调度算法,调度器将收到的请求循环分配到服务器集群中的每台机器,这种算法平等地对待每一台服务器,而不管服务器上实际的负载状况和连接状态,适合所有服务器有相同或者相近性能的情况

算法

i = -1;

i = (i + 1) mod n

(2)加权轮询

调度算法根据服务器的不同能力来分配请求

可以对每台服务器设置不同的权值,对性能相对较好的服务器设置较高的权值,而对处理能力较弱的设置较低的权值,这样保证了处理能力强的服务器处理更多的请求,充分合理地利用了服务器资源

算法

先轮询,然后结合权值,来决定是否使用此服务器

假设有3台服务器,每个服务器的权值为 4、3、2,现在来了9个请求,那么这些请求的处理次序应该是什么样的呢?

下面是我用JS模拟的处理方式,有兴趣可以了解下

(3)最少连接数

动态地将网络请求调度到已建立的连接数最少的服务器上,这个算法同轮询算法类似,适合于各个服务器计算能力相似的情况

算法

调度器为每台服务器记录其连接数,计算取得连接数最少的服务器,把请求分配给他,分配后,此服务器的连接数加1,连接终止或超时后,连接数减1

(4)加权最少连接数

每个服务器可以用相应的权值表示其处理能力,系统管理员可以动态地设置相应的权值,也是为了平衡利用服务器资源

算法

各个服务器的连接数 / 其权值

取得结果值最小的那个

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档