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 ...
  • luqin1988
  • luqin1988
  • 2013年05月28日 10:52
  • 4408

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

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

YouTube 的架构扩展

原贴:http://www.dbanotes.net/opensource/youtube_web_arch.htmlYouTube 的架构扩展 作者: Fenng | 可以转载, ...
  • chinalinuxzend
  • chinalinuxzend
  • 2007年09月30日 00:44
  • 881

大型WEB网站架构深入分析

大型WEB网站架构深入分析 ---本文转载自互联网 1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个...
  • zithan
  • zithan
  • 2012年07月24日 20:09
  • 6352

YouTube 的架构扩展(转)

作者:Fenng |English Version 【可以转载, 转载时务必以超链接形式标明文章原始出处和作者信息及版权声明】网址:http://www.dbanotes.net/opensource...
  • ok7758521ok
  • ok7758521ok
  • 2007年07月25日 17:00
  • 963

YouTube 的架构扩展 - DBA notes

导读:   在西雅图扩展性的技术研讨会上,YouTube 的 Cuong Do 做了关于 YouTube Scalability的报告。视频内容在 Google Video 上有(地址),可惜国内用户...
  • rikee19810706
  • rikee19810706
  • 2007年12月11日 13:56
  • 220

大型WEB网站架构深入分析

大型WEB网站架构深入分析 ---本文转载自互联网 1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实...
  • Yelbosh
  • Yelbosh
  • 2016年05月26日 21:02
  • 1482

大型网站架构技术方案集锦

1. PlentyOfFish 网站架构学习 http://www.dbanotes.net/arch/plentyoffish_arch.html 采取 Windows 技术路线的 Web 2....
  • madun
  • madun
  • 2012年12月18日 10:16
  • 2624

关于youtube上Android Performance Patterns的总结(部分)

1.熟悉android studio关于Logcat,Memory,CPU,GPU,Network分析窗口的使用。一旦你配置的内存突然下降,那么应该是GC在发挥作用。这些垃圾收集活动通常不会太大影响性...
  • he_world
  • he_world
  • 2016年04月24日 20:21
  • 1435

Exchange 2003 升级到Exchange 2010 之扩展当前森林及域架构!

1.     Exchange 架构扩展是安装Exchange 2010的前提条件,我们必须对AD架构扩展,对架构扩展必须在FSMO Schema Owner 角色所在站点进行扩展。所以扩展前请利用N...
  • fogyisland2000
  • fogyisland2000
  • 2012年04月22日 11:13
  • 4920
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:YouTube 的架构扩展
举报原因:
原因补充:

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