Можно ли отключить CPU (а не ядро)?

10

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

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

    
задан LeoYuan 袁力皓 30.05.2011 в 12:43
источник

4 ответа

10

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

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

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

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

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

cat /proc/cpuinfo | grep processor , это должно выглядеть примерно так:

processor    : 0
processor    : 1

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

    
ответ дан Rinzwind 30.05.2011 в 12:57
источник
7

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

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

и для повторного включения используйте:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online
    
ответ дан Colin Ian King 23.08.2012 в 20:12
1

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

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

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

    
ответ дан David Gardner 30.05.2011 в 19:26
0

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

    
ответ дан samarasa 30.05.2011 в 15:30