Характеристики stream-сервера до 1000 абонентов(mcast->udpxy)

3,045 views
Skip to first unread message

сybertooth

unread,
Oct 27, 2014, 6:19:18 AM10/27/14
to stalker-m...@googlegroups.com
Здравствуйте. Посоветуйте stream-сервер для потокового вещания до 1000 абонентов. Приходящий mcast(udp) - исходящий хотим использовать udpxy(tcp). 
Если есть варианты вещания не используя udpxy - прошу написать. Спасибо.

CrazyKiller

unread,
Oct 27, 2014, 6:26:52 AM10/27/14
to stalker-m...@googlegroups.com
Думаю для начало вам нужна от 10 гигабит интернет внешний, а там уже параметры железа )))

понедельник, 27 октября 2014 г., 12:19:18 UTC+2 пользователь сybertooth написал:

сybertooth

unread,
Oct 27, 2014, 6:28:51 AM10/27/14
to stalker-m...@googlegroups.com
внешка не будет работать. только локаль.

понедельник, 27 октября 2014 г., 14:26:52 UTC+4 пользователь CrazyKiller написал:

сybertooth

unread,
Oct 27, 2014, 6:35:19 AM10/27/14
to stalker-m...@googlegroups.com
есть предложения какое должно быть железо?

понедельник, 27 октября 2014 г., 14:28:51 UTC+4 пользователь сybertooth написал:

CrazyKiller

unread,
Oct 27, 2014, 6:37:55 AM10/27/14
to stalker-m...@googlegroups.com
Предложение есть всегда, но Инет, даже локальный, вам нужна минимум 10 гиг, на 1 гиге сильно не раскрутитесь...
а что 10 гиг поднять, нужна оптика, а провайдер вам даст эту оптику и т д ))) сами модули стоят по 5 тыщ грн минимум норм, либо патч корды по 500 грн между серверами и свитчем и т д.
в общем вся загвоздка в инете, думаю с начало разбиритесь с инетом а потом уже железо.

понедельник, 27 октября 2014 г., 12:35:19 UTC+2 пользователь сybertooth написал:

сybertooth

unread,
Oct 27, 2014, 6:48:21 AM10/27/14
to stalker-m...@googlegroups.com
провайдер предоставляет оптоволокно в 4 г/бит. мне сейчас необходим сервер. есть предложения?

понедельник, 27 октября 2014 г., 14:37:55 UTC+4 пользователь CrazyKiller написал:

CrazyKiller

unread,
Oct 27, 2014, 7:00:38 AM10/27/14
to stalker-m...@googlegroups.com
на 4 гигабита вы не поднимете 1000 пользователей в онлайне сразу, даже если битрейд у вас до 1 мегобита понижен, что врядли, нужны перекодировщики мощные, 1 сервер может нормально пере кодировать 10 каналов, я не думаю что у вас всего 10 каналов. в реале 1 пользователей будет вытягивать с вас от 3 мегобит и выше видео потока.

а теперь по серверу, если вы собираетесь только вещать с UDPXY и не перегонять его и не через прокси пускать, то примерно смотрите на ксеон 3.0 и выше 4 ядра в 8 потоков миниму, а лучше 2-ух процесорную мать, если мало будет то доп проц ставить на будущее, лучше больше, надежнее будет, оператива не сильно главное оружие в вещании, т.е от 8 гиг и выше, главное оруживе в раздачи потоков через UDPXY это инет канал и проц, винт мало важная железка, ссд даже 2 шт по 60 в зеркалку Рейд 1 и долго про держиться.

Ну и главное, это прямые руки ))

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

понедельник, 27 октября 2014 г., 12:48:21 UTC+2 пользователь сybertooth написал:

Pasha_49

unread,
Oct 28, 2014, 4:23:18 AM10/28/14
to stalker-m...@googlegroups.com
Проверено на 1000 абонентов справляется без проблем "Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz". Загрузка в пике до 25%. Нагрузка зависит от сетевых карт. Если хорошие интеловские, с раскиданными прерываниями, то нагрузка будет не большая. Используется bond из сетевых карт на 1G (82576 и слабее). Рекомендуется конечно сразу смотреть на 10G. На 1000 абонентов приходится 4,5-6,5 гбит(в зависимости от качества каналов).
udpxy не пробовал, использую xproxy(преобразование мультикаста в юникаст). Винт почти не используется. Нагрузка на оперативную память зависит от размера буффера на абонента. Например на 1000 абонентов, для хорошей работы по wi-fi мне подошел буффер в 16 мбайт, и на каждого абонента столько будет выделяться в оперативной памяти.
Скриншот для тысячи абонентов:
http://ipic.su/img/img7/fs/kiss_3710kb.1414484420.png

понедельник, 27 октября 2014 г., 13:19:18 UTC+3 пользователь сybertooth написал:

CrazyKiller

unread,
Oct 28, 2014, 4:31:05 AM10/28/14
to stalker-m...@googlegroups.com
Хороший стат, xproxy, хм, первый раз про него слышу, есть УРЛ веб Сайта для просмотра и т д. в кратце что он умеет.
Да И7. ну не серверное решение, Ксеоны да ))
Бонды не надежная весчь, я очень долго работал с ними, были проблемы разного рода, помог более менее 3+4 по остальным не разбрасывал нормально трафик ((
Прерывание, можно подробнее, для чего это, слышал но все не как руки не доходят, Интел сетевки гигабитные серверные : )

вторник, 28 октября 2014 г., 10:23:18 UTC+2 пользователь Pasha_49 написал:

Pasha_49

unread,
Oct 28, 2014, 4:45:39 AM10/28/14
to stalker-m...@googlegroups.com
Ссылка на xproxy https://cesbo.com/ru/solutions/xproxy/
Если нужен функционал как в udpxy(UDP, RTP, HTTP в юникаст, изменение размеров буффера), то решение бесплатное. Если нужны всякие авторизации, привязки к биллингам, то платно.
По поводу бонда согласен. При паре гигабит - работает хорошо. А вот при 6-8G уже начинаются проблемы. Так же использую 3+4, но пробовал и balance-rr(до 6G). Это только как временное решение.
По поводу прерываний. Интеловские сетевые карты(с определенными чипами) должны поддерживать много очередей для приема и передачи.(например 4 RX и 4 TX, или 8 RxTx). Дешевые сетевые карты поддерживают 1-2. Каждую очередь надо вешать на разное ядро. При 8 очередях 8-ядерный процессор хорошо подходит. Посмотреть можно cat /proc/interrupts
http://ipic.su/img/img7/fs/kiss_28kb.1414485778.png
Прерывания можно раскинуть вручную: https://cesbo.com/ru/solutions/astra/quickstart/?r=xproxy#interrupts
Или скриптом(нашел кстати где-то в этой гугл группе):
#!/bin/bash

ncpus
=`grep -ciw ^processor /proc/cpuinfo`
test
"$ncpus" -gt 1 || exit 1

n
=0
for irq in `cat /proc/interrupts | grep eth | awk '{print $1}' | sed s/\://g`
do
    f
="/proc/irq/$irq/smp_affinity"
    test
-r "$f" || continue
    cpu
=$[$ncpus - ($n % $ncpus) - 1]
   
if [ $cpu -ge 0 ]
           
then
                mask
=`printf %x $[2 ** $cpu]`
                echo
"Assign SMP affinity: eth$n, irq $irq, cpu $cpu, mask 0x$mask"
                echo
"$mask" > "$f"
                let n
+=1
   
fi
done




вторник, 28 октября 2014 г., 11:31:05 UTC+3 пользователь CrazyKiller написал:

Ruslan Li

unread,
Oct 28, 2014, 4:50:05 AM10/28/14
to Stalker Middleware on behalf of CrazyKiller
Про прерывания можно здесь ознакомиться. https://cesbo.com/ru/solutions/astra/quickstart/?r=astra
Распределение прерываний пункт.
Смысл в раскидывании прерываний каждой из очередей сетевой  (82576 и подобные) по ядрам  процессора для выравнивания  нагрузки

28 октября 2014 г., 11:31 пользователь CrazyKiller, Stalker Middleware <stalker-middleware+noreply-APn2w...@googlegroups.com> написал:

--
Вы получили это сообщение, поскольку подписаны на группу "Stalker Middleware".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес stalker-middlew...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес stalker-m...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/stalker-middleware/10e5d8e0-29ba-4a43-b4b9-a590fb9e8b47%40googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

CrazyKiller

unread,
Oct 28, 2014, 5:04:38 AM10/28/14
to stalker-m...@googlegroups.com
Я так понял это все АСТРА. а потом сам xproxy сверху ставить скрипт и т д ?

Pasha_49

unread,
Oct 28, 2014, 5:16:18 AM10/28/14
to stalker-m...@googlegroups.com
Он уже встроен в астру. Дополнительных скриптов не надо. Пример для аналога udpxy (те же ссылки получатся, http://x.x.x.x/udp/x.x.x.x:xxxx):
/usr/bin/astra --xproxy -a ADDR -p PORT -l ADDR
Так же можон создать плейлист для именования каналов. Что бы не светить мультикаст адреса, например http://x.x.x.x/channel_name


вторник, 28 октября 2014 г., 12:04:38 UTC+3 пользователь CrazyKiller написал:

CrazyKiller

unread,
Oct 28, 2014, 5:21:04 AM10/28/14
to stalker-m...@googlegroups.com
Спасибо, а BISS пробовали, как он ? :)

вторник, 28 октября 2014 г., 11:16:18 UTC+2 пользователь Pasha_49 написал:

CrazyKiller

unread,
Oct 28, 2014, 5:24:59 AM10/28/14
to stalker-m...@googlegroups.com
Сразу вопросик, маленький. Intel(R) Core(TM) i5 CPU 650 @ 3.20GHz, 4 cores, 4 Gb оперативы, инет 1 гигабит. Сетевка Intel Corporation 82574L Gigabit Network Connection.
Сколько потянит ?
Стоит комп без дела :)

вторник, 28 октября 2014 г., 11:21:04 UTC+2 пользователь CrazyKiller написал:

Pasha_49

unread,
Oct 28, 2014, 5:26:25 AM10/28/14
to stalker-m...@googlegroups.com
BISS не пробовал, в наших задачах он не нужен. Сеть IPoE, iptv только в локалке. IP адреса абонентов индивидуальны, и не сменяемы. И доступ режется по IP. Вернее если доступ есть, то канал показывает. А если доступа нету, то вместо всех каналов крутится промо ролик с инфой о подключении. Это удобнее, чем просто черный экран при не подключенной услуге)

вторник, 28 октября 2014 г., 12:21:04 UTC+3 пользователь CrazyKiller написал:

CrazyKiller

unread,
Oct 28, 2014, 5:37:31 AM10/28/14
to stalker-m...@googlegroups.com
 CPU0       CPU1       CPU2       CPU3
  0:         40          1          0          0   IO-APIC-edge      timer
  1:          1          1          0          1   IO-APIC-edge      i8042
  8:          0          0          1          0   IO-APIC-edge      rtc0
  9:          0          0          0          0   IO-APIC-fasteoi   acpi
 12:          3          1          1          0   IO-APIC-edge      i8042
 20:         16         15         13         15   IO-APIC-fasteoi   ehci_hcd:usb1, ehci_hcd:usb2
 41:      17194      17013      16945      16825   PCI-MSI-edge      eth0-rx-0
 42:      10554      10761      10810      10918   PCI-MSI-edge      eth0-tx-0
 43:          1          0          1          0   PCI-MSI-edge      eth0
 44:       1616       1616       1618       1612   PCI-MSI-edge      ahci
 45:         75         75         75         75   PCI-MSI-edge      snd_hda_intel
 46:          0          0          0          0   PCI-MSI-edge      i915
NMI:          2          2          2          2   Non-maskable interrupts
LOC:       4595       4169       4409       4466   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:          2          2          2          2   Performance monitoring interrupts
IWI:          0          0          0          0   IRQ work interrupts
RES:       3273       1527       3574       1519   Rescheduling interrupts
CAL:        469        542        558        473   Function call interrupts
TLB:         43         75         58        122   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:          2          2          2          2   Machine check polls
ERR:          0
MIS:          0


как то так :)

вторник, 28 октября 2014 г., 11:26:25 UTC+2 пользователь Pasha_49 написал:

CrazyKiller

unread,
Oct 28, 2014, 5:51:31 AM10/28/14
to stalker-m...@googlegroups.com
собрал Астру, и получаю ))
Error: initial script isn't found
Oct 28 11:50:14: INFO: [main] exit


Буду шукат ьв чем причина.

Pasha_49

unread,
Oct 28, 2014, 5:55:28 AM10/28/14
to stalker-m...@googlegroups.com
А с какими параметрами запускали?

вторник, 28 октября 2014 г., 12:51:31 UTC+3 пользователь CrazyKiller написал:

Max Lapshin

unread,
Oct 29, 2014, 3:20:26 AM10/29/14
to stalker-m...@googlegroups.com
Компьютеров, которые вы тут описываете, хватит на 10 гигабит лайва без проблем =)

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

Во-вторых, когда памяти много (больше 60 гигабайт), надо не забывать указывать что гигов 10 надо оставить системе, иначе загрузка системы становится запредельной.

CrazyKiller

unread,
Oct 29, 2014, 6:02:21 AM10/29/14
to stalker-m...@googlegroups.com
Железо Железом, а вот если нужна потоки защитить, шифровать и т д. типа через nginx и т д, то считай двойной нагруз если с одного сервера все ))
Astra умеет защищать потоки ?

среда, 29 октября 2014 г., 9:20:26 UTC+2 пользователь Max Lapshin написал:

Pasha_49

unread,
Oct 30, 2014, 10:18:14 AM10/30/14
to stalker-m...@googlegroups.com
BISS шифрование умеет, но я не тестировал. Так же умеет с авторизацией работать(для http потоков). И резать доступ по ip(расширенная версия)


среда, 29 октября 2014 г., 13:02:21 UTC+3 пользователь CrazyKiller написал:

CrazyKiller

unread,
Oct 30, 2014, 5:58:22 PM10/30/14
to stalker-m...@googlegroups.com
вот интерестно как БИСС умеет та, кто тестировал и т д. опишите плыз ? :)

четверг, 30 октября 2014 г., 16:18:14 UTC+2 пользователь Pasha_49 написал:

CrazyKiller

unread,
Nov 11, 2014, 9:22:23 AM11/11/14
to stalker-m...@googlegroups.com
По разному, но все тежи грабли с ошибками (((
че за ?

вторник, 28 октября 2014 г., 11:55:28 UTC+2 пользователь Pasha_49 написал:

Pasha_49

unread,
Nov 13, 2014, 1:48:38 AM11/13/14
to stalker-m...@googlegroups.com
Напишите как запускаете. Или напишите на форуме cesbo.com. Подобной проблемы не наблюдал.

вторник, 11 ноября 2014 г., 17:22:23 UTC+3 пользователь CrazyKiller написал:

Maxim Berezevic

unread,
Nov 15, 2014, 8:13:04 AM11/15/14
to stalker-m...@googlegroups.com
Скрипт lua положи в etc/astra от туда и тапуская.

вторник, 11 ноября 2014 г., 15:22:23 UTC+1 пользователь CrazyKiller написал:

CrazyKiller

unread,
Dec 3, 2014, 4:59:48 PM12/3/14
to stalker-m...@googlegroups.com
не много разобрался с астрой и т д.

мало инфы на сайте и форуме (((

Параметры Astra Stream:

  • -c PATH/URL HTTP адрес для загрузки конфигурации с центра управления или полный путь для сохранения конфигурации в файл. Файл создаётся при первом запуске приложения. Параметр используется только при совместной работе с Astra Control Center или любой другой системой управления;
  • -p PORT порт для подключения системы управления;
  • PATH полный путь к скрипту для конфигурации приложения.

Параметры Astra Control Center :

  • -c PATH полный путь для загрузки конфигурации из файла. Файл создаётся при первом запуске приложения;
  • -p PORT порт для доступа к веб-интерфейсу и получения данных от серверов.

Параметры Astra Relay:

  • -a ADDR IP-адрес локального интерфейса для входящих подключений. Значение по умолчанию: 0.0.0.0(любой интерфейс);
  • -p PORT порт для подключения клиентов. Значение по умолчанию: 8000;
  • -l ADDR адрес сетевого интерфейса для приёма UDP/RTP потоков. По умолчанию используется системная маршрутизация;
  • --buffer-size SIZE размер транзитного буфера в килобайтах. Буфер выделяется для каждого подключения. Транзитный буфер предотвращает потерю данных в случае задержек при передаче. Значение по умолчанию:1024;
  • --buffer-fill SIZE минимальный размер отправляемого пакета в килобайтах. Значение по умолчанию: 128;
  • --no-udp отключает прямой доступ к UDP/RTP источникам (/udp/* и /rtp/*);
  • --no-http — отключает прямой доступ к HTTP источникам (/http/*);
  • --pass LOGIN:PASS — устаналивает логин и пароль для Basic-авторизации доступа к служебными ресурсам.

Параметры Astra Analyze:

  • -p PORT — порт для доступа к веб-интерфейсу анализатора. По умолчанию приложение работает в консольном режиме и веб-интерфейс недоступен;
  • -c PATH — полный путь для загрузки конфигурации веб-интерфейса из файла. Файл создаётся при первом запуске приложения;
  • -n SEC — завершить работу анализатора через указанный промежуток времени в секундах. Параметр используется только при работе в консольном режиме;
  • ADDRESS — адрес источника. Подробней: Формат адреса

Тут почти все понятно, но, где пропал --xproxy я понял логично что заменили его на --relay или есть отличие...

Кто может подробно описать что делает каждая функция, relay, xproxy, acc, analyze, stream

я не много не догоняю в чем у них отилчие и т д.
веб интерфейс вообще мне не понятен...

Так не хочет работать, если astra --relay путь к луа и т д:

make_channel({
    name
= "Channel Name",
    input
= {
       
"udp://239.255.1.1:1234",
       
"file:///mnt/storage/matras.ts#loop",
   
},
    output
= {
       
"http://0:8000/channel-id"
   
},
})
есть у меня просто 3 источника.
1) мультикаст
2) Юникаст
3) Юникаст

Хочеться сделать списочек, чтоб был резерв и имена уникальные...
но не работает (((

Кто поможет?

Konstantin

unread,
Dec 3, 2014, 5:30:36 PM12/3/14
to stalker-m...@googlegroups.com
Не, там легко... но если что пиши в приват, поможем!
Reply all
Reply to author
Forward
0 new messages