Можно ли отключить процессор (не ядро)?

10

Можно ли отключить процессор, а не ядро? Я хочу сделать тест, чтобы проверить, может ли производительность иметь большое значение или нет.

Я использую Ubuntu 10.10.

ЛеоЮань 袁力皓
источник

Ответы:

10

Помимо этого в вашем BIOS Grub есть опция под названием maxcpus.

Вы можете изменить эту опцию при выборе опции загрузки grub, добавив maxcpus=1к параметрам. Случайная картинка:

введите описание изображения здесь

Выберите «е» и вы попадете в командную строку, где вы можете добавить параметры.

Вы также можете создать постоянную загрузку в grub, скопировав текущий вариант загрузки и добавив maxcpus=1в параметры загрузки. Вы можете назвать это «Ubuntu, ядро ​​2.5.12-9-386 (1 процессор)» и указать его среди других параметров загрузки, как показано на рисунке.

Вы можете проверить работу на 1 процессоре, выполнив:

cat /proc/cpuinfo | grep processor это должно показать что-то вроде этого:

процессор: 0
процессор: 1

И вторая строка должна исчезнуть после загрузки с 1 CPU.

Rinzwind
источник
1
этот вопрос также сделал бы очень подлую практическую шутку! : D
Алвар
Что произойдет, если вы установите maxcpus = 0? : P
crazy2be
@Rinzwind Я сделал именно то, что вы сказали, но результат кажется странным, я получил информацию о 12 процессорах, прежде чем добавить «maxcpus = 1» к параметрам при выполнении grepping, но я получил только 1 информацию о процессоре после модификации, кажется, только одно ядро ​​в все 12 ядер активированы. Примечание: мой компьютер имеет два шестиядерных процессора.
LeoYuan
@ crazy2be угадывание: 1-й процессор называется 0, так что вы в конечном итоге использовать один? : D
Rinzwind
@ LeoYuan88 袁力皓 можете ли вы отредактировать вывод cat / proc / cpuinfo | процессор grep до и после загрузки с maxcpus = 1?
Rinzwind
7

Вы можете динамически отключать ЦП /sys/devices/system/cpu/cpuN/online, например, чтобы отключить ЦП 1, используя:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

и чтобы снова включить, используйте:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online
Колин Ян Кинг
источник
Кажется, это отключает lcore, а не процессор. У меня есть один из этих каталогов для каждого логического ядра в моей системе.
Судо
1

Вы всегда можете отключить процессор от розетки. Это грубая сила, но вы гарантированно получите желаемый тест, и вам не нужно беспокоиться о том, действительно ли переключатель ядра / BIOS / любого другого модуля работает так, как вы надеетесь.

У моей компании большие установки серверных ферм в разных точках мира. В нашей лаборатории мы иногда удаляем процессоры из сокетов только для такого теста.

В этом тесте есть интересный вариант, который вы можете сделать с многопроцессорными системами NUMA . На этих типах материнских плат вы можете удалить все модули памяти DIMM, которые управляются одним физическим процессором. Система будет по-прежнему загружаться просто отлично, и вы сможете запустить тесты с приложением, прикрепленным к различным ядрам, что позволит вам измерить влияние «локальной» или «удаленной» памяти.

Дэвид Гарднер
источник
Извините, я до сих пор не знаю, как отключить процессор из разъема, не могли бы вы показать мне, как выполнять работу?
LeoYuan
0

Хотели бы увидеть производительность многопоточного приложения наряду с количеством ядер? Если это так, вы можете использовать утилиту набора задач. Я думаю, что у вас есть машина NUMA. Вы можете установить утилиту numactl и, используя ее, вы можете найти, какие ядра соответствуют какому процессору. Например, ваша машина имеет два четырехъядерных процессора (чипы). Используя утилиту набора задач, вы можете собрать ядра одного ЦП в виде набора и выделить их для вашего приложения. Тогда ваше приложение использует только один процессор / чип (четыре ядра). Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

samarasa
источник