豆瓣最近发布新功能有些”疯狂”,所以服务器也有新的部署。看到阿北同学在豆瓣广播里说:
豆瓣的第二台应用服务器终于投入了使用。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–
一秒钟就60次,高峰期*5,也就300次,而且还是还是web服务器,豆瓣的逻辑也不是很复杂,很一般的机器嘛……
^_____^!!!
@s5s5
也不知道另外还有谁家的机器能做到 每秒 300个 请求
mongrel通常是以cluster方式部署的,类似于fastcgi中proc数.那篇文章应该是指7个mongrel instances, app server只是一台.”The domain is hosted at LayeredTech on a dedicated two-server (DB + Web/App) setup.”
楼主看看这篇文章,了解一下豆瓣的服务器:
http://blog.douban.com/douban/2007/12/17/105/
感觉楼主的理解不太正确,否则真是这样,1台lighttpd跑500W PV,太NX了,著名的43 things 2005年的资料是30W左右动态PV,需要两台Apache WEB服务器。按这个推算,豆瓣真是神了!阿北所说的应用服务器,可能是指的运行memcache一类的服务器,而不是WEB服务器,这个 “500WPV”的动态PV和应用服务器挂上勾说的有点不伦不类。。。。压力大的是WEB服务器和数据库服务器~,应用服务器只要多点内存,多开几个类似 Mongrel,fastcgi之类的进程就行了~
lighty网站上的数字很久没有去更新了。现在豆瓣的web服务器(lighttpd)每天估计2500万 Hits, 高峰时间大约1000 req/s (这里说的是主要输出HTML/CSS/JS和小图片的一台前端。大图片有另外的web服务器)。。
我在广播里说500万PV/天的是应用服务器,就是lighty和mysql之间跑python的那台。现在豆瓣大多数PV来自注册用户,每个页面都需要几到十几种类的动态数据。
现在的服务器只是单片双核的opteron。换4核的话,应该能到一台1000万PV/ 天。
如果内容都被缓存的话,支持每秒300个请求还是不成问题的。临时查表什么的,支持50个请求就不错了。
还有一个版本,lighttpd/1.5.0。
为什么我这里看http://www.douban.com/people/ 是1.4.15
douban.net lighttpd/1.4.8
lighttpd 跑静态不错。
500W,很NB了。如果有机会,Fenng兄愿意帮忙代为请教一下他们的部署情况吗?想请教一下douban的技术团队,我目前用两台机器流量可以做到100w+,lighttpd的性能是一方面,但这应该不是最优秀的地方。
page view不等于request吧?一个page view恐怕会产生数十个http requests.
总之,我觉得还是挺厉害的。
我自己做应用,用php,中等复杂度的逻辑,每s才50个request,当然还有些优化的余地。
光说量看不出差距,比比就知道了。
老实说
ruby 的性能要比python低不少
目前目前相对来说,ruby运算慢,虚拟机占内存多,加上rails这个框架也肥
而且python还有twisted
虽然貌似这篇文章和这二者无关
@jesea
那篇blog说的是豆瓣所有的服务器,里面有这样一句话“梅里(Merry)和山姆(Sam)这两个霍比特人挑起了大梁,承担起所有用户的请求,向豆友们展现丰富多彩的页面”,merry就是lighttpd服务器,sam就是应用服务器,跑python。
@fenng & @Cherife
现在实际上是有三个版本的lighttpd在跑,HTML/CSS/JS/小图片这边会load balance到1.4.15或者1.4.18。大图片用的是1.5.0。
看见那个 bold.dk 峰值是每秒3000 request,汗-_||
还想知道带宽利用了多少?
python跑起来真够快的.
自从你DIY了哪台服务器,就没有声音了。
我还以为你用的是一台服务群组呢。原来是一台服务器。太强了。
阿北,应该介绍一下这方面的经验。
看怎么算吧,如果前端服务器只是做为负载均衡器,请求处理都到后台机器的话,这一台前端服务器再撑更大的流量都不是问题。
真佩服,收藏至20ju.com
我觉得大家都忽略一个问题:业务/程序的逻辑是否复杂?
如果不复杂的逻辑,优化相对简单了!
文章只给出了数字,但是没有描述具体的架构,让人不免感觉遗憾。我有几个疑问,希望有朋友能解答一下。关于《豆瓣的 Web 服务器》的疑问
看来没有几个是专门做服务器的或者是这方面的技术高手,大家估计也就是管过个几台服务器的经验。
做两年项目 对性能都麻木了
en..好文章。。
这个性能真的很好?我很怀疑,看看我的数据—-windows2k3跑自己写的cache server,html/css/js等静态内容是15kqps,没错,15000qps,2个千兆网口跑满,25MPV只要1666秒,不到半个小时搞定
我靠,这就算快了? 这是太常规的访问量了吧? 日访问量500万PV,也就是说一秒钟57个PV,如果把静态内容加上,一个PV 加20,一秒也不过就是57*20=1140/秒请求, 这个请求量只要是服务器就能撑住, 呵呵. 这种数字,骗外行还可以, 骗内行就让人笑话了吧
@邹月明
把你的数据和经验给我们 Show 一下就好了
我的Web服务器性能数据:
http://www.51windows.net/data/files/file_904.asp
其实想达到这种程度 也不难。
AMD64, Opterons
8G以上内存
64位的linux kernel 2.6.x
增大ipv4和file-max 等参数。就可以了。
尽量最小化运行。
应用程序不要太烂。尽量不调用数据库。做好缓存
很轻松的
还想知道带宽利用了多少?
我个人测试 iocp + 120线程
2000 上限并发,可以轻松做到 2.5 pv/ 5分钟
客户端cpu 占用 不到5%. 内存10m.
服务器 centos 4.6 测算下来 720w/day
apache
所以单纯的说这个没有什么意义。
现在换成nginx咯,好时髦的说
学习了!
hmy@luna:~$date
2008年 10月 15日 星期三 16:06:15 CST
hmy@luna:~$curl -I http://www.tudou.com
HTTP/1.1 200 OK
Date: Wed, 15 Oct 2008 08:06:20 GMT
Server: Apache
Last-Modified: Wed, 15 Oct 2008 07:56:20 GMT
Accept-Ranges: bytes
Content-Length: 62226
Cache-Control: max-age=420
Expires: Wed, 15 Oct 2008 08:13:20 GMT
Vary: Accept-Encoding
Content-Type: text/html
现在好像换成apache和iis了
@hmy
大哥,上面说的是豆瓣 http://www.douban.com
也以为是具体的分析,才发现只是数据,有点失望;不过,这个数据本身时够惊人的!
评论确实精彩,但存在大量冲突的观点,反而增添疑惑。
@fenng是否来个总结。
一看时间是2008年写的文章!有没有比nginx还好的web程序呢?http://www.fovweb.com/web/llmp.html
[root@www ~]# curl -I http://www.douban.com/
HTTP/1.1 200 OK
Server: nginx
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Keep-Alive: timeout=20
Content-Length: 83215
Expires: Sun, 1 Jan 2006 01:00:00 GMT
Pragma: no-cache
Cache-Control: must-revalidate, no-cache, private
P3P: CP=”IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT”
Set-Cookie: bid=”zkwP3j+o7r0″; path=/; domain=.douban.com; expires=Thu, 01-Jan-2012 00:00:00 GMT
Set-Cookie: ll=”None”; path=/; domain=.douban.com; expires=Thu, 01-Jan-2012 00:00:00 GMT
Date: Sat, 12 Mar 2011 05:04:44 GMT