Возможен ли такой сценарий?

Max

Administrator
Staff member
Возможно что-то будет видно по логам. Пришлите доступ к обоим серверам. Проверим.
По конфигам пока не видно никаких ошибок.
logs@flashphoner.com
 
Хорошо, сделаю так:

1) отлажу автодеплой до конца и выполню тесты какие могу
2) создам пару c1.small.x86 (ибо дешевле - 4 Physical Cores @ 3.5 GHz (1 × E3-1240 v5), 32 GB of DDR3 ECC RAM (2 × 16 GB), 120 GB of SSD, 2Gbps Bonded Network) и запущу в нём в цикле играть видеофайл с ffmpeg, убежусь что проблема есть на нём тоже (думаю 500 потоков по 2 мегабита такая машина должна тянуть на отдачу, без всяких выкрутасов с перекодировками, верно)? моя проблема в том что даже мега сверхмощная никак не тянет 500 пока что. без отпадений потоков даже 100 не тянет.
3) вышлю доступы. а ssh public key можно? ну не по паролю же, это совсем уж XX век
 
Last edited:

Max

Administrator
Staff member
Да c1.small.x86 должен отработать 500 стримов.
вышлю доступы. а ssh public key можно? ну не по паролю же, это совсем уж XX век
Тогда просьба прислать private key. Публичные ключи в простой форумной поддержке мы не генерим, т.к. лишние коммуникации.
 
OK.

Завтра. закопались с деплоем. слишком много экспекта, кодеры слабоваты в нём.
 
Last edited:
Нашу часть проверили - 20 потоков на машине генерится с 25-28% нагрузки проца, что должно быть гуд. имхо, того что остаётся от 56-ядерной машины с 384 рамы должно с лихвой хватать на отдачу 2000 потоков.

Поднимаю 4-ядерную с 32 рамы и пробую отдать 500 потоков - если не выйдет даю ssh.
 
выслал всё на почту. посмотрите, плиз.

при попытке затянуть 500 потоков доходит до 280-290 (при этом нагрузка проца 30% и памяти свободно процентов 70 тоже, это при том что 20% проца сразу ест ffmpeg на одну генерацию этого потока), топчется на этом уровне какое-то время, и начинает падать. через 3-4 минуты после запуска пулла падает до 0.

похоже что это неисправность этой тестовой консоли, а не самого сервера, как мне начинает казаться. повторил на 1 потоке вообще, выслал скрины с отладчиком хрома и ошибками, почтой.

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

но собственно стриминг и проигрывание потока работает совершенно стабильно, никогда не отпадает. т.е. я почти уверен что это не бага сервера, а бага консоли - но мне всё равно надо перед продакшеном протестить на нагрузку.
 
Last edited:
не, это просто ендпоинт /rest-api/stream/find_all который выдаёт 200 и содержимое если потоки есть и 404 если их нет - оттуда и ошибки в консоли. факт в том что даже 1 поток умирает на pull через примерно 2 минуты после запуска :( на том сервере на который стримлю - сколько угодно крутится. как ни крутил настройки потока - в том числе и звук добавлял - результат один. если я как-то "не так" его энкодю - скажите как надо правильно, плиз? строку для ffmpeg выслал почтой. с другой стороны, серверу на который стримлю это ничем не мешает почему-то.
 
Last edited:
То же самое наблюдается и просто с потоком с вебки. Шлю на один сервер, пуллю с другого в 10 копиях - через минуты 2 отпадают все. Так что это не энкодинг - просто пулл у меня почему-то не работает устойчиво, затянутый поток живёт 2 минуты.

я могу конечно провести лоадтест запустив на headless chrome 2000 копий принимающей страницы на куче-куче амазон инстансов скриптом, но уберегите меня плиз от этого гемора :)
 
запускал по 10000 потоков кучу раз подряд так чтобы их цепляло быстрее чем успевают отваливаться - на несколько минут догонял до 850 потоков и задержка начинала расти только начиная с примерно 700-750. то есть как бы примерно то что я и хотел получить или даже лучше.

проблема в том что аналогично проверить мощный сервер не выйдет - до 2000 потоков я таким методом не догоню. надо чтобы не отваливались. если только засасывать не 1 сервером а сразу 3-мя? но это звучит как-то ну совсем не серьёзно. и я хотел бы чтоб оно хотя бы часик поработало - убедиться что рама не отжирается.

у меня чувство что какой-то keepalive отламывается...
 
Last edited:

Max

Administrator
Staff member
Добавили на оба сервера настройку:
wcs_activity_timer_timeout=86400000 (24 часа)
Сессии между серверами закрывались по этому таймауту, по-умолчанию он равен 60 сек.
Проверьте стало ли лучше.
Если нет, еще раз проверим позже.
 
Если проблемы с воспроизведением, вот записал видос всего что я делаю
https://codeda.com/screen.mov

команда ffmpeg

ffmpeg -re -f lavfi -i "movie=filename=jedi.mov:loop=0, setpts=N/(FRAME_RATE*TB)" -an -s 1280x720 -r 15 -f rawvideo -pix_fmt yuv420p - | ffmpeg -thread_queue_size 512 -an -f rawvideo -pix_fmt yuv420p -r 15 -s 1280x720 -i - -r 15 -c:v libx264 -tune zerolatency -profile:v baseline -g 10 -b:v 2M -s 1280x720 -an -f flv rtmp://127.0.0.1/live/test_video
впрочем повторяется при любых настройках потока - это неважно
 
вижу что тестится штука потоков, работает вроде норм

скажите когда готово чтоб я не прерывал, и какие изменения в конфиге

прошу обратить внимание, что камня не хватает не отдающему, а принимающему серверу - отдающий практически не нагружен несмотря на то что штуку потоков отдаёт
 
Top