Flussonic

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

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

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

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

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

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

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

Важно понимать, что 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-го года выпуска. Процессор хороший, но посмотрите бенчмарки современных процессоров и сделайте выводы. Скорее всего, у вас получится недорого обновить сервер, повысив производительность вдвое, с заделом на будущее.

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

1 Like

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

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

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?

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

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

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