第 2 章 · 服务器第 4 页,共 4 页
换一台更强的电脑,能撑多久?
读者越来越多,最直接的办法是把服务器换成更强的一台。这一页让读者一次次翻倍,再一档一档往上换,看容量和月租怎样一起上涨,最强的一档也被挤满以后又怎样;再让这台机器停下来,看会发生什么。
为什么需要
上一页看到,每秒的越接近(服务器一刻不停时平均每秒能处理完的请求数),等待涨得越急;超过容量,等得太久的请求就失败。百家菜是本课程虚构的家常菜谱网站,读者还在增加,晚饭高峰迟早会顶到这台的上限。最直接的办法,是换一台更强的:的核心更多,更大,每秒能处理的请求更多。这叫(vertical scaling)。在上,这通常就是给租来的换一个更大的型号。换型号并不是无缝的:微软的说明写着,正在运行的虚拟机换型号要重启,算是会中断服务的操作。
怎样做
在下图里,读者每翻一倍,每秒的请求就翻一倍;每换一档,容量也是上一档的 2 倍。月租前四档每档 2 倍,最后两档每档 2.5 倍。就是送来的工作占容量的几成。交替着让读者翻倍、换更强的一档,一直到最强的一档也被挤满,再让这台服务器停机。
升级配置:容量和月租一起上涨,直到没有更强的型号
先看这里交替按「读者翻倍」和「换更强的一档」,看负载条和请求怎样变化,直到最强的一档也被挤满;最后按「让它停机」。
- 完成:请求处理完,响应发回读者
- 失败:读者没有等到响应
- 一个点代表一批请求,N 是这一批的个数
第 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 访问。
- Architecture strategies for optimizing scaling and partitioning
- Resize a virtual machine
- Dsv5 size series
- Azure 零售价格接口:美国东部 D2s_v5、E2s_v5、D96s_v5 三种虚拟机的价格
- CPU options for Amazon EC2 instances
- Mdsv3 Very High Memory size series
- Resilience analysis framework: Overview of the framework
- Post mortem on the Cloudflare Control Plane and Analytics Outage