YouTube 的架构扩展

转载 2007年09月30日 00:44:00
原贴:http://www.dbanotes.net/opensource/youtube_web_arch.html

YouTube 的架构扩展

西雅图扩展性的技术研讨会上,YouTube 的 Cuong Do 做了关于 YouTube Scalability 的报告。视频内容在 Google Video 上有(地址),可惜国内用户看不到。

Kyle Cordes 对这个视频中的内容做了介绍。里面有不少技术性的内容。值得分享一下。(Kyle Cordes 的介绍是本文的主要来源)

简单的说 YouTube 的数据流量, "一天的YouTube流量相当于发送750亿封电子邮件.", 2006 年中就有消息说每日 PV 超过 1 亿,现在? 更夸张了,"每天有10亿次下载以及6,5000次上传", 真假姑且不论, 的确是超乎寻常的海量. 国内的互联网应用,但从数据量来看,怕是只有 51.com 有这个规模. 但技术上和 YouTube 就没法子比了.

Web 服务器

YouTube 出于开发速度的考虑,大部分代码都是 Python 开发的。Web 服务器有部分是 Apache, 用 FastCGI 模式。对于视频内容则用 Lighttpd 。据我所知,MySpace 也有部分服务器用 Lighttpd ,但量不大。YouTube 是 Lighttpd 最成功的案例。(国内用 Lighttpd 站点不多,豆瓣用的比较舒服。by Fenng)

视频

视频的缩略图(Thumbnails)给服务器带来了很大的挑战。每个视频平均有4个缩略图,而每个 Web 页面上更是有多个,每秒钟因为这个带来的磁盘 IO 请求太大。YouTube 技术人员启用了单独的服务器群组来承担这个压力,并且针对 Cache 和 OS 做了部分优化。另一方面,缩略图请求的压力导致 Lighttpd 性能下降。通过 Hack Lighttpd 增加更多的 worker 线程很大程度解决了问题。而最新的解决方案是起用了 Google 的 BigTable, 这下子从性能、容错、缓存上都有更好表现。看人家这收购的,好钢用在了刀刃上。

出于冗余的考虑,每个视频文件放在一组迷你 Cluster 上,所谓 "迷你 Cluster" 就是一组具有相同内容的服务器。最火的视频放在 CDN 上,这样自己的服务器只需要承担一些"漏网"的随即访问即可。YouTube 使用简单、廉价、通用的硬件,这一点和 Google 风格倒是一致。至于维护手段,也都是常见的工具,如 rsync, SSH 等,只不过人家更手熟罢了。

数据库

YouTube 用 MySQL 存储元数据--用户信息、视频信息什么的。数据库服务器曾经一度遇到 SWAP 颠簸的问题,解决办法是删掉了 SWAP 分区! 管用。

最初的 DB 只有 10 块硬盘,RAID 10 ,后来追加了一组 RAID 1。够省的。这一波 Web 2.0 公司很少有用 Oracle 的(我知道的只有 Bebo,参见这里). 在扩展性方面,路线也是和其他站点类似,复制,分散 IO。最终的解决之道是"分区",这个不是数据库层面的表分区,而是业务层面的分区(在用户名字或者 ID 上做文章,应用程序控制查找机制)

YouTube 也用 Memcached.

很想了解一下国内 Web 2.0 网站的数据信息,有谁可以提供一点 ?

--EOF--

| | Comments (18) | | Edit

Monetize Your Site
<script type="text/javascript"><!-- google_ad_client = "pub-2198040673582211"; google_ad_output = "textlink"; google_ad_format = "ref_text"; google_cpa_choice = "CAAQhaT2_gEaCI52gVKP95-sKLGsuIEBMAA"; //--> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/cpa/ads?client=ca-pub-2198040673582211&amp;cpa_choice=CAAQhaT2_gEaCI52gVKP95-sKLGsuIEBMAA&amp;oe=UTF-8&amp;dt=1191083642205&amp;lmt=1190476007&amp;format=ref_text&amp;output=textlink&amp;correlator=1191083642205&amp;url=http%3A%2F%2Fwww.dbanotes.net%2Fopensource%2Fyoutube_web_arch.html&amp;region=_google_cpa_region_&amp;ref=http%3A%2F%2Fwww.dbanotes.net%2Farchives.html&amp;cc=100&amp;ga_vid=39635014.1191083642&amp;ga_sid=1191083642&amp;ga_hid=2066726259&amp;flash=9&amp;u_h=800&amp;u_w=1280&amp;u_ah=776&amp;u_aw=1280&amp;u_cd=24&amp;u_tz=480&amp;u_his=1&amp;u_nplug=2&amp;u_nmime=3" language="JavaScript1.1" type="text/javascript"></script> Get Firefox with Google Toolbar for better browsing
<script type="text/javascript"><!-- google_ad_client = "pub-2198040673582211"; google_ad_output = "textlink"; google_ad_format = "ref_text"; google_cpa_choice = "CAAQidTQgAIaCEapPfRcsfp6KN2uuIEBMAA"; //--> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/cpa/ads?client=ca-pub-2198040673582211&amp;cpa_choice=CAAQidTQgAIaCEapPfRcsfp6KN2uuIEBMAA&amp;oe=UTF-8&amp;dt=1191083642406&amp;lmt=1190476007&amp;prev_fmts=ref_text&amp;format=ref_text&amp;output=textlink&amp;correlator=1191083642205&amp;url=http%3A%2F%2Fwww.dbanotes.net%2Fopensource%2Fyoutube_web_arch.html&amp;region=_google_cpa_region_&amp;ref=http%3A%2F%2Fwww.dbanotes.net%2Farchives.html&amp;cc=100&amp;ga_vid=39635014.1191083642&amp;ga_sid=1191083642&amp;ga_hid=2066726259&amp;flash=9&amp;u_h=800&amp;u_w=1280&amp;u_ah=776&amp;u_aw=1280&amp;u_cd=24&amp;u_tz=480&amp;u_his=1&amp;u_nplug=2&amp;u_nmime=3" language="JavaScript1.1" type="text/javascript"></script> Generate revenue from your website. Google AdSense.

本文相关评论|Comments(18)

Jay 的评论:

为什么绝大多数采用MySQL而不是Oracle? LAMP是主要因素吗..Oracle太庞大了..

cocobear 的评论:

不错的文章,似乎很少有这么全面的对一个网站架构的介绍。

Fenng 的评论:

@Jay:

MySQL 是 OpenSource 软件,这一点无论如何不要忽略. 另外一点如你所说, Oracle 太庞大了,臃肿. 有些方面就不够灵活.

You XU 的评论:

@Fenng,
删掉了不管用. 他原话说的可能是: But we tried. 底下观众全笑了.
不过我是很久前看的了, 细节也不能确定/

Fenng 的评论:

@You XU,

视频我到现在还没有看到。还真不确定

Dan 的评论:

YouTube Scalability视频 Google Video在线代理地址
国内的朋友可以直接点击观看
http://www.instantmastercard.info/index.php?q=aHR0cDovL3ZpZGVvLmdvb2dsZS5jb20vdmlkZW9wbGF5P2RvY2lkPS02MzA0OTY0MzUxNDQxMzI4NTU5&hl=2ed

Fenng 的评论:

@Dan, 我自己也有个 Agent,

但同样不能看

草根网 的评论:

好文,收藏至20ju.com

xyb 的评论:

豆瓣同样是Python(Quixote, fastcgi)+MySQL+memcached+lighttpd(包括处理动态请求和静态文件)。

DontAsk 的评论:

--------国内的互联网应用,但从数据量来看,怕是只有 51.com 有这个规模.

别开玩笑了!51根本不值一提

qq 的评论:


Give me your email,I have
downloaded this video and can share with you.

###### info about youtube tech video

size:
flv 90mb
divx 300mb
time:
50min

qq 的评论:


Give me your email,I have
downloaded this video and can share with you.

###### info about youtube tech video

size:
flv 90mb
divx 300mb
time:
50min

Fenng 的评论:

@DontAsk:

51.com 一天增加 1T 数据。你说值得提一下么?

Keen 的评论:

keenkuang@gmail.com

Thx!

HD 的评论:

呵呵,也不用太重阳没外。其实国内做的不错的也大有人在。只不过少有国外这么open的来谈罢了。国内的视频网站大多数在使用服务商的cdn,这样就用钱解决了不少问题,所以也有不少遗憾。。。

Tenfire 的评论:

51.COM在CHINAJOY大会上给我的印象就是他们送的兜子最大。
前段时间每天在donews上都可以看到他们炒自己所谓的“招兵买马”。
上述文章虽然对于51.com只提及到了一次,但我想也是这篇文章的“核心”所在。


阿泰 的评论:

非常不错的文章,对Youtube的架构有了点滴了解。
收藏至
http://www.atdream.com/blog/article.asp?id=312
向Fenng致谢

9fav 的评论:

www.9fav.com 也是基于lighttpd 的,但开发语言不详?

添加评论

直接匿名评论 或者 登录 评论这篇文章(OpenID、TypeKey...)
 

相关文章推荐

YouTube网站架构

YouTube的成长速度惊人,目前每天视频访问量已达1亿,但站点维护人员很少。他们是如何管理,以实现如此强大供应能力的?被Google收购后,又在走什么样的发展道路呢? 平台 l  Apache ...

youtube系统架构

  • 2014年03月17日 14:04
  • 24KB
  • 下载

优酷、YouTube、Twitter及JustinTV视频网站架构设计笔记

本文是整理的关于优酷、YouTube、Twitter及JustinTV几个视频网站的架构或笔记,对于不管是视频网站、门户网站或者其它的网站,在架构上都有一定的参考意义,毕竟成功者的背后总有值得学习的地...

YouTube架构学习体会

这几天一直在关注和学习一些大型网站的架构,希望有一天自己也能设计一个高并发、高容错的系统并能应用在实践上。今天在网上找架构相关的资料时,看到一个被和谐的视频网站YouTube的架构分析,看了以后觉得自...

优酷、YouTube、Twitter及JustinTV视频网站架构设计笔记

本文是整理的关于优酷、YouTube、Twitter及JustinTV几个视频网站的架构或笔记,对于不管是视频网站、门户网站或者其它的网站,在架构上都有一定的参考意义,毕竟成功者的背后总有值得学习的地...
  • joeyon
  • joeyon
  • 2014年10月08日 16:27
  • 561

YouTube 架构

这几天一直在关注和学习一些大型网站的架构,希望有一天自己也能设计一个高并发、高容错的系统并能应用在实践上。今天在网上找架构相关的资料时,看到一个被和谐的视频网站YouTube的架构分析,看了以后觉得自...

YouTube网站架构

YouTube的成长速度惊人,目前每天视频访问量已达1亿,但站点维护人员很少。他们是如何管理,以实现如此强大供应能力的?被Google收购后,又在走什么样的发展道路呢? 平台 l  Apa...

优酷、YouTube、Twitter及JustinTV视频网站架构设计笔记

目录(?)[-] 优酷视频网站架构YouTube网站架构Twitter网站架构JustinTV网站架构 本文是整理的关于优酷、Y...

MySpace,YouTube,Flickr等各大网站架构总结

各大网站架构总结笔记 记得在大学里不止一次关注网站架构方面的东西了,但每次都是泛泛了解,也没有着重记录,一段时间后对各种架构的思想也就模糊了。这几天不知怎么的又心血来潮(可能是快毕业了冲动了)想深入...
  • aw344
  • aw344
  • 2013年02月19日 16:44
  • 410

优酷、YouTube、Twitter及JustinTV视频网站架构设计笔记

本文是整理的关于优酷、YouTube、Twitter及JustinTV几个视频网站的架构或笔记,对于不管是视频网站、门户网站或者其它的网站,在架构上都有一定的参考意义,毕竟成功者的背后总有值得学习的地...
  • joeyon
  • joeyon
  • 2015年07月10日 17:29
  • 1030
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:YouTube 的架构扩展
举报原因:
原因补充:

(最多只允许输入30个字)