Архив форума Ace Stream       Wiki        Info

перейти на новый форум
Расширенный поиск  

Автор Тема: Broadcasting ( организация собственных прямых трансляций на базе TS )  (Прочитано 341242 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Constantin

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1757
    • Torrent Stream

параметр maxclients не работает как нужно :( даже если поставить maxclients 1 у сервера тс, и подключить двух пиров, то все равно оба будут качать с сервера, примерно та же ситуация и с узлом поддержки, стоит maxclients 20, а все равно отдает примерно 25-30пирам

Пиры меняются динамически, и существуют определенные таймауты, так что это вполне допустимо. Но на всякий случай, сними пожалуйста лог с уровнем отладки 8 и скинь его кому-то из нас на почту. Но а чтобы ограничить источник от нежелательных конектов, то его лучше сделать приватным и раздавать только с узлов поддержки   
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

да я итак щас с привата вещаю, только с одним узлом, где 20 клиентов и стоит, если ограничить число исходящих соединений до 20, вместо стандартных 50 это улучшит стрим или только хуже будет?
P.S. Логи позднее скину.
P.P.S. Еще добавлю информации к сведению - сейчас вещаю с такими параметрами и смотрю свой же стрим: нормально пашет только с задержкой в 2-3 минуты, при попытке уменьшить задержку буферизация все равно растянет ее до 2-3 минут, это при 1500 пирах.
Записан

Bloodzeed

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 62

even if i have default max clients still getting 100 percent cpu usage

Constantin could you watch one of my streams i can give you root to my server to show you whats going on when broadcasting
running out of ideas what the problem could be


it starts out fine but once it hits over 600 people on the stream thats when the problems starts it hits 100 percent cpu usage
i have disabled the internal tracker and i used xbt tracker but problem still happens

 please let this support hyper threading acestream does only use one core
« Последнее редактирование: 17 Февраля 2013, 10:42:59 от Bloodzeed »
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

собрал ряд тонких вопросов по трансляции:
что лучше для узла/узлов поддержки: один сервер с гигабитом или 10 серверов по 100мбит?
сколько по вашему потянет пиров один сервер поддержки со 100мбитами, если требуется провести качественную трансляцию без тормозов и с быстрой буферизацией? что требуется для трансляции например на 1000 пиров на данный момент?
что лучше: вещание непосредственно с сервера тс без узлов поддержки или с приватным источником и узлом поддержки, если в обоих случаях параметры источника и узла будут отдавать одинаковый аплоад и на одинаковое число пиров одновременно?
использование нескольких внешних трекеров улучшит стабильность трансляции и распределение пиров? и будет ли толк от добавления http://retracker.local/announce?
как добавить авторизованного пира если он не сервер поддержки, а обычный клиент?
что значит параметр --private-flag ? для чего нужна опция --content-id в acestreamengine-stream?
Записан

Bloodzeed

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 62

i used the windows version lastnight seems better now one issue not sure if this is normal but had 3k on the tracker but under the source it said connected to only 500 peers is that normal?

I would also like to add that MAX Clients should be an option as it can be used in windows broadcaster
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

просьба разработчикам ответить на пост 169 http://oldforum.acestream.media/index.php?topic=1410.msg6587#msg6587
Записан

Constantin

  • Administrator
  • Hero Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 1757
    • Torrent Stream

собрал ряд тонких вопросов по трансляции:
что лучше для узла/узлов поддержки: один сервер с гигабитом или 10 серверов по 100мбит?
10 серверов по 100мбит, лучше чем 1 сервер с 1 Гбит. Выше отказоустойчивость ( более надежная архитектура )!  P.S. При подключении узлов поддержки, главное учитывать гарантированный аплоад и только исходя из этого открывать необходимое количество слотов ( то есть, если вам заявили гарантированную полосу в 20 мбит.с , то и рассчитывать нужно на 20, а не на 100, которые могут быть,так как именно в прайм-тайм канал будет резаться и качественной трансляции может не получится, если этого изначально не учитывать,
Цитировать
сколько по вашему потянет пиров один сервер поддержки со 100мбитами, если требуется провести качественную трансляцию без тормозов и с быстрой буферизацией? что требуется для трансляции например на 1000 пиров на данный момент?
На стабильность трансляции ( просмотр без уходов на буферизацию ) влияет не количество пиров, а их качество ( насколько хороший у них аплоад ), К примеру, если вы решите сделать трансляцию, с высоким битрейтом, и причем исключительно для пользователей Укртелеком, вам нужно будет поставить парк серверов, так как у клиентов Укртелеком очень ограниченный/низкий аплоад, а соответственно вся основная нагрузка ляжет непосредственно на узлы поддержки.  Чтобы не было уходов на буферизацию и быстро запускалась трансляция, пользовать должен быть законкчен с роем где есть быстрые сиды! ( рой - это тот пул пиров, которые указываются в опциях, как значение "Helping" 
Цитировать
что лучше: вещание непосредственно с сервера тс без узлов поддержки или с приватным источником и узлом поддержки, если в обоих случаях параметры источника и узла будут отдавать одинаковый аплоад и на одинаковое число пиров одновременно?
для надежности и стабильности трансляций лучше вещать только с узлов поддержки и желательно чтобы их было как минимум 2 (два)
Цитировать
использование нескольких внешних трекеров улучшит стабильность трансляции и распределение пиров? и будет ли толк от добавления http://retracker.local/announce?
несколько трекеров, всегда лучше чем один ( одна из следующих версий будет оптимизирована на мультитрекерность и в этой части будет работать намного лучше чем текущая версия ) 
Толк от добавления http://retracker.local/announce? будет только в том случае если провайдер обеспечит на своей стороне качественный узел поддержки.
Цитировать
как добавить авторизованного пира если он не сервер поддержки, а обычный клиент?
точно так же, как и узел поддержки: опцией --support-node задать на источнике адрес этого клиента
Цитировать
что значит параметр --private-flag ?
поставить флаг приватности в acelive-файл (в соответствии со стандартами протокола bittorrent клиенты при работе с таким acelive-файлом будут получать адреса других пиров только через трекеры, прописанные в acelive; dht и другие способы обмена информацией о пирах будут отключены)
Цитировать
для чего нужна опция --content-id в acestreamengine-stream?
Для идентификации трансляции без привязки к infohash. Эта опция будет использоваться только для премиум-трансляций. Описание выложим на вики
Записан

Bloodzeed

  • Jr. Member
  • **
  • Оффлайн Оффлайн
  • Сообщений: 62

Constantin best way to lower cpu usage? less max clients private source and more support? does it matter if the support nodes hit 100 cpu?
do hope you can watch my server box when streaming think its has issues..

also do you have any idea when the windows broadcaster will be fixed as it does not output as well as linux does to peers

also which Python versions can be used with acestream i have version 2.7
« Последнее редактирование: 26 Февраля 2013, 03:04:44 от Bloodzeed »
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

10 серверов по 100мбит, лучше чем 1 сервер с 1 Гбит. Выше отказоустойчивость ( более надежная архитектура )!  P.S. При подключении узлов поддержки, главное учитывать гарантированный аплоад и только исходя из этого открывать необходимое количество слотов ( то есть, если вам заявили гарантированную полосу в 20 мбит.с , то и рассчитывать нужно на 20, а не на 100, которые могут быть,так как именно в прайм-тайм канал будет резаться и качественной трансляции может не получится, если этого изначально не учитывать
иными словами разницы нет ;) если не брать в расчет возможные проблемы с серваками. Но учитывая, что на одном сервере крайне проблематично процессору справиться с задачей по отдаче 1гбита, я запускаю по 2 копии acestream-node с разными портами на 2х серверах. Таким образом удается разделить нагрузку на 2 ядра процессора, можно и 4 было бы запустить, но 2 вроде как уже справляются. Также выясняется, что при указании большого значения параметра --max-outgoing-connects, превышающего значение --max-upload-slots в 4 и более раз общая отдача становится меньше, на данный момент использую опции с такими значениями:
--max-incoming-connects 1000 --max-outgoing-connects 200 --max-upload-slots 80
если указать --max-outgoing-connects равным --max-upload-slots эффективность узла также падает, так как получается что он обслуживает только 80 пиров, но которым полностью постоянно отдает поток, а не 200, которым поочередно отдает поток.
Цитировать
На стабильность трансляции ( просмотр без уходов на буферизацию ) влияет не количество пиров, а их качество ( насколько хороший у них аплоад ), К примеру, если вы решите сделать трансляцию, с высоким битрейтом, и причем исключительно для пользователей Укртелеком, вам нужно будет поставить парк серверов, так как у клиентов Укртелеком очень ограниченный/низкий аплоад, а соответственно вся основная нагрузка ляжет непосредственно на узлы поддержки.  Чтобы не было уходов на буферизацию и быстро запускалась трансляция, пользовать должен быть законкчен с роем где есть быстрые сиды! ( рой - это тот пул пиров, которые указываются в опциях, как значение "Helping"
учитывая, что нынешние аплоады у многих пользователей составляют от нескольких мегабит до нескольких десятков, трансляцию мегабит до 5 не проблематично провести и на 5 и на 10 и даже на 50 тысяч пиров, имея при этом один узел со 100мбитами. По крайней мере это показывает практика использования сопкаста, при том что там далеко не 100мбит у источника обычно, хотя и довольно большой задержкой в 60 секунд. В TS задержка выбирается хоть и произвольно, но практика показывает, что чем большее количество звеньев от источника до пира, тем дольше у него будет идти буферизация и тем самым больше задержка, которая вырастает от нескольких десятков секунд до нескольких минут, в итоге пир, выставив даже 10 секунд в параметр буфер Live, может получить задержку в 3-5 минут(а иногда и больше) на трансляции, на которой висят несколько тысяч пиров(что уж говорить о нескольких десятков тысяч). При этом статистика трекера, которая может выдать результат о нормальной отдаче/загрузке, может оказаться хоть и правдивой, но при этом о задержке она не может ничего сказать. Это еще раз подтверждает, что есть проблемы в отдаче между пирами, как в скорости аплоада(который режется словно высокоточным шейпером в windows), так и в синхронизации потока. Если в файлах это не играет такую существенную роль, то для Live это важнейший показатель. Конечно, у некоторых пользователей провайдер режет Р2Р, но таких не так уж много, при том что у кого не режет все равно сталкиваются с подобной проблемой, включая меня самого. Даже я, подключаясь к своей же трансляции (приватный источник+4 узла с общим гигабитом), имею задержку от 30 секунд до 2х минут на 2-5 тысячах пирах, при том что буфер Live всего 10 секунд.
P.S. Если вы до сих пор в это не верите могу дать доступ к удаленном рабочему столу, где вы сами это можете увидеть.
Цитировать
поставить флаг приватности в acelive-файл (в соответствии со стандартами протокола bittorrent клиенты при работе с таким acelive-файлом будут получать адреса других пиров только через трекеры, прописанные в acelive; dht и другие способы обмена информацией о пирах будут отключены)
иначе говоря лучше не использовать эту опцию
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

Пример конфигурации
В примере для краткости опущены все опции, которые не касаются обсуждаемой проблемы.
Допустим, есть источник 10.1.1.1, шесть узлов поддержки 10.1.1.2-10.1.1.7 и мы хотим разрешить только трем узлам поддержки качать с источника. Все узлы запущены на портах по умолчанию (источник - 7764, поддержка - 8621).

Конфигурация источника:
acestreamengine-stream
  --private-source
  --add-authorized-peers
  --support-node "10.1.1.2:8621"
  --support-node "10.1.1.3:8621"
  --support-node "10.1.1.4:8621"
  --support-node "10.1.1.5:8621"
  --support-node "10.1.1.6:8621"
  --support-node "10.1.1.7:8621"

Конфигурация узлов поддержки, которые будут качать с источника (это узлы 10.1.1.2, 10.1.1.3 и 10.1.1.4):
acestreamengine-node --allow-source-download --source-node "10.1.1.1:7764"

Конфигурация узлов поддержки, которые будут качать с других узлов поддержки, и не будут качать с источника (это узлы 10.1.1.5, 10.1.1.6 и 10.1.1.7):
acestreamengine-node
  --allow-support-download
  --support-node "10.1.1.2:8621"
  --support-node "10.1.1.3:8621"
  --support-node "10.1.1.4:8621"
Практика показывает: если все узлы будут качать с источника(при условии что источник все отдает), то отдача со всех узлов будет гораздо выше(почти в 2 раза), чем если один узел будет качать с источника, а остальные узлы будут качать с него, даже с условием что все узлы будут прописаны на каждом сервере, включая источник, но без параметра --allow-source-download. Соответственно не используется весь потенциал узла, а значит кпд его гораздо ниже...
Записан

vladimir29

  • Специалист
  • Jr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 82

еще один, как я считаю, баг: если узел поддержки прописан на источнике, то есть авторизован, и на других узлах, но на нем не прописана опция --allow-source-download, а только --allow-support-download  , то при полной загрузке других узлов этот узел не сможет получить данные от них, хотя он должен быть первостепенным пиром для других узлов и должен в любом случае получить поток, даже ценой отключения обычного пира от узла.
Записан

User

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 20

ребята проверьте трансляцию, что то я не пойму никак
67afa3a0cbab9fe7945919060ee20b5082183400
« Последнее редактирование: 13 Марта 2013, 12:38:50 от User »
Записан

Пур Иванов

  • Специалист
  • Sr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 342

ребята проверьте трансляцию, что то я не пойму никак
67afa3a0cbab9fe7945919060ee20b5082183400
Не работает, видимо закрыты порты во внешку или просто нет трансляции...
Записан

User

  • Newbie
  • *
  • Оффлайн Оффлайн
  • Сообщений: 20

статус вот такой:
Name: test
Tracker: http://хх.хх.хх.хх:7777/announce
Bitrate: 3000 kbit/s
Source download speed: 397.7
Peers: 0
Upload speed: 0.0
File: download
Content ID: 67afa3a0cbab9fe7945919060ee20b5082183400
Watch online
я прокинул порт со внешки хх.хх.хх.хх:7777 на локальный 192.168.0.102:7777
вроде бы все правильно?
Записан

Пур Иванов

  • Специалист
  • Sr. Member
  • *****
  • Оффлайн Оффлайн
  • Сообщений: 342

Ещё порт 8621 попробуйте прокинуть. И не совсем понятно от кого вы прячете адрес трекера... он всё равно у вас будет светиться... а так не понятно работает у вас он во внешку или нет...
« Последнее редактирование: 13 Марта 2013, 14:11:55 от Пур Иванов »
Записан