来源:Notion ACP学习笔记 + 阿里云开发者社区 + 网络资料整理


一、详细讲解

1.1 虚拟化概述

**虚拟化(Virtualization)**是将物理计算资源(CPU、内存、存储、网络)抽象成虚拟资源池的技术,使得一个物理服务器可以同时运行多个相互隔离的虚拟机。

虚拟化的核心价值

  • 资源利用率提升:一台物理机跑多个 VM,充分利用 CPU 空闲算力
  • 成本降低:减少物理服务器采购,降低机房空间和电力消耗
  • 隔离性强:每个 VM 独立运行,故障互不影响
  • 快速部署:分钟级创建 VM vs 传统物理机数天交付
  • 弹性伸缩:根据负载动态创建/销毁 VM

1.2 CPU 虚拟化(重点)

CPU 虚拟化的原理

CPU 虚拟化让一个物理 CPU 模拟出多个虚拟 CPU(vCPU),每个 VM 认为自己独占一个完整的 CPU。

两种 CPU 虚拟化架构

架构 说明 特点
全虚拟化 VM 通过二进制翻译模拟硬件,Guest OS 无需修改 性能损耗较大,但兼容性好
半虚拟化 Guest OS 经过修改,主动配合 Hypervisor 性能好,但需要修改 Guest OS
硬件辅助虚拟化 CPU 提供 VT-x/AMD-V 硬件支持,Guest OS 无需修改 性能接近物理机,主流方案

阿里云 ECS 使用的虚拟化技术

  • 基于 KVM(Kernel-based Virtual Machine)+ 硬件辅助虚拟化(Intel VT-x / AMD-V)
  • 通过 virtio 驱动优化 I/O 性能

vCPU 算力计算

单核 vCPU 算力 ≈ 1 个物理 CPU 超线程的算力

  • 1 个物理核心(Core)= 2 个逻辑核心(Thread,超线程)
  • 1 个 vCPU ≈ 1 个超线程的算力

ECS 实例规格与 vCPU 的关系

ecs.g6.large = 2 vCPU + 8 GiB 内存 ecs.g6.xlarge = 4 vCPU + 16 GiB 内存 ecs.c6.2xlarge= 8 vCPU + 16 GiB 内存

CPU QoS(服务质量)三种控制策略

策略 说明 场景
Guaranteed(保证型) 100% 保证规格,性能稳定 核心数据库、中间件
Burstable(突发型) 基准算力低,可突发向上 开发测试、Web 应用
Shared(共享型) 多个实例共享物理资源 轻量级应用、爬虫

1.3 内存虚拟化(重点)

内存虚拟化的原理

内存虚拟化将物理内存抽象为虚拟内存空间,每个 VM 被赋予一块连续、超大的虚拟内存地址。

内存虚拟化的两种模式

模式 说明 特点
软件模拟 Hypervisor 模拟虚拟内存地址到物理地址的映射表 灵活但性能损耗大
硬件辅助(EPT/NPT) CPU 自动完成两级地址转换(VA → PA → MA) 性能接近物理机

地址翻译三级跳

虚拟地址 (VA) → 物理地址 (PA) → 机器地址 (MA) (VM 视角) (Hypervisor 分配) (实际硬件)

内存气泡(Memory Ballooning)

Hypervisor 通过内存气泡机制,从内存使用率低的 VM 借调内存给内存紧张的 VM,提高整体内存利用率。

内存复用技术

  • 内存气泡:动态回收空闲 VM 内存
  • 内存压缩:对不活跃内存页面进行压缩
  • Swap:将内存换出到磁盘(性能会下降)

1.4 NUMA 架构与 vCPU 绑定

NUMA(Non-Uniform Memory Access):非统一内存访问架构

  • 每个 NUMA 节点 = 1 组 CPU + 本地内存
  • 跨 NUMA 访问内存延迟远高于本地访问
  • 阿里云 ECS 大规格实例(≥ 8 vCPU)默认采用 NUMA 架构

性能优化建议

  • 对延迟敏感的应用:将进程绑定到本地 NUMA 节点
  • ECS 开启 NUMA 功能:让 VM 的 vCPU 和内存尽量在同一 NUMA 节点

1.5 I/O 虚拟化

技术 说明
virtio 半虚拟化 I/O 驱动,VM 无需模拟真实硬件,Hypervisor 提供虚拟设备,性能好
SR-IOV 单根 I/O 虚拟化,让 VM 直接访问物理网卡,绕过 Hypervisor,性能最优
VF(Virtual Function) SR-IOV 虚拟出的功能接口,一个物理网卡可虚拟出多个 VF

1.6 阿里云 ECS 实例分类

实例族 特点 适用场景
通用型(g) 平衡 CPU 和内存 Web 应用、中等负载
计算型(c) CPU 占比高 高性能计算、批量处理
内存型(r) 内存占比高 数据库、缓存
本地 SSD 型(i) 高性能本地盘 低延迟数据库
GPU/FPGA 型(gn) 异构计算 AI 推理、深度学习
弹性裸金属(ebm) 物理机体验 核心数据库、需物理隔离

二、背诵版(Night Before Exam)

CPU 虚拟化

KVM + VT-x = 阿里云 ECS 的底层虚拟化技术

  • 全虚拟化 = 二进制翻译(慢)
  • 半虚拟化 = 修改 Guest OS(快但不通用)
  • 硬件辅助虚拟化 = VT-x/AMD-V = 主流 = 快

vCPU 算力

1 vCPU ≈ 1 个物理 CPU 超线程的算力 1 物理核 = 2 vCPU(超线程)

CPU QoS 三种策略

Guaranteed(保证)/ Burstable(突发)/ Shared(共享)

  • 保证型:金融数据库,要稳定
  • 突发型:Web 开发测试,省钱
  • 共享型:爬虫、离线任务

内存虚拟化

地址翻译:VA → PA → MA(虚拟→物理→机器) EPT/NPT = 硬件辅助内存虚拟化 = 主流方案 内存气泡 = Hypervisor 动态回收空闲 VM 内存

NUMA

NUMA = 非统一内存访问 = 本地访问快、跨节点访问慢 大规格 ECS(≥ 8 vCPU)默认 NUMA 架构


三、速记版(考前 5 分钟回忆)

✅ 虚拟化 = 一台物理机变多台虚拟机 ✅ KVM = 阿里云 ECS 底层虚拟化引擎 ✅ VT-x/AMD-V = CPU 硬件辅助虚拟化 = 主流 ✅ 1 vCPU ≈ 1 超线程算力 ✅ 1 物理核 = 2 vCPU(超线程) ✅ EPT = 硬件辅助内存虚拟化 = 零损耗 ✅ 内存气泡 = 动态回收空闲 VM 内存 ✅ NUMA = 本地访问快,跨节点慢 ✅ virtio = 半虚拟化 I/O 驱动 = 性能好 ✅ SR-IOV = 网卡硬件虚拟化 = 最高性能 ✅ 通用型 g = 平衡,计算型 c = CPU 高,内存型 r = 内存高

四、测试练习题

单选题

1. 阿里云 ECS 底层使用的虚拟化技术是?

  • A. VMware ESXi
  • B. Xen
  • C. KVM + 硬件辅助虚拟化 ✅
  • D. Hyper-V

答案:C
解析:阿里云使用 KVM(Kernel-based Virtual Machine)配合 Intel VT-x / AMD-V 硬件辅助虚拟化。

2. 关于 vCPU 和物理 CPU 的关系,以下说法正确的是?

  • A. 1 个 vCPU = 1 个物理核心
  • B. 1 个物理核心 = 1 个 vCPU
  • C. 1 个物理核心 = 2 个 vCPU(超线程)✅
  • D. vCPU 和物理 CPU 没有对应关系

答案:C
解析:现代 CPU 超线程技术让每个物理核心提供 2 个逻辑线程(vCPU)。

3. 内存虚拟化中,VA → PA → MA 的三级地址翻译中,PA 代表什么地址?

  • A. 虚拟地址
  • B. 物理地址(Hypervisor 分配的)✅
  • C. 机器地址
  • D. 磁盘地址

答案:B
解析:VA 是 VM 看到的虚拟地址,PA 是 Hypervisor 分配给 VM 的物理地址,MA 是实际硬件机器地址。

4. EPT/NPT 技术的作用是?

  • A. 加速 CPU 虚拟化
  • B. 加速内存虚拟化 ✅
  • C. 加速网络 I/O
  • D. 实现存储虚拟化

答案:B
解析:EPT(Extended Page Table)/ NPT(Nested Page Table)是 CPU 硬件辅助的内存虚拟化技术,自动完成两级地址转换。

5. NUMA 架构中,跨 NUMA 节点访问内存的延迟?

  • A. 和本地访问一样
  • B. 比本地访问慢很多 ✅
  • C. 比本地访问快
  • D. 不确定

答案:B
解析:NUMA 的设计目标是让 CPU 访问本地节点内存更快,跨节点访问有显著延迟惩罚。

6. 以下哪种 CPU QoS 策略适合开发测试环境?

  • A. Guaranteed
  • B. Burstable ✅
  • C. Dedicated
  • D. Reserved

答案:B
解析:突发型(Burstable)价格低,有突发能力,适合负载波动大的开发测试环境。

多选题

7. 阿里云 ECS 的内存复用技术包括?

  • A. 内存气泡 ✅
  • B. 内存压缩 ✅
  • C. 内存交换(Swap) ✅
  • D. 内存硬分片

答案:A、B、C
解析:内存气泡、内存压缩、Swap 都是 Hypervisor 层的内存复用技术。硬分片不是标准复用技术。

8. virtio 和 SR-IOV 的区别包括?

  • A. virtio 是软件模拟的虚拟化驱动
  • B. SR-IOV 让 VM 直接访问物理网卡 ✅
  • C. virtio 性能优于 SR-IOV
  • D. SR-IOV 需要硬件支持 ✅

答案:B、D
解析:virtio 是半虚拟化驱动(软件),性能好但不如 SR-IOV。SR-IOV 需要网卡硬件支持,性能最优。

判断题

9. 在阿里云 ECS 中,1 个 ecs.c6.2xlarge 实例拥有 2 个物理 CPU 核心,共 4 个 vCPU。

  • A. 正确
  • B. 错误

答案:B
解析:2xlarge = 8 vCPU,约等于 4 个物理核心(超线程后)。

10. 内存气泡技术可以无限从空闲 VM 借调内存。

  • A. 正确
  • B. 错误

答案:A
解析:内存气泡由 Hypervisor 控制,只能回收 VM 实际空闲的内存,不能超量借用。