Как я отключаю определенное ядро процессора при начальной загрузке?

У меня есть 16 базовых процессоров Intel Xeon, которые успешно загружаются в BIOS и GRUB, но не удаются загрузить Ubuntu (или любая операционная система). Оказывается, что базовый № 14 является причиной всех проблем (обнаруженный после тестирования каждого отдельного ядра с memtest86). В BIOS я могу установить систему для выполнения со всего 2 ядрами и системными работами в этой конфигурации. Но я хотел бы смочь использовать 15 из 16 из ядер. Существует ли способ отключить только базовый № 14 при начальной загрузке?

3
задан 3 November 2019 в 09:19

1 ответ

Можно использовать замена в горячем режиме ЦП способности достигнуть цели. Можно загрузить центральные процессоры 0-13 и затем добавить другие (центральные процессоры 15-27, и 29-31) впоследствии.

процессоры All Xeon имеют поточную обработку hyper, таким образом, я предполагаю, что Вы имеете в виду 16 ядер в 2 потоках на ядро для в общей сложности 32 центральных процессоров. Этот ответ записан и протестирован, для 4 ядер, 2 потоков на ядро, процессор, где базовые 2 являются плохим.

Первый, как sudo, редактирование /etc/default/grub и добавляют максимальные центральные процессоры времени начальной загрузки, maxcpus=, к Вашему GRUB_CMDLINE_LINUX_DEFAULT строка. Пример для моей системы:

Был:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 consoleblank=300 cpuidle_sysfs_switch cpuidle.governor=teo"

Теперь:

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 consoleblank=300 cpuidle_sysfs_switch cpuidle.governor=teo maxcpus=2"

, Где я использовал maxcpus=2, Вы будете использовать maxcpus=14.

Сохраняют копию личинки сначала и работают sudo update-grub за. Таким образом система загрузит только ядра использования 0 и 1, и в центральных процессорах 0,1 являющийся онлайн:

doug@s15:~$ grep . /sys/devices/system/cpu/cpu*/online
/sys/devices/system/cpu/cpu1/online:1
/sys/devices/system/cpu/cpu2/online:0
/sys/devices/system/cpu/cpu3/online:0
/sys/devices/system/cpu/cpu4/online:0
/sys/devices/system/cpu/cpu5/online:0
/sys/devices/system/cpu/cpu6/online:0
/sys/devices/system/cpu/cpu7/online:0

Примечание: Для конфигураций ядра Ubuntu по умолчанию всегда онлайн ЦП 0, и нет такой вещи как:

doug@s15:~$ grep . /sys/devices/system/cpu/cpu0/online
grep: /sys/devices/system/cpu/cpu0/online: No such file or directory

хорошо поэтому теперь, принесите другие желаемые ядра и центральные процессоры онлайн:

doug@s15:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu3/online
1
doug@s15:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu4/online
1
doug@s15:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu5/online
1
doug@s15:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu7/online

И проверка:

doug@s15:~$ grep . /sys/devices/system/cpu/cpu*/online
/sys/devices/system/cpu/cpu1/online:1
/sys/devices/system/cpu/cpu2/online:0
/sys/devices/system/cpu/cpu3/online:1
/sys/devices/system/cpu/cpu4/online:1
/sys/devices/system/cpu/cpu5/online:1
/sys/devices/system/cpu/cpu6/online:0
/sys/devices/system/cpu/cpu7/online:1

Поэтому теперь, у меня есть ядра 0,1,3 и базовых в режиме офлайн 2 онлайн и 6 доступных центральных процессоров. Обратите внимание что базовый 0 = CPU 0 и 4, базовый 1 = CPU 1 и 5...

РЕДАКТИРОВАНИЕ 1: Для 32 центральных процессоров возможно, у Вас есть несколько узлов (процессоры), таким образом, ядро к отображению ЦП могло бы отличаться.

РЕДАКТИРОВАНИЕ 2: может случиться так, что центральные процессоры, которые принесены онлайн после значения по умолчанию начальной загрузки к использованию регулятора производительности в intel_pstate драйвере частотного масштабирования ЦП, который является значением по умолчанию конфигурации ядра (который изменяется на минуту powersave 1 после, начальная загрузка, для начальной загрузки включила центральные процессоры). Вы могли бы хотеть проверить и установить все регуляторы ЦП на Ваше предпочтение, обычно powersave регулятор. Для проверки сделайте:

grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_driver
grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

Для изменения регуляторов делают, например (заметьте как корень):

# for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "powersave" > $file; done

, После того как у Вас есть вещи, работающие способ, которым Вы хотите Вас, может автоматизировать дополнительное онлайн после шага начальной загрузки (см. другие вопросы и ответы для "как к").

Примечание: мне кажется, что необходимо смочь достигнуть цели на одном шаге начальной загрузки через "cpu_possible_mask" управление через "possible_cpus=n", но я не мог заставить это работать. Кто-то еще мог бы знать.

3
ответ дан 1 December 2019 в 16:15

Другие вопросы по тегам:

Похожие вопросы: