====== Полезные параметры sysctl для Linux ====== ==== Маршрутизация ==== Включить маршрутизацию IPv4: # sysctl -w net.ipv4.ip_forward=1 Для того, чтобы настройки применялись при перезагрузки системы, нужно вписать их в файл /etc/sysctl.conf ==== Размер таблицы conntrack ==== Чтобы посмотреть, переполнилась ли таблица установленных соединений conntrack, можно посмотреть следующие sysctl: # sysctl net.netfilter.nf_conntrack_max # sysctl net.netfilter.nf_conntrack_count Первое значение покажет размер таблицы, а второе - количество используемых в таблице записей. ==== Размер хэш-таблицы conntrack ==== Для настройки размера хэш-таблицы можно воспользоваться переменной, доступной через файловую систему /sys. По умолчанию размер хэш таблицы считается как nf_conntrack_max / 8. Задать значение в реальном времени можно следующим образом: # echo 24576 > /sys/module/nf_conntrack/parameters/hashsize Чтобы настройка вступала в силу при перезагрузке, нужно добавить в /etc/modprobe.conf опции модуля ядра conntrack: options ip_conntrack hashsize=24576 ==== Таймауты таблицы соединений ==== Список параметров, настраивающих таймауты устаревания записей в таблице conntrack, можно посмотреть следующим образом: # sysctl -a | grep conntrack | grep timeout Уменьшение таймаутов снизит количество записей в таблице, т.к. устаревшие записи будут пропадать из неё раньше. Особое внимание стоит обратить на настройку net.netfilter.nf_conntrack_tcp_timeout_established. По умолчанию установленные TCP-сеансы остаются в таблице 5 дней (432000 секунд). Стоит задать этой настройке значение 30-120 секунд: # sysctl -w net.netfilter.nf_conntrack_tcp_timeout_established=60 ==== Увеличение количества доступных сокетов ==== Ускоряем повторное использование сокетов (TIME_WAIT) net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 Уменьшаем время пребывания сокета в состоянии FIN-WAIT-2 net.ipv4.tcp_fin_timeout=30 Увеличиваем количество доступных для использования портов для установки подключений на удалённые адреса: net.ipv4.ip_local_port_range = 1024 65535 ==== Отключение фильтрации трафика на сетевых мостах ==== По умолчанию ядро Linux фильтрует трафик на сетевых мостах. Для отключения нужно выставить следующие переменные: net.bridge.bridge-nf-call-ip6tables = 0 net.bridge.bridge-nf-call-iptables = 0 net.bridge.bridge-nf-call-arptables = 0 ==== Степень вытеснения в область подкачки ==== По умолчанию ядро Linux стремится вытеснить из оперативной памяти в пространство подкачки до 60% данных. Освободившаяся оперативная память используется в качестве дискового кэша и кэша файловой системы. Настроить степень использования пространства подкачки в процентах можно следующим образом: vm.swappiness = 1 Полностью отключать использование пространства подкачки, выставляя значение 0, не рекомендуется. ==== Отключение IPv6 ==== По умолчанию многие программы в Linux предпочитают использовать IPv6-адреса, которые могут быть недоступны. Чтобы отключить использование IPv6, достаточно присвоить следующей переменной ядра значение 1: net.ipv6.conf.all.disable_ipv6 = 1 Если ранее в системе были запущены демоны, ожидающие подключений на адресах IPv6, после изменения переменной ядра их нужно перезапустить, чтобы они начали прослушивать только адреса IPv4