cpu个数核数查看 服务器_你以为你的多核CPU都是真核吗?多核“假象”

b4901fb67ca96837df89aee564554c9a.png

提到CPU核数,相信绝大部分的开发同学想到的都是top命令,直接到自己的服务器上看一下是多少个核。看到的核越多,貌似笑的越开心。比如说说我的CPU,用top命令展开以后,看到了有24核。

85693b2537fae1e56e9d9b80e206cf93.png

那么是否就说明我的机器安装的CPU真的有24核,事实真是的如此这么美好吗?我们先来看几个关于CPU的概念。1CPU相关概念

我们这里来说一下和CPU相关的几个名词。

物理CPU:主板上真正安装的CPU的个数, 物理核:一个CPU会集成多个物理核心

逻辑核:超线程技术可以把一个物理核虚拟出来多个逻辑核

超线程里的2个逻辑核实际上是在一个物理核上运行的,模拟双核心运作,共享该物理核的L1和L2缓存。物理计算能力并没有增加,超线程技术只有在多任务的时候才能提升机器核整体的吞吐量。而且据Intel官方介绍,相比实核,平均性能提升只有20-30%30%左右。也就是说,在我刚才的机器上看到的24核的处理能力,整体上只比不开超线程的12核性能高30%。但是反过来,如果是单进程使用的话,由于被人分享了L1、L2,这就会cache miss变多,性能反而会变差。

其实我们通过top命令看到的CPU核是逻辑核,如果想要查看实际的物理CPU和物理核的个数,我们需要进行更深入的勘验!

2Linux下详细观察CPU 在linux系统下,通过查看 /proc/cpuinfo 可以看到CPU更为详细的信息。我们通过physical id 可以看到真正的物理CPU的个数,如下:
#cat /proc/cpuinfo | grep "physical id" | sort | uniq
physical id     : 0  
physical id     : 1  

可以看出,该实机有两个物理CPU。我们继续查看物理核,通过cpu cores可以看到每个CPU有几个物理核。

#cat /proc/cpuinfo| grep "cpu cores"| uniq
cpu cores       : 6  

cpu cores显示为6表示每个cpu有6个物理核心,因为有2个物理CPU,所以该机器总共有12个物理核。当然该命令也可以查看逻辑核,那就是grep显示结果中的processor。

#cat /proc/cpuinfo  | grep -E "core id|process|physical id"
processor       : 0  
physical id     : 0  
core id         : 0  
......
processor       : 12  
physical id     : 0  
core id         : 0  
......
processor       : 23  
physical id     : 1  
core id         : 10  

processor就是逻辑核的序号,可以看出该机器总共有24个逻辑核。大家注意看processor 0和processor 12的physical id、core id都是一样的,也就说他们他们也处在同一个物理核上。但是他们的processor编号却不一样,一个是0,一个是12。这就是说,这两个逻辑核实际上是一个物理核虚拟出来的而已。

3结论 大家常用的top命令里的cpu的个数其实可能是逻辑核。它们是Intel通过超线程技术把一个物理核虚拟出来多个。Intel官方数据显示,开启超线程一般情况下只能达到不开启状态下30%左右的性能提升。24个物理核和24个逻辑核的性能会差别非常大,所以说操作系统看到的24核可能只是一个“假象”。

fe9122ad0aed64d6f8b121e7239d7a0e.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值