Flussonic

Flussonic потребляет много ресурсов

performance

#1

Имеется мощный сервер на базе двух процессоров Intel Xeon X5550, захватываем мультикаст, пишем архив, все работает хорошо, но top показывает высокую загрузку процессора.

Разве есть что-то сложное в захвате мультикаста и записи на диск, почему все ядра заняты на 80%?

На входе 600 мбит/c, пишем 30 каналов. Архив смотрим по HLS на приставках TVIP и Infomir MAG.


#2

используйте udp2:// для экономии ресурсов


#3

Как этим пользоваться, куда нужно прописать?


Потребление ресурсов после обновления
#4

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

Важно понимать, что Flussonic - это видеостример, а не веб-сервер, раздающий статические файлы.
Смотрите какие процессы происходят в описанном вами сценарии:

  • Захват UDP-трафика, задача сама по себе непростая, т.к. системный буфер имеет небольшой объем (как правило 1-16 МБ), а данных поступает немало (вы говорите про 600 Мбит/с)
  • Декодирование MPEG-TS. Да, именно распаковка транспортного потока и разбор потока до кадра, все аудио и видеофреймы помещаются в память Flussonic
  • Запись на диск. Чтобы эффективно работать с диском и иметь возможность раздавать “на лету” сразу во все популярные форматы (HLS, DASH, HTTP MPEG-TS), мы применяем собственный контейнер. Но тем не менее, работа с диском не бесплатная, а если у вас медленное хранилище (например, RAID5 из объемных дисков 4+ТБ, то операции ввода-вывода могут сильно блокировать работу процессора.
  • Упаковка HLS, DASH (и другие форматы). Разные Middleware и приставки работают с Flussonic по разным протоколам: index.m3u8, video.m3u8. rewind-3600.m3u8, timeshift_abs_N.m3u8, index.mpd, video.ts. Flussonic на лету (Just-in-Time Packaging) подготавливает все манифесты и сегменты, чтобы сэкономить память сервера (как дисковое хранилище, так и ОЗУ), при этом обеспечивает высочайшую совместимость со всеми современными устройствами.
  • Упаковка HLS, DASH (и других форматов), но при чтении из архива. Тут тоже самое, но сопровождается еще обращения к дисковой подсистеме, что опять-таки, не бесплатно.

Описывать работу с API, Events, системы авторизации, сбор статистики, PulseDB и прочее я не буду, но все это тоже отнимает время процессора, которому, кстати, уже 9 лет! X5550, указанный вами 2009-го года выпуска. Процессор хороший, но посмотрите бенчмарки современных процессоров и сделайте выводы. Скорее всего, у вас получится недорого обновить сервер, повысив производительность вдвое, с заделом на будущее.

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


#5

Про hls2:// знаю, но udp2:// в документации не могу найти.


#6

udp2:// недокументирован и не будет, это старый метод захвата UDP-трафика, который может быть удален в любое время.


#7

X5550 в сочетании со словами мощный севрер, вызывает недоумение у меня, если честно
https://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeon+X5550+%40+2.67GHz&id=1300&cpuCount=2
https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-4790K+%40+4.00GHz&id=2275
https://www.cpubenchmark.net/cpu.php?cpu=Intel+Xeon+E5-2630+v4+%40+2.20GHz&id=2758
ну так для понимания, что ваш сервер не просто не мощный, а крайне слабый

Потом для обработки видео нужно выбирать высокочастотные процессоры, а не многоядерные, по нашим тестам E5-2630v4 работает с видео многократно раз хуже, чем 6850К

Всецело, если сомневаетесь в скорости работы flussonic, сделайте все то же самое на ffmpeg и посмотрите нагрузку, да проблемно, но вы поймете, что все не так плохо.

Не забывайте, что ffmpeg, используемый в т.ч. в flussonic, любит использовать инструкции CPU и возможно, что стоит капнуть в сторону тестов пересборки ffmpeg, установке старой версии flussonic
Ну и не думали часть нагрузки снести на GPU?


#8

Откуда взялся этот живучий миф про используемый внутри флюссоника ffmpeg.

Перепаковка видео ни коим образом не использует ffmpeg. От ffmpeg только софтверный транскодер.

GPU используется для транскодирования (точнее nvenc, а не cuda).