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

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

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

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

(第一分钟0Mbps)

(第二分钟0Mbps)

(第三分钟0Mbps)

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

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

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

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

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

相关推荐

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

手游兼容性测试MGCT

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

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

MindTouch简介和技术架构

摘要: 介绍MindTouch公司的企业级协作平台和平台架构。本文主要内容翻译自于【3】,也是协作吧!!的第一篇作品,希望大家多提意见。 正文: MindTou...

1877
来自专栏腾讯移动品质中心TMQ的专栏

精准测试之精简用例

1 背景 手机管家目前有6年多的历史了,一直在持续不断的加入新特性,每次发布前除了新增功能之外,旧的核心功能也是发布之前必须确保的。 1.1当前用例情况 6年的...

2008
来自专栏圣杰的专栏

ABP入门系列(18)—— 使用领域服务

源码路径:Github-LearningMpaAbp 1.引言 自上次更新有一个多月了,发现越往下写,越不知如何去写。特别是当遇到DDD中一些概念术语的时候...

18810
来自专栏CSDN技术头条

Agari使用Airbnb的Airflow实现更智能计划任务的实践

这是一篇由 Siddharth Anand撰写的文章,他是Agari公司的数据架构师。本文是Agari使用Airbnb的Airflow实现更智能计划任务的实践,...

2429
来自专栏SDNLAB

SDN和NFV在接入网和核心网的最新趋势

现今,有线和无线技术正在竞争下一代接入网络的支配权。由于带宽的巨大需求,光网络仍会在接下来的发展中扮演着主要角色。其中,PON是公认的宽带架构。这种技术能够促使...

2265
来自专栏SDNLAB

SDNLAB技术分享(七):开源SDN控制器DCFabric及云计算高效网络

1.DCFabric控制器的由来 1.1 SDN是云计算数据中心网络技术发展的必然要求 随着以虚拟化为基础的云数据中心的发展和成熟, 应用数据猛增,虚拟服...

3286
来自专栏编程一生

郁金香搜索引擎的方案

1304
来自专栏沃趣科技

基于Prometheus的数据库监控

作者 金 戈 沃趣科技技术专家 传统监控系统面临的问题 Prometheus的前身:Borgmon Borgmon介绍 应用埋点 服务发现 指标采集与堆叠 ...

49010
来自专栏小狼的世界

[每天五分钟,备战架构师-1]操作系统的类型和结构

计算机系统由硬件和软件两部分组成。操作系统是计算机系统中最基本的系统软件,它既管理计算机系统的软、硬件资源,又控制程序的执行。操作系统随着计算机研究和应用的发展...

872
来自专栏编程一生

系统的稳定性建设

1582

扫码关注云+社区