Size: a a a

2021 October 19

S

ShadoWalkeR in Modern::Perl
Основная метрика - cps сколько новых звонков в секунду обрабатывается. А также cc (concurent calls) сколько одновременно каналов на сервере сейчас есть. В астериске обе метрики при линейном росте начинают по экспоненте утилизировать процессор - при cps/cc в 290 на астериск получил la в 350 на процессор. 240 генерируют примерно la 32. 190 на астериск генерируют la 5. На сервере проц был 32 ядра/64 потока и 32 астериска
источник

S

ShadoWalkeR in Modern::Perl
Но там задача стояла вызвонить 8к устройств одновременно и проиграть им сообщение, тут не такая бешеная нагрузка
источник

S

ShadoWalkeR in Modern::Perl
Просто несколько серверов, которые используют AGI на других application серверах и один звонок может несколько fastagi посетить, которые ходят в базы, крутят какую то логику и тд
источник

S

ShadoWalkeR in Modern::Perl
Но в целом архитектура - распределенных монолит, в лучших традициях костылестроения и "работает - не трогай" 😃
источник

AK

Andrey Karepin in Modern::Perl
man perlop же
источник

S

ShadoWalkeR in Modern::Perl
Ну это к вопросу о том, что кто программирует на перле такие тонкости знает, но у меня задача несколько иного плана - не изучить перл, а вынести его с прода. Но на всякий случай записал
источник
2021 October 20

S

ShadoWalkeR in Modern::Perl
И у меня созрел еще один вопрос по perl. Все тот же самый Net:Server:PreFork работает на 1 порту в 5 форков. Астериски вызывают одну определенную функцию как точку входа и в начале нее есть такая конструкция
use vars qw(%input $AGI);
$AGI   = new Asterisk::AGI;
%input = $AGI->ReadParse();
Я погуглил - use vars, как понимаю, говорить использовать глобальную область видимости. В каких условиях это может оказаться критичным?
источник

S

ShadoWalkeR in Modern::Perl
Или это можно игнорировать - даже если в один форк прилетает 2 запроса, пока с одним не закончено второй не будет обработан?
источник

c

crux in Modern::Perl
Обновился на 5.02 и сломались readonly?
источник

DF

Denis F in Modern::Perl
да, если у тебя очередь запросов больше чем воркеров, то запросы будут ждать свободных воркеров
источник

S

ShadoWalkeR in Modern::Perl
Понял спасибо
источник

OP

Oleg Pronin in Modern::Perl
Такое невозможно с устройством net-server-prefork. Это блокирующийся сервер. Пока он не обработает запрос, он не делает следующий accept, соответственно он физически не может взять второй запрос.
источник

МС

Мастер Спирта... in Modern::Perl
обновился на 5.02 и сломалось вообще всё )
было наследование с залезанием в кишки, и что-то пошло не так
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
не все то легаси, что перл )
источник

W

Warstone in Modern::Perl
А так-же PHP, Python, C, Asm, Java и прочее
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
вот только в отличии от перла имеет тенденцию к превращению в тыкву на старых дистрибутивах.

И если например ничего не мешает какому-то легаси на перле работать на центос 4, 5, 6 и убунте 12.04 и 14.04, то как минимум пип от питона на всем этом уже тыква и если забекаплен не образ, а сетапится с нуля - уже не сетапится
источник

A

Alexander in Modern::Perl
Т.е. у вас запущен префорк сервер, которые сидит на каком-то tcp порте и ждёт запросов от астериска?
источник

NK

Nick Knutov Dobrohos... in Modern::Perl
а вот если у вас астериски то не надо ничего с перла никуда переписывать - решения на перле там - стандартный мейнстримовый путь, который можно обсудить на любом астериксовом форуме и найти решение или получить годный совет.

А учитывая что и сам астериск не рассчитан на большие нагрузку/хайлоад - перл там нигде не является в том числе и узким местом.
источник

A

Alexander in Modern::Perl
Там sip стек на pjsip перевели, астериск сейчас может очень большую нагрузку держать
источник

A

Alexander in Modern::Perl
Раньше их самобытный сип был самым узким местом в работе системы
источник