Вопрос:
Я хотел бы спросить, что может быть причиной того, что есть две разные информации о количестве процессоров. Смотрите отчеты ниже.
Системный диалог:
Если открыть вкладку «Параметры системы»/«Сведения» (такую же, как «Выход из системы» и «Об этом компьютере»), я получаю следующее сообщение:
Процессор: Intel® Xeon(R) CPU E5-2680 v3 @ 2.50GHz × 16
CLI: cpuinfo (1)
Тем не менее, используя команду командной строки, я получаю следующее:
$ cat /proc/cpuinfo | grep processor | wc -l
24
Я склонен верить отчету командной строки, но что может быть причиной их различий?
FIY: Системный монитор также показывает статистику для 24 ядер
CLI: cpuinfo (2)
Как и было предложено в комментариях, я также запустил следующую командную строку
$ cat /proc/cpuinfo |grep 'core id'|sort|uniq|wc -l
12
Так что теперь у меня даже есть третий результат! Это имеет смысл, так как в машине может быть 12 ядер с 2 процессорами - но как возможно, что системный диалог показывает 16?
решение1
Я думаю, что ядра ЦП лучше всего объяснять в контексте симметричной многопроцессорной обработки (Symmetric MultiProcessing).СМП).
Intel Core 2 ДуоДиаграмма, показывающая физическую компоновку.
Информация о ЦП системы хранится в /proc
каталоге. Она может быть аккуратно представлена программным lscpu
обеспечением, как показано ниже. Я привожу три примера для сравнения: настольный компьютер с 2 ядрами ЦП, сервер с 48 и Raspberry Pi с 4.
Настольный компьютер пользователь@имя_хоста:~$ lscpu Архитектура: x86_64 Режим(ы) работы ЦП: 32-битный, 64-битный Порядок байтов: прямой порядок байтов Процессор(ы): 2 Список процессоров в сети: 0,1 Поток(и) на ядро: 1 Ядра на сокет: 2 Розетка(ы): 1 NUMA-узел(ы): 1 Идентификатор поставщика: GenuineIntel Семейство ЦП: 6 Модель: 60 Шаг: 3 Частота процессора: 800.000 МГц BogoMIPS: 5586.94 Виртуализация: VT-x Кэш L1d: 32K Кэш L1i: 32 КБ Кэш L2: 256 КБ Кэш L3: 2048 КБ Узел NUMA0 ЦП: 0,1 Сервер пользователь@имя_хоста% lscpu Архитектура: x86_64 Режим(ы) работы ЦП: 32-битный, 64-битный Порядок байтов: прямой порядок байтов Процессор(ы): 48 Список ЦП в сети: 0-47 Поток(и) на ядро: 2 Ядра на сокет: 12 Розетка(ы): 2 NUMA-узел(ы): 1 Идентификатор поставщика: GenuineIntel Семейство ЦП: 6 Модель: 62 Шаг: 4 Процессор МГц: 1799.724 BogoMIPS: 3600.09 Виртуализация: VT-x Кэш L1d: 32K Кэш L1i: 32 КБ Кэш L2: 256 КБ Кэш L3: 30720 КБ Узел NUMA0 ЦП: 0-47 Raspberry Pi jeff@clear-pi:~ $ lscpu Архитектура: armv7l Порядок байтов: прямой порядок байтов Процессор(ы): 4 Список процессоров, работающих в сети: 0-3 Поток(и) на ядро: 1 Ядра на сокет: 4 Розетка(ы): 1 Название модели: Процессор ARMv7 rev 5 (v7l) Макс. частота ЦП: 900.0000 МГц Мин. частота ЦП: 600.0000 МГц
Общее количество серверов — 48, но чтобы получить это значение, нужно умножить 3 числа:2*12*2= 48. При таком сравнении очевидны различия в расположении процессоров у разных производителей.
Рабочий стол [Потоки на ядро: 1] * [Ядра на сокет: 1] * [Сокет(ы): 1] = 2 Сервер [Потоков на ядро: 2] * [Ядер на сокет: 12] * [Сокет(ы): 2] = 48 Raspberry Pi [Потоки на ядро: 1] * [Ядра на сокет: 4] * [Сокет(ы): 1] = 4
lshw
содержит больше информации о системе, но здесь она не так полезна.
Настольный компьютер пользователь@имя_хоста:~$ sudo lshw *-Процессор описание: ЦП продукт: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz Поставщик: Intel Corp. физический идентификатор: 9 информация о шине: cpu@0 версия: Intel(R) Celeron(R) CPU G1840 @ 2.80GHz слот: СОКЕТ 0 размер: 2800МГц емкость: 3800МГц ширина: 64 бита тактовая частота: 100 МГц Сервер пользователь@имя_хоста% sudo lshw *-процессор:0 описание: ЦП продукт: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz Поставщик: Intel Corp. физический идентификатор: 4 информация о шине: cpu@0 версия: Intel(R) Xeon(R) CPU E5-2651 v2 @ 1.80GHz слот: СОКЕТ 0 размер: 1800МГц емкость: 4ГГц ширина: 64 бита тактовая частота: 100 МГц Raspberry Pi пользователь@имя_хоста:~ $ sudo lshw *-процессор:0 описание: ЦП продукт: процессор физический идентификатор: 0 информация о шине: cpu@0 размер: 900МГц мощность: 900МГц возможности: cpufreq
Наконец, этот метод сработал у меня в нескольких различных операционных системах Linux/UNIX, где lscpu не был доступен. Это вариация того, что предлагалось в вопросе и комментариях, но я предпочитаю сокращенную команду и простой вывод.
user@hostname:~ $ grep -c ^processor /proc/cpuinfo
4
Ссылка:Как узнать количество ядер процессора, включая виртуальные?
Ссылка:https://stackoverflow.com/questions/19225859/разница-между-ядрами-и-процессором