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

2020-07-24 Пенетрантность Slawa Olhovchenkov
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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Slawa Olhovchenkov
On Thu, Jul 23, 2020 at 11:08:43PM +0500, Илья Шипицин wrote:

> чт, 23 июл. 2020 г. в 22:39, Slawa Olhovchenkov :
> 
> >
> > On Thu, Jul 23, 2020 at 08:33:25PM +0300, Evgeniy Berdnikov wrote:
> >
> > > On Thu, Jul 23, 2020 at 07:54:09PM +0300, Slawa Olhovchenkov wrote:
> > > > On Thu, Jul 23, 2020 at 07:35:35PM +0300, Evgeniy Berdnikov wrote:
> > > ...
> > > > >  что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
> > > > >  адресовать претензии к nginx или к канальному оборудованию.
> > > >
> > > > я не понимаю к чему это все, я уже сказал -- канальное оборудование
> > > > (системные счетчики и свитчевые) показывают в два раза МЕНЬШЕ трафика
> > > > чем по учету bytes_sent.
> > >
> > >  Чтобы понять, какая из двух линеек крива, следует приложить третью.
> >
> > Что непонятно в следующем утверждении: счетчики l2 от операционной
> > системы и свича совпадают? Это канает как две дополнительных линейки?
> >
> > >  А чтобы не путаться в лесу, лучше всего изучить отдельную сосну.
> > >
> > >  Запишите дамп ОДНОЙ коннекции. Если $bytes_sent окажется вдвое меньше
> > >  аппаратных счётчиков, то либо это бага в nginx, либо там 50% заголовков
> > >  и ретрансмиссий, но тогда они в дампе будут отлично видны.
> >
> > Откуда я для одной конекции возьму аппартные счетчики?
> >
> > Каким образом 50% заголовков и ретрансмиссий дадут вдвое меньше
> > трафика на апапртаных счетчиках?
> >
> 
> а подзапросы используются ?

для auth_request

> конфиг это proxy_pass или что-то хитрее ?

auth_request
aws_sign (но он трафика не делает)
proxy_cache

ну и переписывание URI.

что еще может влиять?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Илья Шипицин
чт, 23 июл. 2020 г. в 22:39, Slawa Olhovchenkov :

>
> On Thu, Jul 23, 2020 at 08:33:25PM +0300, Evgeniy Berdnikov wrote:
>
> > On Thu, Jul 23, 2020 at 07:54:09PM +0300, Slawa Olhovchenkov wrote:
> > > On Thu, Jul 23, 2020 at 07:35:35PM +0300, Evgeniy Berdnikov wrote:
> > ...
> > > >  что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
> > > >  адресовать претензии к nginx или к канальному оборудованию.
> > >
> > > я не понимаю к чему это все, я уже сказал -- канальное оборудование
> > > (системные счетчики и свитчевые) показывают в два раза МЕНЬШЕ трафика
> > > чем по учету bytes_sent.
> >
> >  Чтобы понять, какая из двух линеек крива, следует приложить третью.
>
> Что непонятно в следующем утверждении: счетчики l2 от операционной
> системы и свича совпадают? Это канает как две дополнительных линейки?
>
> >  А чтобы не путаться в лесу, лучше всего изучить отдельную сосну.
> >
> >  Запишите дамп ОДНОЙ коннекции. Если $bytes_sent окажется вдвое меньше
> >  аппаратных счётчиков, то либо это бага в nginx, либо там 50% заголовков
> >  и ретрансмиссий, но тогда они в дампе будут отлично видны.
>
> Откуда я для одной конекции возьму аппартные счетчики?
>
> Каким образом 50% заголовков и ретрансмиссий дадут вдвое меньше
> трафика на апапртаных счетчиках?
>

а подзапросы используются ?

конфиг это proxy_pass или что-то хитрее ?


> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Slawa Olhovchenkov

On Thu, Jul 23, 2020 at 08:33:25PM +0300, Evgeniy Berdnikov wrote:

> On Thu, Jul 23, 2020 at 07:54:09PM +0300, Slawa Olhovchenkov wrote:
> > On Thu, Jul 23, 2020 at 07:35:35PM +0300, Evgeniy Berdnikov wrote:
> ...
> > >  что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
> > >  адресовать претензии к nginx или к канальному оборудованию.
> > 
> > я не понимаю к чему это все, я уже сказал -- канальное оборудование
> > (системные счетчики и свитчевые) показывают в два раза МЕНЬШЕ трафика
> > чем по учету bytes_sent.
> 
>  Чтобы понять, какая из двух линеек крива, следует приложить третью.

Что непонятно в следующем утверждении: счетчики l2 от операционной
системы и свича совпадают? Это канает как две дополнительных линейки?

>  А чтобы не путаться в лесу, лучше всего изучить отдельную сосну.
> 
>  Запишите дамп ОДНОЙ коннекции. Если $bytes_sent окажется вдвое меньше
>  аппаратных счётчиков, то либо это бага в nginx, либо там 50% заголовков
>  и ретрансмиссий, но тогда они в дампе будут отлично видны.

Откуда я для одной конекции возьму аппартные счетчики?

Каким образом 50% заголовков и ретрансмиссий дадут вдвое меньше
трафика на апапртаных счетчиках?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Evgeniy Berdnikov
On Thu, Jul 23, 2020 at 07:54:09PM +0300, Slawa Olhovchenkov wrote:
> On Thu, Jul 23, 2020 at 07:35:35PM +0300, Evgeniy Berdnikov wrote:
...
> >  что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
> >  адресовать претензии к nginx или к канальному оборудованию.
> 
> я не понимаю к чему это все, я уже сказал -- канальное оборудование
> (системные счетчики и свитчевые) показывают в два раза МЕНЬШЕ трафика
> чем по учету bytes_sent.

 Чтобы понять, какая из двух линеек крива, следует приложить третью.
 А чтобы не путаться в лесу, лучше всего изучить отдельную сосну.

 Запишите дамп ОДНОЙ коннекции. Если $bytes_sent окажется вдвое меньше
 аппаратных счётчиков, то либо это бага в nginx, либо там 50% заголовков
 и ретрансмиссий, но тогда они в дампе будут отлично видны.
-- 
 Eugene Berdnikov
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Maxim Dounin
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 mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Илья Шипицин
чт, 23 июл. 2020 г. в 21:54, Slawa Olhovchenkov :

> On Thu, Jul 23, 2020 at 07:35:35PM +0300, Evgeniy Berdnikov wrote:
>
> > On Thu, Jul 23, 2020 at 07:09:41PM +0300, Slawa Olhovchenkov wrote:
> > > это все понятно и очевидно, но два раза -- это два раза.
> > > типичный размер ответа -- 400кб, клиенты сокет до получения ответа
> > > закрывать не должны.
> >
> >  Можно запустить tcpdump и посмотреть, сколько отдаётся клиенту.
> >  Эта утилита прямо номера байт с начала коннекции покажет.
> >  В нормальной сети можно ещё накинуть ещё 2-5% на ретрасмиссии.
> >  Плюс есть счётчики интерфейсов (там будет больше на L2-заголовки,
> >  что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
> >  адресовать претензии к nginx или к канальному оборудованию.
>
> я не понимаю к чему это все, я уже сказал -- канальное оборудование
> (системные счетчики и свитчевые) показывают в два раза МЕНЬШЕ трафика
> чем по учету bytes_sent.
>
> PS: а что, ssl как-то хитро bytes_sent искажает?
>

ваш случай выбивается из того, что мы обычно видим.

обычно, за счет SSL добавляется оверхеда (который непонятно как посчитать)



> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Slawa Olhovchenkov
On Thu, Jul 23, 2020 at 07:35:35PM +0300, Evgeniy Berdnikov wrote:

> On Thu, Jul 23, 2020 at 07:09:41PM +0300, Slawa Olhovchenkov wrote:
> > это все понятно и очевидно, но два раза -- это два раза.
> > типичный размер ответа -- 400кб, клиенты сокет до получения ответа
> > закрывать не должны.
> 
>  Можно запустить tcpdump и посмотреть, сколько отдаётся клиенту.
>  Эта утилита прямо номера байт с начала коннекции покажет.
>  В нормальной сети можно ещё накинуть ещё 2-5% на ретрасмиссии.
>  Плюс есть счётчики интерфейсов (там будет больше на L2-заголовки,
>  что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
>  адресовать претензии к nginx или к канальному оборудованию.

я не понимаю к чему это все, я уже сказал -- канальное оборудование
(системные счетчики и свитчевые) показывают в два раза МЕНЬШЕ трафика
чем по учету bytes_sent.

PS: а что, ssl как-то хитро bytes_sent искажает?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Илья Шипицин
а научите, как $bytes_sent  должен биться с SSL ?

чт, 23 июл. 2020 г. в 21:35, Evgeniy Berdnikov :

> On Thu, Jul 23, 2020 at 07:09:41PM +0300, Slawa Olhovchenkov wrote:
> > это все понятно и очевидно, но два раза -- это два раза.
> > типичный размер ответа -- 400кб, клиенты сокет до получения ответа
> > закрывать не должны.
>
>  Можно запустить tcpdump и посмотреть, сколько отдаётся клиенту.
>  Эта утилита прямо номера байт с начала коннекции покажет.
>  В нормальной сети можно ещё накинуть ещё 2-5% на ретрасмиссии.
>  Плюс есть счётчики интерфейсов (там будет больше на L2-заголовки,
>  что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
>  адресовать претензии к nginx или к канальному оборудованию.
> --
>  Eugene Berdnikov
> ___
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Evgeniy Berdnikov
On Thu, Jul 23, 2020 at 07:09:41PM +0300, Slawa Olhovchenkov wrote:
> это все понятно и очевидно, но два раза -- это два раза.
> типичный размер ответа -- 400кб, клиенты сокет до получения ответа
> закрывать не должны.

 Можно запустить tcpdump и посмотреть, сколько отдаётся клиенту.
 Эта утилита прямо номера байт с начала коннекции покажет.
 В нормальной сети можно ещё накинуть ещё 2-5% на ретрасмиссии.
 Плюс есть счётчики интерфейсов (там будет больше на L2-заголовки,
 что в для mtu=1500 максимум пару процентов добавит). И станет ясно,
 адресовать претензии к nginx или к канальному оборудованию.
-- 
 Eugene Berdnikov
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Slawa Olhovchenkov
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кб, клиенты сокет до получения ответа
закрывать не должны.
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Maxim Dounin
Hello!

On Thu, Jul 23, 2020 at 06:27:49PM +0300, Slawa Olhovchenkov wrote:

> В nginx 1.19.1 трафик который он считает отданным клиенту примерно в
> два раза больше того что учитывается сетевым оборудованием.
> 
> В чем может быть дело? Куда копать?

Что значит "трафик который он считает отданным клиенту"?  Речь про 
сумму значений переменных $bytes_sent?  Эта переменная отражает 
количество байт, отправелнных клиенту, то есть записанных в буфер 
сокета.  Что дальше с этими байтами происходило - nginx'у 
незвестно, если клиент их получать на уровне TCP не стал и закрыл 
соединение - то значение $bytes_sent может быть больше, чем ушло 
через интерфейс, на размер буфера сокета.  Дальше уже вопрос к 
типичным размерам ответов, размерам буферов и поведению клиентов.

-- 
Maxim Dounin
http://mdounin.ru/
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

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

2020-07-23 Пенетрантность Slawa Olhovchenkov
В nginx 1.19.1 трафик который он считает отданным клиенту примерно в
два раза больше того что учитывается сетевым оборудованием.

В чем может быть дело? Куда копать?
___
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru