首先我们来说明几个概念来明确 什么是处理器数?物理核心数?逻辑核心数?
1.物理cpu数(处理器数量,我们常把4个物理处理器的服务器叫做4路服务器):主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)
2.cpu核数(单路处理器中核心数,比如个人电脑基本都是单路):单块CPU上面能处理数据的芯片组的数量,笔记本如16核、8核等 (cpu cores);服务器一般是16,32,64核心,比如鲲鹏服务器一般是2个920芯片组,也就是2路*64核心。
3.逻辑cpu数(超线程数):简单来说,它可使处理器中的1颗内核,如2颗内核那样在操作系统中发挥作用。
这样一来,操作系统可使用的执行资源扩大了一倍,大幅提高了系统的整体性能,此时逻辑cpu=物理CPU个数×每颗核数x2。
所以我们得到公式如下:
总核数 = 物理CPU个数 × 每颗物理CPU的核数。
总逻辑CPU数 = 物理CPU个数 ×每颗物理CPU的核数 × 超线程数。
回到云计算场景中,在公有云环境下,vCPU是虚拟出来的CPU,CPU的虚拟化就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。
通常1vCPU其实是一个超线程,只是给你一个超线程,2vcpu只是两个超线程,并不是完整的给你一个物理核心。超线程是指把一个物理核心虚拟成两个,这样可以同时处理两个任务,当物理核心负载较低时,超线程可有效加快运行速度。
这个比较好理解,当物理核心只有10%的使用率时,如果没有超线程,那么它同时只能处理一个任务;当有超线程后,剩余的90%的资源就可以处理别的任务了。但是当物理核心本身的负载很高时,超线程就没有多大的提升了。
对于云计算来讲,超线程可以有效的提升物理服务器的资源分配率,最大限度的降低成本。严格意义上属于超售,一般大的云计算厂家对资源的分配有比较严格的控制,不会出现非常严重的超售情况,也不会出现某台1vCPU云服务器性能很强,
某台很弱的情况。在大多数的实例规格族下,可以认为n核的云服务器的CPU性能相当于n台的1vCPU(高主频、裸金属、CPU云服务器除外。)
阿里云和华为云上已经明确标注服务器为vCPU,腾讯云上标注的是核数。企鹅是否是良心卖家不得而知,反正阿里和华为已经全部采用虚拟化技术,打算上云的小伙伴们擦亮眼睛,做好心里预期。




