Re: REUSE сокеты
On 03/22/18 04:13, Victor Wagner wrote: > > Вот здесь: > > https://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux > > пишут, что умолчательных настроек должно хватать на 500 запросов в > секунду. (в распоряжении nginx имеется 3 портов, с которых он может > открыть соединение, а TIME_WAIT по умолчанию 1 минута). > > По этой же ссылке дается ряд советов, что делать если все-таки сокетов > не хватает. > > Может какие из них и подойдут. > Вот спасибо добрый человек. Как раз искал что то подобное.
Re: REUSE сокеты
Так я и говорю про то что ломается на клиентах, после включения данной ручки 22.03.2018 14:35, Dmitry E. Oboukhov пишет: >> Не совсем. оно изначально как-то странно вело себя. >> Например 100% воспроизведение проблемы - 1 роутер, и хотя бы 2 клиента с >> разными OS, например windows и linux/mac >> Если 2 пользователя одновременно запросят страницы с 1 и того же сервера >> то откроется только у того, у кого 1 тапки. > тут описана клиентская проблема. А данная ручка настраивалась раньше > чисто на серверах у которых имеется высокая частота входящих > соединений. > > на клиентах не помню чтобы требовалась данная ручка кому-либо
Re: REUSE сокеты
> Не совсем. оно изначально как-то странно вело себя. > Например 100% воспроизведение проблемы - 1 роутер, и хотя бы 2 клиента с > разными OS, например windows и linux/mac > Если 2 пользователя одновременно запросят страницы с 1 и того же сервера > то откроется только у того, у кого 1 тапки. тут описана клиентская проблема. А данная ручка настраивалась раньше чисто на серверах у которых имеется высокая частота входящих соединений. на клиентах не помню чтобы требовалась данная ручка кому-либо -- . ''`.Dmitry E. Oboukhov: :’ : `. `~’ GPG key: 4096R/08EEA756 2014-08-30 `- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756 signature.asc Description: PGP signature
Re: REUSE сокеты
Не совсем. оно изначально как-то странно вело себя. Например 100% воспроизведение проблемы - 1 роутер, и хотя бы 2 клиента с разными OS, например windows и linux/mac Если 2 пользователя одновременно запросят страницы с 1 и того же сервера то откроется только у того, у кого 1 тапки. если же это или 2 винды или 2 пингвина...то всё Ок у обоих. 1 время помогало отключение таймстампов, но потом и оно перестало помогать. 22.03.2018 11:30, Dmitry E. Oboukhov пишет: >> Написано, что выкинули именно потому что не работало, и работать не >> могло. > написано что не работало с момента патча про рандомизацию таймстемпов. > LTS ядра видимо еще не затронуты (хотя вот 4.13 же стало LTS уже) > >
Re: REUSE сокеты
Удалили только tcp_tw_recycle, которая по факту и не работала. net.ipv4.tcp_tw_reuse остался как и был 22.03.2018 10:35, Dmitry E. Oboukhov пишет: > Верну от политики взад. > > в 4.1x ядрах выпилили ручку про реюз сокетов. > сейчас поставили тестовый сервак: apache/nginx. > запросов относительно много (где-то 50 в сек), но все короткие. > > система захлёбывается от числа сокетов TIME_WAIT. > > откатили ядро до 4.9 (4.13 ставили из за чего-то с контейнерами, точно > не знаю). > > > смотрел TIME_WAIT'ов много в т.ч. на сокетах apache <-> nginx. > > Думал перевесить чтоли apache на unix-сокет, но так и не дали покопать > ("нам пилу точить некогда, пилить нужно!") > > > вопрос: а как предлагается организовывать сервера на новых ядрах?
Re: REUSE сокеты
В сообщении от [Чт 2018-03-22 11:18 +0300] Dmitry E. Oboukhovпишет: > tcp_tw_recycle отпилили. и одной tcp_tw_reuse теперь недостаточно: > система захлебывается: > > apache отдает один и тот же html размером 1кБ (экспериментик) > nginx перед ним стоит и 50 запросов в секунду: начинает отдавать 504 > потому что nginx не может сконнектиться с апачем по 60+ сек. > > если просто заменить ядро на 4.9 с включенным tcp_tw_recycle, то все > ок и на нагрузке 300 запросов в секунду. У вас apache отдает обычную статику в nginx. А что если вместо apache и/или nginx поставить caddy и поиграться с таймаутами [1]. Я много слышал про горутины (caddy написан на Go), не уверен что это точно про ваш случай, но раз уж вы всё равно экспериментируете, то интересно посмотреть что получится. Для чистоты эксперимента желательно поставит новое ядро (4.13, 4.14) и оставить как есть, ничего не подкручивать. [1]: https://caddyserver.com/docs/timeouts -- Коротаев Руслан https://blog.kr.pp.ru smime.p7s Description: S/MIME cryptographic signature
Re: REUSE сокеты
> Написано, что выкинули именно потому что не работало, и работать не > могло. написано что не работало с момента патча про рандомизацию таймстемпов. LTS ядра видимо еще не затронуты (хотя вот 4.13 же стало LTS уже) -- . ''`.Dmitry E. Oboukhov: :’ : `. `~’ GPG key: 4096R/08EEA756 2014-08-30 `- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756 signature.asc Description: PGP signature
Re: REUSE сокеты
>> в 4.1x ядрах выпилили ручку про реюз сокетов. > В дистрибутивных ядрах 4.12, 4.13 и 4.15 для i686 и x86_64 > ручка net.ipv4.tcp_tw_reuse на месте. Не работает, что ли? tcp_tw_recycle отпилили. и одной tcp_tw_reuse теперь недостаточно: система захлебывается: apache отдает один и тот же html размером 1кБ (экспериментик) nginx перед ним стоит и 50 запросов в секунду: начинает отдавать 504 потому что nginx не может сконнектиться с апачем по 60+ сек. если просто заменить ядро на 4.9 с включенным tcp_tw_recycle, то все ок и на нагрузке 300 запросов в секунду. -- . ''`.Dmitry E. Oboukhov: :’ : `. `~’ GPG key: 4096R/08EEA756 2014-08-30 `- 71ED ACFC 6801 0DD9 1AD1 9B86 8D1F 969A 08EE A756 signature.asc Description: PGP signature
Re: REUSE сокеты
On Thu, 22 Mar 2018 11:06:42 +0300 Eugene Berdnikovwrote: > On Thu, Mar 22, 2018 at 10:35:09AM +0300, Dmitry E. Oboukhov wrote: > > в 4.1x ядрах выпилили ручку про реюз сокетов. > > В дистрибутивных ядрах 4.12, 4.13 и 4.15 для i686 и x86_64 > ручка net.ipv4.tcp_tw_reuse на месте. Не работает, что ли? В том коммите, которым из mainline kernel эту ручку выкинули, https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4396e46187ca5070219b81773c4e65088dac50cc Написано, что выкинули именно потому что не работало, и работать не могло. Так что если мейнтейнеры в дистрибутиве вкрутили ее обратно, это никому не поможет. --
Re: REUSE сокеты
On Thu, 22 Mar 2018 10:35:09 +0300 "Dmitry E. Oboukhov"wrote: > Верну от политики взад. > > в 4.1x ядрах выпилили ручку про реюз сокетов. > сейчас поставили тестовый сервак: apache/nginx. > запросов относительно много (где-то 50 в сек), но все короткие. > > система захлёбывается от числа сокетов TIME_WAIT. > > откатили ядро до 4.9 (4.13 ставили из за чего-то с контейнерами, точно > не знаю). > > > смотрел TIME_WAIT'ов много в т.ч. на сокетах apache <-> nginx. > > Думал перевесить чтоли apache на unix-сокет, но так и не дали покопать > ("нам пилу точить некогда, пилить нужно!") > > > вопрос: а как предлагается организовывать сервера на новых ядрах? Вот здесь: https://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux пишут, что умолчательных настроек должно хватать на 500 запросов в секунду. (в распоряжении nginx имеется 3 портов, с которых он может открыть соединение, а TIME_WAIT по умолчанию 1 минута). По этой же ссылке дается ряд советов, что делать если все-таки сокетов не хватает. Может какие из них и подойдут. --
Re: REUSE сокеты
On Thu, Mar 22, 2018 at 10:35:09AM +0300, Dmitry E. Oboukhov wrote: > в 4.1x ядрах выпилили ручку про реюз сокетов. В дистрибутивных ядрах 4.12, 4.13 и 4.15 для i686 и x86_64 ручка net.ipv4.tcp_tw_reuse на месте. Не работает, что ли? -- Eugene Berdnikov