動画配信の負荷テスト

動画配信における主な負荷ポイント

動画配信サービスは、テキストや画像中心のWebサイトとは異なり、大容量のデータを継続的に、かつ多数のユーザーへ同時に届ける必要があります。

そのため、一般的なWebサービスとは異なる箇所に負荷が集中しやすく、これがボトルネックとなって再生の遅延や停止を引き起こす可能性があります。

快適な視聴体験を提供し、機会損失を防ぐためには、動画配信特有の負荷ポイントを正しく理解し、適切なテストと対策を行うことが不可欠です。具体的にどのような点が負荷となりやすいのか、詳しく見ていきましょう。

Origin/Edgeサーバーの役割と負荷

動画配信の基本的な仕組みとして、OriginサーバーとEdgeサーバー(CDN) が連携してコンテンツを配信します。Originサーバーはマスターとなる動画ファイルやライブ配信の元データを格納・保持する大元のサーバーです。

一方、Edgeサーバー (CDN: Content Delivery Network) はOriginサーバーのコンテンツをキャッシュ(一時保存)し、ユーザーの地理的に近い場所から配信する分散型サーバーネットワークです。ユーザーは最寄りのEdgeサーバーにアクセスするため、応答速度が向上し、負荷が分散される仕組みになっています。

しかし、この構成特有の負荷ポイントも存在します。

Edgeサーバーのキャパシティ

アクセスが集中する人気コンテンツやライブ配信では、Edgeサーバーの処理能力、具体的にはCPU、メモリ、ネットワーク帯域やキャッシュの容量が不足し、ボトルネックとなることがあります。特に、多数のユーザーが一斉に視聴を開始するイベントなどでは、急激な負荷上昇にEdgeサーバーが対応できるかが、安定配信の鍵となります。

Originサーバーへのアクセス集中

CDNのキャッシュが効かない状況、例えばキャッシュの有効期限が切れた直後のアクセスや、キャッシュを回避するようなパラメータ付きURLでのアクセスがあった場合などには、Originサーバーへ直接アクセスが集中することがあります。また、ライブ配信においては映像を取り込むインジェスト口として機能するため、Originサーバー自体の性能も十分に考慮しておく必要があります。

負荷分散設定の重要性

CDNの効果を最大限に引き出すためには、適切な負荷分散設定、すなわちロードバランシングが不可欠です。この設定に不備があると、特定のEdgeサーバー群に負荷が偏ってしまい、せっかくの分散効果が得られない可能性があります。

配信プロトコル(HLS等)による負荷の違い

動画配信には様々なプロトコル(通信規格)が用いられ、それぞれ特性が異なるため、負荷のかかり方も変わってきます。

HLS (HTTP Live Streaming)

Apple社が開発したHLSは、現在主流のプロトコルです。動画を短いセグメントファイル(TSファイルなど)に分割し、それを標準的なHTTP通信で配信します。HTTPベースであるためCDNとの相性が良く、キャッシュによる負荷分散効果が高いのが特徴です。

サーバー側は多数のファイルリクエストを効率的に処理する必要がありますが、広く使われているWebサーバー技術で対応しやすいです。ただし、仕組み上、遅延が数秒から数十秒程度発生しやすいという側面もあります。

MPEG-DASH (Dynamic Adaptive Streaming over HTTP)

HLSと同様にHTTPを用いて動画をセグメント化し配信する国際標準規格がMPEG-DASHです。基本的な動作原理や負荷特性はHLSに類似しており、HTTPベースのためCDNによるキャッシュ効果が期待できます。

RTMP (Real Time Messaging Protocol)

Adobe社によって開発されたRTMPは、かつてFlash Playerと共に広く利用されました。現在でもライブ配信の送信用、つまりエンコーダーから配信用サーバーへ映像を送信する段階で使われることがあります。

このプロトコルは持続的なコネクションを維持するため、同時接続数が増加するとサーバー側のコネクション管理負荷が高まる傾向にあります。また、HTTPベースのプロトコルと比較してCDNでのキャッシュが効きにくい場面もありますが、低遅延での通信が可能です。

WebRTC (Web Real-Time Communication)

WebRTCは、ブラウザ間で直接リアルタイム通信を行うための技術です。非常に低遅延(1秒未満)な配信が実現できるため、インタラクティブな配信などで活用されます。

大規模配信を行う場合、通信相手を見つけるためのシグナリングサーバーや、P2P通信が確立できない場合に中継役となるTURNサーバーなどに負荷がかかります。また、SFU(Selective Forwarding Unit)のようなサーバー構成によって負荷の性質が変わるため、システム設計段階での負荷への考慮が特に重要になります。

負荷テストを行う際は、実際に利用するプロトコルのこれらの特性を深く理解し、それぞれのリクエスト方法や接続維持の挙動などを模倣したシナリオを設計することが求められます。

ビットレート・画質変換による負荷

動画のビットレートは1秒間あたりに送受信されるデータ量を示し、画質に直結しますが、データ量、つまり負荷にも大きく影響します。

ネットワーク帯域への負荷

ビットレートが高いほどデータ量は大きくなります。高画質の動画を多数のユーザーが同時に視聴すると、Edgeサーバーやネットワーク全体の総転送量が膨大になり、利用可能な帯域幅を圧迫する可能性があります。これが再生の遅延やバッファリング、最悪の場合は配信停止の直接的な原因となり得ます。

ストレージ容量への影響

高画質で長時間の動画ファイルは、当然ながらファイルサイズも大きくなります。これはOriginサーバーや、キャッシュを保持するEdgeサーバーのストレージ容量を圧迫する要因となります。特に多数のコンテンツを保持する必要があるサービスでは重要な考慮事項です。

トランスコード処理の負荷

多くの動画配信サービスでは、様々なデバイス(PC、スマホ、タブレット等)や異なるネットワーク環境(高速回線、モバイル回線等)に最適化された動画を提供するため、元の動画ファイルを複数のビットレートや解像度に変換する「トランスコード」という処理を行います。これはアダプティブビットレート配信(ABR)と呼ばれ、視聴者側の環境に応じて最適な品質の動画を選択できるようにする技術です。

このトランスコード処理は、サーバーのCPUに対して非常に大きな負荷をかけます。VOD(オンデマンド配信)の場合は事前にファイルを変換しておくことが可能ですが、ファイル数とストレージ使用量が増加します。一方、ライブ配信でリアルタイムにトランスコードを行う場合は、配信サーバーに極めて高いCPU性能が要求され、ここがボトルネックとなりやすいポイントの一つです。

したがって負荷テストでは、想定される視聴ビットレート、アダプティブビットレート配信の有無、ライブ配信時のリアルタイムトランスコードの実行などを考慮し、ネットワーク帯域だけでなく、ストレージ容量やサーバーのCPU負荷についても計測・評価することが重要です。

同時接続数・リアルタイム配信の影響

動画配信サービス、特に注目度の高いライブイベントなどでは、同時接続数が短時間に急増する状況が頻繁に発生します。

サーバーリソースの消費

接続するユーザー数が増えれば増えるほど、単純計算でサーバーが消費するリソース(CPU、メモリ、ネットワーク帯域、許容コネクション数など)も増加します。システム全体として、想定される瞬間的な最大同時接続数に耐えうるキャパシティを持っているかどうかが、サービスの安定性を左右します。

Thundering Herd(サンダリング・ハード)問題

イベント開始時刻や試合開始のホイッスルと同時に、といった特定のタイミングで多数のユーザーが一斉にアクセス(視聴開始)を試みることで、サーバーへのリクエストが短時間に殺到し、システムに予測を超える急激な負荷上昇を引き起こす現象を「Thundering Herd」と呼びます。これに対する備えが不十分だと、レスポンスの大幅な悪化やサービスダウンにつながる危険性があります。

リアルタイム性(ライブ配信)特有の負荷

ライブ配信(リアルタイム配信)は、VODとは異なる負荷特性を持ちます。視聴者にできるだけ遅延なく映像を届ける必要性から、低遅延プロトコル(WebRTCやLow-Latency HLSなど)の利用や、HLSのセグメント時間を短くするなどの工夫が求められますが、これらは一般的にサーバー負荷を高める方向に作用します。

また、常に最新の映像データを配信する必要があるため、VODと比較してCDNのキャッシュ効率が低下しやすく、結果としてOriginサーバーや配信サーバーへの負荷が高まる傾向にあります。さらに、視聴者間での再生タイミングをある程度同期させるための処理や、配信状況を制御するためのメタデータの通信なども、規模によっては無視できない負荷要因となり得ます。

負荷テスト設計の5つのステップ

動画配信の負荷テストは「とりあえずツールを動かす」だけでは十分な成果を得られません。目的を明確にし、体系的に設計することで、課題の発見、評価、そして改善へと繋げることができます。ここでは、効果的な負荷テストを設計するための5つのステップを解説します。

STEP1: テストシナリオ(負荷条件)の定義

効果的な負荷テストの最初のステップは、どのような状況を再現するか、すなわちテストシナリオを具体的に定義することです。このシナリオが曖昧だと、テスト結果の評価やボトルネックの特定が困難になります。

負荷レベル(対象ユーザー数)の定義

まず、ターゲットとするユーザー数を定義します。サービスが目標とするピーク時の最大同時接続数、通常時の平均的な接続数などを想定し、テストで再現すべき負荷の規模を明確にします。

ユーザー行動と配信条件の具体化

次に、ユーザーがどのような操作を行うかを定義します。例えば、特定の動画(VOD)を再生する、ライブ配信に参加する、再生中にシークバーを操作する、画質を変更するといった具体的な行動パターンを洗い出します。さらに、配信されるコンテンツの種類(VODかライブか)、想定される視聴ビットレート(アダプティブビットレート配信の場合はその挙動)、平均的な視聴時間なども重要な条件として具体化します。

現実的なシナリオ構成

これらの条件を組み合わせて、現実の利用状況に近い負荷を再現するシナリオを作成します。アクセス数を段階的に増加させるランプアップ期間や、テスト終了時のランプダウン期間を設定することも、システムの挙動をより正確に把握するために有効な手法です。

STEP2: 主要な計測指標の選定

テストシナリオが決まったら、次にテスト中に何を計測し、評価の根拠とするか、すなわち主要な計測指標を選定します。適切な指標を選ばなければ、テストを実行してもパフォーマンスの良し悪しを判断できません。

ユーザー体験(UX)に関する指標

サービス品質に直結するため最も重要な指標群です。具体的には、動画が再生開始されるまでの時間(起動時間)、再生中のバッファリング(再生停止)の発生頻度や総時間、再生エラーの発生率、シーク操作後の再開時間、画質切り替えにかかる時間などが挙げられます。これらの悪化はユーザー満足度の低下に直結します。

サーバーリソースに関する指標

ボトルネックの特定に不可欠な指標群です。サーバーのCPU使用率、メモリ使用量、ネットワークインターフェース(NIC)の送受信量(帯域使用率)、ディスクの読み書き速度(I/O)、サーバーが1秒あたりに処理するリクエスト数(QPS/RPS)、確立されているコネクション数などを監視します。これらのリソース状況からシステムの限界点を探ります。

システム全体・CDNに関する指標

個々のサーバーリソースに加えて、システム全体のスループット(例:サポート可能な最大同時視聴者数、配信された総データ量)も評価します。また、CDNを利用している場合はキャッシュヒット率やEdgeサーバーからの応答時間(レイテンシ)なども、パフォーマンスを左右する重要な指標となります。

STEP3: サーバー種類別の監視ポイント特定

動画配信システムは多くの場合、複数の役割を持つサーバー群から構成されています。システム全体のパフォーマンスを正確に把握し、ボトルネックを特定するためには、各サーバーの種類に応じて特に注意すべき監視ポイントを事前に特定しておくことが重要です。

Web/API・DBサーバーの監視点

ユーザー認証や動画メタデータの提供などを行うWebサーバーやAPIサーバーがあれば、リクエストの処理時間(レイテンシ)やエラーレート、CPU・メモリ使用率を監視します。データベースサーバーでは、クエリの応答速度、デッドロックの発生、コネクションプールの状況、ディスクI/O負荷などが重要な監視対象です。

インジェスト・トランスコードサーバーの監視点

ライブ配信における映像・音声の受け口となるインジェストサーバーや、リアルタイムでのトランスコードを行うサーバーでは、CPU使用率が特に重要になります。ネットワークの入力帯域や処理の安定性も確認が必要です。

Originサーバーの監視点

コンテンツの原本を保管するOriginサーバーでは、ディスクI/O性能やネットワークの出力帯域が重要です。特にCDNキャッシュが効かない場合の負荷状況を注視します。

Edgeサーバー(CDN)の監視点

ユーザーに最も近い場所でコンテンツを配信するEdgeサーバー(CDN)では、ネットワークの出力帯域(配信帯域)が最重要監視対象です。加えて、SSL/TLS処理や配信ロジック実行のためのCPU・メモリ使用率、ユーザーへの応答時間、キャッシュヒット率もパフォーマンスに大きく影響します。

STEP4: パフォーマンス目標(閾値)の設定

計測指標と監視ポイントが決まったら、次にそれぞれの指標に対して「どの程度の値であれば問題ないか」「どの値を超えたら危険か」という具体的な基準値(閾値)を設定します。この閾値がなければ、テスト結果を客観的に判断できません。

閾値設定の根拠

閾値は、サービスの品質目標(SLO: Service Level Objective)や、過去の運用実績、ビジネス要件、あるいは業界のベストプラクティスなどを基に設定します。なぜその値なのか、根拠を明確にしておくことが重要です。

具体的な閾値の例

例えば、ユーザー体験に関する指標であれば、「動画の起動時間は3秒以内」「バッファリング発生率は0.5%未満」といった目標値を定めます。サーバーリソースに関しても、「CPU使用率は常時70%以下、ピーク時80%未満」「ネットワーク帯域使用率は最大容量の80%未満」などの基準を設定します。

閾値レベルの設定

多くの場合、「正常(Acceptable)」「注意(Warning)」「異常(Critical)」のように複数のレベルで閾値を設定します。「注意」レベルを超えたら原因調査を開始し、「異常」レベルはサービス品質への重大な影響やシステムダウンの危険性を示唆します。これにより、テスト結果に対するアクションを段階的に判断できます。

STEP5: 再現性の高いテスト環境の構築

負荷テストの信頼性を担保し、改善効果を正しく測定するためには、テストを実施する環境そのものが非常に重要です。特に、毎回同じ条件でテストを実行できる「再現性」が求められます。

本番環境との近似性(Fidelity)と隔離

理想的なテスト環境は、本番環境と可能な限り近い構成(サーバー、ネットワーク、設定等)を持つことです。これによりテスト結果の信頼性が高まります。ただし、本番環境への影響を避けるため、テストは隔離された専用環境で行うのが原則です。

テスト環境の十分なリソース確保

テスト環境自体がボトルネックにならないよう、十分なリソースを確保する必要があります。特に負荷を発生させるクライアント(ロードジェネレーター)側のマシンリソースやネットワーク帯域は重要です。

再現性を高める自動化と一貫性

Infrastructure as Code (IaC) ツールや構成管理ツールを用いて環境構築を自動化することで、人的ミスを防ぎ、常に同じ状態からテストを開始できます。テストデータの準備や投入方法、負荷テストツールのパラメータも厳密に管理し、テスト条件の一貫性を保ちます。

監視ツールの導入

テスト環境にも本番環境同等の監視ツールを導入し、STEP2で選定した指標を確実に計測できるようにしておく必要があります。信頼性と再現性が確保された環境で初めて、負荷テストの結果は意味を持ちます。

まとめ

安定した動画配信サービスを実現するためには、その特有の負荷発生箇所を把握し、計画的な負荷テストを実施することが極めて重要です。

動画配信では、Origin/Edgeサーバーといった配信基盤、HLSやWebRTCなどの配信プロトコル、ビットレートや画質変換処理、そして多数の同時接続やライブ配信のリアルタイム性などが、一般的なWebサービスとは異なる特有のボトルネックを生み出す可能性があります。

適切な負荷テストを通じて潜在的な問題を特定・改善し、システム全体のパフォーマンスと安定性を確保することで、最終的にユーザーへ快適な視聴体験を提供することが可能になります。

負荷テストサービス会社
おすすめの3選を見る

改善までお任せできる
負荷テストサービス3選

負荷テストサービス会社は数多くありますが、それぞれ得意とする領域は違います
原因特定力が高くスピーディに解決できる会社もあれば、アフターサポートが手厚い大手ソフトウェアテスト会社、インフラレベルの大規模テスト実績が豊富な会社など、強みも様々。
ここでは代表的な3つのニーズに分けて、おすすめの会社を紹介しています。

2週間でトラブルの原因特定
スピーディな負荷改善
を求めるなら
Airitech
おすすめの理由
  • トラブルシュートに強く、たった2週間で不具合を特定できる
  • 必要があれば前工程の性能改善に踏み込み、テストを実施してくれる
  • 多様な観点からシナリオを提示し、検証後の実装まで動いてくれる

\スピーディな負荷改善/

原因特定が早い
Airitechの負荷テストを
公式サイトで詳しく見る

Airitechの負荷テストについて
電話で問い合わせる

Airitechの負荷テスト
についてもっと詳しく見る

幅広いケースの改善実績あり
大手の安心サポート
を求めるなら
SHIFT
おすすめの理由
  • 改善実績が豊富で、自身のケースにおける適切な解答が分かる
  • 土日祝も対応の手厚いサポートで、安定稼働を実現できる
  • 第三者検証の老舗だから、複合的な機能テストも依頼できる

\安心サポート/

安定稼働を徹底サポート
SHIFTの負荷テストを
公式サイトで詳しく見る

SHIFTの負荷テストについて
電話で問い合わせる

SHIFTの負荷テスト
についてもっと詳しく見る

インフラレベルの不具合も改善大規模高負荷テスト
を求めるなら
ディーネット
おすすめの理由
  • JMeterのマスタ・スレーブ構成により、大規模負荷テストができる
  • 運用代行がメインの会社だから、テスト後の環境安定化に強い
  • 高負荷障害や大規模インフラなど、長大テストの改善にも対応できる

\大規模&高負荷/

大規模環境に強い
ディーネットの負荷テスト
を公式サイトで詳しく見る

ディーネットの負荷テストについて
電話で問い合わせる

ディーネットの負荷テスト
についてもっと詳しく見る

改善アクションまで
任せられる
負荷テストサービス会社3選を見る