Size: a a a

2020 October 15

ИИ

Иванов Иванов... in ErlangRus
Petr Kozorezov
если очень коротко то, есть прокся которая в соотношении примерно 1:10 отсылает внешние запросы у которой кроме проксирования есть еще бизнес логика валидации входных данных и небольшого изменения этих запросов плюс фильтрации и выяснения куда и что посылать.
т.е на 10K  входящих будет 100К исходящих коннектов? или таки исходящие коннекты ограничены числом и запросы туда заворичиваются?
источник

AB

Alex Bubnov in ErlangRus
Petr Kozorezov
если очень коротко то, есть прокся которая в соотношении примерно 1:10 отсылает внешние запросы у которой кроме проксирования есть еще бизнес логика валидации входных данных и небольшого изменения этих запросов плюс фильтрации и выяснения куда и что посылать.
Ну вообще, выигрыш должен быть, можно порезать копирование очень сильно.
источник

AB

Alex Bubnov in ErlangRus
Рерайт запросов можно делать по возможности in-place, writev(или как его) никто не запрещал опять же.
источник

ML

Maksim Lapshin in ErlangRus
Для начала на растлере не получится писать без мьютексов.

Те там где обычный код будет нормально работать, тут будет мьютекс на каждый вход в нифку
источник

ML

Maksim Lapshin in ErlangRus
Во-вторых, действительно непонятно что же за проблема, если эрланг по http прокачивает десятки гигабит в секунду, те проблемы в пропускной способности особенно не видать
источник

ИИ

Иванов Иванов... in ErlangRus
Maksim Lapshin
Во-вторых, действительно непонятно что же за проблема, если эрланг по http прокачивает десятки гигабит в секунду, те проблемы в пропускной способности особенно не видать
+.  если уперся в gun это незначит конец. сам автор позиционирует gun не для скорости, а долгих соединений.  если http/1.1 достаточно - нужно посмотреть buoy (@petrkozorezov)
источник

AB

Alex Bubnov in ErlangRus
Alex Bubnov
Ну вообще, выигрыш должен быть, можно порезать копирование очень сильно.
А, стоп, растлер. Очень мало смысла, кмк, лучше написать standalone акселератор.
источник

V

Vasilii Demidenok in ErlangRus
Maksim Lapshin
Для начала на растлере не получится писать без мьютексов.

Те там где обычный код будет нормально работать, тут будет мьютекс на каждый вход в нифку
поясни чуть подробнее, откуда необходимость в мьютексе по сравнению с обычным нифом?
источник

ML

Maksim Lapshin in ErlangRus
Коллеги, а кто перевел на json логи весь сервис?

Вот так чтобы все перетащили и с этого какой-то профит увидели?
источник

ML

Maksim Lapshin in ErlangRus
Vasilii Demidenok
поясни чуть подробнее, откуда необходимость в мьютексе по сравнению с обычным нифом?
Растлер декларирует такой тип, что ресурс надо заворачивать в мьютекс
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Можно обойти unsafe
источник

ŹR

Źmićer Rubinštejn in ErlangRus
unsafe impl std::marker::Send for MyStruct{}
unsafe impl std::marker::Sync for MyStruct{}
источник

PK

Petr Kozorezov in ErlangRus
Maksim Lapshin
Во-вторых, действительно непонятно что же за проблема, если эрланг по http прокачивает десятки гигабит в секунду, те проблемы в пропускной способности особенно не видать
Проблема в том, что при увеличении соотношения исходящих запросов производительность валится (350 qps/core при соотношении 1:1, и уже 220 при соотношении 1:3, а цель 1:10,) при тех цифрах, что даст текущая версия на 1:10 бизнес уже будет работать в минус. Из кода там по сути увеличивается только количество запросов через keep-alive gun, и результат приходит большей частью только пустой 204.
источник

ML

Maksim Lapshin in ErlangRus
Źmićer Rubinštejn
unsafe impl std::marker::Send for MyStruct{}
unsafe impl std::marker::Sync for MyStruct{}
В теории конечно да, но вот я до сих пор помню как растлер разламывал своим кодом в unsafe весь бим.

Те если хочется его использовать, надо гонять под валгриндом
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Если хочется использовать раст вместо сишечки, то ты не против мутекса какбы
источник

V

Vasilii Demidenok in ErlangRus
любопытно
источник

ŹR

Źmićer Rubinštejn in ErlangRus
Иначе нафик надо. У enif гораздо больше возможностей
источник

AF

Andrey Fadeev in ErlangRus
Maksim Lapshin
Коллеги, а кто перевел на json логи весь сервис?

Вот так чтобы все перетащили и с этого какой-то профит увидели?
А что такое json логи? Просто на выходе поля разделены не пробелами, а запакованы в json? Или что-то более хитрое? У нас всё пишет логи в json’е через https://github.com/rbkmoney/logger_logstash_formatter . Но я не уверен, что на это прямо переходили, а не имели с самого начала.
источник

V

Vasilii Demidenok in ErlangRus
Źmićer Rubinštejn
Если хочется использовать раст вместо сишечки, то ты не против мутекса какбы
а если я против мьютекса и хочу на атомиках всё делать?
источник

ML

Maksim Lapshin in ErlangRus
Petr Kozorezov
Проблема в том, что при увеличении соотношения исходящих запросов производительность валится (350 qps/core при соотношении 1:1, и уже 220 при соотношении 1:3, а цель 1:10,) при тех цифрах, что даст текущая версия на 1:10 бизнес уже будет работать в минус. Из кода там по сути увеличивается только количество запросов через keep-alive gun, и результат приходит большей частью только пустой 204.
Я не очень понял, что такое 1:10

Ты точно уверен, что ты не видишь какую-то простую проблему, которач жрет у тебя основную массу времени.

360 запросов в секунду - это же смехотворно мало.
источник