Robot_NagNews Posted October 2, 2017 Материал: GigA+ заинтересует тех, кто желает привнести HLS в “репертуар”, но не идёт по пути построения “хитроумного агрегата” собственными силами. Тем, кто уже работал с Gigapxy и знаком со “архитектурным стилем” данного продукта. Стиль этот будет выдержан и улучшен в GigA+. Полный текст Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
poisons Posted October 2, 2017 Спасибо тебе добрый человек за udpxy. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted October 2, 2017 Цитата Архитектура udpxy была подчинена принципу крайней простоты. Это был простейший вариант "forked server" (по имени системного вызова fork(2)) для выполнения задач на маломощном процессоре с небольшим количеством памяти. Оно было кое как написано, обложено костылями со всех сторон. https://github.com/pcherenkov/udpxy/tree/master/chipmunk Цитата Чем обосновывался выбор "forked server" как архитектуры приложения? Прежде всего, уверенностью в простоте задачи, для которой не требуются сложные средства. Нагрузка от переключения между (максимум) 16-ю процессами не была существенной и не оправдывала усложнения. Мультиклиентность была прикручена ещё одним костылём в виде форка, как самое простое решение. О ресурсах: если два и более клиента смотрят один канал, то бедная железка создаёт на каждого по юдп сокету чтобы получать один и тот же мультикаст а ядро размножает пакеты. Очень заботливо. Цитата Бизнес-пользователи просили внести и множество иных изменений, продвигавших продукт в сегмент промышленного ПО. Бизнес пользователи уже ничего не просили. udpxy был заброшен долгие годы, там вообще ничего не добавляли, на все просьбы ложился болт, какие то патчи как то принимались... Да и добавить было большой проблемой, даже простые опции, не говоря о функционале. (из собственного опыта) Это и породило в начале инструкции о том как жить с попоболью и udpxy в продакшене: https://habrahabr.ru/post/111317/ https://habrahabr.ru/post/152397/ А потом и альтернативные решения: mc2http (msd/msd_lite), astra. Цитата Разработка начиналась под FreeBSD, но вскоре стала параллельно идти под Linux как набирающей популярность в серверной среде. лол. Это в 2015 году линукс набирал популярность?) Цитата Клиенты могли в одночасье предпочесть некий канал А всем иным (как, например, во время трансляции футбольного матча) и перегрузить отведённый каналу (единственный) "движок" (читай - ядро процессора). Это проблема плохого взаимодействия с системой. Нет особых проблем в том, чтобы одним потоком на вдуть хоть 40г на современном то железе. Цитата Почему не был выбран иной механизм, например, кольцевой буфер? Система цепочек воспринималась при планировании наиболее гибкой, а схема потребления память цепочками - более разумной. Оправдался ли расчёт? Несомненно. Кто то не осилил кольцевой буфер. %) На самом деле в том же msd_lite кольцевой буфер это один кусок памяти, который в зависимости от состояния интерпретируется либо как цельный буфер либо как два буфера. И мизерный оверхэд на мету. А где же результаты сравнения? Цитата Расчёт на то, что в процессе долговременной работы процесс gws может в какой-то момент "упасть" был оправдан. Модуль, отвечающий за обработку внешних запросов, рано или поздно сталкивается с "нестандартными" запросами, способными причинить вред из-за скрытых недостатков кода. Цитата Падений же gng, благодаря простоте внутренней логики, было крайне мало. Да, кот с недостатками он такой - так и падает. ))) Что то у меня даже msd_lite не падал ни разу, не говоря об nginx, где многопроцессная модель используется отнюдь не для предотвращения крахов, а для миграции конфигов, обновления на живую и чтобы воркеры держать под не привилегированными юзерами а мастер процесс под рутом мог делать нужное ему. Цитата Эталоном остаётся пример покупателя, сумевшего "насытить" 10 гигабитную сетевую карту потоками с не самого современного сервера. Да, видел его графики со всеми ядрами в полку, бедолага просто не видел других решений, там бы его старый тазик жрал проц не в полку а ядра полтора-два, а то и меньше. Кажется (со слов автора), даже астра отдаёт десяточку в один поток (она потокам так и не научилась, вроде) и без использования фичей ОС. Цитата GigA+ заинтересует тех, кто желает привнести HLS в "репертуар", но не идёт по пути построения "хитроумного агрегата" собственными силами. Настроить ffmpeg + nginx не всем по силам, даже копипастой из инета, увы. Шифрование в ffmpeg вроде тоже есть, прямо из коробки можно накрутить. Масштабирование - средствами nginx - хоть до бесконечности/планетарных масштабов. Спасибо за udpxy, он показал направление, что это возможно и как делать не нужно. PS: как для рекламной статьи: нет графиков и цифер о деньгах, и слишком часто упоминается об падениях. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
hiller Posted October 8, 2017 Завязывайте! UdpXY был интересен в самом начале, но оказался кривым как хрен знает что! Сразу пришлось перейти на нормальный mc2http, а потом и на msd_lite. Вот этот софт (msd_lite) реально работает, реально экономит ресурсы и для него не является достижением загрузить хоть 100G сетевую карту! Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zi_rus Posted October 9, 2017 Реальный msd_lite у меня нарушал поток так что VLC сообщал об ошибках, а картинка периодически дергалась, а udpxy просто взлетел и заработал. И это я наслушался хвалы msd и попробовал его первым, а он еще и не особо работает. Делал для себя дома, так что даже разбираться особо не хочется, не заработало значит в печь Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted October 10, 2017 RTFM же! http://netlab.dhis.org/wiki/ru:software:msd:config#ringbufstorepath Скорее всего нужно было пошаманить с тем, куда он складывает кольцевой буфер, лучше его ложить в tmpfs а не на реальный диск. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zi_rus Posted October 10, 2017 Вместо тысячи слов /usr/local/bin/msd_lite -c /opt/msd_lite/etc/msd_lite.conf [root@msd ~]# grep ringBuf /opt/msd_lite/etc/msd_lite.conf <ringBufStorePath>/tmp</ringBufStorePath> <ringBufSize>1024</ringBufSize> <!-- Stream receive ring buffer size. Must be multiple of sndBlockSize. --> [root@msd ~]# df -h | grep /tmp tmpfs 245M 0 245M 0% /tmp iz@iz-lt ~> vlc share/iptv_msd.m3u VLC media player 2.2.6 Umbrella (revision 2.2.6-0-g1aae78981c) [0000000001096148] core libvlc: Запуск vlc с интерфейсом по умолчанию. Используйте 'cvlc' для запуска vlc без интерфейса. [0000000001198308] qt4 interface error: Unable to load extensions module [0000000001151ad8] core playlist: stopping playback [h264 @ 0x7f93cc0f78e0] error while decoding MB 20 29, bytestream -14 [h264 @ 0x7f93cc0f78e0] error while decoding MB 5 21, bytestream -8 Что бы там ни было, но костыли udpxy очевидно дают лучший результат Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted October 11, 2017 Тогда нужно смотреть все настройки софтины и системы, и лог от запуска софтины до окончания просмотра канала. Лайт уже приживается в роутерах, там ресурсов ещё меньше обычно... Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Pavel Cherenkov Posted February 3, 2018 В качестве послесловия: За udpxy всем благодарившим - большое "пожалуйста". Я рад, что получил столь обширный комментарий. Живучесть udpxy, замышлявшегося как приложение для домашнего использования, опередила все мои ожидания. Приложению этому исполнилось 10 лет, оно используется по всему миру и проникло невесть куда (дистрибутивы, порты, прошивки и т.п.). Я рад, что новые продукты (Gigaxy, GigA+) были хорошо приняты, что позволяет мне на постоянной основе заниматься их развитием в коммерческом ключе и выпускать новые приложения. Я рад тем, кто захочет лично проверить эти продукты "на прочность", на пригодность в конкретной среде. В комментариях я нашёл один момент, который стоило бы упомянуть в статье: был период, когда udpxy застыл, и отклики на запросы дейстивтельно шли с трудом и большими задержками. Момент этот был учтён в организации работы с пользователясм новых продуктов и, как мне видится, усилия оценены положительно. Полезной было и замечание об отсутствии в статье графиков и выкладок, хотя статья и не замышлялась как сравнительный анализ. Я несомненно учту и этот момент - ибо не кодом единым. Всех благ, Павел Черенков P.S.: Я точно не "завяжу". :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
paradox_ Posted February 5, 2018 (edited) крылья... ноги.... хм, главное хвост! или еще лучше AvProxy https://github.com/marakew/AvProxy/ который уже все умеет чем этого ждать то msd или gigaxy Edited October 28, 2018 by paradox_ Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ivan_83 Posted February 20, 2021 Полная версия msd теперь доступна под BSD лицензией: https://github.com/rozhuk-im/msd Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...