前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内部体验腾讯负载均衡的新功能

内部体验腾讯负载均衡的新功能

原创
作者头像
黄希彤
修改2017-08-03 16:18:44
2K0
修改2017-08-03 16:18:44
举报
文章被收录于专栏:黄希彤的专栏黄希彤的专栏

有个朋友的web服务,因为在线用户数目平常波动很大,按照最大在线数部署服务器显然太浪费,所以选择了腾讯云的弹性伸缩(AutoScaling)服务,在每天用户集中上线的时间点上快速扩容服务器加入到集群中分散压力。因此在集群遭遇到突发的访问压力的时候,快速的自动扩容能力就显得非常重要了。前阵子还专门为此请教了腾讯云专家,解析了快速生成主机的不传之秘

但是快速生成了主机并加入集群,并不能确保主机快速的分担压力,因为腾讯云的负载均衡目前只支持IP hash 和按权重轮询两种方式,这两种分配算法在新服务器加入后都需要经过一段短时间的预热才能逐步分配到流量。因此扩容后的曲线常常会是这样子的(刚刚进行的扩容实测,为了降低对业务影响测试了5分钟就停掉了):

[1487764342714_7761_1487764342961.png]
[1487764342714_7761_1487764342961.png]

注意红色曲线和横轴重合的部分:

[1487764383972_5426_1487764384108.png]
[1487764383972_5426_1487764384108.png]

(第一分钟0Mbps)

[1487764395049_8722_1487764395139.png]
[1487764395049_8722_1487764395139.png]

(第二分钟0Mbps)

[1487764404508_580_1487764404584.png]
[1487764404508_580_1487764404584.png]

(第三分钟0Mbps)

也就是说,虽然生成一台服务器我们可以优化到数十秒,但是新服务器加入集群后的前面几分钟几乎没有请求分发到新服务器上,随后才步入正轨。这样显然延长了压力缓解过程,让更多用户忍受了几分钟的恶劣体验。

那有没有办法缩短这个过程呢?腾讯云近期将推出的新的负载均衡轮询算法就可以解决这个问题。新算法被称为“最小连接数”算法,也就是LB会随时判断哪台主机上的HTTP连接数最少,然后尽量把新的请求分发给它。经过一番软磨硬泡,终于从负载均衡团队磨到了新LB算法的内测体验资格,立刻做了一个扩容实验。我们来看看效果:

[1487768165934_6356_1487768166127.png]
[1487768165934_6356_1487768166127.png]

可以看到,最开始和横轴重合的一段消失了,新服务器在接入的第一时间立刻分摊到了访问量并输出流量,集群中过载的服务器压力也就立刻得到了缓解。

不只是扩容过程会从新算法中收益,实际上在以往的算法中,集群中的服务器都难以即时分担彼此的压力,当某一台或者几台服务器压力过大的时候,LB只会继续按照权重随机的分配新的请求给它,而不是降低它的权重,让它缓一缓。而在新算法中,如果一台服务器负担压力过重导致请求无法及时响应完成,LB就会观察到它的连接数增加,并把更多的请求分配给连接数更少的服务器,从而达到更优的负载均衡效果。

当然,要充分获得这些优势都要取决于接入服务器已经实现了『无状态化』这个前提,否则负载均衡也无法随意的把一台服务器的压力转移到另一台上面。

相关推荐

【腾讯TMQ】和开发一起写代码,让测试左移起来

手游兼容性测试MGCT

【App专项测试】—冲突测试

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档