Maxim Dounin
November 13, 2018 02:00PM
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
Subject Author Posted

Пролагивание коннектов при проверке синтаксиса

kpoxa November 13, 2018 12:24PM

Re: Пролагивание коннектов при проверке синтаксиса

Maxim Dounin November 13, 2018 02:00PM

Re: Пролагивание коннектов при проверке синтаксиса

kpoxa November 14, 2018 03:46AM

Re: Пролагивание коннектов при проверке синтаксиса

Maxim Dounin November 14, 2018 08:00AM

Re: Пролагивание коннектов при проверке синтаксиса

kpoxa November 14, 2018 09:12AM

Re: Пролагивание коннектов при проверке синтаксиса

Vadim A. Misbakh-Soloviov November 15, 2018 12:24AM

Re: Пролагивание коннектов при проверке синтаксиса

kpoxa November 15, 2018 04:44AM

Re: Пролагивание коннектов при проверке синтаксиса

Vadim A. Misbakh-Soloviov November 15, 2018 08:06AM

Re: Пролагивание коннектов при проверке синтаксиса

kpoxa November 15, 2018 08:56AM

Re: Пролагивание коннектов при проверке синтаксиса

Илья Шипицин November 15, 2018 09:22AM

Re: Пролагивание коннектов при проверке синтаксиса

Maxim Dounin November 15, 2018 08:56AM

Re: Пролагивание коннектов при проверке синтаксиса

kpoxa November 15, 2018 09:18AM

Re: Пролагивание коннектов при проверке синтаксиса

Валентин Бартенев November 13, 2018 02:48PM

Re: Пролагивание коннектов при проверке синтаксиса

Илья Шипицин November 13, 2018 02:54PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 315
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready