5

При запуске cat /proc/cpuinfo в Linux информация о разнообразии отбрасывается назад. Например:

> cat /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 15
model name  : Intel(R) Xeon(R) CPU            5130  @ 2.00GHz
stepping    : 6
cpu MHz     : 1995.069
cache size  : 4096 KB
physical id : 0
siblings    : 2
core id     : 0
cpu cores   : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 10
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 constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr lahf_lm
bogomips    : 3991.76
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model       : 15
model name  : Intel(R) Xeon(R) CPU            5130  @ 2.00GHz
stepping    : 6
cpu MHz     : 1995.069
cache size  : 4096 KB
physical id : 3
siblings    : 2
core id     : 0
cpu cores   : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 10
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 constant_tsc pni monitor ds_cpl vmx tm2 cx16 xtpr lahf_lm
bogomips    : 3989.46
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Во-первых, что все это на самом деле означает? Я вижу, у меня есть процессор 0 и процессор 1. Означает ли это, что Linux сообщает оба ядра процессора, или, так как виртуальная машина, то два , что я посчастливилось иметь прямо сейчас (даже если они находятся на физически различных процессоров)?

Во-вторых, как я могу получить подобный информационный дамп из командной строки в Windows?

В-третьих, есть ли способ использовать любую платформу для определения количества физических процессоров в сравнении с общим количеством процессорных ядер?

3 ответа3

7

Чтобы ответить на ваш первый вопрос: http://www.richweb.com/cpu_info подробно описывает весь вывод cpuinfo с некоторыми интересными обсуждениями после статьи.

В вашем случае он сообщает, что ваша виртуальная машина настроена так, чтобы показывать себя операционной системе как виртуальная машина с двумя физическими ядрами. Чистый металл под виртуальной машиной может составлять 1 или 100 ядер, но что касается операционной системы в виртуальной машине, у вас есть машина с двумя физическими процессорами, с которыми она может играть. Он ничего не знает о том, как потоки, которые он назначает этим процессорам, на самом деле выполняются на физическом оборудовании под виртуальной машиной.

Чтобы получить аналогичную информацию из оболочки Windows CMD, вы можете попробовать команду systeminfo из оболочки CMD. Он отображает намного больше, чем материал /proc/cpuinfo в Linux, но также не настолько подробно о самих процессорах.

Я не знаю ответа на ваш третий вопрос, извините.

7

По третьему вопросу:

в cpuinfo есть поле "физический идентификатор", оно уникально для каждого физического процессора. О ядрах одного и того же процессора сообщается как о разных процессорах с одинаковыми физическими идентификаторами, тогда как физически отдельные процессоры будут иметь разные физические идентификаторы.

Обратите внимание, что если вы находитесь на виртуальной машине, вы ничего не можете знать о реальном оборудовании (ЦП и т.д.), Все, что вы знаете, - это то, что вам говорит виртуальная машина. Так, например, если ваша физическая машина имеет 1 четырехъядерный процессор, а ваша виртуальная машина настроена на создание отчета о 2 одноядерных процессорах, вы увидите 2 одноядерных процессора в cpuinfo (то есть 2 процессора с различным физическим идентификатором).

1

Один лайнер:

dmidecode | grep CPU | grep -i 'socket designation' | wc -l

Эта команда анализирует обширную информацию, предоставленную dmidecode, чтобы определить количество физических процессоров на основе уникального значения «обозначения сокета», назначенного каждому физическому процессору. Вы можете использовать его, чтобы получить количество физических процессоров на данном хосте. Попытка cat /proc /cpuinfo не всегда удалась. На PowerEdge R420 с сервером 2x6C 2,4 ГГц cpuinfo ошибочно сообщила об одном процессоре.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .