Andy's Blog » » 比 Nginx 更快的 Cherokee

比 Nginx 更快的 Cherokee

Cherokee 号称是目前最快的 Web 服务器软件,在性能上,甚至比 Nginx 还略胜一筹。与 Apache、Lighttpd、Nginx 等其他同类软件的对比,大家不妨看看官方的 benchmark。其易用性做得也很不错。


Cherokee 官方网站 http://www.cherokee-project.com/

Cherokee 的功能包括支持 FastCGI、SCGI、PHP、CGI、TLS 及 SSL 加密连接,虚拟主机,授权认证,实时编码,载入均衡,与 Apache 兼容的 log 文件等等。

Cherokee 内含一个名为 cherokee-admin 的工具,执行后,允许管理员直接通过浏览器进入 http://localhost:9090/ 对其进行管理和配置。比如,开启或关闭服务器,进行一般选项的设定,配置虚拟服务器、信息源、图标、Mime 类型等项目。

官方测试结果



Cherokee:

Server Software:        Cherokee/0.8.1
Server Hostname:        10.0.0.102
Server Port:            80

Document Path: /index.html
Document Length: 1795 bytes

Concurrency Level: 20
Time taken for tests: 17.819725 seconds
Complete requests: 500000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 500000
Total transferred: 999007442 bytes
HTML transferred: 897506630 bytes
Requests per second: 28058.79 [#/sec] (mean)
Time per request: 0.713 [ms] (mean)
Time per request: 0.036 [ms] (mean, across all concurrent requests)
Transfer rate: 54747.93 [Kbytes/sec] received

Lighttpd:

Server Software:        lighttpd/1.4.19
Server Hostname:        10.0.0.102
Server Port:            80

Document Path: /index.html
Document Length: 1795 bytes

Concurrency Level: 20
Time taken for tests: 21.248000 seconds
Complete requests: 500000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 470598
Total transferred: 991856958 bytes
HTML transferred: 897503590 bytes
Requests per second: 23531.63 [#/sec] (mean)
Time per request: 0.850 [ms] (mean)
Time per request: 0.042 [ms] (mean, across all concurrent requests)
Transfer rate: 45585.94 [Kbytes/sec] received

NginX:

Server Software:        nginx/0.5.33
Server Hostname:        10.0.0.102
Server Port:            80

Document Path: /index.html
Document Length: 1795 bytes

Concurrency Level: 20
Time taken for tests: 23.741872 seconds
Complete requests: 500000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 500000
Total transferred: 1006000217 bytes
HTML transferred: 897500000 bytes
Requests per second: 21059.84 [#/sec] (mean)
Time per request: 0.950 [ms] (mean)
Time per request: 0.047 [ms] (mean, across all concurrent requests)
Transfer rate: 41379.30 [Kbytes/sec] received

Apache2.2:

Server Software:        Apache/2.2.8
Server Hostname:        10.0.0.102
Server Port:            80

Document Path: /index.html
Document Length: 1795 bytes

Concurrency Level: 20
Time taken for tests: 35.438605 seconds
Complete requests: 500000
Failed requests: 0
Write errors: 0
Keep-Alive requests: 495064
Total transferred: 1043777896 bytes
HTML transferred: 897500000 bytes
Requests per second: 14108.91 [#/sec] (mean)
Time per request: 1.418 [ms] (mean)
Time per request: 0.071 [ms] (mean, across all concurrent requests)
Transfer rate: 28762.81 [Kbytes/sec] received

有人做了测试,Cherokee 性能并不是这么好

Cherokee  号称是世界上处理速度最快的httpd server 甚至比 Nginx 要牛!
很多人都抱有怀疑的态度,网上也纷 纷展开了不通类型的测试,而我也是其中一个。

但撇开速度性能江湖中谁是老大这一论,就 Cherokee  本身,是有它自己相当的亮点。

最令我欣赏的,是它自带的管理工具,也可以说是管理后台了,以网页方式做配置。在里头除了可以调配系统中各项数值,还能配置虚拟主机,缓存,系统状 态.....

现在 Cherokee 连 1.0 版本都还没到,截止本文发表,最新版本是  Cherokee 0.99.14 。
可以说各方面的Bug都有相当的存在。所以在这个时候比性能,稳 定...退一步说,给点面子吧...毕竟人家还没成熟。

我这么说,可并不是否认了 Cherokee 所号称的性能第一。的确,在用 apache 自带的 ab 压力测试成绩中看来。Cherokee 在并发量 100 的时候,确确实实是比 nginx 还要快!!!

再加上全功能相当讨人喜欢的管理后台,相比起 Nginx 单单只有一个 NginxStatus 我觉得 Cherokee 在这个点子的想法将会不同凡响。因为图形化的配置相当明了,省去了好多记忆配置语法的功夫。尤其对于新手来说,入门槛很低。


源码包解tar,编译,安装完成后。使用指定配置,端口等参数启用单独的管理后台进程,打开浏览器,输入账号自动生成的管理密码就能进入管理界面。 如上图所示,可以直接启动以及关闭 Cherokee 的httpd 服务。


上图是http虚拟服务器(虚拟主机)的配置页,在此,你可以直接添加,修改,删除虚拟主机的操作。


高级配置,包括修改超时时限,http 端口,Cache 缓存...等各项 Cherokee  运作的参数。


相信这就是 Cherokee  为什么比 Nginx 快的原因之一。具有类似squid 这样的 Cache功能。
如果日后 Cherokee 更能加入均衡负载的状态,日志阅读,流量....等更进一步强化后台的功能,这我看占有一定的市场可不是难事了。

好了,上边是简单介绍了一下,说到最认真的,性能。下边是用 Ngnx 0.6.31 与 Cherokee 0.99.13 所做对比测试的数据。

我们用2台服务器,一台负责发起ab请求,另一台安装 Cherokee。

被测试服务器配置:
PowerEdge 1950
CPU: Xeon E5110 X2
内存: 1G,DDR2-667MHz ECC FBD X8
硬盘: 146G SAS X2 (raid0)

HTML 测试结果:

Nginx Cherokee
1000/10W html 4K 所需时间 75.729 72.611
1000/10W html 48K 所需时间 401.458 无法完成测试
1000/10W html 4K 每秒完成请求 13205.03 13772.03
1000/10W html 48K 每秒完成请求 2490.92 无法完成测试
500/10W html 4K 所需时间 67.179 65.286
500/10W html 48K 所需时间 401.438 401.147
500/10W html 4K 每秒完成请求 14885.62 15317.32
500/10W html 48K 每秒完成请求 2491.04 2492.85
100/10W html 4K 所需时间 65.801 58.057
100/10W html 48K 所需时间 401.458 401.024
100/10W html 4K 每秒完成请求 15197.24 17224.54
100/10W html 48K 每秒完成请求 2490 2493



测试得出结果,在 ab 进行 100 个线程压力测试的时候,Cherokee 的完成测试时间要比Nginx少,原因是 Cherokee  每秒所处理的请求数要比 Nginx 多!

但当 ab 线程提高到 500 甚至一千的话,Cherokee  的优势变得很少,虽然还是轻微领先Nginx。但确相当不稳定。AB 会经常因httpd服务关闭而退出,能连续完成3次平均测试的几率不大,好像 1000 并发,10W请求的 48K html 静态文件就已经令Cherokee无法完成了。更糟糕的是,如果连续进行多次100次并发,到某一次的时候,ab测试也会频繁退出。需把被测试机的网络重 启 service network restart ,测试才能继续。也就是说在高负载的情况下!Cherokee 不大行啊.

而作对比的 Nginx 确从然应对!100,500,1000 都一律通吃!而且完全没有Failed requests。(请求失败)

若然说 Cherokee 如他名字一样是一辆吉普车的话,这么我觉得 Nginx 更像一辆悍马。能够承载极端环境的考验。

而 Cherokee 只能单单从低端的并发数中胜出,这只能说是一件意义,而不能算是真正能跟 Nginx 做出较量。因为人家虽然开得较为慢点,不会掉链条。而 Cherokee 虽然开得快!确会掉链条...

继续努力吧 Cherokee ,我们大家都期待1.0 版本发布的那天。

顺带来个备注,在我进行 Cherokee 0.99.13 测试的第二天,Cherokee 0.99.14 发布了,据说改进了高并发时会退出的BUG,但我测试的时候效果依然。程序不会推出,可ab确依然被关闭了请求而未能完成测试就弹了出来。

除了进行 html 文件的测试,也进行了 JPG,GIF 的测试,成绩如下:

Nginx Cherokee
1000/10W GIF 1K 所需时间 80.114 74.687
1000/10W JPG 100K 所需时间 836.834 无法完成测试
1000/10W GIF 1K 每秒完成请求 12482.28 13389.26
1000/10W JPG 100K 每秒完成请求 1194.98 无法完成测试
500/10W GIF 1K 所需时间 68.02 64.672
500/10W JPG 100K 所需时间 852.585 无法完成测试
500/10W GIF 1K 每秒完成请求 14701.45 15462.76
500/10W JPG 100K 每秒完成请求 1172.9 无法完成测试
100/10W GIF 1K 所需时间 66.602 61.43
100/10W JPG 100K 所需时间 852.389 851.014
100/10W GIF 1K 每秒完成请求 15014.5 16278.7
100/10W JPG 100K 每秒完成请求 1173.17 1175.07

Incoming search terms:

Tags: nginx, Cherokee

本文地址: http://www.21andy.com/new/20100409/1825.html

2 评论 to “PHP开源CMS之MODx”

  1. wwek 于 2010-04-22 20:09:46 发表:

    持续关注这个东西。

  2. ff 于 2010-05-06 13:59:44 发表:

    你是不是搞错了. 别人说 nginx 每秒请求数 3万.
    http://blog.s135.com/nginx_php_v6/
    你和他pK!