sysctl утилита, предназначенная для управления параметрами ядра

sysctl в BSD (FreeBSD) и Linux - программа, предназначенная для управления отдельными параметрами ядра, безопасности, сетевой подсистемы. Файл настроек /etc/sysctl.conf

После редактирования sysctl.conf применить изменения, без перезагрузки ОС, можно командой

# sysctl  -p
  • Показать максимальное количество файлов, которые могут быть открыты в ОС.
    $ sysctl fs.file-max
    fs.file-max = 202019

Для просмотра всех доступных для чтения переменных:

% sysctl -a

Чтобы прочитать определённую переменную, например, kern.maxproc, введите:

% sysctl kern.maxproc
kern.maxproc: 1044

Для присвоения значения переменной, используйте выражение вида переменная=значение:

# sysctl kern.maxfiles=5000
kern.maxfiles: 2088 -> 5000

Изменяемые с помощью sysctl переменные обычно принимают значения либо строкового, либо целого, либо булевого типа. Переменные булевого типа могут принимать два значения (1 (истина) и 0 (ложь)).

Если вы хотите устанавливать некоторые переменные автоматически при каждой загрузке компьютера, добавьте их в файл /etc/sysctl.conf. За дополнительной информацией обращайтесь к странице справочника sysctl.conf.

net.inet.tcp.msl=7500 -- время ожидания ACK в ответ на SYN-ACK или FIN-ACK
net.inet.tcp.blackhole=2 -- все пакеты на закрытый порт отбрасываются без отсылки RST
net.inet.udp.blackhole=1 -- отбрасывать пакеты для  закрытых UDP портов net.inet.icmp.icmplim=50 -- чтобы не флудили по ICMP
kern.ipc.somaxconn=32768 -- увеличение числа одновременно открытых сокетов
kern.polling.enable=1       -- небольшой тюнинг
kern.polling.user_frac=50 --  поллинга
net.inet.icmp.drop_redirect=1 -- редиректить нам не надо
net.inet.ip.redirect=0 -- запрещаем ответ на часть "лишнего" icmp эти переменные,
начиная с 6.0 уже имеют такие значения, но для успокоения души лучше их выставить принудительно
net.inet.icmp.maskrepl=0
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.icmp.bmcastecho=0
net.inet.ip.random_id=1
  • Explicit Congestion Notification (ECN) — (Явное Уведомление о Перегруженности)
    # sysctl net.ipv4.tcp_ecn
    net.ipv4.tcp_ecn = 2

Настройка сети:

  1. net.ipv4.tcp_syncookies: Управление использованием SYN cookies для защиты от атак типа SYN flood.
  2. net.ipv4.ip_forward: Разрешение или запрет маршрутизации IP-пакетов между сетевыми интерфейсами (Тюнинг NAT в Linux).

Управление памятью:

  1. vm.swappiness: Контроль степени использования swap-памяти вместо оперативной памяти.
  2. vm.dirty_ratio и vm.dirty_background_ratio: Установка порогов для отложенной записи (dirty) в оперативную память.

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

Обзор игрового хостинга Realms Hosting: Minecraft, RUST, Counter-Strike. PQ VPS сервера в 38+ странах.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!