Jump to content

Recommended Posts

Posted

Просто взять и собрать - нет.

Нужно менять механизм обмена сообщениями между потоками - забирать из линуксовой части пайповый вариант.

Сделать можно но смысла поддерживать то что было 5 лет назад я не вижу.

Если очень надо могу в НГ праздники попробовать сделать авто выбор для фри при сборке, чтобы и на старье собиралось.

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

  • Replies 307
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

Posted

Просто взять и собрать - нет.

Нужно менять механизм обмена сообщениями между потоками - забирать из линуксовой части пайповый вариант.

Сделать можно но смысла поддерживать то что было 5 лет назад я не вижу.

Если очень надо могу в НГ праздники попробовать сделать авто выбор для фри при сборке, чтобы и на старье собиралось.

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

было бы супер.

  • 9 months later...
Posted (edited)

Иван приветсвую. Готов взять на себя полномасштабное тестирование под wive-ng под snr-cpe на чипах rt3052

выложите плиз сборку msd_lite под нее. или. в двух словах как собрать, самостоятельное курение инета не помогло, под mips не собирал софт ни разу

Edited by atxnsk
Posted

И я не собирал ничего линуксового под отличные от х86 архитектуры.

 

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

Posted

Зараза в том, что в тулчайне wive-ng не нашел компилятора (как например в тулчайне dd-wrt).

Автор на контакт не выходит :(

 

Сегодня еще раз буду копать его тулчайн, может пойму что к чему

  • 2 months later...
Posted

Для одного клиента там мизерный профит, а может даже наоборот мизерная просадка будет.

Для двух даже на разных каналах скорее всего заметный профит, ибо переключать процессы сильно накладнее чем ещё два дескриптора в евентпуле обработать...

 

А из тех кто может сам собрать я тут знаю только Нитро и ядрокота, им обоим оно не сильно то и надо.

Posted (edited)

Собрался без проблем на:

Linux 3.4.4-2 i686 (Arch Linux)

Linux 4.0.5-gentoo #8 SMP x86_64 (gentoo)

 

Под нагрузкой пока не довелось проверить.

Vlc 2.0.1 (linux) подцепился отлично.

 

 

Возможно было бы удобно получить список кто смотрит какой канал в данный момент. Т.е.

 

session_time ip:port:user_agent | группа:port:interface

 

Можно всё и из "hubstat" выдернуть, не спорю. Разве что для упрощения.

 

Автору спасибо за разработку.

Edited by bomberman
Posted

Под х86 линухом и я регулярно собираю, это не новость что там работает :)

 

Для кастомизации списка нужно поправить всего 3 файла:

1. msd_lite.c чтобы добавить новую комманду в урл

2. msd_lite_stat_text.h чтобы объявить новую функцию для обработки команды

3. msd_lite_stat_text.c саму функцию.

Фактически смотреть на hubstat и делать что хочется.

  • 2 months later...
Posted

Взялись поиграться.

Берём мультикаст и отдаём приставке в юникасте.

 

Исходное:

centos6

msdlite 1.08

mag 245

Плейлист с каналами скормлен с флешки.

 

На udpxy заметно подтормаживание, приходится секунд 5 ставить буфер в настройках.

Но переключение каналов при этом становится на редкость задумчивым.

На msd lite пока без тюнинга sysctl лучше, но буфер всёравно нужен.

Мультикастовые приставка щёлкает примерно секунды 2, тут же от 5 до 10.

 

В сторону чего стоит посмотреть для ускорения переключения каналов именно?

Posted

wget .... -o /dev/null

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

Posted

Гм, а нельзя некоторые каналы заставить например постоянно тянуть или же если один раз обращались то продолжать тянуть некоторое время?

Распространяется ли этот буфер в случае обращения на динамические ссылки udpxy стиля?

И с какого момента рекомендуется применение тюнинга?

 

Сейчас это маленькая вмка на esxi с гигом памяти и одним cpu, загрузка с виду меньше чем на udpxy.

 

Скажем у тогоже icecast в опциях relay есть опция on-demand, когда станцию он тянет постоянно, илиже только если на релей к нему обратились.

Posted

Можно, либо вот так подвешивая клиента на каждый канал, либо правкой исходника либо переходом на msd.

У msd_lite только динамические каналы и есть, с синтаксисом как у udpxy + немного доп параметров в урл.

С момента установки ОС :)

Хотя бы буфера сокета в линухе увеличить, и загрузить htcp модуль.

Posted

Ivan_83

А есть какая-то табличка сравнительная с тем-же udpxy например?

Или как у тогоже мидлваре сталкера, типа на такое то количество клиентов например необходимо такое-то железо или такието ресурсы?

 

И возможно в личку, я полистал ценник обычной msd, в рамках этого ценника на какого-то уровня помощь в установке/настройках/анализе производительности при внедрении можно рассчитывать?

Posted

Таблички нет, потребление ресурсов очень скромное, настолько что на проц можно особо не смотреть, только на сетевуху чтобы ширины канала хватало и на объём памяти, из расчёта по 40 метров на канал + 1, лучше 2 гб под систему и её нужды.

 

http://www.netlab.linkpc.net/wiki/ru:software:msd:price

Если доступ по ссш будет и описание откуда брать мультикаст и как/куда отдавать то сам могу настроить.

Posted

Таблички нет, потребление ресурсов очень скромное, настолько что на проц можно особо не смотреть, только на сетевуху чтобы ширины канала хватало и на объём памяти, из расчёта по 40 метров на канал + 1, лучше 2 гб под систему и её нужды.

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

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

Posted

Сколько ни старайся, а количество 10Г адаптеров которое можно поставить в один тазик - величина конечная. (я слышал про железки с 12, на 120гб в сумме, но то было не для иптв)

Кроме того всякие резервы и прочие фантазии в области архитектуры.

В самом демоне нет никаких ограничений по клиентам/полосе, он ограничен только железом/лимитами ОС.

  • 2 months later...
Posted

Приветствую!

 

Заинтересовался. Скачал и поставил на FB 10.2. Запустил. Тыкнул влс, получил в логе такое вот:

 

[2016-05-31 14:56:31]: Multi stream daemon lite 1.08: started

[2016-05-31 14:56:31]: Build: May 31 2016 14:09:16, Release

[2016-05-31 14:56:31]: CPU count: 12

[2016-05-31 14:56:31]: descriptor table size: 707013 (max files)

[2016-05-31 14:56:31]: hostname: *

[2016-05-31 14:56:31]: Thread 1 started...

[2016-05-31 14:56:31]: Bind thread 1 to CPU 1

[2016-05-31 14:56:31] http_srv_acc_add, line 502: io_net_is_tcp_cc_avail() fail, this is not fatal. error 22: Invalid argument

[2016-05-31 14:56:31]: bind 192.168.0.1:4242, backlog = 2048, cc_name = htcp

[2016-05-31 14:56:31]: Thread 0 started...

[2016-05-31 14:56:31]: Bind thread 0 to CPU 0

[2016-05-31 14:56:44]: /udp/239.0.0.86:1234@vlan200: Created. (fd: 6)

[2016-05-31 14:56:44]: /udp/239.0.0.86:1234@vlan200 - 93.81.235.215:50615: attached, cli_count = 1

[2016-05-31 14:56:44] str_src_r_buf_alloc, line 985: ... error 12: Cannot allocate memory

[2016-05-31 14:56:44] str_src_recv_mc_cb, line 873: on receive error 12: Cannot allocate memory

[2016-05-31 14:56:44]: /udp/239.0.0.86:1234@vlan200 - 93.81.235.215:50615: deattached, cli_count = 0

[2016-05-31 14:56:44]: /udp/239.0.0.86:1234@vlan200: Destroyed.

 

Что ей мешает память выделить?

Posted (edited)

Попробуйте sysctl vm.max_wired увеличить.

А оперативной памяти хватает?

Оперативка 24 Гбайт.

vm.max_wired: 2028623

Не думаю, что это причина...

 

udpxy вполне себе нормально работает на этой же машине. За малым исключением - некоторые каналы HD/mpeg4 непонятно почему ретранслируются с рассыпанием, подвисаниями и цыканием. Поэтому я и решил попробовать msd_lite, но пока что-то категорически безуспешно :( .

Edited by nemo_lynx
Posted

ulimit -a что выдаёт?

cpu time (seconds, -t) unlimited

file size (512-blocks, -f) unlimited

data seg size (kbytes, -d) 33554432

stack size (kbytes, -s) 524288

core file size (512-blocks, -c) unlimited

max memory size (kbytes, -m) unlimited

locked memory (kbytes, -l) 64

max user processes (-u) 7390

open files (-n) 707013

virtual mem size (kbytes, -v) unlimited

swap limit (kbytes, -w) unlimited

sbsize (bytes, -b) unlimited

pseudo-terminals (-p) unlimited

Posted

Попробуй:

sysctl vm.max_wired=4294967295

ulimit -l unlimited

 

Либо читай доку, в конфиге нужно заменить shm на /tmp или иное место где тмпфс есть для хранения кольцевых буферов.

Posted
Попробуй:

sysctl vm.max_wired=4294967295

это привело вот к чему:

sysctl vm.max_wired: -1

 

ulimit -l unlimited

эта команда выполняется, но ничего не меняет:

locked memory (kbytes, -l) 64

 

Либо читай доку, в конфиге нужно заменить shm на /tmp или иное место где тмпфс есть для хранения кольцевых буферов.

Прописал в конфиге согласно доке /tmp (там 9Гбайт свободно) - результат тот же.

 

Может в конфиге что-то не так?

<?xml version="1.0" encoding="utf-8"?>
<msd>
       <log>
               <file>/var/log/msd_lite.log</file>
       </log>
       <threadPool>
               <threadsCount>2</threadsCount>
               <fBindToCPU>yes</fBindToCPU>
               <fCacheGetTimeSyscall>yes</fCacheGetTimeSyscall>
               <timerGranularity>100</timerGranularity>
       </threadPool>
       <systemResourceLimits>
               <maxOpenFiles>8192</maxOpenFiles>
               <maxCoreFileSize>unlimited</maxCoreFileSize>
               <maxMemLock>unlimited</maxMemLock>
               <processPriority>0</processPriority>
       </systemResourceLimits>
       <HTTP>
               <skt>
                       <rcvBuf>4</rcvBuf>
                       <sndBuf>256</sndBuf>
                       <rcvTimeout>30</rcvTimeout>
                       <sndTimeout>30</sndTimeout>
               </skt>
               <ioBufInitSize>4</ioBufInitSize>
               <ioBufMaxSize>4</ioBufMaxSize>
               <bindList>
                       <bind>
                               <address>192.168.1.1:4242</address>
                               <backlog>1024</backlog>
                               <fAcceptFilter>no</fAcceptFilter>
                               <congestionControl>htcp</congestionControl>
                       </bind>
               </bindList>
               <hostnameList>
                       <hostname>*</hostname>
               </hostnameList>
       </HTTP>
       <hubProfileList>
               <hubProfile>
                       <fDropSlowClients>no</fDropSlowClients>
                       <fSocketHalfClosed>no</fSocketHalfClosed>
                       <fSocketTCPNoDelay>yes</fSocketTCPNoDelay>
                       <fSocketTCPNoPush>yes</fSocketTCPNoPush>
                       <fZeroCopyOnSend>yes</fZeroCopyOnSend>
                       <precache>4096</precache>
                       <sndBlockSize>64</sndBlockSize>
                       <ringBufSize>32768</ringBufSize>
                       <ringBufStorePath>/tmp</ringBufStorePath>
                       <skt>
                               <sndBuf>512</sndBuf>
                               <congestionControl>htcp</congestionControl>
                       </skt>
                       <headersList>
                               <header>Pragma: no-cache</header>
                               <header>Content-Type: video/mpeg</header>
                               <header>ContentFeatures.DLNA.ORG: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000</header>
                               <header>TransferMode.DLNA.ORG: Streaming</header>
                       </headersList>
               </hubProfile>
       </hubProfileList>
       <sourceProfileList>
               <sourceProfile>
                       <skt>
                               <rcvBuf>512</rcvBuf>
                               <rcvLowat>48</rcvLowat>
                               <rcvTimeout>2</rcvTimeout>
                       </skt>
                       <multicast>
                               <ifName>vlan200</ifName>
                       </multicast>
               </sourceProfile>
       </sourceProfileList>
</msd>

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...