Re: nginx и завышение трафика.

Slawa Olhovchenkov slw на zxy.spb.ru
Пт Июл 24 11:54:16 UTC 2020


On Thu, Jul 23, 2020 at 08:22:34PM +0300, Maxim Dounin wrote:

> 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кб, клиенты сокет до получения ответа
> > закрывать не должны.
> 
> Ну вот столь же очевидное место практической проверки - 
> предположение про "не должны".  Если действительно не закрывают - 
> есть повод для разбирательства, а если таки закрывают - то 
> наблюдаемый эффект хорошо объясняется поведением клиентов.
> 
> При таких размерах ответ скорее всего целиком влезает в буфер 
> сокета, и два раза - это примерно каждый второй ответ остался 
> неотправленным.  Должно быть хорошо видно, если сличать глазами 
> логи и пакеты к соответствующим клиентам из дампа траффика.

Всё-таки это клиенты.
Они закрывают сокет иной раз после отправки им 50кб ответа (из 256кб
буфера).


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