主题:【讨论】nginx 还是 apache? -- 铁手

大河奔流 导读 复 35 阅 31716

全看 分页 树展 一览 主题

2012-03-18 11:30:06
3692278 复 3685846
布老虎布老虎`2473`/bbsIMG/face/0000.gif`70`12`1180`15134`从四品下:中大夫|明威将军`2004-03-11 21:25:48`
我来试试分析一下,抛砖引玉吧 3

首先一个像西西河这样需要查询数据库的网站,bottleneck永远在数据库这边, NGinx这种所谓的支持大并发(每秒几万次甚至几十万次请求),只适用于门户网站之类的静态网页,比如新浪新闻之类,谁上网看到的都是这些东西。总之NGinx就是把所有的内容load进memory里面,然后threading的数量和CPU的数量相等;明摆着这就是个CPU bound的设计,根本考虑file I/O或者database I/O.

一般的动态网页(比如Amazon)这种highly personalized的网站,NGinx不能用,还是得LoadBalancer后面带上一串Tomcat,甚至几级LoadBalancer.道理很简单,一次数据库查询(如果数据库在另一台机器上),你能做到200ms的response time就很不错了,当然memcached会快一点,也要70-80ms左右。每秒几十万次查询?先看看你的数据库能不能顶住吧。

说到内存,tomcat JVM 内存都在4G到6G左右,足够了。注意Sun的JVM是generational GC的, 所以内存不够肯定是程序问题或者JVM的GC配置问题。

我做过的系统如果用LB的话,基本上带上两三个Tomcat, 支持每秒上千次并发没问题,这还是有很多数据库查询操作的情况下。


2012-03-18 11:30:06

全看 分页 树展 一览 主题