LINUX.ORG.RU
ФорумAdmin

[Zoneminder ffmpeg] динамическое распределение времени.


0

0

Добрый день.

Работает серер под управлением zoneminder 1.24, проблема такова:

Если я начинаю генерировать видео за период, или какие либо отчёты, то происходит страшное:

Может повиснуть apache, может отвалиться запись, on-line трансляция...

Причина ясна: не хватает времени CPU... Т.е.: CPU на 100% и поэтому всё отваливается. Сервер работает пару месяцев, всё хорошо.

Но вот проблема эта доставляет много хлопот.

Пока делаю так:

cpulimit -e /usr/local/bin/ffmpeg -l 10 &

Всё шикарно. Кроме, того что видео генерируется не торопливо... :( К примеру видео за сутки в обычном режиме - когда всё остальное отваливается генерируется за полтора часа. А при лимите 10 процентов стесняюсь подумать сколько оно будет делаться... Зато вся остальная контора работает исправно.

Есть идеи как сделать динамическое распределение ресурсов, только по человечески?

CPU: Intel(R) Xeon(R) CPU 5120 @ 1.86GHz

OS: Ubuntu 8.04.4 x64

★★★★★

>Если я начинаю генерировать видео за период, или какие либо отчёты
Так ты записывай сразу видео с камеры.
А вообще, какая-то странная у тебя проблема.

power
()
Ответ на: комментарий от power

zoneminder с видео камеры забирает mjpg поток. Складывает картинки на HDD. Соответственно за нужный период генерируется видео ролик.

При том: ffmpeg пускается, заходит в папку и создаёт поток, заходит в другую папку... - В общем zoneminder такой zoneminder.

А вообще, какая-то странная у тебя проблема.

А нету ничего странного.

Дело в том, что все процессы запускаются с приоритетом 20 от пользователя www-data, в том числе ffmpeg. Но процессов вычислительных много, и поделить рационально время между собой не могут, т.к. они ведь все с одинаковым приоритетом...

Вопрос: как реализовать такое: Сделать так чтобы определённые процессы пускались с определённым приоритетом?

nice, renice, ionice это всё хорошо, но это когда уже процесс запущен. Можно конечно расковырять этот zoneminder, стартовые скрипты apache, и понакрутить там приоритетов, но это трудоёмко.

DALDON ★★★★★
() автор топика

У тебя что ксеон одноядерный? Если нет то пускай ffmpeg на одном ядре (ffmpeg -threads 1) и все будет пучком Если да то выброси его на помойку

codoranro
()
Ответ на: комментарий от DALDON

>Причина ясна: не хватает времени CPU... Т.е.: CPU на 100% и поэтому всё отваливается. Сервер работает пару месяцев, всё хорошо.

Это как? Планировщик уже отменили? У тебя скорее оперативка кончается, судя по симптомам.

Где у тебя оцифровывается видео и где стоит MySQL?

Вопрос: как реализовать такое: Сделать так чтобы определённые процессы пускались с определённым приоритетом?

Погугли на pam_limits

В общем zoneminder такой zoneminder.

DALDON такой DALDON... не греши на софт, так только под виндами делают.

codoranro
()
Ответ на: комментарий от codoranro

> не греши на софт, так только под виндами делают.

Имелось ввиду, что видео можно генерировать только по т.н. событиям... Нельзя сказать ему сгенерировать за тайм период... И вот генерация видео за сутки событий - это сплошное шоу. - Подняло ffmpeg зашло в папку с событием, соединила все jpg в видео ролик, убило ffmpeg, зашло в папку с другим событием - в цикле в общем, всё это сказывается... Пуск-стоп цикл. --- И таки да, за сутки получаем кучу видео файлов, как хочешь так и клей потом...

Где у тебя оцифровывается видео и где стоит MySQL?

Сервер выделенный под zoneminder. MySQL опять же использует он.

RAM 2 GB, занято не более 400, судя по htop и top. В ней не должно быть проблем.

С HDD аналогично, 2TB LVM - но под MySQL стоит ещё отдельный HDD, потом ещё добавлю, если получится с zoneminder справиться. При том это надо не с ним справляться, а с Linux, ибо генерация TimeLine, генерация видео, очень за так подвешивают всю контору... :( Отваливается Apache... Таки, да - охрана хочет смотреть видео и ещё иногда смотреть отчёты. И отваливающийся Web ну никак их не прикалывает.

Процессор двухядерный. Ubuntu сама по ядрам в общем то раскидывает... Все процессы. Сейчас один сервер (конфигурация зеркальная тому что выше описал) работает под управлением NetAvis держит 25 камер - никаких тормозов нету, хочется ещё 10-15, но под zoneminder - максимум на нём можно не более 10 на таком проце... Поэтому процессорное время дорого, конечно есть ещё сокет под один CPU, но это крайняя мера.

DALDON ★★★★★
() автор топика
Ответ на: комментарий от DALDON

>Имелось ввиду, что видео можно генерировать только по т.н. событиям... Нельзя сказать ему сгенерировать за тайм период... И вот генерация видео за сутки событий - это сплошное шоу. - Подняло ffmpeg зашло в папку с событием, соединила все jpg в видео ролик, убило ffmpeg, зашло в папку с другим событием - в цикле в общем, всё это сказывается... Пуск-стоп цикл. --- И таки да, за сутки получаем кучу видео файлов, как хочешь так и клей потом...

Можно попробовать поставить нормальную вижеокарту типа с поддержкой cuda/opencv и на ней кодировать в x264.

Я сейчас сам занимаюсь zineminder, но у меня видео оцифровывается на отдельной железке, поэтому с описанными тобой проблемами я не сталкивался.

Если есть желание - давай вметсе разбираться. Мой емайл codoranro@gmail.com.

codoranro
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.