クライアントブラウザでのJitsi MeetにおけるCPU使用率の高さを修正する
Jitsi MeetブラウザのCPUスパイクを診断し、ビデオタイル、カメラエフェクト、ブラウザグラフィック、ホスト設定をチェックすることで、クライアントの負荷を軽減します。
シナリオ例:架空のコミュニティカレッジで、約100人ずつのクラスが5つ開講され、合計500人が同時にオンラインで参加すると想定します。これは計画例であり、ベンチマーク、顧客事例、テスト結果ではありません。重要な設計上の選択は、複数のサーバーに分散された複数の会議に対応できる規模にすることです。500人規模の大規模な会議は、リスクプロファイルが異なります。

BigBlueButton の最新インストールガイドには、専用サーバーの運用に必要な最小要件として、Ubuntu 22.04 64 ビット、シングルスレッド性能の高い 8 コア CPU、スワップが有効な 16 GB メモリ、および 250 Mbit/s 以上の対称帯域幅が記載されています。録画を保持する場合は少なくとも 500 GB、録画を無効にする場合は 50 GB の空きディスク容量が必要です。また、公開 TCP ポート 80 と 443、UDP ポート 16384~32768、ホスト名と有効な SSL 証明書、および IPv4 と IPv6 のサポートも必要です。これらはサーバーの最小インストール要件であり、特定の会議構成に対応できる容量を保証するものではありません。オペレーティングシステムとパッケージの要件は変更される可能性があるため、展開予定のリリースのインストール ページを確認してください。
プロジェクトのFAQでは、これまでサーバーの最小要件を満たす目安として、同時接続ユーザー数を約200人と説明してきました。これはあくまでも大まかな計画の参考値であり、サービスレベルの保証やノードごとの普遍的な制限ではありません。BigBlueButton自身も、サーバーのCPU、メモリ、帯域幅、Webカメラと画面共有の使用状況、構成、ソフトウェアのバージョンによって結果が変わることを警告しています。200ユーザーという数値はあくまで初期仮説として捉え、ご自身のワークロードで検証する必要があります。
架空の大学を想定した場合、評価対象として妥当な初期アーキテクチャは、4ノード構成のBigBlueButtonクラスタです。各メディアノードは、現在の運用最小要件を満たすか、それを上回る性能を持ち、専用の高周波数CPUを使用します。参加者500人が均等に分散した場合、1ノードあたり平均125人となります。4つ目のノードは、会議の配置の偏りやメンテナンス計画に対応するための余裕を生み出すものであり、既に障害が発生したサーバー上で実行されている会議を自動的に保護するものではありません。
| 成分 | 開始計画目標 | なぜそれが重要なのか |
|---|---|---|
| BigBlueButton メディアノード | 専用サーバー4台。各サーバーは少なくとも8つの強力なCPUコアと16GBのRAMを搭載。 | ライブメディアの作業を分離し、最小サイズのホスト1台よりも複数の会議を分散して行うためのスペースを確保できます。 |
| メディアノードごとのネットワーク | 少なくとも1 Gbit/sの対称容量を評価することは賢明な目標であり、公式の250 Mbit/sの最小値を考慮に入れる必要がある。 | 音声、ウェブカメラ、画面共有、参加者のダウンロードなどはすべてネットワーク容量を消費します。実際のピークスループットとパケット損失を測定してください。 |
| ディスクと録音 | インストールガイドに従って、ローカルで録画する場合はノードごとに最低500GBの空き容量が必要です。それ以外の場合は、録画しない最小容量として50GBを確認してください。 | 記録の蓄積量は、記録期間、セッション数、および保存期間によって異なります。アーカイブ容量は別途計画してください。 |
| クラスタルーティング | 会議対応のスケーラーまたはロードバランサー、および必要に応じてテスト済みの共通クライアント/プロキシ設定 | 新しい会議はノードに割り当てられる必要があり、実行中の会議はそれぞれ割り当てられたサーバー上に残ります。 |
4ノード構成の推奨は、公式の最小構成と従来の200ユーザーという目安から推測されるエンジニアリング上の出発点です。BigBlueButtonは、500ユーザーのワークロードごとに4台の特定のサーバーを保証する包括的な仕様を公開していません。たとえば、1台のサーバーが利用できない場合、残りの3台のサーバーは、会議の再割り当てやユーザーの再接続が可能で、残りのサーバーがテスト済みの制限内に収まっている場合に限り、500ユーザーのうち平均約167ユーザーを処理できます。障害が発生したノードでアクティブな会議は、透過的に別のノードに移行しません。ノード障害発生時の稼働時間が必須の場合は、復旧手順をテストし、この単純なモデルを超える追加容量を検討してください。
BigBlueButton クラスターは、会議を複数のサーバーに分散します。単一の会議のために複数のノードを 1 つの共有メディアプロセッサに統合することはありません。100 名ずつのクラスを 5 つまとめて 4 台のサーバーに分散して会議として配置できますが、500 名のクラスを 1 つだけ実行する場合は、1 台の BigBlueButton サーバーで実行されます。プロジェクトのバージョン管理された FAQ では、200 名を超える単一の会議を通常のサポート対象の使用方法と同様に扱うことは推奨していません。要件が 500 人の単一の参加者である場合は、BigBlueButton チームまたは資格のあるプロバイダーと正確な設計を確認してください。イベントをより小さなインタラクティブ ルームに分割できるか、または参加者のインタラクションを制限した別のブロードキャストとして配信できるかを検討してください。
架空のクラス構成も重要です。ほとんどの学生が音声を聞いてスライドを見るだけで、講師だけがウェブカメラを共有する場合、多くの参加者がカメラと画面共有を公開する会議よりもメディア負荷ははるかに低くなります。BigBlueButton の FAQ では、解像度別のウェブカメラのビットレートの例と、公開するウェブカメラとビューアの数からサーバーの受信と送信を推定する方法が示されています。このモデルを使用して最初の帯域幅の見積もりを作成しますが、音声、シグナリング、画面共有、再送信、プロトコルのオーバーヘッドを含めてください。500 に推測したビットレートを掛けて、その結果を容量計画と呼ぶのはやめてください。
ブラウザクライアントが、必要なTCPおよびUDPポートを介して各メディアノードにアクセスできるようなネットワーク設計を使用してください。BigBlueButtonのクラスタプロキシのドキュメントによると、メディアストリームとWebSocket接続は会議をホストするサーバーと直接交換され、共通プロキシは主にクライアントインターフェイスと関連するWebアセットを中継します。誤ってすべてのメディアを1つの小さなゲートウェイに流してしまうリバースプロキシは、ボトルネックになる可能性があります。負荷テストの前に、ファイアウォールルール、パブリックアドレス、DNS、証明書、および双方向の帯域幅を確認してください。
例の大学の場合、1日あたりの録画授業数と録画時間を推定し、実際のリリースと設定に基づいて代表的な録画ファイルのサイズを測定します。予想される1日あたりの出力数に保持日数を掛け、運用上の余裕を加算します。インストールガイドに記載されている500GBの空き容量は、あくまでも最低限の目安であり、特定の保持ポリシーに適合することを保証するものではありません。空き容量と録画処理キューを監視し、アーカイブファイルはテスト済みのワークフローを通してのみ移動してください。
複数の通常会議で同時に500人が参加する場合、公式の運用最小要件を満たす専用のBigBlueButtonメディアノード4台と、堅牢な会議対応クラスタ構成で評価を開始してください。ネットワーク容量は余裕をもって予算を確保し、録画ストレージは測定された保持要件に基づいて計画し、会議室とメディアの正確な組み合わせをテストしてください。この設計はサイジングの仮説であり、特定のクラウドインスタンスが500人のユーザーをサポートできることを証明するものではありません。500人規模の会議室1室はワークロードが異なるため、クラスタ全体のワークロードから推測すべきではありません。
Jitsi MeetブラウザのCPUスパイクを診断し、ビデオタイル、カメラエフェクト、ブラウザグラフィック、ホスト設定をチェックすることで、クライアントの負荷を軽減します。
Jitsi Videobridgeに内蔵されたPrometheusエンドポイントを使用して、Jitsi Videobridgeの状態、会議の負荷、トラフィックを追跡し、Grafanaでデータを探索およびグラフ化できます。
Jitsi Meet Docker 用のカスタムドメインを、DNS、PUBLIC_URL、HTTPS、Let's Encrypt、ファイアウォールポート、NAT 設定、エンドツーエンド検証とともに構成します。
SSL更新後に発生するZimbra管理コンソールの404エラーを修正するには、正しいURLとポート、プロキシルーティング、サービスステータス、デプロイ済みの証明書、およびログを確認してください。
アクティブなPHP SAPI、サイズ制限、コメント、および再検証設定を確認することで、NextcloudのPHP OPcache構成警告を診断および修正する方法を学びましょう。
MySQLまたはMariaDBのアップグレード後にKopanoデータベースの移行が失敗した場合は、バックアップ、サーバーバージョン、SQLモード、文字セット、スキーマ状態、およびログを確認してトラブルシューティングを行います。
セキュアなトランスポート、ユーザーおよびグループフィルタ、ログイン属性、そしてテスト済みの展開機能を使用して、NextcloudをLDAPまたはActive Directoryに接続します。
UnifiedPush、Androidの権限設定、バッテリー設定、および信頼性の高い検証テストを設定することで、Googleサービスを削除した端末におけるElement Android通知の問題を修正します。
Nextcloudのデータベースインデックス不足警告を、公式のoccコマンドでクリアします。まずバックアップを作成し、変更内容をプレビューしてから修復を実行し、結果を確認してください。
Element Web 用の Keycloak SSO を設定するには、OIDC を Synapse に接続し、正確なコールバック URL を設定し、ユーザー クレームをマッピングし、ログアウトをテストします。