Здесь вы найдете полезные советы, практические материалы и интересные инсайты по администрированию Linux. Погружаемся в мир команд, скриптов и серверов вместе! 🚀
Авторский канал действующего админа 👨🏼💻
Post #188
910
Ускоряем TCP-стек: тонкий тюнинг offload и sysctl
В самом пиковом трафике TCP-серверы часто не вытягивают заявленную пропускную способность. Причина — неэффективные offload-фичи NIC и «жесткие» дефолтные параметры ядра.
1. Проверяем возможности сети (offloads):
Вы увидите, какие фичи задействованы (GRO, GSO, TSO, LRO и т.п.).
2. Тонкая настройка offload-фичей:
▫️Чтобы отключить оффлоад (например, при отладке или если оборудование плохо работает):
▫️Чтобы вернуть на продакшн-уровень (во многих случаях лучше оставить включённым):
3. Настройка sysctl для TCP-стека:
Создаём файл
Сохраняем и применяем:
4. Полезный трюк (systemd-интеграция offload):
Вместо скриптов можно зафиксировать нужные offload-параметры в профиле systemd-networkd.
Создаём
Дальше:
Такой подход гарантирует, что при рестарте сети offload-настройки сохранятся.
5. Предупреждение об ошибке:
Не стоит «глушить» все offload-фичи на продакшене без причин — может вырасти CPU-загрузка и снизиться общая пропускная способность.
Заключение:
Правильный монтаж offload и sysctl-тюнинг — залог стабильной и быстрой сети.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
В самом пиковом трафике TCP-серверы часто не вытягивают заявленную пропускную способность. Причина — неэффективные offload-фичи NIC и «жесткие» дефолтные параметры ядра.
1. Проверяем возможности сети (offloads):
ethtool -k eth0
Вы увидите, какие фичи задействованы (GRO, GSO, TSO, LRO и т.п.).
2. Тонкая настройка offload-фичей:
▫️Чтобы отключить оффлоад (например, при отладке или если оборудование плохо работает):
ethtool -K eth0 gro off gso off tso off lro off
▫️Чтобы вернуть на продакшн-уровень (во многих случаях лучше оставить включённым):
ethtool -K eth0 gro on gso on tso on lro on
Зачем: отключение может помочь выявить причину артефактов или падений производительности. В бою же правильная комбинация offload снижает CPU-нагрузку.
3. Настройка sysctl для TCP-стека:
Создаём файл
/etc/sysctl.d/99-network-tuning.conf с ключевыми параметрами:
# Увеличиваем буферы приёмника/передачи
net.core.rmem_max = 268435456
net.core.wmem_max = 268435456
# Автоматически масштабируем буферы TCP
net.ipv4.tcp_rmem = 4096 87380 268435456
net.ipv4.tcp_wmem = 4096 87380 268435456
# Увеличиваем размер очереди соединений
net.core.somaxconn = 1024
# Включаем TCP Fast Open (по возможности)
net.ipv4.tcp_fastopen = 3
# Тюнинг для низкой задержки (если нужно)
net.ipv4.tcp_low_latency = 1
Сохраняем и применяем:
sysctl --system
Когда применять: нагрузки с большим числом соединений (базы данных, прокси, высоконагруженные веб-фронтенды).
4. Полезный трюк (systemd-интеграция offload):
Вместо скриптов можно зафиксировать нужные offload-параметры в профиле systemd-networkd.
Создаём
/etc/systemd/network/20-eth0.network:
[Match]
Name=eth0
[Link]
# Примеры: включить TSO и GSO, отключить GRO
TCPGenericReceiveOffload=no
TCPGenericSendOffload=yes
Дальше:
systemctl restart systemd-networkd
Такой подход гарантирует, что при рестарте сети offload-настройки сохранятся.
5. Предупреждение об ошибке:
Не стоит «глушить» все offload-фичи на продакшене без причин — может вырасти CPU-загрузка и снизиться общая пропускная способность.
Заключение:
Правильный монтаж offload и sysctl-тюнинг — залог стабильной и быстрой сети.
#Linux@linux_odmin #LinuxTips@linux_odmin #Команды@linux_odmin
👉 @linux_odmin
- 👍 2
