Налаштування ядра linux

Відео: Конфігурація, збірка і установка ядра Linux

Ядро Linux - дуже гнучка річ, що дозволяє налаштувати дуже багато параметрів. Такі параметри, як підтримувані пристрої та функції настроюються при складанні ядра. Але сьогодні не розглядатиметься компіляція ядра Linux. Ми поговоримо про більш тонкої настройки параметрів ядра на льоту, прямо під час його роботи.

Так, ми не можемо включати додавати не підтримуються модулі і драйвера пристроїв, але ми можемо налаштувати такі параметри ядра Linux, як особливості роботи процесора, пам`яті, віртуального простору пам`яті, планувальника ядра, мережевий стек і багато іншого. Всі ці настройки доступні через файлову систему proc. Ми розглядали детально її в попередній статті, тепер же зупинимося тільки на директорії / proc / sys, за допомогою якої ми і будемо налаштовувати ядро.

Як виконується настройка?

Тут все гранично просто. У цьому каталозі і його підкаталогах лежать файли, це і є параметри, а значення в файлах нам і потрібно змінювати. Для цього можна використовувати найпростішу конструкцію з команди echo і оператора перенаправлення виведення:

net.ipv4.ip_forward

Ви можете встановити значення параметра такою командою:

$ Sysctl -w net.ipv4.ip_forward = 1

Ви можете також відразу подивитися всі доступні змінні за допомогою опції -a:

abi.vsyscall32 = 1
debug.exception-trace = 1
dev.cdrom.autoclose = 0
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
...

vm.stat_interval = 1
vm.swappiness = 60
vm.user_reserve_kbytes = 131072
vm.vfs_cache_pressure = 100
vm.zone_reclaim_mode = 0

Всі ці змінні зберігаються в звичайні конфігураційні файли для збереження між перезавантаженнями. Змінні, в залежності від призначення розподіляються між цими файлами:

  • /run/sysctl.d/*.conf
  • /etc/sysctl.d/*.conf
  • /usr/local/lib/sysctl.d/*.conf
  • /usr/lib/sysctl.d/*.conf
  • /lib/sysctl.d/*.conf
  • /etc/sysctl.conf

Ви також можете вручну додавати змінні і їх значення в ці файли. Якщо ви хочете повернути значення змінних до стану збереженого в файлах і видалити свої зміни виконайте:

* Applying /boot/sysctl.conf-4.1.21-14-default ...
kernel.hung_task_timeout_secs = 0
kernel.msgmax = 65536
kernel.msgmnb = 65536
kernel.shmmax = 0xffffffffffffffff
kernel.shmall = 0x0fffffffffffff00
vm.dirty_ratio = 20

Тепер ви знаєте як працювати зі змінними, далі ми розглянемо значення деяких, найбільш важливих змінних, за допомогою яких може бути виконана настройка ядра linux.

Налаштування ядра Linux

abi.vsyscall32

Якщо встановлено 1, дозволяє виконання 32 бітних програм в 64 бітної системи. За замовчуванням включено, можете відключити, а потім спробувати запустити, наприклад, skype.

debug.exception-trace

При виникненні помилки в ядрі виводити значення регістрів процесора і стек викликів процедур. За замовчуванням включено.

dev.cdrom.autoclose

Ваш CDROM буде автоматично закритий при спробі його монтування, за замовчуванням вимкнено.

dev.cdrom.autoeject

CDROM буде відкритий після від`єднання міститься там диска за допомогою команди umount.

dev.hpet.max-user-freq

Максимальна частота генерації переривань від системного таймера High Precision Event Timer (HPET), який прийшов на заміну таймером реального часу RTC. За замовчуванням 64.

fs.aio-nr

Кількість асинхронних операцій введення і виведення в вашої файлової системи.

fs.file-max

Максимальна кількість дескрипторів файлів, які може створити і обробляти ядро. Якщо ви часто отримуєте повідомлення про помилку через неможливість створити дескриптор файлу збільште цей ліміт. За умовчанням встановлено значення 10% від вашої оперативної пам`яті.

fs.inotify.max_queued_events




Підсистема ядра inotify дозволяє стежити за змінами в файлової системі. Цей параметр встановлює максимальну кількість подій, які можуть перебувати в черзі, перед тим як їх обробить програма.

fs.inotify.max_user_instances

Максимальна кількість об`єктів inotify, які може створити один користувач.

fs.inotify.max_user_watches

Максимальна кількість файлів і директорій, за якими може спостерігати один об`єкт inotify.

cad_pid

PID процесу, який отримає сигнал, якщо буде натиснуто поєднання клавіш Ctrl + Alt + Del

kernel.ctrl-alt-del

Якщо значення параметра 0, система відправляє сигнал процесу Init або того, який ви призначили в попередньої змінної, щоб виконати правильну перезавантаження. Якщо значення більше нуля, буде виконана негайна перезавантаження.

kernel.domainname

Дозволяє встановити доменне ім`я NIS (Network Internet Services) і YP (Yellow Pages). Але не плутайте це доменне ім`я з DNS, це зовсім різні речі.

Відео: Збірка ядра

kernel.hostname

Ім`я вашого комп`ютера. Це найпростіший спосіб змінити ім`я комп`ютера прямо зараз, без перезавантаження.

kernel.modules_disabled

Дозволяє відключити завантаження модулів ядра.

kernel.panic

Вказує кількість секунд після помилки в ядрі (kernel panic) до перезавантаження.

kernel.pid_max




Максимальне значення PID процесу. Коли PID досягає цього значення, ядро ​​переходить знову до мінімального. Значення більше цього не виділяються.

kernel.random.boot_id

Цей файл доступний лише для читання і містить унікальний, випадковий ідентифікатор завантаження. Генерується для кожного завантаження.

kernel.random.uuid

При кожному запиті генерує випадковий UUID. Теж доступний тільки для читання.

kernel.randomize_va_space

Рандомизация адресного простору це функція збільшує безпеку вашої системи. Вона захищає від атак на переповнення буфера. За замовчуванням включена.

kernel.sysrq

Дозволяє включити або відключити управління ядром за допомогою SysRQ. Доступні такі параметри:

  • 0 - відключити всі функції
  • 1 - вирішити всі функції
  • 2 - дозволити настройку рівня логгірованія
  • 4 - дозволити управління клавіатурою
  • 8 - дозволити отримання налагоджувальних повідомлень і дампов
  • 16 - дозволити команду sync
  • 32 - дозволити перемонтування файлових систем в read-only
  • 64 - дозволити завершення процесів
  • 128 - дозволити перезавантаження, вимикання
  • 256 - дозволити управління планувальником

kernel.threads-max

Максимальна кількість запущених потоків для процесів.

Відео: Ядра операційної системи Linux. Як правильно вибрати, встановити і налаштувати завантаження на Ubuntu

net.ipv4.icmp_echo_ignore_all

Якщо включено, ядро ​​буде ігнорувати все icmp запити. Рекомендується для захисту від DDOS атак.

net.ipv4.icmp_echo_ignore_broadcasts

Так само, як і в попередньому варіанті, тільки ігноруватися будуть тільки широкомовні icmp запити.

net.ipv4.ip_default_ttl

Максимальна кількість вузлів, через які може пройти відправлений пакет перед тим, як досягне мети.

net.ipv4.ip_forward

Дозволити проходять пакети через цей комп`ютер. Зазвичай така настройка параметрів ядра Linux потрібна для роутерів.

net.ipv4.ip_local_port_range

Діапазон локальних портів, які можуть бути використані вашими програмами.

net.ipv4.tcp_rfc1337

Встановіть 1 щоб захистити комп`ютер від атаки TCP TimeWait.

net.ipv4.tcp_fin_timeout

Затримку читання завершення з`єднання після відправки пакета FIN. Рекомендовано 15.

net.ipv4.tcp_keepalive_time

Підтримувати з`єднання активним певний час, наприклад, 300 секунд. Після закінчення цього часу TCP з`єднання буде розірвано.

net.core.rmem_default

Вказує розмір за замовчуванням буфера для сокета отримання даних по мережі.

net.core.rmem_max

Максимальний розмір буфера сокета для отримання даних по мережі.

net.core.wmem_default

Розмір сокета за замовчуванням для відправки даних по мережі.

net.core.wmem_max

Максимальний розмір буфера сокета для відправки даних по мережі.

Відео: RS # 36: МОДЕЛЬ РОЗРОБКИ ЯДРА LINUX - Кирило Шутем

net.ipv4.tcp_rmem

Кількість пам`яті, доступної для роботи TCP.

vm.dirty_background_ratio

Вказує відсоток від загальної системної пам`яті, коли фоновий демон pdflush записи даних почне переписувати кешовані дані на диск. За умовчанням встановлено 10, але в швидких системах таке часте скидання не потрібно, тому цей параметр можна збільшити.

vm.dirty_ratio

Схожий параметр. Тільки на цей раз він вказує скільки загальної оперативної пам`яті повинно бути зайнято, щоб процес, який веде запис даних на диск ініціював запис кешованих даних безпосередньо на жорсткий диск.

vm.laptop_mode

Функція laptop mode дозволяє не відразу записувати дані на жорсткий диск після запиту, а зберігати їх зазначений час в оперативній пам`яті. Може бути корисно якщо ви економите заряд батареї і не хочете, щоб жорсткий диск завжди обертався.

vm.swappiness

Встановлює відсоток вільної пам`яті, після досягнення якого дані починають переноситися на swap розділ, для систем з великою кількістю пам`яті рекомендовано значення 10.

висновки

Ми розглянули далеко не всі параметри ядра linux, тут описані лише найцікавіші з них. Більш детальну інформацію та ще більше змінних ви можете знайти в офіційній документації по ядру Linux. І будьте обережні, конфігурація ядра Linux - справа серйозна. Якщо я упустив якийсь важливий параметр, напишіть в коментарях!

Поділися в соціальних мережах:

Схожі
Драйвери пристроїв для linux, 3-е виданняДрайвери пристроїв для linux, 3-е видання
Віртуальна флешка в linuxВіртуальна флешка в linux
Як оновити ядро ​​до 4.1 в ubuntuЯк оновити ядро ​​до 4.1 в ubuntu
Що таке ядро ​​linuxЩо таке ядро ​​linux
Оновлення драйверів ubuntuОновлення драйверів ubuntu
Оновлення ядра centos 7Оновлення ядра centos 7
Що нового в linux kernel 4.9Що нового в linux kernel 4.9
Налаштування завантажувача grubНалаштування завантажувача grub
Налаштування zram в linuxНалаштування zram в linux
Manjaro linux 15.12 отримає ядро ​​4.4 ltsManjaro linux 15.12 отримає ядро ​​4.4 lts
» » Налаштування ядра linux