Как стать автором
Обновить

Комментарии 28

Я правильно понял, что BBB уже без флеша работает?
НЛО прилетело и опубликовало эту надпись здесь

Мы использовали только HTML5 клиент, он был включен принудительно в настройках (attendeesJoinViaHTML5Client=true,
moderatorsJoinViaHTML5Client=true).

не пробовали ставить плагин для moodle для управления bbb?
и по серверу для bbb подскажите — сколько одновременно онлайн конференций было на каком железе?

Да, именно BigBlueButtonBN использовался для интеграции BBB в Moodle.
В конце марта во время тестирования просили учителей включить всем веб-камеры. На трафике 250 мбит/с нагрузка на 2xXeon X5650 была не более 20%. К сожалению, в BBB нет инструментов сервера, которые позволили бы видеть количество подключившихся. В апреле в среднем на сервере работало 200-250 учеников одновременно, нагрузка на процессор не превышала 15%.
С аудио и видео BBB работает в режиме прокси, каждый поток аудио и видео просто рассылается всем клиентам. Это накладывает ограничение на количество одновременно включенных камер. Никакого Simulcast в нем нет, если каждый из 20 участников транслирует 500 кбит/с поток с камеры и в настройках комнаты всем разрешено видеть всех (например, родительское собрание), то в каждого клиента летит 19 видеопотоков по 500 кбит/с, которые клиентское устройство должно декодировать и показать пользователю.
В плане трансляции видео от каждого ученика интересней Zoom и Jitsi, которые поддерживают Simulcast. Каждый клиент транслирует на сервер видео минимум в 2 потока: например, основной в 500 кбит/с и дополнительный в 128 кбит/с, а на стороне клиента уже выбирается с какого именно потока воспроизводить видео в зависимости от места в раскладке на экране. Это значительно снижает требования к мощности клиентских устройств.
В BBB мы в основном пользовались режимом в котором все видят модератора (учителя), модератор видит всех, а друг друга ученики не видят, чтобы не нагружать устройства учеников.

В BBB мы в основном пользовались режимом в котором все видят модератора (учителя), модератор видит всех, а друг друга ученики не видят, чтобы не нагружать устройства учеников.

А где в BBB этот режим включается? Не могу найти.
Надо включить в конфиге сервера «пользователь заходит заблокированным» (это описано в статье), а на пользователей со статусом «заблокирован» распространяются настройки раздела «Управление пользователями» — «Заблокировать участников». Ставим «Видеть вэб-камеры других участников» в «Заблокировано» и камеры пользователей видит только модератор. Каждого пользователя отдельно можно разблокировать и назначать ведущим. В обоих случаях его камеру увидят другие участники.
В BigBlueButton поток «по умолчанию» по моим тестам 200Кбит, так что формально Jitsi в сумме потребляет больше полосы (не пробовал его, но вы пишете выше, что 500+128)
Качество картинки (и ширину потока) можно выбирать при подключении камеры.

Как правило, для мероприятий вроде онлайн-обучения вряд ли нужна картинка HD-качества со стороны школьника/студента, обычно это «говорящая голова». Нужна грамотно сделанная презентация и хороший звук. Который больше зависит не от кодека и полосы, а от микрофона докладчика и постороннего шума вокруг него.
Jitsi стримит 720p в 3 потока: 720p, 360p и 180p. Остальные клиенты выбирают из этих трех исходя из своих возможностей. Качество звука в Jitsi мне не понравилось вообще. Лучший звук из всех протестированных решений был в MCU Vinteo (вроде кодек opus). Там отчетливо была слышна разница между USB-микрофонами разной ценовой категории.
Про звук и презентацию в онлайн-обучении согласен. Учителя сами к этому пришли, картинка нужна только младшим классам и специфическим предметам типа иностранных языков. Видео учеников отчасти позволяет контролировать заинтересованность, но намного эффективнее давать простой тест в Moodle сразу по окончании урока, чем весь урок вглядываться в лица учеников.
Спасибо за ценную информацию конкретной практической реализации!
Если не секрет, какой ширины канал использовался и хватало ли его?
Ответ нашел ниже, надо было обновить страницу перед комментированием.
в BBB нельзя четко ответит на вопрос «сколько онлайн конференций может быть».
Сильно зависит от того, что это за конференции
1) используется перезентация или трансляция рабочего стола (презентация это картинка статичная, трансляция стола — это видеопоток каждому участнику)
2) сколько человек одновременно в аудиоконференции с активным микрофоном — только ведущий или «все со всеми»
3) сколько камер подключено — ни одной, только у ведущего, несколько камер, у всех
4) кто видит активные камеры — только модератор видит все камеры, все видят все камеры
5) какое качество выставлено у камер — низкое, среднее, высокое
6) идет ли запись мероприятия

и все эти параметры мультплицируют нагрузку с какими-то коэфициентами. Чем больше функционала используете тем сильнее нагрузка возрастает, в геометрической прогрессии.
НЛО прилетело и опубликовало эту надпись здесь
В моем случае CPU это старенький Xeon X5650 (2,6 ГГц), поэтому при 4 vCPU постоянная загруженность была более 80%. Два ядра привели бы к явным тормозам. Администрирование — Отчеты — Тест производительности у меня показывает 80 баллов даже когда на портале более 200 пользователей (чем меньше баллов, тем лучше). Что касается ОЗУ, то 4 ГБ явно мало, сейчас используется около 12ГБ, СУБД разрешено активно использовать память.
НЛО прилетело и опубликовало эту надпись здесь
Выполнение `chmod -R 0755` на директории приводит к тому, что все файлы в дереве начиная от этой директории получают флаг «исполняемый». Это плохо тем, что при наличии дыр в движке (а гарантировать что в мудле их нет — нельзя) позволяющих дропнуть свой код, он будет исполняемым, и позволит пройти дальше.

Лучше менять права примерно так:
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;


А если надо временно дать доступ на запись в директорию движку, лучше делать это без ключа -R.
Да, правильней менять права с запретом на исполнение.
Что касается записи в директорию, то при обновлении тем/плагинов он заменяет файлы и ему нужны права на запись существующих файлов.
Начали активно использовать ВВВ в период изоляции в ВУЗе. Ранее использовалось только для студентов дистанционной формы обучения и нагрузка была незначительной.

Столкнулись с проблемой, что примерно при 600+ пользователей онлайн на сервере звук начинает отставать. Причем 600+ может быть как и 10 мероприятий по 60 человек, и 60 мероприятий по 10 человек. Очевидной причины не найдено. Загрузка по CPU незначительная, сервер — 2xAMD EPYC 7402, в сумме 96 потоков, 256Гб ОЗУ
Временное решение было такое: на железном сервере сделано 3 виртуалки по 32 ядра на ноду, на каждой — инстанс BBB. Мероприятия условно равномерно распределяются по трем серверам. На момент создания мероприятия неизвестно, сколько в нем будет участников, поэтому балансируется «условно». Но, как правило, более 200 участников в одном мероприятии не бывает, более частый кейс — 10-30 человек.
Такой подход, на удивление, помог победить проблему со звуком на том же железе, и сейчас сервер без проблем «держит» до 1200-1300 онлайн пользователей в пике.

Greenlight практически не используем, «комнаты» создаются по API из нашего приложения управления расписанием. Там же выставляются параметры, а конкретно — режимы вроде «слушатель не может включать камеру» для лекций, «модератор видит всех, все видят только модератора» для практических занятий, разрешена ли запись мероприятия и т.п.

Там же сделана привязка имени пользователя к его логину, чтобы пользователи не назывались «Маша» и «Саша», а было ФИО и номер группы.

Написан небольшой шаблончик мониторинга bbb для zabbix, а так же «на коленке» система просмотра активных мероприятий и их истории (скачивает каждые 10 минут и по запросу xml-статистику по api с каждой ноды и потом отображает в человекочитаемом виде)

Примеры картинок мониторинга и zabbix
Monitoring

Zabbix


Из проблем с BBB — иногда все же «сходит с ума» Kurento media server, потребляя 10-20 ядер виртуалки на 100%. Временное решение — перезапуск сервисов BBB ежедневно в 4 утра вроде помог, после этого проблем больше не наблюдалось (прошло 2 недели)
Разбираться с проблемой более детально нет возможности, так как нужно срочно восстанавливать работоспособность сервиса, а не трейсы процессов делать. А в логах ничего необычного.
Firewall есть? У нас тоже Kurento сходил с ума пока все лишние порты не закрыли. Оставили 80, 443 и udp порты как в инструкции.
Мне кажется, проблема тут не в процессорах, а в прерываниях и очередях на сетевой карте. Есть готовое решение для балансировки BBB — Scalelite
Greenlight мы сами не используем, это только для других школ. Сами создаем конференции BBB только в Moodle как раз из-за сквозной авторизации (учитель видит учеников по имени и фамилии).
Не поделитесь, как в zabbix получаете информацию о количестве активных пользователей?
а если ли публичная ссылка на шаблон zabbix?
Подскажите, какой у Вас канал, и какая на него нагрузка, когда идет активный учебный процесс?
Сильно зависит от того, пользуются ли веб-камерами учителя и ученики или нет. Например, используется около 80 Мбит/с когда ~200 учеников только слышат преподавателя, задают вопросы голосом и видят презентацию и около 300 Мбит/с на вечерних родительских собраниях (где-то 50 человек в разных комнатах), когда все видят всех и у части включена камера. Увеличение трафика вызывает и демонстрация экрана вместо презентации. У нашего сервера 2 гигабитных канала от местных провайдеров, чего более чем достаточно, т.к. пользователи тоже местные, а наземный (подводный) линк в глобал с Камчатки только один.
Спасибо за статью. Крайне актуально.
Жаль только, что у Jitsi (пока) нет такой админки, как у BBB.
Jitsi удобнее хотя бы тем, что исп-ся всего 3-4 порта в отличие от BBB с Kurento и 100500 udp-портами.
Может в будущем авторы BBB и перейдут на jitsi (мечты).
defaultWelcomeMessage=Welcome to %%CONFNAME%%!
Кириллица работать не будет?
Будет. Кодировка UTF-8, формат ASCII. Находим в интернете любой онлайн-конвертер native2ascii и получаем текст вида
\u041f\u0440\u0438\u0432\u0435\u0442, EvgenySerd!
Отличная статья. Спасибо.
У меня вопрос по настройкам видео, нужно чтобы ученик видел себя и учителей, но не видел остальных учеников. А учителя как модераторы видели всех. В одной конференции учителей может быть несколько.
PS. Если поставить lockSettingsDisableCam=true и lockSettingsLockOnJoin=true то у ученика просто блокируется камера, что не совсем то что нужно.
PS2 Кстати сталкивался с тем что не везде доступен ubuntu.bigbluebutton.org существует зеркало packages-eu.bigbluebutton.org
Транслировать веб-камеру: Разрешено
Видеть веб-камеры других участников: Запрещено
В такой конфигурации ученик будет видеть всех модераторов (учителей), но не будет видеть других учеников. Своя картинка у ученика отображаться будет при включенной камере.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации