Высоконагруженный Traefik или Nginx на bare-metal внезапно перестаёт принимать новые соединения. Мониторинг показывает нормальную загрузку CPU и памяти, netstat -s молчит про ошибки. Но ss -s выдаёт десятки тысяч соединений в TIME_WAIT. Проблема не в tcp_tw_reuse=1 — он работает только для исходящих соединений от сервера к бэкенду. Если reverse proxy сам является клиентом (например, при upstream-проксировании), он исчерпывает локальный диапазон портов: cat /proc/sys/net/ipv4/ip_local_port_range. При RPS > 30k и MSL=60 секунд, даже весь диапазон 32768–60999 не спасает. Диагностика: watch -n1 'ss -s'; grep "tw" /proc/net/netstat; sysctl net.ipv4.tcp_max_tw_buckets. Решение — SO_REUSEPORT на уровне приложения, увеличение ip_local_port_range до 1024–65535 (осторожно!), или переход на connection pooling. Подробнее: https://ftops.space/?utm_source=telegram&utm_medium=smm&utm_campaign=ftops&utm_content=tcp-time-wait-agoniya-pochemu-tcp-tw

Высоконагруженный Traefik или Nginx на bare-metal внезапно перестаёт принимать новые соединения. Мониторинг показывает нормальную загрузку CPU и памяти, netstat -s молчит про ошибки | Сетка — социальная сеть от hh.ru