ライブ ブロードキャスト プラットフォームでパフォーマンス テストを実行するにはどうすればよいですか? それはあなたが思っているほど単純ではありません!

パフォーマンス テストでは、自動テスト ツールを使用して正常および異常のシナリオをシミュレートし、システムのさまざまなパフォーマンス指標をテストします。パフォーマンス テストでは、システムの機能、ボトルネック、主要な問題などを分析できます。この記事では、ライブ ブロードキャスト プラットフォームのいくつかのシナリオを組み合わせ、オープン ソースの SRS-Bench ツールを使用して 4 つのライブ ブロードキャスト シナリオでストレス テストを実施し、ライブ ブロードキャスト プラットフォームの基本機能をテストします。 

1. 性能評価ツールの紹介

パフォーマンス テストの範囲は、負荷テストやストレス テストなど多岐にわたります。負荷テストでは、パフォーマンス指標が満たされたときにシステムが耐えられる最大負荷を決定できます。ストレス テストでは、システムのパフォーマンスがどのような負荷条件下でであるかを決定できます。障害状態を確認し、システム パフォーマンスを取得する 提供される最大のサービス レベル 通常、パフォーマンス テストはシステムがオンラインになる前に実施されます。現在、より一般的に使用されているパフォーマンス テスト ツールは、商用テスト ツールとオープン ソース テスト ツールに分けられ、より一般的に使用されているのは Loadrunner と JMeter です。Loadrunner は、HTTP、Windows ソケット、FTP、SMTP、および DNS プロトコルをサポートしています。JMeter は、Apache 組織のために開発された Java ベースのオープン ソース ストレス テスト ツールです。元々は Web アプリケーションのテストに使用され、現在は Web-http、https、SOAP をサポートしています/Rest、FTP、SMTP、POP3、IMAP、TCP、その他のプロトコル。このテストの目的は、ライブ ブロードキャスト プラットフォームの機能をテストすることです。一般的な国内ライブ ブロードキャスト プロトコルには、RTMP、HLS、HTTP-flv、および RTP プロトコルが含まれます。テストされたライブ ブロードキャスト プラットフォームはオープンソース SRS を使用し、主に次の 3 つのプロトコルをサポートしています: RTMP /HTTP-flv/HLS。Loadrunner と JMeter は、上記のプロトコルのサポートが不十分です。二次開発ワークロードが大きい場合、調査では、SRS-Bench ツールを、複数の人がライブ ブロードキャストするためのテスト ツールとして使用できることがわかりました。同時に、複数の人が同時に視聴し、混合シーンをライブで視聴し、4 つのテスト シナリオをライブで録画します。

2. ツールのインストールと使用

1.ツールのインストール

Linux 環境で https://github.com/ossrs/srs-bench からダウンロードした SRS-Bench ソース コード パッケージを解凍して実行します。./configure && make を使用してインストールしてコンパイルします。objs ディレクトリが表示されます。各種ストレステストツールの実行プログラム(OSによってはコンパイルに失敗する場合がありますが、他のOSではコンパイルに成功したツールをコピーすることで直接使用できます)。

写真

2.ツールの使い方

SRS-Benc には主に sb_rtmp_publish、sb_rtmp_load、sb_rtmp_load_fast、sb_hls_load、sb_http_load の 5 つのツールが含まれており、具体的な使用方法は -h コマンドで確認できます。

写真

3. テスト環境の紹介

1. ライブブロードキャストサーバー

ライブ ブロードキャスト サーバーのメディア パフォーマンスをテストするときは、単一​​マシンのパフォーマンスとクラスターのパフォーマンスの両方を考慮する必要があるため、このライブ ブロードキャスト サーバーのテスト環境では、最初に単一マシンのパフォーマンスをテストし、その後クラスター環境の展開を行います。単一マシンのパフォーマンスとビジネス シナリオに基づいて推定されます。

2. を押します

プレスは複数のプッシュプル フロー プロセスを開始でき、各プロセスは最大 1,000 の同時プッシュプル フローをシミュレートできます。

3. ネットワークと負荷分散

サーバーと印刷機はすべて同じローカル エリア ネットワーク内に配置されており、ローカル エリア ネットワークはギガビット ネットワークを使用しており、ネットワーク遅延は無視できます。

4.ビデオファイルをテストする

テスト ビデオ ファイルは、Windows に付属のサンプル高解像度ビデオ wildlife.flv を使用します。ビデオ関連のパラメーターは次のとおりです。

オーディオ: プロファイル=LC、2チャンネル、44100HZ

ビデオ: プロファイル = 高、レベル = 3.1、1280x720

4. さまざまなライブ ブロードキャスト シナリオでソリューションをテストする

1. 複数人で同時にライブ配信

複数人による同時ライブ ブロードキャストは、実際には複数の人が同時にライブ ブロードキャスト サーバーにプッシュすることです。SRS-Bench を使用して、単一ノードへの同時プッシュをシミュレートできます。業界で一般的に使用されているプッシュ プロトコルは rtmp プロトコルです。 sb_rtmp_publish -i /home/aaa .flv -c 1000 -r rtmp://XXXX:1935/live/stream_1_{i} for testing. 部屋番号の設定は各プロセスを区別する必要があることに注意してください. Pressure end が実行された後sb_rtmp_publish を使用すると、各プッシュ プロセスが出力されます。インジケーターには、同時プッシュ スレッドの数、成功したアライブの数、期間、読み取りおよび書き込みトラフィックが含まれます。サーバーは netstat コマンドを使用して、プッシュ接続の数を表示できます。nmon を使用します。サーバー リソースの使用状況を表示するツールです。テスト中にプルを使用します。ストリーム プレーヤーは、複数のライブ ストリームをランダムに選択して再生し、ストリーミングの成功と再生の遅延を確認します。

テスト後、プッシュ チャネルの数が特定の値に達すると、リソースの消費が深刻になり、接続数が失われ、ビデオ再生に重大な遅延が発生するため、単一ノードが 3,000 チャネルを超えないようにすることをお勧めします。

2. 複数の人が同時にライブ配信を視聴する

複数の人が同時にライブ ブロードキャストを視聴している場合、CDN が接続されていれば、プレーヤーはストリーミング用に最も近い CDN ノードを選択します。このとき、ストリーミングの負荷は CDN にかかります。CDN が接続されていない場合は、ストリーミングの負荷がかかります。プレーヤーはライブ ソース ステーションからストリームをプルするため、テストに sb_rtmp_load を使用できます。まず、sb_rtmp_publish ツールを使用してサーバーへの 1 チャンネルのプッシュ ストリームをシミュレートし、再生できることを確認した後、コマンド sb_rtmp_load -c 1000 -r rtmp://XXXX:1935/live/stream を実行してテストします。テスト後、基本的に効果を保証することを前提として、1 つのノードでプルされる同時ストリーム数は 3,000 を超えないことを推奨します。

3. 混合シーン

需要の規模が小さいため、一部の小規模なライブ ブロードキャスト プラットフォームでは CDN に接続せず、別個のエッジ ノードをセットアップせず、プッシュ ストリーミングとプル ストリーミングの両方にオリジン サイトを直接使用します。ここでは、単一ノードのパフォーマンスを 500 ~ 1500 の同時プッシュおよびプル ストリームでテストします。

500 の同時プッシュおよびプル ストリームを例として、まず sb_rtmp_publish ツールを使用してサーバーへの 500 チャネルのプッシュ ストリームをシミュレートし、次のコマンドを実行します。

sb_rtmp_publish -i /home/aaa.flv -c 500 -r rtmp://XXXX:1935/live/stream_{i}、シナリオに従って各ビデオをストリーミングする人数を選択します。スクリプトは次のとおりです。

#! /bin/bash

{0..499} の私にとって

する

nohup ./sb_rtmp_load -c 1 -r rtmp://XXXX:1935/live/stream_{i} >load.log&

終わり

テスト後、1,500 のライブ ブロードキャスト チャネルを同時にプッシュおよびプルすると、サーバーに重大な中断負荷がかかり、実際の再生効果に大幅な遅れが生じました。混合シナリオでは 1 つのノードが 1,500 チャネルを超えないようにすることをお勧めします。

4. ライブレコーディング

トレーニングや会議などの一部のライブ ブロードキャスト シナリオでは、配布や保存などのためにライブ ブロードキャスト ビデオを保存する必要があり、ライブ ブロードキャストを録画する必要があります。まず、SRS サーバー上で録画を設定し、使用する vhost で DVR を設定します。

dvr {

     enabled      on;

     dvr_path     /nas/record/[app]/[stream].[timestamp].flv;

     dvr_plan     session;

}

SRS 構成をリロードした後、ストレス テスト側で sb_rtmp_publish ツールを使用して同時プッシュ テストを実行します。サーバー リソース、接続数、ライブ ストリーム再生の検証を監視することに加えて、録画シーンでは録画ファイル サイズも監視する必要があります。スペースの評価基準。

テスト後、録画は CPU を大量に消費します。単一ノードでプッシュして録画するチャンネルは 500 以下にすることをお勧めします。1 分あたりの録画ファイル サイズは 37.5M で、ディスク容量の参考になります。

5。結論

この記事では、オープン ソースの SRS-Bench パフォーマンス テスト ツールを使用して、オープン ソースの SRS スタンドアロン ライブ ブロードキャスト サーバーでパフォーマンス テストを実行し、4 つのシナリオのテストを通じてスタンドアロン ライブ ブロードキャスト プラットフォームの機能を発見し、強固な基盤を築きます。後続のライブ ブロードキャスト プラットフォームの推定リソースとサポート機能を提供し、強力なサポートを提供します。

最後に:以下の完全なソフトウェア テスト ビデオ チュートリアルが編集され、アップロードされています。必要な友人は自分で入手できます[100% 無料保証]

ソフトウェアテスト面接文書

私たちは高給の仕事を見つけるために勉強しなければなりません。以下の面接の質問は、アリババ、テンセント、バイトなどの一流インターネット企業の最新の面接資料であり、一部のバイトの上司が権威ある回答をしています。面接情報に基づいて、誰もが満足のいく仕事を見つけることができると思います。

おすすめ

転載: blog.csdn.net/wx17343624830/article/details/133392828