豆瓣的 Web 服务器

豆瓣最近发布新功能有些”疯狂”,所以服务器也有新的部署。看到阿北同学在豆瓣广播里说:

豆瓣的第二台应用服务器终于投入了使用。Hongqn 忙了一晚上就完成了部署。第一台服务器支撑到 500 万动态PV/天,服务 On Demand 即时分布式部署......

500 万 PV , 还是动态 PV, 是个很惊人的数字。因为,如果都能达到一台机器支撑 500 万,那么国内稍有点规模的网站(就说动态 PV 上亿的吧),只需要 20 台 Web 服务器就够了。事实上,即使比较强调技术的网站怕也要上百台 Web 服务器的规模。

我们知道豆瓣用 Lighttpd 做 Web 服务器。 从侦测到的数据看,目前线上有两个版本。

$ curl -I http://www.douban.com
HTTP/1.1 200 OK
.....(无关内容略)
Server: lighttpd/1.4.15

另外一个版本:

$ curl -I http://www.douban.com/people/ahbei/
HTTP/1.1 200 OK
.....(无关内容略)
Server: lighttpd/1.4.18

其实豆瓣服务器还有个更为惊人的性能数字。从这个 Powered by Lighttpd 的列表来看,豆瓣在一台 Gentoo 服务器上的记录是 1200 万/天的点击量。这应该是动、静态页面混合情况下的吧。

有同事对这个数据有些好奇,问我到底豆瓣是用啥做的服务器,其实这个问题我也问过阿北,他们就是自己攒的 PC 服务器,然后把性能发挥到极致。阿北也表示过,即使现在豆瓣流量激增个十倍啥的性能也不会是问题。这也是从起始就考虑扩展性的收益吧。

这里这位老兄用 七个 Mongrels 实例(也是一台Server)跑了 55 万 PV (thanks Robin 纠正) 就蛮自豪的,所以豆瓣的一台跑了”500 万动态 PV” 的确非常惊人。

Updated 2008-1-17 0:57:09

阿北留言了。主要是上面的有的数据还是旧的:

Lighty 网站上的数字很久没有去更新了。现在豆瓣的web服务器(lighttpd)每天估计2500万 Hits, 高峰时间大约1000 req/s (这里说的是主要输出HTML/CSS/JS和小图片的一台前端。大图片有另外的web服务器)。
我在广播里说500万PV/天的是应用服务器,就是lighty和mysql之间跑python的那台。现在豆瓣大多数PV来自注册用户,每个页面都需要几到十几种类的动态数据。
现在的服务器只是单片双核的opteron。换4核的话,应该能到一台1000万PV/ 天。

友情提醒,留言很精彩,敬请查看。不过在这个 Blog 上留言的确用户体验很糟糕(我也很烦),相信本周末能得到解决。

–EOF–