Под капотом это интерфейс к виртуальной файловой системе
/proc/sys/, где каждый параметр представлен отдельным файлом.Полезно, когда нужно подкрутить сеть, память, лимиты или поведение ядра под конкретную нагрузку — БД, k8s-нода, прокси, файловый сервер.
💬 Как устроено?
Все настройки лежат в
/proc/sys/ и сгруппированы по разделам:—
net.* — сетевой стек (TCP/IP, маршрутизация, ARP)—
vm.* — управление памятью и swap—
kernel.* — параметры ядра (PID, dmesg, core dump)—
fs.* — файловые системы (inotify, лимиты файловых дескрипторов)💬 Основные команды
Посмотреть все параметры:
sysctl -a
Прочитать конкретный параметр:
sysctl net.ipv4.ip_forward
Изменить параметр на лету (до перезагрузки):
sudo sysctl -w net.ipv4.ip_forward=1
💬 Как сделать настройки постоянными?
Изменения через
-w живут до первого ребута. Чтобы параметры применялись при загрузке — необходимо добавить их в конфиг.Главный файл:
/etc/sysctl.confДополнительные:
/etc/sysctl.d/*.conf💬 Пример
создание дополнительного конфига:
sudo nano /etc/sysctl.d/99-custom.conf
Добавляем в файл следующие строки
# Включить форвардинг пакетов
net.ipv4.ip_forward = 1
# Увеличить лимит открытых файлов
fs.file-max = 2097152
# Уменьшить агрессивность swap
vm.swappiness = 10
Применить без перезагрузки:
sudo sysctl --system # применить все конфиги из /etc/sysctl.d/
sudo sysctl -p # применить /etc/sysctl.conf
sudo sysctl -p /etc/sysctl.d/99-custom.conf # конкретный файл
sysctl — один из тех инструментов, которые отделяют «работает» от «работает под нагрузкой».
Дефолты ядра рассчитаны на универсальность, а реальные задачи почти всегда требуют тонкой настройки.
#линуксятина
