Monthly Archives: July 2007

写 Blog 这件事儿

今天总算看到 FeedBurner 显示的订阅数字超过 5000 个了。算是我这个 Blog 的一个里程碑吧,自我虚荣一下。虽然这个数字里面有很大的重复订阅量。通过这个 Blog 分享了一些信息,也认识了不少朋友,这是让人快乐的事情。

关于写 Blog 这件事儿

很早以前我写过一篇 《Blog 写给谁》 很清楚的说明了自己写 Blog 的角度。既然这样,我写的东西肯定带有很大的个人倾向,我自己的立场。写这个东西没有谁给我发工资,还要自己掏钱买空间,域名续费什么的,容易么? 我不能保证所有文章都是墙头草,谁都不得罪,我也不能保证总写技术,也不能保证总写一些技术概述(这类东西读者多,被抄袭的也多),我喜欢写影评,那就写点,觉得没价值简单看个标题就过去好了,没必要看完了觉得不爽,非要表达一下自己的情绪,要知道我这个破 Blog 速度是出奇的慢。

最近有几篇还出现了一点不那么和谐的声音。也有人留言告诉我”应该”怎么做,怎么写。有语言洁癖的同学其实大可不看,风花雪月的你可以去看郭敬明,去看老徐,来这里浪费时间干嘛? 从小到大都被当作棋子儿,走别人划的印走惯了? 身体刚不那么柔软了,就开始想给别人划印了?

关于 Blog 内容的抄袭者

有些人可能看到我总结的玩意儿后觉得有点参考价值,就转载了一下。有的人注意到我每篇文章前面的声明,保留了版权信息和出处,在当前的网络文化下,我只能表示”欣赏”。而有些人给改头换面之后再来个 “CTRL+C / CTRL+V”, 这是我最厌恶的方式。如果你觉得内容真的有用的话,直接收藏地址不就成了嘛? 不知道 del.icio.us 还不知道雅虎收藏+、百度搜藏么? 还不知道的话,你 IE 上不是还有个收藏夹么? 非把内容弄到你那一亩三分地干嘛? 再说了,如果是技术信息,我以后还有更新怎么办? 你在那里不是误导别人么? 对于不遵守我的版权声明的转载一律视为抄袭者。这样的人我这个 Blog 不欢迎!

关于 Blog 最近的一些计划

MT4 正式发布之后将重新设计一下模版。目前的模版拼拼凑凑的,问题不少,留言问题其实也和模版相互关联有关。尝试彻底解决一下。目前的空间还存在不少安全问题,真没准儿哪天直接给人一窝端了。如果真是这样,我还省心了。:)

EOF

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