Странный cpuinfo, сколько ядер имеет этот физический процессор?

В конце этого поста мой/proc / cpuinfo.

Я знаю, что физический номер процессора 2

grep 'physical id' /proc/cpuinfo|sort|uniq|wc -l
2 

но сколько ядер у каждого процессора?

В 'ядер' имеет 16 ядер.

но эта команда показывает, что всего 8 ядер.

grep 'core id' /proc/cpuinfo    
core id         : 16
core id         : 0
core id         : 17
core id         : 1
core id         : 25
core id         : 9
core id         : 26
core id         : 10

отображает количество одноуровневых ЦП на одном физическом ЦП для архитектур, использующих многопоточность. На моей машине 16. Но есть 4 для физического 0 cpu, и 4 на физическом 1 cpu. Я действительно запуталась.

может кто-нибудь помочь мне?

ниже мой /proc / cpuinfo

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 16
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4803.77
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 0
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.22
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 2
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 17
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.13
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 3
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 1
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.21
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 4
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 25
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.14
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 5
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 9
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.19
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 6
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 1
siblings    : 16
core id     : 26
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.13
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

processor   : 7
vendor_id   : GenuineIntel
cpu family  : 6
model       : 12
model name  : Intel(R) Xeon(R) CPU           E5620  @ 2.40GHz
stepping    : 2
cpu MHz     : 2400.191
cache size  : 256 KB
physical id : 0
siblings    : 16
core id     : 10
cpu cores   : 16
fpu     : yes
fpu_exception   : yes
cpuid level : 11
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr
bogomips    : 4800.20
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:
9
задан Hickory420
12.12.2022 13:30 Количество просмотров материала 2363
Распечатать страницу

6 ответов

согласно Intels технические характеристики для процессора это четырехъядерный процессор (4 отдельных ядра), каждое из которых поддерживает hyperthreading, что делает его восьмиядерным.

учитывая, что это Xeon, вы можете довольно легко иметь двухпроцессорную материнскую плату, а это значит, что есть 2 отдельных чипа, каждый из которых имеет 4 ядра, каждое из которых может запускать два потока, поэтому эффективно выглядит для ОС как 16-ядерная машина.

8
отвечен 2022-12-13 21:18

вот функция, которую я использую для проверки информации о процессоре.

function CORES(){

  local -i SOCKETS=$(grep -w "physical id" /proc/cpuinfo | sort -u | wc -l)
  [ "${SOCKETS}" -eq 0 ] && SOCKETS="1"
  local -i CORES=$(grep -w "core id" /proc/cpuinfo | sort -u | wc -l)
  [ "${CORES}" -eq 0 ] && CORES="1"
  local -r MODEL=$(grep -w "model name" /proc/cpuinfo | sort -u | awk -F:     '{print }')
  local -ir THREADS=$(grep -w "processor" /proc/cpuinfo | sort -u | wc -l)
  local -ir TOTAL_CORES=$(echo $((${SOCKETS}*${CORES})))
  local -ir THREADS_PER_CORE=$(echo $((${THREADS}/${TOTAL_CORES})))

  echo -e "ModelName\t: " $MODEL
  echo -e "Sockets\t\t: " $SOCKETS
  echo -e "Cores/Socket\t: " $CORES
  echo -e "Threads/Core\t: " $THREADS_PER_CORE
  echo -e "TotalCores\t: " $TOTAL_CORES
  echo -e "TotalThreads\t: " $THREADS

}

есть три основных компонента:

  1. количество физических процессоров ('physical id')
  2. общее количество ядер на физический процессор ('core id')
  3. общее количество потоков на ядро на физический процессор ('processor')

'model name' только для ознакомительных целей...

единственная ошибка с ним, если 'physical id' не существует в /proc / cpuinfo, затем он выдает эту ошибку (которую мне еще предстоит исправить...):

$ CORES
-bash: 2/0: division by 0 (error token is "0")
ModelName       :  Intel(R) Xeon(R) CPU X5560 @ 2.80GHz
Sockets         :  0
Cores/Socket    :  0
Threads/Core    :  0
TotalCores      :  0
TotalThreads    :  2

edit: исправлено.

надеюсь, что это поможет!

изменить: Вот пример того, который имеет 'physical id' присутствовали:

ModelName       :  Intel(R) Xeon(R) CPU X3470 @ 2.93GHz
Sockets         :  2
Cores/Socket    :  1
Threads/Core    :  1
TotalCores      :  2
TotalThreads    :  2

и еще один

ModelName       :  Intel(R) Xeon(R) CPU E5520 @ 2.27GHz
Sockets         :  2
Cores/Socket    :  2
Threads/Core    :  1
TotalCores      :  4
TotalThreads    :  4

редактировать 2:большой!

ModelName       :  Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
Sockets         :  2
Cores/Socket    :  6
Threads/Core    :  2
TotalCores      :  12
TotalThreads    :  24

EDIT: результаты OP /proc/cpuinfo

$ CORES
ModelName       :  Intel(R) Xeon(R) CPU E5620 @ 2.40GHz
Sockets         :  2
Cores/Socket    :  8
Threads/Core    :  0
TotalCores      :  16
TotalThreads    :  8

это показывает что вы имеете гипер Потоковая передача отключена где-то (вероятно, в bios), поэтому у вас есть 0 потоков на ядро. В этом случае TotalThreads = ядер/сокет. Это означает, что у вас 8 ядер на сокет, который не многопоточные.

3
отвечен Hickory420 2022-12-13 23:35

мне кажется /proc/cpuinfo показывает только часть реальной физической конфигурации процессора.

некоторые поля могут указывать на то, что ваша система имеет 2 сокета процессора, каждый из которых имеет 16 физических ядер :

  • physical id идет от 0 до 1, так что было бы 2 сокетов процессора
  • siblings утверждает, что у вас есть 16 логических ядер на сокет процессора
  • cpu cores также 16, который я интерпретирую как количество физических ядер для процессора, указанного в physical id. Что касается этого момента, я бы сказал, что процессор не поддерживает HyperThreading, но...

по данным спецификации обломока Intel E5620, каждый чип имеет 4 физических ядра, каждое из которых имеет 2 логических ядра благодаря HyperThreading.

это подводит меня к выводу, что с точки зрения операционной системы, у вас есть только частичный доступ к ресурсы процессора. Я бы предположил, что вы работаете с виртуальной окружающая среда.

давайте посмотрим ниже мой /proc/cpuinfo на виртуальной машине, размещенной на ДВУХПРОЦЕССОРНОМ Intel E5430-сервер (2 сокета процессора, 4 физических ядра, без гиперпоточности). Операционная система видит только core#0 от CPU#0 и core#0 от CPU#1.

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Xeon(R) CPU           E5430  @ 2.66GHz
stepping    : 10
cpu MHz     : 2659.998
cache size  : 6144 KB
physical id : 0
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts     acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
bogomips    : 5319.99
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 23
model name  : Intel(R) Xeon(R) CPU           E5430  @ 2.66GHz
stepping    : 10
cpu MHz     : 2659.998
cache size  : 6144 KB
physical id : 1
siblings    : 4
core id     : 0
cpu cores   : 4
apicid      : 4
initial apicid  : 4
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 xsave lahf_lm tpr_shadow vnmi flexpriority
bogomips    : 5319.78
clflush size    : 64
cache_alignment : 64
address sizes   : 38 bits physical, 48 bits virtual
power management:
2
отвечен Mickaël Le Baillif 2022-12-14 01:52

вы можете разобрать /proc / cpuinfo, так что это более полезно:

paste <(cat /proc/cpuinfo | grep "core id") <(cat /proc/cpuinfo | grep "processor") | sed 's/[[:blank:]]/ /g'

на моей машине я вижу: core id : 0 processor : 0 core id : 1 processor : 1 core id : 2 processor : 2 core id : 3 processor : 3 core id : 0 processor : 4 core id : 1 processor : 5 core id : 2 processor : 6 core id : 3 processor : 7

Так 4 ядра каждое с двумя потоками

1
отвечен Andy 2022-12-14 04:09

"core id" не обязательно является последовательным. Вот grep от dual socket 12-core с нарезанием резьбы (так 48 "ядер") G5118. Обратите внимание на отсутствующие идентификаторы ядра:

[qqs43472@cs05r-sc-serv-01 ~]$ cat /proc/cpuinfo  | grep "core id"
core id     : 0
core id     : 1
core id     : 2
core id     : 3
core id     : 4
core id     : 5
core id     : 8
core id     : 9
core id     : 10
core id     : 11
core id     : 12
core id     : 13
core id     : 0
core id     : 1
core id     : 2
core id     : 3
core id     : 4
core id     : 5
core id     : 8
core id     : 9
core id     : 10
core id     : 11
core id     : 12
core id     : 13
core id     : 0
core id     : 1
core id     : 2
core id     : 3
core id     : 4
core id     : 5
core id     : 8
core id     : 9
core id     : 10
core id     : 11
core id     : 12
core id     : 13
core id     : 0
core id     : 1
core id     : 2
core id     : 3
core id     : 4
core id     : 5
core id     : 8
core id     : 9
core id     : 10
core id     : 11
core id     : 12
core id     : 13
1
отвечен Greg Matthews 2022-12-14 06:26

Это Hyperthreading, который позволяет одному ядру запускать два потока более или менее параллельно. Более или менее зависит от того, какие инструкции использует каждый поток.

0
отвечен Ben Voigt 2022-12-14 08:43

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх