Hello! On Tue, Nov 13, 2018 at 08:23:03PM +0300, kpoxa wrote:
> Добрый день. > > Есть сервер (Dual Xeon E5620, средняя нагрузка проца в праймтайм 20%) с > nginx в главной и по сути единственной роли, задача которого проксирование > и больше ничего. > > В конфиге 101 listen на уникальные ip:port, nginx без сторонних модулей. > 1.15.4, но думаю что версия тут не при чем. > Debian Linux Jessy с ядром 3.16. > > В среднем одновременных коннектов открыто 150-200 тыс. 70% из них по 443 > порту. > в логе собирается время отвремя апстрима и было замечено, то раз в 30 > секунд оно пролагивает у части коннектов на лишнюю секунду, т.е. обычно > 0.01, а тут 1.01 сек. > Выяснилось что раз в 30 секунд срабатывает проверка конфига заббиксом, т.е. > вызывается > nginx -t > > Ручной вызов nginx -t привел к появлению в логах лагающих запросов в это > время, выключение аббикс агента такие запросы убирает вообще. > команда > time nginx -t > nginx: the configuration file /etc/nginx/nginx.conf syntax is ok > nginx: configuration file /etc/nginx/nginx.conf test is successful > real 0m0.601s > user 0m0.044s > sys 0m0.432s > показывает 0.4 с лишним секунды в режиме ядра. > а попытка разобраться чем же занято ядра выдало ниже следующее > > strace -Ttt nginx -t 2>&1 | grep bind > > т.е. bind на 443 порты занимает 15 тысячных секунды, против стотысячных > долей у прочих биндов. > > Есть ли идеи, как решить проблему пролагиваний при проверке конфига? > Вариант убрать её из заббикса считаю академически неправильным, просьба его > не рассматривать. > > reuseport не используется, может он помочь? Из общих соображений я бы скорее предположил, что reuseport в данной ситуации сделает хуже, а не лучше. Потому что сокетов станет только больше, а bind() должен проверить конфликты с открытыми сокетами. Очевидное решение - добавить listen на *:443, тогда listen-сокет будет один, и проблема исчезнет. Впрочем, запускать "nginx -t" раз в 30 секунд - это, скажем так, очень странное решение, если не сказать грубее. Особенно с учётом того, что только парсинг конфигурации вполне может занимать несколько минут. -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru