滚动新闻 →
美军组建‘铁门’特遣队 筑牢伊朗武器运输防线 波兰克拉科夫主市场广场发生枪击案 至少5人遇难 俄乌冲突升级之际 阿布扎比和谈即将展开 SaaS 数据库分库以后,跨租户查询应该怎样处理 习近平二十一大连任之路暗藏权力危机 七名政治局常委各有算盘,军权与接班人成为中南海最大变数 华北超级火流星疑变陨石雨 传击穿屋顶 引燃荒野 两根内存可以单独使用,装在一起却无法开机,应该检查哪些问题 Windows 11 Wi-Fi 连接正常却无法上网怎么办?一套基础排查方法 中期选举后共和党内部反思:川普政治遗产与未来路线之争 MySQL LIKE 查询为什么可能很慢?文章搜索功能应该怎样设计 中环碁圣赛四强赛落幕 林君谚卢奕铨晋级决赛 闪电战!美狂轰伊朗要塞 白宫惊传暗杀! 欧洲超市制冷系统遭大规模网络攻击 专家指涉国家行为体 立冬养生需注意食补禁忌 中国古典文学中的饮酒文化 十二经脉在传统理论中的位置 不粘锅使用隐患解析:专家揭示四大警示信号 阳刻和阴刻有什么区别 河北惊传在建大桥坍塌 事发瞬间画面曝光 让孩子懂得“不是故意的”也不等于不用负责 台籍诈骗集团头目在菲落网 涉案金额逾1亿元 白宫新幕僚长誓言忠诚,承诺全心全意服务总统与国家 泰国曼谷知名商场坠楼案 40岁台湾男子重伤不治 如何判断一个镜头应该保留还是删除 云南影视拍摄现场突发火灾 男主角疑似烧伤 中共二十一大前高层各怀算计 有致命软肋 洋务运动为什么没有实现真正的强国目标 男子利用AI换脸冒用他人护照被识破 无人机袭击致海地黑帮头目身亡 房间里的凹角空间可以怎么利用 巴拉圭副总统阿里亚纳意外成为总统 篮球国手转型政坛 美国多州税收政策分化 中产家庭面临福利困境 4名少将及5人辞去全国人大代表职务 大陆AI换脸带货黑产遭重拳打击 近4000账号被封禁 河北前委书记倪岳峰被调任人大 涉嫌经济问题遭调查 中国人的“夹菜”习惯有什么文化背景 委内瑞拉移民持枪威胁川普 被捕于白宫周边 巴拉圭国会弹劾总统培尼亚 银行倒闭丑闻引争议 在加拿大特菲诺看日落,太平洋的颜色每天都不一样 安徽女子遭陌生人泼汽油致90%烧伤 三子女辍学打工筹医疗费

Google Cloud Autoscaling 怎么工作,什么时候应该让虚拟机自动增加实例

发布时间: 2026-09-26 19:30:02    最后更新: 2026-11-05 20:53:38    阅读:96  约10 分钟阅读     

Google Cloud Autoscaling 怎么工作,什么时候应该让虚拟机自动增加实例
图片说明:示意图   图片来源:Public Domain(公有领域)
一台服务器什么时候应该增加第二台、第三台甚至几十台服务器?在传统机房里,这通常意味着管理员提前购买硬件、安装系统、配置应用,然后等待流量到来。云计算改变了这个逻辑。Google Cloud 的 Autoscaling 可以根据工作负载变化,自动调整虚拟机实例数量,让计算资源随着业务需求增加或者减少。

但自动扩容并不是简单的“CPU超过75%,马上开一台新机器”。如果把Autoscaling理解成一个只看CPU温度的自动开关,很容易在实际部署中产生错误配置。

Google Cloud Compute Engine中的自动扩展主要建立在Managed Instance Group,也就是MIG之上。MIG可以把一组配置一致的虚拟机作为一个整体管理,而Autoscaler则根据预先设定的扩展策略决定这个实例组应该维持多大规模。负载增加时扩容,需求下降时缩容。

最容易理解的方式,是把Autoscaler想象成一个不断回答问题的控制系统:按照现在的负载,这个实例组还够不够用?

最常见的信号是CPU利用率。

假设一个MIG设置目标CPU利用率为60%。随着用户请求增加,实例组平均CPU利用率不断高于目标值,Autoscaler可能增加实例,让更多VM分担工作。反过来,当负载长期下降,实例数量又可能减少。

这里有一个重要区别:这个60%或者75%不是“超过以后立即执行”的硬性报警线。它更接近Autoscaler希望维持的目标利用率。系统会根据当前实例组的负载和配置,计算需要多少实例,而不是机械地看到一台机器超过75%就增加一台。

而且,Google Cloud并不要求Autoscaling只看CPU。

目前的MIG Autoscaling可以使用平均CPU利用率、负载均衡服务能力、Cloud Monitoring指标以及计划任务等信号。在某些工作负载中,还可以根据队列等业务指标进行扩展。

这非常重要,因为CPU高并不一定意味着用户体验变差,CPU低也不一定意味着服务很健康。

比如一个Web API服务器的CPU只有40%,但是数据库查询延迟已经从50毫秒增加到800毫秒。此时继续增加Web服务器可能没有多大帮助,因为真正的瓶颈在数据库。

反过来,一台服务器CPU可能长期只有50%,但它承担的是大量网络连接或者请求分发任务,真正限制性能的可能是负载均衡服务能力、网络吞吐或者其他指标。

因此,选择Autoscaling信号时,应该尽可能选择能够反映“业务容量”的指标,而不是随手选择一个看起来容易理解的硬件指标。

Google Cloud还允许同时设置多个Autoscaling信号。当多个信号同时存在时,Autoscaler会分别计算每个信号所需要的实例数量,然后采用其中最大的建议规模。这样做的逻辑很简单:如果CPU认为需要10台机器,而负载均衡服务能力认为需要14台,那么系统不能只增加到10台,因为14台才是当前策略中更高的容量需求。

这也是自动扩容真正有价值的地方:它不是简单地根据一个数字开关服务器,而是在多个资源信号之间寻找满足当前需求的容量。

当然,Autoscaling也可以提前扩容。

对于每天上午固定出现流量高峰的网站,如果每天早上9点才开始看到CPU上升,然后才创建VM,新的实例可能来不及在流量高峰之前完成初始化。Google Cloud提供了schedule-based autoscaling,可以提前规定某个时间段至少需要多少台VM。

例如一个在线教育平台每天晚上7点都会出现大量用户同时进入课程。如果一台VM从创建到应用真正能够处理请求需要几分钟,那么7点才开始扩容显然太晚。计划扩容可以提前准备容量。

对于具有明显周期性负载的MIG,还可以使用predictive autoscaling。它利用历史负载预测未来需求,并提前扩容,使新VM能够在负载到来之前准备好。Google特别指出,这种方式更适合具有稳定日周期或周周期,而且实例初始化时间比较长的工作负载。

不过,预测并不是Autoscaling的唯一依据。

如果突然发生一条新闻导致网站访问量暴涨,而这种流量历史上从未出现过,预测模型当然不可能提前准确知道。Google的文档说明,预测Autoscaling仍会受到实时负载信号影响;如果实时负载高于预测值,实时信号会优先发挥作用。

这意味着预测扩容和实时扩容并不是二选一。一个负责提前准备,一个负责应对突然发生的变化。

自动扩容还有一个非常容易被忽略的问题:新实例不是凭空出现以后就马上成为一台“成熟服务器”。

VM需要启动操作系统,运行初始化脚本,启动应用程序,建立连接,并加载必要的数据。Google Cloud允许配置initialization period,用来告诉Autoscaler新实例大约需要多久才能进入稳定工作状态。Autoscaler在扩容判断中会考虑这个初始化阶段,因为刚刚启动的VM产生的资源利用率可能还不能代表正常运行状态。默认初始化时间为60秒,但实际应该根据应用启动过程进行测试和设置。

因此,一个启动需要30秒的Node.js API服务器,与一个需要5分钟加载模型的AI推理服务器,不能使用完全相同的Autoscaling思路。

缩容同样不能理解成“CPU下降就马上删除服务器”。

如果网站刚刚经历一次高峰,流量下降几分钟,Autoscaler如果立即删除大量VM,下一波请求又来了,就可能再次扩容。结果就是实例数量不断增加、减少,系统出现所谓的“抖动”。

Google Cloud为此使用stabilization机制。默认情况下,Autoscaler在缩容时会考虑近期观察到的峰值负载,而不是看到当前负载下降就立即把实例删除。默认的stabilization period为600秒,也就是10分钟。

对于某些业务,还可以使用scale-in controls进一步限制缩容速度。例如一个网站预计流量下降后很快又会迎来第二波高峰,就没有必要在第一波高峰刚结束时迅速删除大量VM。scale-in controls可以限制实例减少的速度。

这说明Autoscaling真正解决的是“容量弹性”,而不是“所有性能问题”。

如果数据库已经达到连接数上限,Web服务器从10台增加到50台可能只会让数据库死得更快。

如果应用使用共享文件系统,而存储IOPS已经达到上限,增加计算实例同样不会自动解决问题。

如果应用内部存在全局锁、单线程任务或者某个只能运行在单节点上的核心组件,那么增加VM也可能无法提高吞吐量。

如果应用需要大量实例之间互相通信,规模继续扩大以后,网络通信成本甚至可能成为新的瓶颈。

因此,配置Autoscaling之前,最好先回答一个非常现实的问题:这个应用的性能到底能不能随着实例数量增加而近似线性增长?

如果增加一台服务器能够多处理一部分请求,增加到10台以后仍然能够继续提高吞吐量,那么Autoscaling非常适合。

如果所有服务器最终都必须等待同一个数据库、同一个磁盘、同一个锁或者同一个外部API,那么Autoscaling的价值就会迅速下降。

成本也是Autoscaling必须考虑的问题。

自动扩容的优势之一就是低负载时可以减少闲置VM,从而降低成本。但自动扩容并不会自动帮企业控制预算。如果一次突发流量让实例组从5台扩大到50台,计算资源产生的费用同样会快速增加。

因此实际生产环境通常应该设置合理的最小实例数和最大实例数。Google Cloud的Autoscaling策略允许配置实例数量上下限,最大实例数尤其重要,因为它可以防止某些异常负载或者错误配置导致实例无限增加。

对于面向公众的网站,一个比较合理的思考方式是把Autoscaling看成一个弹性水库。

正常情况下,只保留满足基本业务所需要的容量;流量增加时释放更多计算资源;高峰过去以后,再逐步收回多余容量。但水库的大小仍然有限,进水管和出水管也有极限。如果数据库、网络或者存储已经堵住,继续增加水库里的水并不能解决问题。

所以,什么时候应该让虚拟机自动增加实例?

答案不是“CPU超过某个数字的时候”,而是当应用的实际容量需求正在增加,而且增加更多实例能够有效分担工作负载的时候。

对于普通Web应用,可以从CPU、请求量或者负载均衡服务能力入手;对于后台任务,可以考虑队列长度或者自定义Cloud Monitoring指标;对于每天规律出现的流量,可以使用计划扩容;对于有明显历史周期且启动时间较长的应用,可以考虑预测扩容。

而对于一个真正成熟的云架构,Autoscaling从来不是单独工作的魔法按钮。它需要和负载均衡、健康检查、数据库扩展、缓存、消息队列、存储以及应用本身的无状态设计配合起来。

最终,Autoscaling的价值也不是让服务器数量变得越多越好,而是在用户真正需要计算能力的时候及时提供,在需求下降以后及时释放。对企业,这意味着少一点闲置资源;对用户,则意味着在流量高峰到来时,后台还有足够的计算能力接住请求。

云计算最有意思的地方就在这里:真正先进的系统,并不是永远拥有最多的服务器,而是能够知道什么时候需要更多服务器,以及什么时候已经不需要了。

喜欢这篇报道?

使用下面的功能,方便以后继续阅读和分享 MNewsTV

设为 Google 新闻首选来源 让 Google 新闻优先显示 MNewsTV 的最新报道 ›
★ 我的收藏 查看已经收藏的文章
关于文章收藏 收藏不需要注册帐号,收藏信息仅保存在当前浏览器中。 删除收藏请进入「我的收藏」进行管理。
分享这篇报道

捐助(Paypal): https://www.paypal.me/observeccp
订阅中国观察电报 Telegram : https://t.me/s/ObserveCCP