Re: nginx и завышение трафика.
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 и завышение трафика.
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 и завышение трафика.
чт, 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 и завышение трафика.
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 и завышение трафика.
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 и завышение трафика.
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 и завышение трафика.
чт, 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 и завышение трафика.
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 и завышение трафика.
а научите, как $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 и завышение трафика.
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 и завышение трафика.
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 и завышение трафика.
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 и завышение трафика.
В nginx 1.19.1 трафик который он считает отданным клиенту примерно в два раза больше того что учитывается сетевым оборудованием. В чем может быть дело? Куда копать? ___ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru