マルチメディア ファイルのダウンロード/再生時にサーバー上で何が起こりますか?

マルチメディア ファイルのダウンロード/再生時にサーバー上で何が起こりますか?

私はビデオベースのウェブサイトを持っています。約 1,000 人のユーザーが同時にビデオを視聴/ダウンロードすると、速度が低下します。

どのリソースが弱っているかを調べて増やすためにデバッグしようとしています。htopリソースの使用状況を確認するコマンドを実行しましたが、ページの読み込みが遅すぎる場合、サーバーの CPU と RAM の両方が 50% 以上空いています (その場合、単純な Web ページの読み込みに 40 秒以上かかります)。

だから、おそらく帯域幅の問題だろうと思いました。今私が知りたいのは、ビデオ ファイルがクライアントによってストリーミング/ダウンロードされているときに何が起こるかということです。

注意してください、私はすべてを同じサーバー(バックエンド/フロントエンド/データベース/ビデオファイル)に置いています

答え1

あなたの論理は間違っています。

CPU と RAM がまだ良好な場合、制限の問題が 2 つ考えられます。

  • 帯域幅
  • IO

どちらもサーバー側から確認するのは非常に簡単です。ぜひ実行してください。

今私が知りたいのは、ビデオ ファイルがクライアントによってストリーミング/ダウンロードされているときに何が起こるかということです。

ストリーミングの意味によって異なりますが、基本的にはソースからデータを取得してターゲットに転送します。これは基本的に CPU の問題ではなく、開始時に CPU をあまり使用しません。キャッシュ用に十分なストレージ (RAM 内) が構成されていて使用されている場合を除き、データはストレージから取得されます (ストレージが何であれ)。一般に、人々が知らない、気にしない領域であり、多くの場合ボトルネックになります。

その場合、単純なウェブページの読み込みには40秒以上かかります

これは、ネットワークの限界または IO の限界に達したことを示しています。IO についてはまったく話したくないというあなたの考えからすると、IO が滑稽なレベルまで過負荷になっていると思います。SSD ストレージ (多くの場合 RAID 構成) を実行しない限り、高帯域幅ネットワークの IO 予算は滑稽なほど低く、1 つのストリームで飽和させるには十分ですが、HDD ヘッドを動かさなければならない瞬間にはまったく足りません。

関連情報