Hello! On Mon, Apr 01, 2013 at 04:13:20AM -0400, vstaf wrote:
> Коллеги, надеюсь на помощь в решении периодически возникающей проблемы. > > Суть: > > Есть nginx, обслуживающий 1 домен на 5 портах + SSL. Периодически (раз в > несколько недель) возникает ситуация, что при попытке коннекта на > определенный порт (назовем его "Х") не проходят даже syn - ack. Обычно это > возникает при цифре 6к syn-запросов в секунду к серверу на пресловутый порт > "Х". На других портах nginx работает нормально и без проблем выполняет все > свои функции. [...] > Понимаю, что по сути сам nginx тут не при чем, но хотелось бы понять > направление куда копать. Экспериментировал с разными параметрами ядра - > профита так и не получил. Когда количество синов в секунду падает (до > 1-1.5к) - все приходит в норму. Начать имеет смысл с простого - посмотреть на размеры listen queue и количество соединений в ней (смотреть "ss -nlt"). В большинстве linux'ов, насколько я понимаю, по умолчанию net.ipv4.tcp_abort_on_overflow стоит в 0, и при переполнении listen queue syn-пакеты просто тихо дропаются на пол. По умолчанию на linux'е nginx использует listen queue 511, для 6k соединений в секунду - это может быть мало, особенно если машина при этом нагружена. Тюнить - с помощью парметра backlog= директивы listen, nginx.org/r/listen. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
