ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Отказ в обслуживании на определенном порту.



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
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.