在做虚拟化时候,遇到划分CPU的问题,因此考虑到CPU不知道具体怎么划分,查询一些资料后就写成本文。
a. 物理CPU:物理CPU是相对于虚拟CPU而言的概念,指实际存在的处理器,就是我们可以看的见,摸得着的CPU,就是插在主板上面的。如下图:
b. 物理核:CPU中包含的物理内核个数,比如我们通常说的双核CPU,单核CPU。这个呢有点看不见摸不着,已经集成在CPU内部了。在linux系统下面的/proc/cpuinfo文件的条目中:1.有多少个不同的physical id就有多少个物理CPU。2.cpu cores记录了对应的物理CPU(以该条目中的physical id标识)有多少个物理核,现在我们个人使用的单机PC大部分使用的都是双核CPU。
c. 逻辑CPU(逻辑核):用Intel的超线程技术(HT)将物理核虚拟而成的逻辑处理单元,现在大部分的主机的CPU都在使用HT技术,我们在windows系统下面看下图,我们看到有4个cpu记录,其实我们使用的双核CPU只是使用HT技术虚拟出来4个逻辑CPU.在linux系统下面的/proc/cpuinfo文件的条目中siblings记录了对应的物理CPU(以该条目中的physical id标识)有多少个逻辑核。
d. vCPU:虚拟cpu是我们在做虚拟化时候,利用虚拟化技术,虚拟出来的CPU。讨论vCPU离不开VM,因此vCPU的讨论都是在虚拟化时候,划分cpu才会讨论的问题。通常一个物理CPU按照1:4——1:10的比例划分,假如我们有4个8物理核心的CPU按照1:5的比例划分,可以得到4X8X5=160vCPU.