/ 中存储网

cherokee 和 Apache 服务器性能比较

2014-04-14 11:03:01 来源:ITJS.CN
最近服务器的apache老是莫名其妙的挂掉,还不知道是什么原因。

为了保证网站的稳定性,就对几款其他的软件进行了试用,并且测试。

相关web软件:

cherokee 0.98.1  fastcgi

apache2.2.10 mod_php5 perfork

前端代理软件:

varnish 2.0.4

squid 2.7stable

开始测试时,都将各个软件调整到最有配置。比如apache开始mem_cache

在经历了n个小时的测试之后,大体有了结果:>>表示远远大于

静态页面速度

低并发cherokee<>apache,apache甚至也能大于cherokee,可能是我开启了缓存

高并发(400)cherokee是apache的2倍

内存消耗

php执行速度(无论是否连接数据库)

apache>>cherokee

高并发下(30000个请求400个并发)apache常常挂掉,内存消耗巨大,cherokee执行php速度远慢于apache,但一直能保持速度,内存占用极小

特别发现,cherokee在执行带有数据库连接的php页面是,速度只有apache的1/5,甚至更低

优化措施

在前端加上varnish或者squid

cherokee无法提供gzip等压缩功能,apache正常

cherokee执行php使用的是fastcgi,但是测试中fastcgi无法加载eaccelerator,再次少了一个加速工具。apache正常

cherokee的亮点:

1、有很好的管理界面,棒极了!

2、可以对每个虚拟主机加入ssl支持。apache只有一个。

varnish是纯内存缓存软件,专门的web加速。squid是mem+disk,专门的代理软件。两者的目的都不一样

使用中发现,varnish可以直接支持web服务器的www验证,squid还需要配置,挺麻烦。

对比结果,我对服务器采用了下列架构

后端apache+cherokee(后备),前端squid(+varnish)

squid使用两个数据源,apache优先

apache挂掉的时候,cherokee上

前端也有varnish,只不过是squid已经配置了。不用再动。

日常中,varnish和squid都处于配置完成状态,都从apache和cherokee获取数据。

其中一个挂了,直接启动另外一个就可以了。等于做了2*2的冗余。

前端采用squid,是因为还对varnish不是很熟悉。但是已经知道varnish的实时运行状态查看比较方便。

另外,varnish的后端负载均衡没有优先权(可能是我不知道)。这样的话,就没有办法实现我的初衷,并且varnish后的cherokee无法执行页面压缩。

没有了