104 Connection reset от nginx

Evader nginx-forum at nginx.us
Tue Mar 17 15:01:37 UTC 2015


Коллеги, привет!

Пытаюсь тестировать различные инстансы EC2 с nginx. Установка простейшая,
Amazon Linux, nginx/1.6.2 + php-fpm 5.4. Встретился с проблемой, которую
никак не могу понять как побороть. В качестве инструмента для тестирования
– ab, weighttp, httpress, неважно, поведение идентично. Пусть есть location
с единственным /index.php с phpinfo() внутри. nginx общается с fpm через
unix socket.

В таком режиме сервер легко держит 10К, 20 или даже 30К одновременных
keepalive подключений. Может даже и больше, особо не проверял. Но проблема
заключается в том, что при увеличении количества запросов, появляются 104
Connection reset от самого nginx, которые фиксируются weighttp, например.
Бывает еще Connection timed out (110), но реже. Удивительно то, что при 100К
запросах, все работает идеально. Можно сколько угодно раз прогонять weighttp
с 20К параллельными коннектами и общим числом запросов в 100 тысяч – все
будет работать. Как только число запросов увеличивается >100К – начинают
лезть 104 reset. Эмпирическим путем я выяснил, что их момент появления
напрямую зависит от установленного keepalive_timeout. То есть, если его
отодвинуть в 2 раза больше, то успешно будут выполняться не 100, а условно
200К запросов. Если наоборот зажать до 10 секунд, все будет фейлиться почти
сразу.

При этом никаких сообщений в error логе нет. Что именно смотреть в tcpdump
при таком поведении я не очень понимаю. somaxconn, backlog самого nginx
задраны максимально, значения согласно ss -l применяются успешно.
Подскажите, в какую вообще сторону копать/смотреть? Конкретных
конфигов/sysctl не предоставляю, потому что кроме беклога, задранных
worker_connections и установленных 4 воркерах при 8 ядрах все остальное –
дефолтное. fpm так же довольствуется минимальными значениями в настройках,
да и очевидных ошибок о достижении лимитов error логе нет.

Заранее большое спасибо за идеи и помощь!

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,257330,257330#msg-257330



Подробная информация о списке рассылки nginx-ru