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