Hatena::ブログ(Diary)

naoyaのはてなダイアリー

April 07, 2006

YouTube の負荷

なんつったって動画ですよ。 ブログとかmixi日記のようなテキストレベルのコンテンツに比べて、はるかにサーバーにかかる負荷は高いはずです。

FPN-ニュースコミュニティ- YouTubeにみるチープレボリューションの凄さ

YouTube と mixi を比較して "負荷" の話をしていて、「動画配信だから負荷が高い」と断定していますが、これは何を"負荷"とするかにもよるかなと思います。

"負荷" というと CPU load や I/O などリソースの消費っぷりを指す言葉というイメージがありますが。(一般的には違うものでしょうか?) そういう意味での負荷で言ったら、「YouTube = 動画 / mixi = テキストだから YouTube の方が負荷が高い」という断定はやや微妙です。負荷の種類が違うのです。

YouTube のシステムを見たときにその焦点になるのは、まず第一にネットワーク帯域。第二にストレージをどうしているかというところじゃないかなと思います。動画配信にリソースがいるポイントは、ネットワーク帯域とディスク I/O です。つまり YouTube の負荷分散で気になるところは

  • ネットワーク帯域
  • ストレージ
    • 容量の管理
    • 動画を格納しているストレージサーバーの I/O

あたりです。一方の mixi の方はというと、テキストコンテンツですが、その負荷はファイル配信などではなく、Web+DB アプリケーションとしての負荷が中心です。つまり、

  • サーバーの CPU / メモリリソース
    • Web サーバーのリソース消費
    • DB サーバーのリソース消費
      • CPU load
      • I/O
      • パーティショニングどうしてるの? とか

というところが焦点になると。この辺だいぶ種類が違うわけです。なので YouTube と mixi を比較して負荷の話をするのはあまり良い例ではないと思います。

YouTube にも WEB+DB アプリケーションの部分があるので、そういう意味では一般的なウェブサイトと同じ負荷分散の部分でも苦労はしてそうですが、多くの人が YouTube のシステムをみてすごいと思っているのはそこではなく、動画配信をどうしているかという点です。

で、その YouTube ですが。まずネットワーク帯域。

日本の場合、高品質で高速な回線を比較的低コストで借りることができるのですが、海の向こうでの回線事情はだいぶ異なるので、その辺がとても気になる。この辺は僕の知る範囲にヒントがないのでぜんぜん分からない。ほんとにチープレボリューションの恩恵を受けれてるの? という疑いすらある。日本でも Gyao の帯域が大きくてバックボーン業者が云々みたいな話しが盛り上がってました。そういうのを見てると回線周りのインフラは、ある一定の閾値を超えるとチープ革命の恩恵は受けられないんじゃないかな、と個人的にそう見てます。

一方のストレージ。

あれだけたくさんの動画ファイル格納しつつ、また満足のいくスループットでそれを返すディスク を普通に買おうとするとン千万〜ン億円する代物になってしまうので、おそらくそこは安いディスクを物理的に分散させて、アプリケーションから透過的に扱える仕組みを持っているのではないかなと予想してます。この分散ストレージの技術あるいはノウハウが、YouTube の持つ参入障壁じゃないかなあ。これで EMC とかのファイルサーバー使ってますとかだったらアレだけど。(安物でなんとかしようとしてるウェブ企業にとっては、それはそれで参入障壁だろうけども)

tokurikitokuriki 2006/04/07 11:43 なるほど、そういうことですか。
詳しい解説有難うございます。

個人的には通信事業者出身なので、ついネットワーク帯域の負荷を中心に物事を考えてしまうんですが、それをついついサーバー(≒サーバー+その回線にかかる負荷)と書いてしまいました。
サーバー側の人からしたら全く違う話ですね。修正しときます。

でも、実際、YouTubeのネットワークってどうなってるのか本当に知りたいです。
誰か教えてくれないかなー。

yappoyappo 2006/04/07 13:03 あとは、開きっぱなしのソケットも。
(flashで動画一気にダウンロードさせてますよね?)

kdaibakdaiba 2006/04/07 13:58 webサーバはapache + mod_python + php,配信サーバはlighttpdが動いてますね.配信サーバは沢山あるみたいですが,たぶんリバースプロキシーなんでしょう.試しに100MB近いファイルをアップロードしてみたら,10分ほどで配信可能になってました.エンコーダはオープンソースじゃないと思うので,エンコーダには相当コストかかるんでないかと思います.動画は1本あたりのファイルサイズがテキストファイルと比較して大きいので,独自の分散ファイルシステムを作ってるのかもしれないですね.

創業者の経歴紹介
http://tinyurl.com/zmugm
操業当初の様子
http://www.youtube.com/blog?entry=MykmTeTiooA
最近の社内
http://www.youtube.com/blog?entry=LeAltgu_pbM
webサーバ
http://uptime.netcraft.com/up/graph?site=www.youtube.com
配信サーバ
http://uptime.netcraft.com/up/graph?site=v78.youtube.com

yassu_gyassu_g 2006/04/07 14:20 使ったこと無いけど、Web+DB アプリケーションの部分は
youtubeにもあるんじゃないでしょうか?
ただのアップロードファイル置き場じゃないんでしょ。

naoyanaoya 2006/04/07 14:22 ”YouTube にも WEB+DB アプリケーションの部分があるので、” と書いたつもりですが。

yassu_gyassu_g 2006/04/07 14:23 そっか。すみません。

jpmasahirojpmasahiro 2006/04/07 18:24 配信サーバはLimelight NetworksのCDNサービスを使ってますね。

hatena?hatena? 2006/04/07 19:47 Gyaoとかの負荷はどぅなってんでしょうかねぇ

kdaibakdaiba 2006/04/07 20:20 USだと,”For Flash streaming, I have seen $.75 - $1.25 per GB transferred.”だそうです.
http://tinyurl.com/h8rh7
IPアドレスブロック,/22をひとつと/23を二つ持ってますね. > youtube
http://www.robtex.com/r/as36561
あ,でも登録日が2006/3/30だから,まだ使ってないかも