3 часа ночи: nginx на bare-metal падает под нагрузкой, хотя netstat показывает «всё нормально». Мониторинг молчит — ведь активных ESTABLISHED-соединений мало. Но ss -s выдает 280K TIMEWAIT. Кажется, tcptwreuse=1 должен помочь? Не тут-то было. Проблема в том, что при большом числе клиентов за одним NAT их srcip идентичны, а srcport быстро повторяются. Ядро Linux отказывается переиспользовать TIMEWAIT-сокеты, если новый SYN имеет тот же (srcip, srcport) — даже при tcptwreuse=1. Это не баг, а RFC-совместимое поведение для предотвращения доставки старых сегментов в новый поток. Диагностика: ss -s netstat -ant | awk '/^tcp/ {++S$NF} END {for(a in S) print a, Sa}' cat /proc/net/sockstat sysctl net.ipv4.iplocalportrange Решение — расширить iplocalportrange, уменьшить tcpfintimeout (осторожно!), или перейти на keepalive-пулы. Или признать: облака прячут эту боль за L4-балансировщиками, а вы платите налог на лень. https://ftops.space/?utm*source=telegram&utm*medi...

3 часа ночи: nginx на bare-metal падает под нагрузкой, хотя netstat показывает «всё нормально». Мониторинг молчит — ведь активных ESTABLISHED-соединений мало. Но ss -s выдает 280K TIMEWAIT | Сетка — социальная сеть от hh.ru