173 похожих чатов

У меня тут был кейс с докером, который меня буквально

вымотал за два месяца. я наверное тупой, но я устал с этим бодаться. итак, кейс. У сервера jitsi есть компонент jibri - эта штука позволяет записывать видеоконференции довольно черезочковым способом: службе jibri выдается секрет, она запускает безгуевый хром и при помощи этого секрета подключается к конфе невидимым участником. После чего запускается ffmpeg, который пишет невидимое окно хрома со всем внутри происходящим. Чтобы можно было записывать несколько сессий одновременно, нужно запустить пять таких служб. Я их поднял в контейнерах. Теперь перехожу к сути: у ffmpeg есть одна ебучая особенность: он начинает складывать кадры в память, если не успевает кодировать налету, либо что-то с кодированием идет не так. У меня в принципе могут запускать до пяти записей одновременно. В какой-то момент (закономерность я не отследил), один из ffmpeg-ов начинает жрать CPU, остальные ffmpegи перестают успевать что-либо писать, складывают все в оперативную память, она очень быстро заканчивается, после чего приходит OOM и все процессы убивает к хуям. В итоге ползатели ноют, все ноют, собесы и презы в ВКС не записываются и вообще все плохо. Как изолировать процессы внутри каждого контейнера, ограничив им CPU и оперативную память?

16 ответов

7 просмотров

docker run --memory=2g --memory-swap=2g --memory-swappiness=0

Михаил-Смирнов Автор вопроса
Dupe
docker run --memory=2g --memory-swap=2g --memory-s...

а CPU? я виртуалке выделил 48 виртуальных ядер. в итоге по мониторингу дело до ходит до 50% нагрузки, потом память, потом все знают...

Мы тупые и не сможем помочь:(

Михаил-Смирнов Автор вопроса
Андрей
https://docs.docker.com/config/containers/resource...

о, спосебо. я действительно туповат

пропатчь ffmpeg, шо ты как не девопс

Михаил-Смирнов Автор вопроса
🥓 Хамон Эврибади
пропатчь ffmpeg, шо ты как не девопс

ооо, в гитхабе jitsi meet по поводу ffmpeg висит issue с 2020 года, один из самых популярных по количеству ответов. кому-то помогает откат версии ffmpeg, кому-то компилирование с какими-то ябучими ключами некоторых нестабильных версий, но проблема глобально не решается

Михаил Смирнов
ооо, в гитхабе jitsi meet по поводу ffmpeg висит i...

https://hub.docker.com/r/altproject/docker-headless-vnc-chrome и писать сам vnc

Михаил-Смирнов Автор вопроса
🥓 Хамон Эврибади
https://hub.docker.com/r/altproject/docker-headles...

jibri - это уже написанная служба, которая запускает ffmpeg с уже захардкоженными ключами.

Эээм? https://docs.docker.com/config/containers/resource_constraints/ но вообще софтина конечно должна осознавать что у нее лимиты cgroups навешаны

Михаил-Смирнов Автор вопроса
Андрей
Насильно глушить её ffmpeg и запускать свой?

там были некоторые умельцы, которые через алиас подсовывали свой sh-скрипт, где через sed поменяли захардкоженные ключи запуска для ffmpeg. Мне как-то жалко на это времени уже

Evgеnу Martynenko
А форкнуть на Гите и переписать в исходниках?

Жень, он же молодой. Там какое-то самописное, от слова совсем

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Есть вопрос: допустим есть железка с каким-то интерфейсом(допустим usb), но как по этому интерфейсу железкой управлять неизвестно, прог нету, а управлять очень хочется надо. К...
Mixail Frolov
15
а как ловят такое ghci> res <- getPos2 urlt 0 (alist !! 0) 200 ghci> res SearchAtom (Search "www.google.com" "/search?q=" "Haskell") "haskell.org" (SearchTS [(2024-05-06 07:...
Fedor
14
Так а кто может спарсить всех участников чата? Идишники
Magic
17
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
13
Ребята, а из API геокодеров (по адресам в РФ) что сейчас актуального и есть ли среди актуального бесплатное/с нормаотным лимитом запросов? ситуация простая - на сайте периоди...
Dreamer_0x01 VeseloV
8
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Карта сайта