前不久在v2ex看到一个帖子,说腾讯云服务器CPU有水分,应该是这个人理解有误,我看那个帖子有一些网友回复挺专业的。虽然这个人理解有误,从他帖子我还是有收获的,比如他用的2个压测软件(CineBench、Fritz Chess Benchmark)很简单,下载下来打开界面,点start按钮,大概10分钟内就跑完了,跑完会出个分,尤其Fritz Chess Benchmark的界面上就明确告知识别到几个逻辑处理器了(可能他没注意到)。
跑分软件很多,比如像我经常在云上跑渲染,常用V-Ray Benchmark来跑分,操作一样简单,都是打开点开始按钮,等着出结果即可。没用过他说的软件,好奇,分别用这2个软件测了一次,严谨点的话,应该多次测试取平均值,我没用多次测,毕竟很显然就是"此核非彼核"的问题,电脑说的几核跟云服务器说的几核不是一个概念,通常说的电脑几核跟云服务器几核是两回事,电脑几核说的是内核数,云服务器几核说的是vCPU个数,即逻辑处理器个数。
CineBench:
Fritz Chess Benchmark:
问题:
部分网友答复:
如下是我的陈述:
云服务器所说的几核一般是指vCPU个数,这里不多举例,就举国外的AWS和Azure、国内的阿里云和腾讯云。
AWS
Azure
阿里云
腾讯云
1个vCPU即1个逻辑处理器
每个vCPU对应一个处理器(Intel或AMD或ARM)核心的超线程,简单说1个vCPU即1个逻辑处理器,例如在Windows系统里执行msinfo32命令可以查看逻辑处理器的个数。
Windows
比如我自己的电脑是英特尔酷睿i7六核处理器(Intel core i7-10750H),是6核12线程,卖电脑的说硬件配置几核几线程一般是msinfo32显示的内核个数和逻辑处理器个数,而云服务器配置几核几G是msinfo32显示的逻辑处理器的个数和内存大小。
如下图,以管理员身份执行msinfo32命令显示“6个内核,12个逻辑处理器”
逻辑处理器个数也可以在msconfig里得到验证。为了让专业人士查看机器配置,我们通常可以以管理员身份执行msinfo32 /nfo syssum.nfo /categories systemsummary导出.nfo文件。
需要提醒一下,电脑一般是单颗CPU,但高配服务器可能有多颗CPU。
msconfig命令 → 引导 → 高级选项 → 处理器个数
这里的处理器个数,显示的不一定是总的逻辑处理器个数,多颗CPU的情况下,这里的处理器个数显示的是最后一颗CPU的逻辑处理器个数,即执行这句命令的最后一行结果,这其实是微软显示的bug,详见https://cloud.tencent.com/developer/article/1922477
(Get-WmiObject win32_processor).NumberOfLogicalProcessors
比如80核的黑石服务器,管理员身份执行msinfo32命令显示有2颗CPU,每颗CPU有20个内核(双线程,40个逻辑处理器),最终在msconfig那里显示的40
linux系统
比如80 vCPU的黑石,2颗CPU,每颗20个内核,每个内核2个逻辑处理器,共80个逻辑处理器
1.查看颗数
grep 'physical id' /proc/cpuinfo | sort -u | wc -l
2.查看核心数量
grep 'core id' /proc/cpuinfo | sort -u | wc -l
3.查看线程数
grep 'processor' /proc/cpuinfo | sort -u | wc -l