ansible-bootstrap-rocky9/roles/rocky9/templates/tcp_tune.conf.j2
2026-05-11 15:54:07 +03:00

85 lines
8.4 KiB
Django/Jinja
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TCP syncookies - технология, позволяющая не забивать
# TCP стек, пока TCP сессия полностью не установится.
# Защита на случай TCP Syn атак
# Согласно рекомендациям разработчиков ядра, этот режим лучше отключить.
# http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
net.ipv4.tcp_syncookies = 0
# Векторная (минимум, по умолчанию, максимум) переменная в файле tcp_rmem содержит 3 целых числа, определяющих размер буфера сокетов TCP/UDP.
# Минимум: каждый сокет TCP имеет право использовать эту память по факту своего создания. Возможность использования такого буфера гарантируется
# даже при достижении порога ограничения (moderate memory pressure). Размер минимального буфера по умолчанию составляет 8 Кбайт (8192).
# Значение по умолчанию: количество памяти, допустимое для буфера передачи сокета TCP по умолчанию. Это значение применяется взамен параметра
# /proc/sys/net/core/rmem_default, используемого другими протоколами. Значение используемого по умолчанию буфера обычно (по умолчанию)
# составляет 87830 байт. Это определяет размер окна 65535 с заданным по умолчанию значением tcp_adv_win_scale и tcp_app_win = 0, несколько
# меньший, нежели определяет принятое по умолчанию значение tcp_app_win.
# Максимум: максимальный размер буфера, который может быть автоматически выделен для приема сокету TCP. Это значение не отменяет максимума,
# заданного в файле /proc/sys/net/core/rmem_max. При “статическом” выделении памяти с помощью SO_RCVBUF этот параметр не имеет значения.
# На приём TCP пакетов
net.ipv4.tcp_rmem=4096 8388608 16777216
# На передачу TCP пакетов
net.ipv4.tcp_wmem=4096 4194394 16777216
# Для TCP протокола в целом
net.ipv4.tcp_mem=8388608 12582912 16777216
# Для UDP протокола в целом
net.ipv4.udp_mem=8388608 12582912 16777216
net.ipv4.udp_rmem_min=16384
net.ipv4.udp_wmem_min=16384
# Параметр определяет максимальное количество пакетов в очереди на обработку, если интерфейс получает пакеты быстрее, чем ядро может их обработать.
net.core.netdev_max_backlog=500000
# Максимальное число запоминаемых запросов на соединение (TCP Syn), для которых не было получено подтверждения от подключающегося клиента.
net.ipv4.tcp_max_syn_backlog=5480000
# Увеличим возможное количество сокетов в состоянии TIME_WAIT.
net.ipv4.tcp_max_tw_buckets=5480000
# Разрешаем повторное использование TIME-WAIT сокетов в случаях, если протокол считает это безопасным.
net.ipv4.tcp_tw_reuse=1
# Разрешаем быструю утилизацию сокетов находящихся в состоянии TIME_WAIT
net.ipv4.tcp_tw_recycle=1
# Параметр tcp_fin_timeout определяет время сохранения сокета в состоянии FIN-WAIT-2 после его закрытия локальной стороной.
# Партнер может не закрыть это соединение никогда.
net.ipv4.tcp_fin_timeout=3
# Разрешить выборочные подтверждения протокола TCP. Опция необходима для эффективного использования всей доступной
# пропускной способности некоторых сетей
net.ipv4.tcp_sack=1
# Число попыток повтора передачи пакетов SYNACK для пассивных соединений TCP.
net.ipv4.tcp_synack_retries=1
# Определяет максимальное число допустимых в системе сокетов TCP, не связанных каким-либо идентификатором пользовательского файла (user file handle).
net.ipv4.tcp_max_orphans=65536
# Определяется число неудачных попыток, после которого уничтожается соединение TCP, закрытое на локальной стороне.
net.ipv4.tcp_orphan_retries=0
# Проверка наличия подключения по средствам keepalive сообщений. Активируется только для тех сокетов, которые были созданы с флагом SO_KEEPALIVE.
# Через какой промежуток времени после установки подключения начать слать keepalive сообщения (в сек)
net.ipv4.tcp_keepalive_time=600
# Интервал, с которым слать keepalive пакеты (в сек)
net.ipv4.tcp_keepalive_intvl=20
# После скольки неудачных пробах считать соединение разорванным
net.ipv4.tcp_keepalive_probes=2
# Запрещаем технологию slow start (малый размер окна) в TCP подключениях,
# в которых долгое время не было трафика.
net.ipv4.tcp_slow_start_after_idle=0
# Увеличиваем диапазон локальных портов, доступных для установки исходящих подключений.
net.ipv4.ip_local_port_range=2000 65000
# Разрешает временные метки протокола TCP. Их наличие позволяет управлять работой протокола в условиях серьезных нагрузок.
net.ipv4.tcp_timestamps=1
# Параметр отвечающий за алгоритмы сегментации TCP пакетов при передаче данных.
# Cubic - алгоритм для высоконагруженных систем, но более структурированный, нежели BIC.
# Включён по умолчанию в linux ядре начиная с версии 2.6.19
# BBR - Алгоритм от Гугла, получайте максимальную скорость, если у вас широкий канал
net.ipv4.tcp_congestion_control=bbr
# Параметр определяет дисциплину обработки очередей
# FQ делят пропускную способность между всеми соединениями, даёт лучшую пропускную способность в связке с BBR
sysctl net.core.default_qdisc=fq
# Не сохранять результаты измерений TCP соединения в кеше при его закрытии
net.ipv4.tcp_no_metrics_save=1
# Разрешаем динамическое изменение размера окна TCP стека (окно увеличивается, если не было потерь
# пакетов при передаче в рамках TCP подключения)
net.ipv4.tcp_window_scaling=1
# Защита от TIME_WAIT атак.
net.ipv4.tcp_rfc1337=1
# Не отвечаем на ICMP ECHO запросы, переданные на широковещательный адрес.
net.ipv4.icmp_echo_ignore_broadcasts=1
# Не отвечаем на ошибочно сформированные сообщения.
net.ipv4.icmp_ignore_bogus_error_responses=1
# Максимальное число открытых сокетов, ждущих соединения.
# Максимум в CentOS 7
net.core.somaxconn=65535