Linux отключить ядра процессора

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

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

1 ответ

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

Все процессоры Xeon имеют гиперпоточность, поэтому я предполагаю, что вы имеете в виду 16 ядер по 2 потока на ядро, что в общей сложности составляет 32 процессора. Этот ответ написан и протестирован для 4-х ядерных процессоров, по два потока на ядро, где 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 ,

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

[email protected]:~$ 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 CPU 0 всегда подключен к сети, и такой вещи как:

[email protected]:~$ grep . /sys/devices/system/cpu/cpu0/online grep: /sys/devices/system/cpu/cpu0/online: No such file or directory 

Хорошо, теперь подключите другие нужные ядра и процессоры:

[email protected]:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu3/online 1 [email protected]:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu4/online 1 [email protected]:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu5/online 1 do[email protected]:~$ echo 1 | sudo tee /sys/devices/system/cpu/cpu7/online 
[email protected]:~$ 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 = процессор 0 и 4, ядро ​​1 = процессор 1 и 5, .

Читайте также:  Alt linux виртуализация фстэк

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

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

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

Чтобы сменить регулятор, например, (обратите внимание, что root):

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

Если у вас все работает так, как вы хотите, вы можете автоматизировать дополнительный онлайн после шага загрузки (см. Другие вопросы и ответы для «как»).

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

Источник

Отключить/включить ядра CPU в Linux

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

Выведите информацию о доступных ядрах:

lscpu - информация о процессорах и ядрах в консоли linux

CPU(s): 3 On-line CPU(s) list: 0-2

В этом примере для гостевой ОС на виртуальной машине Linux доступны три ядра 0, 1 и 2.

В Linux вы можете отключить любые ядра процессора, кроме нулевого (CPU0).

Чтобы отключить ядра 1 и 2, выполните команду:

chcpu - отключить ядро в linux

CPU 1 disabled CPU 2 disabled

Проверьте теперь какие ядра доступны:

On-line CPU(s) list: 0 Off-line CPU(s) list: 1,2

Также можно вывести информацию о доступных процессорах так:

Читайте также:  Виджет погода linux mint

$ grep «processor» /proc/cpuinfo

Чтобы включить ядра процессора, выполните:

CPU 1 enabled CPU 2 enabled

Также вы можете отключить определенное ядро командой. В этом примере мы отключаем CPU1:

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

Проверьте сообщения в dmseg:

[ 2257.253801] smpboot: CPU 1 is now offline

Чтобы включить его, выполните:

$ sudo echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online

Если вы хотите, чтобы Linux всегда загружалась с меньшим количество доступных ядер, нужно настроить параметр ядра maxcpus=N.

N в этом случае – это количество доступных ядер процессора, доступных в Linux.

$ sudo mcedit /etc/default/grub

Измените строку следующим образом:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash maxcpu=2"

grub - ограничить количество доступных проессоров в linux

Вы можете использовать отключение ядер CPU в Linux, когда нужно уменьшить количество vCPU для виртуальной машины Linux и вы хотите протестировать, как работает операционная система и приложения с меньшим количеством доступных vCPU.

Также в Linux вы можете запускать приложения на определённых ядрах с помощью CPU affinity. Чтобы получить информацию о привязки определенного процесса к ядрам, выполните:

pid 894's current affinity mask: 3
pid 894's current affinity list: 0,1

taskset привязка процесса к ядрам cpu в linux

Этому процессу разрешено выполняться на ядрах 0 и 1.

Чтобы разрешить запушенному процессу выполняться только на CPU0, выполните:

pid 894's current affinity list: 0,1 pid 894's new affinity list: 0

Или, чтобы разрешить процессу firefox использовать ядра с 0 по 3:

$ sudo taskset -c 0-3 firefox

Источник

Как быстро и просто отключить ядра процессора в Linux с помощью #chcpu

В Linux можно быстро и просто отключать и включать ядра процессора с помощью команды chcpu . Доступны 4 ядра с 0 по 3, можно выключить любое количество ядер, кроме нулевого.

Для отключения ядер используется команда chcpu -d , после которой указываются номера ядер, которые нужно отключить. Например, для отключения ядер 2 и 3, нужно использовать команду:

Читайте также:  Запустить исполняемый файл терминале linux

В результате выполнения этой команды, вы увидите сообщение “CPU 2 disabled” и “CPU 3 disabled”.

Чтобы проверить состояние ядер, используйте команду lscpu . Если вы отключили ядра, вы увидите сообщение “On-line CPU(s) list”, в котором указаны номера доступных ядер, и “Off-line CPU(s) list”, в котором указаны номера отключенных ядер. Например:

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

Для включения ядер используйте команду chcpu -e , после которой указываются номера ядер, которые нужно включить. Например, для включения ядер 2 и 3, нужно использовать команду:

Таким образом, команда chcpu позволяет быстро и просто управлять количеством ядер процессора в Linux. Это может быть полезно для управления ресурсами и тестирования производительности системы. Но не следует злоупотреблять отключением ядер, так как это может сильно снизить производительность системы и ухудшить ее работу.

Источник

Оцените статью
Adblock
detector