云上那台"服务器"不是一台机器,而是物理机被切出来的一份;切的时候会超售——虚拟共享便宜但高峰要排队,虚拟独占贵但性能写进合同。
上一篇(1-6)说清了"结构没变、位置变了"。这一篇开始换零件,第一件就是最核心的那个零件:服务器本身。
为什么必须换成虚拟的?因为在(1-2)里承诺的"按量收费"和"要多少有多少",用一台台的物理机根本做不到——物理机的最小单位就是整台。要把它变成"能按份取用"的东西,就得先切开。
一、为什么必须虚拟化
回到云的第三条判据:按需自助。它要求资源能被"取一份、用一会儿、还回去"。物理机做不到这一点:
- 粒度太粗:最小的购买单位是一整台,8 核 512GB 的机器你只想要 4 核 8GB,剩下的也得买。
- 周期太长:开一台要装系统、配网络,改配置要停机。
- 数量太少:一栋机房能装的机器有限,而客户要的是成千上万份独立的小环境。
虚拟化解决的就是"粒度"这件事:在物理机和操作系统之间加一层(Hypervisor),把 CPU、内存、磁盘、网络切成分片,每个分片装一个自己的操作系统,看起来就是一台独立的机器。
关键认知:你在云控制台看到的"一台服务器",其实是一份配置单——它不绑定任何一台具体的物理机,甚至可以迁移。
二、怎么切:先算清哪个资源先到顶
切分不是随便切的,能切出多少份,取决于最先用尽的那种资源。用一台 2 路 16 核(32 物理核/64 逻辑核)、512 GB 内存的机器举例:
- 按内存算:512 GB ÷ 8 GB = 64 份
- 按物理核算:32 核 ÷ 4 vCPU = 8 份
- 按逻辑核算:64 ÷ 4 = 16 份
三个数字差得很远,这就引出了超售:如果按内存上限切满 64 份,等于向客户承诺了 256 个 vCPU,而机器只有 64 个逻辑核——承诺了 4 倍于实有的算力。
三、超售:便宜与风险都从这里来
超售不是欺骗,它是统计学。因为绝大多数业务平时只用到 10~20% 的 CPU:
- 100 份 vCPU 里,同时忙碌的通常只有十几份;
- 于是"承诺 4 倍"在平均情况下相安无事,而客户因此付到了更低的价格。
但它有一个明确的代价:当大家都忙的那一天,每个人分到的就少。Demo 里算出来的 25% 就是这个意思——如果 64 台全部跑满,每台只能拿到四分之一的性能。
这个现象有个形象的叫法:吵闹邻居(noisy neighbor)。你什么都没做错,只是隔壁在跑批量任务,你的请求就慢了。它不是故障,是超售机制在高峰时的正常表现。
所以"我买的机器性能稳定吗"这个问题的答案,取决于服务商的超售比和你自己有没有准备余量。
四、虚拟共享与虚拟独占:怎么选
教材把这两个词并列,就是在画这条取舍线:
| 方式 | 资源怎么分 | 好处 | 代价 | 适合 |
|---|---|---|---|---|
| 虚拟共享 | 多份虚拟共享物理机,允许超售 | 便宜、随开随用 | 高峰可能被邻居拖慢 | 一般业务、Web 前端、开发测试 |
| 虚拟独占 | 物理资源不与他人共享 | 性能可预期、可写进合同 | 贵、粒度粗、弹性差 | 数据库、核心交易、合规要求 |
判断方法很直接,只问一句:这份性能,我能不能接受"有时候慢一点"?
- 能接受波动 → 共享,省钱。
- 不能接受波动(比如数据库、有 SLA 承诺的核心服务)→ 独占,或者至少在共享基础上留足余量。
五、动手 Demo:把超售算成数
physical_cores = 32 # 物理核
logical_cores = 64 # 逻辑核(超线程)
mem_gb = 512 # 内存
vm_cpu, vm_mem = 4, 8 # 每台虚拟机规格
by_mem = mem_gb // vm_mem # 内存能切多少台
by_core = physical_cores // vm_cpu # 按物理核能切多少台
print("按内存切 =", by_mem, "台")
print("按物理核切 =", by_core, "台")
print("若按内存切满,满载时每台只剩 = %.1f%%" % (logical_cores / (by_mem * vm_cpu) * 100))
实跑输出:
==================================================================================================
D7 虚拟服务器:一台物理机怎么切成很多台
==================================================================================================
物理机配置:2 路 × 16 核(共 32 物理核 / 64 逻辑核)+ 512 GB 内存
要切的虚拟机规格:4 vCPU + 8 GB 内存
【一】两种资源各自能切出多少台
资源 能切多少台 算法
----------------------------------------------------------------------------------------------
按内存算 64 台 512 GB ÷ 8 GB
按物理核算 8 台 32 核 ÷ 4 vCPU
按逻辑核算 16 台 64 ÷ 4
【二】服务商实际会怎么超售
做法 每台机器的 vCPU 总量 超售比 含义
------------------------------------------------------------------------------------------------
不超售(按物理核) 8 台 × 4 = 32 vCPU 1 : 1 性能稳,但贵
轻度超售 16 台 × 4 = 64 vCPU 2 : 1 常见的企业级做法
按内存上限切满 64 台 × 4 = 256 vCPU 8 : 1 性价比高,吵闹邻居明显
【三】超售意味着什么:把 64 台全部跑满的那一刻
项目 数字 说明
------------------------------------------------------------------------------------------------
所有 VM 申领的 vCPU 256 个 64 台 × 4
物理机真正能给的 64 个 逻辑核上限
同时满载时每台拿到的比例 25.0% 64 ÷ 256
④ 超售不是骗局,是统计学:绝大多数业务平时只用到 10~20% 的 CPU,
所以 4 倍超售在【平均情况】下相安无事。风险在于【大家都忙的那一天】——
这就是教材把【虚拟共享】和【虚拟独占】分开讲的原因:
共享便宜、高峰要排队;独占贵、但性能写进合同。
读这个输出:三个切分数(64/8/16)之间那个巨大的落差,就是超售存在的空间。看懂了 25.0% 这个数,你就能理解云主机的一个常见体验:平时很快,一到整点或活动高峰就变慢——那不是你的配置不够,是同一台物理机上有人在忙。对付它有两个办法:留出 CPU 余量(买大一号),或者把关键业务换成独享型实例。
六、⚠️ 2026 现状
- 虚拟机之外又多了"容器"这一层。容器比虚拟机更轻(共享宿主系统内核、启动快到毫秒级),已经成为新应用的事实标准。但两者不是替代关系:今天的主流做法是底层仍用虚拟机做隔离,上面跑容器——一台虚拟机里装几十个容器。所以"云上的服务器是虚拟服务器"这个判断今天依然成立。
- 出现了"微虚拟机":启动速度和容器差不多、隔离性接近传统虚拟机的形态,是今天很多按量计算服务(无服务器)的底层。它把共享与独占这对矛盾往前推了一步。
- 独占的形态更丰富了。除了整台物理机独占,还出现了GPU 切分(把一块显卡分给多个人)以及裸金属(完全不虚拟化、直接给你整台机器)——后者在需要极限性能或强合规的场景里越来越多见。
30 秒实验
打开你电脑的"任务管理器"或"活动监视器",看 CPU 使用率:
- 现在的 CPU 使用率是多少? 大概率在 5%~20% 之间。
- 算一算:如果按"你此刻用得最多的部分"来买机器,能省下多少?
这个数就是云服务商超售的底气——也提醒你:你在云上买的那台 4 核机器,也正是别人这么算出来的。
常见误区
-
错误:云主机就是一台小服务器,和物理机只是大小差别。——纠正:它们最根本的差别是"能不能迁移"。虚拟机的身份是一份配置单,可以被搬到别的物理机上重启;物理机坏了就得等备件。这个差别才是云能做"自动故障替换"的前提——它比"性能差多少"重要得多。
-
错误:超售是服务商在偷工减料。——纠正:超售是把"平均利用率低"这件事变成价格优惠的机制。没有超售,每个人都得按自己可能的峰值付费,价格会高得多。它的风险是真实存在的(吵闹邻居),但它本身不是欺诈——知道自己买的是共享还是独占,才是关键。
-
错误:买独享型实例就一定不会慢。——纠正:独占解决的是"邻居抢资源",不解决"你自己买小了"。如果你的应用本身写得低效、或数据库没建索引,换成独占只会让账单更高、问题依旧。先确认瓶颈在自己还是在邻居——这一句能省下很多冤枉钱。
-
错误:超售比越高越不靠谱,应该只选 1:1。——纠正:超售比是一个价格与性能的旋钮,不是好坏标签。同一个服务商的共享型实例可能超售 4 倍却很便宜,独享型可能 1:1 但贵好几倍。选哪个取决于你的业务能容忍多少波动——把"性能可预期"当成一个可以购买的商品,会比把它当成一个道德问题有用得多。
自测三问(点开对答案)
1. 一台 2 路 16 核、512GB 的机器,按内存切能切 64 台,按物理核只能切 8 台。这个落差说明什么? —— 说明**这台机器的 CPU 与内存配比,和客户想要的规格不匹配**。客户普遍要"4 核 8GB"这种比例,而机器给的是"32 核 512GB"——**按客户的需求切,内存先用完;按物理核切,内存大量闲置**。超售就是拿来填这个落差的手段。这也是"云上为什么会有超售"的技术原因,而不是商业贪心。 2. "虚拟共享"和"虚拟独占",区别到底在哪一句话上? —— 在**"这份性能有没有承诺"**上。共享型不承诺你独占多少 CPU,只保证你的资源在"通常情况"下够用;独享型把资源写进规格,服务质量可以进合同。**所以选择的分界线不是价格,而是"这个业务能不能接受偶尔变慢"**——能接受就共享,不能接受就独享或留余量。 3. 为什么说"云主机可以被迁移"这件事,比"它性能如何"更接近云的本质? —— 因为**自动化运维全靠它**。机器坏了自动换、负载高了自动加、要维护了自动腾空——这些都建立在"虚拟机是一份可以搬来搬去的配置"之上。如果身份绑死在物理机上,云的弹性与自愈就无从谈起。**所以虚拟化不只是"把机器切小",更是"让机器变成可搬运的"。**- ☐ 下一节(1-8 云计算的服务器都是机架式或高密度式:机架式、高密度式)
相关笔记
- 基本的系统架构 —— 上一篇:结构没变,先从这里换掉最核心的零件
- 云计算的服务器都是机架式或高密度式 —— 下一篇:这些被切分的物理机,长什么样
- 云服务的特点 —— 按量收费能成立,前提就是资源被切成了小份
- 🖥️ 服务器工作原理 —— 单台服务器内部是怎么运转的,那门课讲得更细
- ☁️ 云计算 · 索引 —— 全课路线图