博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
YouTube 的架构扩展
阅读量:2401 次
发布时间:2019-05-10

本文共 4633 字,大约阅读时间需要 15 分钟。

原贴:http://www.dbanotes.net/opensource/youtube_web_arch.html

在上,YouTube 的 Cuong Do 做了关于 的报告。视频内容在 Google Video 上有(),可惜国内用户看不到。

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

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

Web 服务器

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

视频

视频的缩略图(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 的(我知道的只有 ,参见这里). 在扩展性方面,路线也是和其他站点类似,复制,分散 IO。最终的解决之道是"分区",这个不是数据库层面的表分区,而是业务层面的分区(在用户名字或者 ID 上做文章,应用程序控制查找机制)

YouTube 也用 .

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

--EOF--

| | |
|
<script type="text/javascript"> function affiliateLink(str){ str = unescape(str); var r = ''; for(var i = 0; i < str.length; i++) r += String.fromCharCode(2^str.charCodeAt(i)); document.write(r); } affiliateLink('%3Ec%22jpgd%3F%20jvvr8--uuu%2Cvgzv/nkli/cfq%2Camo-%3Dpgd%3F62%3B%3A1%20%3COmlgvkxg%22%5Bmwp%22Qkvg%3E-c%3C'); </script>
<script type="text/javascript"> </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&cpa_choice=CAAQhaT2_gEaCI52gVKP95-sKLGsuIEBMAA&oe=UTF-8&dt=1191083642205&lmt=1190476007&format=ref_text&output=textlink&correlator=1191083642205&url=http%3A%2F%2Fwww.dbanotes.net%2Fopensource%2Fyoutube_web_arch.html&region=_google_cpa_region_&ref=http%3A%2F%2Fwww.dbanotes.net%2Farchives.html&cc=100&ga_vid=39635014.1191083642&ga_sid=1191083642&ga_hid=2066726259&flash=9&u_h=800&u_w=1280&u_ah=776&u_aw=1280&u_cd=24&u_tz=480&u_his=1&u_nplug=2&u_nmime=3" language="JavaScript1.1" type="text/javascript"></script>
<script type="text/javascript"> </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&cpa_choice=CAAQidTQgAIaCEapPfRcsfp6KN2uuIEBMAA&oe=UTF-8&dt=1191083642406&lmt=1190476007&prev_fmts=ref_text&format=ref_text&output=textlink&correlator=1191083642205&url=http%3A%2F%2Fwww.dbanotes.net%2Fopensource%2Fyoutube_web_arch.html&region=_google_cpa_region_&ref=http%3A%2F%2Fwww.dbanotes.net%2Farchives.html&cc=100&ga_vid=39635014.1191083642&ga_sid=1191083642&ga_hid=2066726259&flash=9&u_h=800&u_w=1280&u_ah=776&u_aw=1280&u_cd=24&u_tz=480&u_his=1&u_nplug=2&u_nmime=3" language="JavaScript1.1" type="text/javascript"></script>

本文相关评论|Comments(18)

的评论:

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

的评论:

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

Fenng 的评论:

@Jay:

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

的评论:

@Fenng,

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

Fenng 的评论:

@You XU,

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

Dan 的评论:

YouTube Scalability视频 Google Video在线代理地址

国内的朋友可以直接点击观看

Fenng 的评论:

@Dan, 我自己也有个 Agent,

但同样不能看

的评论:

好文,收藏至20ju.com

xyb 的评论:

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

DontAsk 的评论:

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

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

的评论:

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

的评论:

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!

的评论:

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

的评论:

51.COM在CHINAJOY大会上给我的印象就是他们送的兜子最大。

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

的评论:

非常不错的文章,对Youtube的架构有了点滴了解。

收藏至
向Fenng致谢

的评论:

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

添加评论

<script type="text/javascript"> </script> 直接 匿名评论 或者 评论这篇文章(OpenID、TypeKey...)
 
你可能感兴趣的文章
Linux启动过程综述(ibm)
查看>>
过并行化 Linux 系统服务来提高引导速度(zt)
查看>>
Congfu Xu's HomePage
查看>>
samba出错!
查看>>
服务器的提示!
查看>>
biti_rainy
查看>>
系统安装到用raid做成的逻辑驱动器上不能启动的一个原因!
查看>>
tahiti.oracle.com
查看>>
系统安装到用raid做成的逻辑驱动器上不能启动的一个原因!
查看>>
informix 10.0 extent size 的大小限制和数量限制
查看>>
zhouwf0726
查看>>
Oracle字符集问题总结(转贴)
查看>>
SuSE Linux 10.0安装oracle的时候老是提示检查操作系统版本
查看>>
64位SuSE Linux 10.0安装的时候出现黑屏
查看>>
网页特效(三)
查看>>
我的心情*
查看>>
eagle_fan
查看>>
rcp 安装配置
查看>>
etrm
查看>>
测试使用标准I/O进行Informix同时备份和恢复
查看>>