株式会社時雨堂 が開発/販売している WebRTC SFU Sora 専用の負荷試験ツールです。
Sora を運用するサーバのサイジングの見積もりが目的です。 WebRTC は要求するビットレートや利用するネットワーク、送信者、受信者の数によって負荷が変わります。
そのため今まではサイジングがとても難しく、ある程度余裕のあるスペックを用意するしかありませんでした。
Zakuro を提供することで、 Sora を運用するサーバのサイジングを行えるようにするのが目的です。
Apache License 2.0 としてソースコードを公開しています。
Zakuro のスポットライト機能検証時に利用する音声ファイルには あみたろの声素材工房 様の声素材を使用しています。
サーバでの用途を前提としているため Linux での動作を想定しています。
- Ubuntu 24.04 x86_64
- Ubuntu 22.04 x86_64
積極的な破壊的変更を行います。
対応しています。
Ubuntu サーバーを利用している場合、
MACアドレスベースの EUI-64 フォーマットの IPv6 になっている場合があります。
これは非推奨となっているため、 sysctl で add_gen_mode
を確認し変更してください。
Zakuro は wss://
のみ対応しています。 ws://
には対応していません。
かなりの数を消費しますので、 Zakuro と Sora 両方のサーバで多めに設定することを推奨します。
Zakuro は Sora に膨大な負荷をかけますので、利用する場合はとても注意してください。
ツール利用者が運用していない環境への利用は絶対に行わないようにしてください。
これは効率の良いシミュレータではなく力技で負荷を実現するツールです。
そのため、大量の CPU リソースを消費します。利用する場合は多くのコアを積んだサーバを用意してください。
異なります。
ただし libwebrtc をベースにしているため、 WebRTC の挙動自体はブラウザとほぼ同じです。 さらに 1 接続 1 エンコーダを採用しているため、 1 接続が独立しています。
そのため再送や全画面要求に対してもそれぞれの接続ごとに処理を行います。
していません。負荷を削減するためデコードする前に破棄しています。
--game kuzushi
を利用してみてください。ブロック崩しゲームが始まります。
砂嵐を生成する --sandstorm
を利用してみてください。ただしこれは凄まじく CPU とネットワークを消費します。
FFmpeg を利用すると簡単に作成できます。
ffmpeg -i in.mp4 -f yuv4mpegpipe out.y4m
ffmpeg -i in.mp4 -f wav -vn out.wav