作者文章: Fenng

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

关于 Fenng.com 的趣事

第一幕 (2007)

我在网上的 ID “Fenng” 是我造出来的一个词,记得当时是搜索不到具体意思的,个别能看到的结果也都是拼写错误。前几天偶然好奇,看看 Fenng.com 这个域名是否被注册了,显示是未注册。然后就没当回事。

昨天晚上,无聊之中又搜索了一下,发现已经被注册。还有点患得患失,被人抢注了,唉.

看一下注册日期,居然就是当天,再看一下注册人,Jackie Geng,啊,很熟悉,以前的同事老 Geng 就是这个英文名字。莫非,是他? 刚好这个时候,Jackie 在 MSN 上给我打招呼。
我直接问他:FENNG.com 这个域名是你注册的?
他很惊讶:这么快就被你发现了?
我说:我也是偶然看到的被注册了。
他告诉我刚注册没有几分钟,还热乎的呢。
想想,的确很神奇。不由得哈哈大笑。

老 Geng 很痛快的把这个域名送给我了,有机会一定要请他吃个饭。

第二幕 (2010)

且说这个域名我拿到之后还真的没怎么当回事,要过户到我名下还比较麻烦,所以一直没启用,结果一年后没留意,居然过期了。后来等想起来后悔已晚,去年想起来这事情查询了一下,发现又被别人注册,仔细一看联系人,居然是我在网络上认识朋友,还是我的本家。抱着试探的心态问了一下能否转让给我,这位朋友非常爽快,同意转给我。只是要把域名转出的时候发现还需要符合域名注册商的各项条件,只能再等几个月。

转出的时候还费了不少周折,发过来的域名密码在域名 Transfer 的过程中总被原来的注册商拒绝。反复尝试了很多次都不行,只得又麻烦这位朋友和域名注册商反复沟通了多次,终于又发来一个密码,比原来的密码多了两个反斜线,这次输入,还是不对。看着密码端详了半天,觉得两个反斜线或许是正则转义后多了一个,去掉,重试,成功。泪奔。

经过几天的等待,终于收到了这条信息:

Congratulations! The transfer request for the following domain name(s) has been completed:
FENNG.COM

从此之后, FENNG.com 这个域名正式属于我的了。

感谢这位割爱转让域名的朋友。

EOF

世说新语: 拍拖问题

我不是著名的广告人,但是我是在用生命经营的广告人
侯总 史上最牛广告人

今天不拍拖是为了明天更好地拍拖
–华南师范大学南海学院李醒华对学生说. 这个学校的绝密文件真是 21 世纪的经典。

只要不谈房价!
建设部官员们应承来参加房地产论坛的前提条件

我在外地上班,专门坐飞机回兰打狗,为此,我也付出了一定的代价。
–专程坐飞机回兰州上街打狗的人

继续阅读