- Published on
物理核和vCPU的关系
- Authors
- Name
- liflyOnline
1.CPU个数
在购买物理服务器时,一般我们可以看到一台计算机的CPU数量,比如一颗或者两颗。
2.CPU物理核数
每颗CPU有多个物理核数,例如24cores,48cores
3.PCPU
PCPU 是 “Physical CPU(物理中央处理器)” 的缩写,常用于虚拟化、云计算和操作系统等领域,用来指代实际存在于硬件中的处理器核心或线程资源。比如你有一个 Intel i7 的 CPU,它可能有 4 个物理核心,每个核心支持 2 个线程(超线程),那么你就有 4 个 PCPU,8 个 vCPU(虚拟 CPU)。
4. LCPU
LCPU指的是CPU逻辑核数,通过超线程技术让一个物理核心模拟出的多个核心。LCPU数量 = PCPU数量 x 每个核心的线程数。
超线程技术 允许一个物理核心同时处理两个线程,让操作系统“以为”有两个核心。这样,一个四核的CPU如果支持超线程,操作系统就会看到 4个PCPU * 2 = 8个LCPU。
5. vCPU
一个逻辑核,在虚拟化环境中,分配给虚拟机的CPU资源。它最终由宿主机的PCPU执行。
6.超分比
“超分比” 是一个常见于 虚拟化 和 云计算 场景的术语,通常指的是:
虚拟 CPU(vCPU)数量 与 物理 CPU(pCPU)数量 之间的比例,也叫 CPU overcommit ratio(CPU 超分配率)。
🔧 详细解释:
✅ 公式:
超分比 = vCPU 总数 ÷ pCPU 总数
✅ 举例说明:
假设你有一台服务器,有:
- 物理 CPU 核心(pCPU):8 个
- 虚拟机总共使用了:32 个 vCPU
那么:
超分比 = 32 vCPU ÷ 8 pCPU = 4
这意味着:每个物理核心被“超卖”了 4 倍,或者说:4 个 vCPU 共享 1 个 pCPU。
🧠 为什么要超分?
在实际使用中,并不是所有虚拟机都会一直占满 CPU。很多业务负载是间歇性的(如 Web 服务、数据库查询等)。所以为了提升资源利用率,云平台会:
- 分配比实际物理 CPU 更多的 vCPU
- 让多台虚拟机共享物理核心
这种策略能大大提高 CPU 使用率和系统收益。
⚠️ 超分比的影响:
超分比 | 特点 | 风险 |
---|---|---|
较低(如 1:1 ~ 2:1) | 性能好,资源浪费少 | 成本高 |
较高(如 4:1 ~ 8:1) | 成本低,资源利用高 | 性能可能下降,争抢 CPU |
💡 最佳实践建议:
- 数据库、视频转码、AI 推理等高负载场景:尽量不超分或超分低(如 1:1 ~ 2:1)。
- Web、办公、测试环境等轻负载场景:可以高超分(如 4:1 ~ 8:1,甚至更高)。
- 一些云服务商(如 AWS、阿里云)对不同实例类型设置了不同的超分比,但不公开详细比例。
📝 总结一句话:
超分比 是衡量 vCPU 和 pCPU 分配比例的指标,是虚拟化环境中提高资源利用率的常用策略,但需要在性能和性价比之间权衡。
7. 虚拟机VCPU的分配与调度
对虚拟机来说,不直接感知物理CPU,虚拟机的计算单元通过vCPU对象来呈现。虚拟机只看到VMM呈现给它的vCPU。在VMM中,每个vCPU对应一个VMCS(Virtual-Machine Control Structure)结构,当VCPU被从物理CPU上切换下来的时候,其运行上下文会被保存在其对应的VMCS结构中;当VCPU被切换到PCPU上运行时,其运行上下文会从对应的VMCS结构中导入到物理CPU上。通过这种方式,实现各vCPU之间的独立运行。
从虚拟机系统的结构与功能划分可以看出,客户操作系统与虚拟机监视器共同构成了虚拟机系统的两级调度框架,如图所示是一个多核环境下虚拟机系统的两级调度框架。客户操作系统负责第2 级调度,即线程或进程在vCPU 上的调度(将核心线程映射到相应的VCPU上)。虚拟机监视器负责第1 级调度, 即vCPU在物理处理单元上的调度。两级调度的调度策略和机制不存在依赖关系。vCPU调度器负责物理处理器资源在各个虚拟机之间的分配与调度,本质上即把各个虚拟机中的vCPU按照一定的策略和机制调度在物理处理单元上可以采用任意的策略来分配物理资源, 满足虚拟机的不同需求。vCPU可以调度在一个或多个物理处理单元执行(分时复用或空间复用物理处理单元), 也可以与物理处理单元建立一对一固定的映射关系(限制访问指定的物理处理单元)。