5. Настройка параметров ядра#

5.1. Обновление загрузчика и отключение ненужных заплаток#

По умолчанию в ядре Linux включено довольно много исправлений безопасности, которые однако существенно снижают производительность процессора. Вы можете их отключить через редактирование параметров загрузчика. Рассмотрим на примере GRUB:

sudo nano /etc/default/grub # Редактируем настройки вручную или через grub-customizer как на изображении:

../_images/kernel-parameters-1.png
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rootfstype=btrfs lpj=3499912 raid=noautodetect elevator=noop mitigations=off preempt=none nowatchdog audit=0 page_alloc.shuffle=1 split_lock_detect=off pci=pcie_bus_perf"

sudo grub-mkconfig -o /boot/grub/grub.cfg # Обновляем загрузчик, можно так же сделать через grub-customizer, добавить и прожать, затем сохранить на 2 и 1 вкладке.

5.1.1. Разъяснения#

lpj= - Уникальный параметр для каждой системы. Его значение автоматически определяется во время загрузки, что довольно трудоемко, поэтому лучше задать вручную. Определить ваше значение для lpj можно через следующую команду: sudo dmesg | grep "lpj="

mitigations=off - Непосредственно отключает все заплатки безопасности ядра (включая Spectre и Meltdown). Подробнее об этом написано здесь.

raid=noautodetect - Отключает проверку на RAID во время загрузки. Если вы его используете - НЕ прописывайте данный параметр.

rootfstype=btrfs - Здесь указываем название файловой системы в которой у вас отформатирован корень.

elevator=noop - Указывает для всех дисков планировщик ввода NONE. Полезно, если у вас NVMe. Не использовать если у вас жесткий диск.

nowatchdog - Отключает сторожевые таймеры. Позволяет избавиться от заиканий в онлайн играх.

page_alloc.shuffle=1 - Этот параметр рандомизирует свободные списки распределителя страниц. Улучшает производительность при работе с ОЗУ с очень быстрыми накопителями (NVMe, Optane). Подробнее тут.

split_lock_detect=off - Отключаем раздельные блокировки шины памяти. Одна инструкция с раздельной блокировкой может занимать шину памяти в течение примерно 1 000 тактов, что может приводить к кратковременным зависаниям системы.

pci=pcie_bus_perf - Увеличивает значение Max Payload Size (MPS) для родительской шины PCI Express. Это даёт лучшую пропускную способность, т. к. некоторые устройства могут использовать значение MPS/MRRS выше родительской шины. Больше подробностей здесь (англ.):

https://unix.stackexchange.com/questions/684623/pcie-bus-perf-understanding-the-capping-of-mrrs

https://www.programmersought.com/article/74187399630/