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