Інтерпретація виводу кота / proc / cpuinfo


22

Як інтерпретується інформація, роздрукована за допомогою наступної команди в Linux

cat /proc/cpuinfo

На своєму ноутбуці я отримую такий вихід:

[gaurish108: ~] $ cat / proc / cpuinfo (02-09 15:34)
процесор: 0
vendor_id: GenuineIntel
сімейство процесорних процесів: 6
модель: 37
назва моделі: Intel (R) Core (TM) i3 CPU M 330 при 2,13 ГГц
крокуючи: 2
МГц-процесор: 933.000
розмір кешу: 3072 Кб
фізичний ідентифікатор: 0
побратими: 4
основний ідентифікатор: 0
ядра процесора: 2
апіцид: 0
початкова апіцида: 0
fdiv_bug: ні
hlt_bug: ні
f00f_bug: ні
coma_bug: ні
fpu: так
fpu_exception: так
рівень cpuid: 11
wp: так
прапори: FPU VME-де-псевдоефедрин TSC MSR паї MCE CX8 APIC вересня MTRR PGE MCA CMOV погладити pse36 clflush д.т.н. ACPI MMX fxsr ссе sse2 сс ХТИ тм РОР пх rdtscp ого constant_tsc arch_perfmon УІБ БПС xtopology nonstop_tsc aperfmperf ПНІ dtes64 монітор ds_cpl VMX Ест tm2 SSSE3 CX16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
богоміпи: 4256,49
розмір clflush: 64
cache_alignment: 64
розміри адреси: 36 біт фізичні, 48 біт віртуальні
управління живленням:

процесор: 1
vendor_id: GenuineIntel
сімейство процесорних процесів: 6
модель: 37
назва моделі: Intel (R) Core (TM) i3 CPU M 330 при 2,13 ГГц
крокуючи: 2
МГц-процесор: 933.000
розмір кешу: 3072 Кб
фізичний ідентифікатор: 0
побратими: 4
основний ідентифікатор: 0
ядра процесора: 2
апіцидна: 1
початкова апіцида: 1
fdiv_bug: ні
hlt_bug: ні
f00f_bug: ні
coma_bug: ні
fpu: так
fpu_exception: так
рівень cpuid: 11
wp: так
прапори: FPU VME-де-псевдоефедрин TSC MSR паї MCE CX8 APIC вересня MTRR PGE MCA CMOV погладити pse36 clflush д.т.н. ACPI MMX fxsr ссе sse2 сс ХТИ тм РОР пх rdtscp ого constant_tsc arch_perfmon УІБ БПС xtopology nonstop_tsc aperfmperf ПНІ dtes64 монітор ds_cpl VMX Ест tm2 SSSE3 CX16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
богоміпи: 4256,40
розмір clflush: 64
cache_alignment: 64
розміри адреси: 36 біт фізичні, 48 біт віртуальні
управління живленням:

процесор: 2
vendor_id: GenuineIntel
сімейство процесорних процесів: 6
модель: 37
назва моделі: Intel (R) Core (TM) i3 CPU M 330 при 2,13 ГГц
крокуючи: 2
МГц-процесор: 933.000
розмір кешу: 3072 Кб
фізичний ідентифікатор: 0
побратими: 4
основний ідентифікатор: 2
ядра процесора: 2
апіцид: 4
початкова апіцида: 4
fdiv_bug: ні
hlt_bug: ні
f00f_bug: ні
coma_bug: ні
fpu: так
fpu_exception: так
рівень cpuid: 11
wp: так
прапори: FPU VME-де-псевдоефедрин TSC MSR паї MCE CX8 APIC вересня MTRR PGE MCA CMOV погладити pse36 clflush д.т.н. ACPI MMX fxsr ссе sse2 сс ХТИ тм РОР пх rdtscp ого constant_tsc arch_perfmon УІБ БПС xtopology nonstop_tsc aperfmperf ПНІ dtes64 монітор ds_cpl VMX Ест tm2 SSSE3 CX16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
богоміпи: 4256,43
розмір clflush: 64
cache_alignment: 64
розміри адреси: 36 біт фізичні, 48 біт віртуальні
управління живленням:

процесор: 3
vendor_id: GenuineIntel
сімейство процесорних процесів: 6
модель: 37
назва моделі: Intel (R) Core (TM) i3 CPU M 330 при 2,13 ГГц
крокуючи: 2
МГц-процесор: 933.000
розмір кешу: 3072 Кб
фізичний ідентифікатор: 0
побратими: 4
основний ідентифікатор: 2
ядра процесора: 2
апіцидна: 5
початкова апіцида: 5
fdiv_bug: ні
hlt_bug: ні
f00f_bug: ні
coma_bug: ні
fpu: так
fpu_exception: так
рівень cpuid: 11
wp: так
прапори: FPU VME-де-псевдоефедрин TSC MSR паї MCE CX8 APIC вересня MTRR PGE MCA CMOV погладити pse36 clflush д.т.н. ACPI MMX fxsr ссе sse2 сс ХТИ тм РОР пх rdtscp ого constant_tsc arch_perfmon УІБ БПС xtopology nonstop_tsc aperfmperf ПНІ dtes64 монітор ds_cpl VMX Ест tm2 SSSE3 CX16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm arat dts tpr_shadow vnmi flexpriority ept vpid
богоміпи: 4256,42
розмір clflush: 64
cache_alignment: 64
розміри адреси: 36 біт фізичні, 48 біт віртуальні
управління живленням:

Зараз це говорить про те, що в системі є 4 процесори. Існує також поле всередині інформації кожного процесорного поля, яке каже, що ядра cou є 2.

Це означає, що в моїй системі є 4 процесора Intel i3? Що насправді означає поле процесора?

Відповіді:


17

Записи - це логічні процесори; об'єкти, що використовуються ядром внутрішньо, не обов'язково прив’язані до фізичних пристроїв. (Зверніть увагу, що всі вони однакові physical id.)

Іншими словами, вони представляють чотири ядра одного процесора Intel i3.

Крім того, як зазначалося в цій публікації (яка не є точно дублікатом, але тісно пов'язана), ці ядра також є логічними - CPU має два ядра фізично, але підтримує гіперточення.

Зауважте, що деякі процесори Intel (включаючи i5) використовують Hyperthreading - систему, де в одному процесорі є (наприклад) 2 піхсічні ядра, але надаються 4 логічні ядра - що дозволяє операційній системі ставитися до процесора як до більшого числа ядер, ніж насправді робить.


Якщо у вашій системі є lscpuінструмент (частина нещодавнього util-linux ), він виводить більш легкий для читачів резюме встановлених процесорів, наприклад:

Thread(s) per core:    2
Core(s) per socket:    2
Socket(s):             1

Чи розмір фізичної адреси тим довший, тим кращий чи коротший, тим кращий?
Qian Chen

@ElgsQianChen: Зазвичай, чим довше, тим краще. Подивіться, як світ перемістився з 8-бітних процесорів на 16-розрядні до 32-розрядні, а потім на 64-бітні процесори. Цей біт - це "розмір адреси".
grawity

Здається, я бачу різні фізичні розміри, такі як 36 біт, 40 біт і 46 біт. Віртуальний розмір, здається, завжди становить 48 біт. То чому існують різні фізичні розміри, і що вони означають, коли вони коротші чи довші?
Qian Chen

9

Ось вбудований сценарій awk для гарного друку та вилучення відповідних даних із /proc/cpuinfo:

cat /proc/cpuinfo | \
awk -v FS=':' '                                       \
  /^physical id/ { if(nb_cpu<$2)  { nb_cpu=$2 } }     \
  /^cpu cores/   { if(nb_cores<$2){ nb_cores=$2 } }   \
  /^processor/   { if(nb_units<$2){ nb_units=$2 } }   \
  /^model name/  { model=$2 }                         \
                                                      \
  END{                                                \
   nb_cpu=(nb_cpu+1);                                 \
   nb_units=(nb_units+1);                             \
                                                      \
   print "CPU model:",model;                          \
   print nb_cpu,"CPU,",nb_cores,"physical cores per CPU, total",nb_units,"logical CPU units" \
 }'

Вихід для високопродуктивного сервера:

CPU model:  Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz
2 CPU,  6 physical cores per CPU, total 24 logical CPU units

Вихід для ноутбука Core i5:

CPU model:  Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
1 CPU,  2 physical cores per CPU, total 4 logical CPU units

0

Це просто означає:

  1. У вас фактично є один чотириядерний процесор i3 у вашій системі.

  2. Цей "один чотириядерний процесор i3" має в ньому чотири логічних ядра.


2
Насправді це двоядерний процесор i3 з чотирма логічними ядрами.
Девід Шварц
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.