kernel-parameters.rst 5.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. .. ARU (c) 2018 - 2024, Pavel Priluckiy, Vasiliy Stelmachenok and contributors
  2. ARU is licensed under a
  3. Creative Commons Attribution-ShareAlike 4.0 International License.
  4. You should have received a copy of the license along with this
  5. work. If not, see <https://creativecommons.org/licenses/by-sa/4.0/>.
  6. .. _kernel-parameters:
  7. **************************
  8. Настройка параметров ядра
  9. **************************
  10. Ядро Linux, как и любая другая программа, имеет собственные параметры
  11. и настройки, которые могут быть изменены либо во время загрузки ядра
  12. Linux, либо непосредственно во время его работы. В этом разделе мы
  13. рассмотрим возможности изменения параметров Linux для повышения
  14. производительности и отзывчивости системы.
  15. .. index:: bootloader, patch-off, grub, grub-customizer, mitigations-off
  16. .. _update-bootloader-parameters:
  17. =====================================================
  18. Обновление загрузчика и отключение ненужных заплаток
  19. =====================================================
  20. По умолчанию в ядре Linux включено довольно много исправлений безопасности,
  21. которые однако существенно снижают производительность процессора. Вы можете их
  22. отключить через редактирование параметров загрузчика. Рассмотрим на примере
  23. GRUB:
  24. ``sudo nano /etc/default/grub`` # Редактируем настройки вручную или через grub-customizer как на изображении:
  25. .. image:: images/kernel-parameters-1.png
  26. ::
  27. GRUB_CMDLINE_LINUX_DEFAULT="quiet lpj=XXXXXXX mitigations=off nowatchdog page_alloc.shuffle=1 pci=pcie_bus_perf intel_idle.max_cstate=1 libahci.ignore_sss=1 noautogroup"
  28. ``sudo grub-mkconfig -o /boot/grub/grub.cfg`` # Обновляем загрузчик, можно так
  29. же сделать через grub-customizer, добавить и прожать, затем сохранить на 2 и 1
  30. вкладке.
  31. .. index:: settings, mitigations-off
  32. .. _explanations:
  33. --------------
  34. Разъяснения
  35. --------------
  36. ``lpj=`` - Уникальный параметр для каждой системы. Его значение
  37. автоматически определяется во время загрузки, что довольно трудоемко,
  38. поэтому лучше задать вручную. Определить ваше значение для lpj можно
  39. через следующую команду: ``sudo dmesg | grep -o "lpj=\([0-9]*\)"``
  40. ``mitigations=off`` - Непосредственно отключает все заплатки безопасности ядра
  41. (включая Spectre и Meltdown). Подробнее об этом написано `здесь
  42. <https://linuxreviews.org/HOWTO_make_Linux_run_blazing_fast_(again)_on_Intel_CPUs>`_.
  43. ``nowatchdog`` - Отключает сторожевые таймеры. Позволяет избавиться от заиканий
  44. в онлайн играх.
  45. ``page_alloc.shuffle=1`` - Этот параметр рандомизирует свободные списки распределителя страниц.
  46. Улучшает производительность при работе с ОЗУ с очень быстрыми накопителями (NVMe, Optane).
  47. Подробнее `тут
  48. <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e900a918b0984ec8f2eb150b8477a47b75d17692>`__.
  49. ``intel_idle.max_cstate=1`` - только для процессоров Intel. Отключает
  50. энергосберегательные функции процессора, ограничивая его спящие
  51. состояния, не позволяя ему переходить в состояние глубокого сна.
  52. Увеличивает (может значительно увеличить) энергопотребление на
  53. ноутбуках. Помогает исправлять некоторые странные зависания и ошибки
  54. на многих системах.
  55. ``pci=pcie_bus_perf`` - Увеличивает значение Max Payload Size (MPS)
  56. для родительской шины PCI Express. Это даёт лучшую пропускную
  57. способность, т. к. некоторые устройства могут использовать значение
  58. MPS/MRRS выше родительской шины. Больше подробностей здесь (англ.):
  59. https://unix.stackexchange.com/questions/684623/pcie-bus-perf-understanding-the-capping-of-mrrs
  60. https://www.programmersought.com/article/74187399630/
  61. ``libahci.ignore_sss=1`` - Отключает ступенчатое включение жёстких
  62. дисков. Ускоряет работу HDD.
  63. .. vim:set textwidth=70: