Re: nginx и завышение трафика.
Maxim Dounin
mdounin на mdounin.ru
Чт Июл 23 17:22:34 UTC 2020
Hello!
On Thu, Jul 23, 2020 at 07:09:41PM +0300, Slawa Olhovchenkov wrote:
> On Thu, Jul 23, 2020 at 06:54:16PM +0300, Maxim Dounin wrote:
>
> > Hello!
> >
> > On Thu, Jul 23, 2020 at 06:27:49PM +0300, Slawa Olhovchenkov wrote:
> >
> > > В nginx 1.19.1 трафик который он считает отданным клиенту примерно в
> > > два раза больше того что учитывается сетевым оборудованием.
> > >
> > > В чем может быть дело? Куда копать?
> >
> > Что значит "трафик который он считает отданным клиенту"? Речь про
> > сумму значений переменных $bytes_sent? Эта переменная отражает
> > количество байт, отправелнных клиенту, то есть записанных в буфер
> > сокета. Что дальше с этими байтами происходило - nginx'у
> > незвестно, если клиент их получать на уровне TCP не стал и закрыл
> > соединение - то значение $bytes_sent может быть больше, чем ушло
> > через интерфейс, на размер буфера сокета. Дальше уже вопрос к
> > типичным размерам ответов, размерам буферов и поведению клиентов.
>
> это все понятно и очевидно, но два раза -- это два раза.
> типичный размер ответа -- 400кб, клиенты сокет до получения ответа
> закрывать не должны.
Ну вот столь же очевидное место практической проверки -
предположение про "не должны". Если действительно не закрывают -
есть повод для разбирательства, а если таки закрывают - то
наблюдаемый эффект хорошо объясняется поведением клиентов.
При таких размерах ответ скорее всего целиком влезает в буфер
сокета, и два раза - это примерно каждый второй ответ остался
неотправленным. Должно быть хорошо видно, если сличать глазами
логи и пакеты к соответствующим клиентам из дампа траффика.
Впрочем, два раза - возможно, объясняется куда проще: суммарные
значения $bytes_sent считаются неправильно и каждый запрос
учитываетстя два раза. Начиная от банального "запрос пишется в
лог дважды" и до "запрос дополнительно проксируется локально, и
считается как ответ клиенту, так и локальный ответ".
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru