服务器换一台更强的电脑

为什么需要

上一页看到,每秒的越接近(服务器一刻不停时平均每秒能处理完的请求数),等待涨得越急;超过容量,等得太久的请求就失败。百家菜是本课程虚构的家常菜谱网站,读者还在增加,晚饭高峰迟早会顶到这台的上限。最直接的办法,是换一台更强的:的核心更多,更大,每秒能处理的请求更多。这叫(vertical scaling)。在上,这通常就是给租来的换一个更大的型号。换型号并不是无缝的:微软的说明写着,正在运行的虚拟机换型号要重启,算是会中断服务的操作。

怎样做

在下图里,读者每翻一倍,每秒的请求就翻一倍;每换一档,容量也是上一档的 2 倍。月租前四档每档 2 倍,最后两档每档 2.5 倍。就是送来的工作占容量的几成。交替着让读者翻倍、换更强的一档,一直到最强的一档也被挤满,再让这台服务器停机。

升级配置:容量和月租一起上涨,直到没有更强的型号

先看这里交替按「读者翻倍」和「换更强的一档」,看负载条和请求怎样变化,直到最强的一档也被挤满;最后按「让它停机」。

配置
这一档的配置:两根柱子都按第 1 档的几倍来画

两根并排的柱子:左边是这一档的容量,右边是月租,都按第 1 档的几倍来画。具体的数写在图下的读数里。

发起方
处理

  • 完成:请求处理完,响应发回读者
  • 失败:读者没有等到响应
  • 一个点代表一批请求,N 是这一批的个数

每秒请求数45个
负载90%
每秒失败的请求(约)0个
月租(第 1 档的几倍)1 倍

第 1 档就是现在这台:容量每秒 50 个,晚饭前每秒约 45 个请求,负载 90%,排队已经很明显。

档位、容量、月租和读者的人数都是示意:每一档能处理多少请求,取决于程序本身,没有通用的数。请求超过容量时,图里按长期的情况算:每秒处理完的约等于容量,多出来的约等于失败的。这里与第 3 页的图一样,假定等太久的请求离开队伍、不再占用服务器,所以处理完的都还有读者在等;真实的服务器可能白白处理读者已经放弃的请求,有用的就更少。

真实的云上也是这样。以微软出租电脑和在线服务的 Azure 为例:它的 Dsv5 系列从 2 个(vCPU)到 96 个,价格与虚拟处理器的个数同比例上涨,每个每小时都是 0.048 美元(美国东部、Linux 系统的按需价)。虚拟处理器是云厂商给出租机器的处理器计数的单位。

再往上就到了尽头:Azure 目前最大的虚拟机之一有约 1,800 个虚拟处理器,是 Dsv5 最小一档的约 900 倍,约 3 个。能租到的单台机器,大致就到这么大为止。

图里最后一步演示的是另一种风险:百家菜只有这一台服务器,它一停,所有读者的请求同时失败。硬件会坏,数据中心也会断电。某个组件一坏,整个系统就跟着停下来,因为没有别的组件能顶替它,这叫(single point of failure)。

放大到整个(集中摆放大量服务器的场所)也一样。2023 年 11 月 2 日,为许多网站提供网络服务的 Cloudflare 公司租用的俄勒冈州一处数据中心断电。它的网络照常运行,但让客户修改设置、查看统计的那部分服务停了,原因之一是其中几个关键程序只放在这一处;从断电到 11 月 4 日全部恢复,前后约 41 小时(推算)。

代价是什么

纵向扩展的代价有三层。一是钱:价钱随配置上涨,到了最大的几档可能更贵。二是上限:能买到的最强一台也有尽头,读者再多下去,就没有更强的可换了。三是只有一台:不管多强,它一停就全部停下。第 4 章讲几台服务器一起分担,第 8 章讲把数据多存几份,都是为了不再只靠一台。

回顾:服务器这一章

  • 服务器是什么:一台一直开着、连着网的电脑,上面运行着等请求的服务;里面的网络、处理器、内存和硬盘各做一件事(第 1 页)。
  • 快慢差几个数量级:读一次内存约 130 纳秒,读一次固态硬盘约 100 微秒,跨大洲来回一次要几十到几百毫秒(第 1 页)。
  • 云在哪里:通常在别人的数据中心里,按需租用;一台大机器可以分成几台虚拟机,程序还可以装进共用内核的容器(第 2 页)。
  • 为什么会越来越慢:请求随机到达,越接近容量,排队涨得越急;超过容量就过载,等得太久的请求失败(第 3 页)。
  • 换一台更强的:容量和月租一起上涨,读者再多,最强的一档也会被挤满;百家菜只有这一台时,它一停,所有读者同时打不开菜谱,也没有别的机器能顶上(第 4 页)。

考试成绩刚公布时去查分,选课系统刚开放时去抢课,页面一直转圈,提示「系统繁忙」:往往是许多人在同一时刻做同一件事,每秒的请求一下子顶到了服务器的容量,后来的只好排队,等得太久就失败。

资料来源

以下资料均于 2026-10-22、2026-10-23 和 2026-10-25 访问。

  1. Architecture strategies for optimizing scaling and partitioningMicrosoft Azure Well-Architected Framework,2023-11-15,2025-10-30 更新
  2. Resize a virtual machineMicrosoft Learn,2026-02-05
  3. Dsv5 size seriesMicrosoft Learn,2026-03-11
  4. Azure 零售价格接口:美国东部 D2s_v5、E2s_v5、D96s_v5 三种虚拟机的价格微软(取 Linux 系统的按需价,2021-11-01 起生效),未注明日期
  5. CPU options for Amazon EC2 instancesAWS,未注明日期
  6. Mdsv3 Very High Memory size seriesMicrosoft Learn,2026-03-10
  7. Resilience analysis framework: Overview of the frameworkAWS Prescriptive Guidance,未注明日期
  8. Post mortem on the Cloudflare Control Plane and Analytics OutageMatthew Prince,Cloudflare,2023-11-04