Liunx的/proc/cpuinfo中部分信息解释

想通过lscpu命令的输出和/proc/cpuinfo中内容相互对照来解释相关信息。举例说明。

某台服务器lscpu命令的输出内容:

    Architecture:          x86_64
    CPU op-mode(s):        32-bit, 64-bit
    Byte Order:            Little Endian
    CPU(s):                24
    On-line CPU(s) list:   0-23
    Thread(s) per core:    2
    Core(s) per socket:    6
    CPU socket(s):         2
    NUMA node(s):          2
    Vendor ID:             GenuineIntel
    CPU family:            6
    Model:                 62
    Stepping:              4
    CPU MHz:               2099.968
    BogoMIPS:              4199.43
    Virtualization:        VT-x
    L1d cache:             32K
    L1i cache:             32K
    L2 cache:              256K
    L3 cache:              15360K
    NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22
    NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23

它的/proc/cpuinfo中的相关信息摘要(按文件中CPU出现顺序排列):
  processor: 0 1 2  ......  23
  physical id: 0 1 0 1 0 1 ...... 0 1
  siblings: 12 12 12 ...... 12
  core id: 0 0 1 1 2 2 3 3 4 4 5 5 0 0 1 1 2 2 3 3 4 4 5 5
  cpu cores: 6 6 6 ....... 6


解释:

  与上面的lscpu内容对照,可知cpu cores表示的是Core(s) per socket,是物理core,physical id表示的是每个物理core中线程的序号, siblings表示的是所有的物理cpu core的个数(6 cpu core/socket * 2 sockets),core id表示的是物理core在每个socket中的序号(每个socket有6个所以是0...5), processor表示的CPU的在总个数(也就是逻辑core的个数)中序号。如果每个CPU只有一个线程也就是说每个物理core对应一个逻辑core,  那么physical id总会是1

修正2017-07-21:

关于physical id说错了,physical id实际上对应的是 NUMA node的序号,参看lscpu的输出中NUMA node项每个node包含的cpu(逻辑的)序号和cpuinfo文件中每个processor(也是逻辑的)的序号对应的physical id的关系,可以看出。一般每个Socket对应一个NUMA node,所以physical id也可以看作Socket的序号。

下面给出一个没有hyperthreading技术的CPU的例子(即每个CPU只有一个线程)。

lscpu命令输出内容:

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             2
NUMA node(s):          2
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 62
Model name:            Intel(R) Xeon(R) CPU E5-2609 v2 @ 2.50GHz
Stepping:              4
CPU MHz:               1244.824
BogoMIPS:              5006.18
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              10240K
NUMA node0 CPU(s):     0,2,4,6
NUMA node1 CPU(s):     1,3,5,7

然后cpuinfo文件中信息,

processorphysical idsiblingscore idcpu cores
00404
11404
20414
31414
40424
51424
60434
71434

从上面也可以看出, sliblings并不表示物理cpu core的数量,而是表示 Processors(or Threads) per Socket (=Cpu cores per Sockets * Thread(s) per core),简而言之就是每个Sockets中的逻辑cpu core的数量。所以使用/proc/cpuinfo中的信息,通过 siblings / cpu cores 可以算出每个物理cpu core有多少个线程。

使用physical id:core id 才能标识一个物理cpu core.

附:

  输入top命令,然后按“1”,可以看到每个(逻辑)CPU的利用情况。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值