I am testing Cherokee on my Ubuntu 9.04 server edition (Intel i7 940), For a small static html file (1.7KB), apache 2.2 is able to process 14000 Req/s and cherokee only 10000 Req/s. I was expecting something about 28000 Req/s for Cherokee according to the benchmark seen on its official web site. So what's wrong ?
Here are some informations : I have compiled cherokee from source version 0.99.20 (configure;make;make install) # cherokee -i : Compilation Version: 0.99.20 Compiled on: Jul 2 2009 11:56:18 Arguments to configure: Installation Deps dir: /usr/local/share/cherokee/deps Data dir: /usr/local/share/cherokee Icons dir: /usr/local/share/cherokee/icons Themes dir: /usr/local/share/cherokee/themes Plug-in dir: /usr/local/lib/cherokee Plug-ins Built-in: Support IPv6: yes Pthreads: yes Tracing: no sendfile(): yes syslog(): yes Polling methods: select poll epoll # cat cherokee.conf server!bind!1!port = 9999 server!bind!1!tls = 0 server!ipv6 = 1 server!keepalive = 1 server!keepalive_max_requests = 500 server!panic_action = /usr/local/bin/cherokee-panic server!pid_file = /usr/local/var/run/cherokee.pid server!server_tokens = full server!timeout = 15 vserver!10!collect_statistics = 1 vserver!10!directory_index = index.html vserver!10!document_root = /home/elapouya/www vserver!10!keepalive = 1 vserver!10!logger = combined vserver!10!logger!access!buffsize = 16384 vserver!10!logger!access!filename = /usr/local/var/log/cherokee.access vserver!10!logger!access!type = file vserver!10!logger!error!filename = /usr/local/var/log/cherokee.error vserver!10!logger!error!type = file vserver!10!logger!x_real_ip_access_all = 0 vserver!10!logger!x_real_ip_enabled = 0 vserver!10!nick = default vserver!10!rule!500!encoder!gzip = 1 vserver!10!rule!500!handler = server_info vserver!10!rule!500!handler!type = just_about vserver!10!rule!500!match = directory vserver!10!rule!500!match!directory = /about vserver!10!rule!500!match!final = 1 vserver!10!rule!400!document_root = /usr/local/lib/cgi-bin vserver!10!rule!400!handler = cgi vserver!10!rule!400!match = directory vserver!10!rule!400!match!directory = /cgi-bin vserver!10!rule!400!match!final = 1 vserver!10!rule!300!document_root = /usr/local/share/cherokee/themes vserver!10!rule!300!handler = file vserver!10!rule!300!match = directory vserver!10!rule!300!match!directory = /cherokee_themes vserver!10!rule!300!match!final = 1 vserver!10!rule!200!document_root = /usr/local/share/cherokee/icons vserver!10!rule!200!handler = file vserver!10!rule!200!match = directory vserver!10!rule!200!match!directory = /icons vserver!10!rule!200!match!final = 1 vserver!10!rule!100!handler = common vserver!10!rule!100!handler!iocache = 0 vserver!10!rule!100!match = default vserver!10!rule!100!match!final = 1 ... (icons and mime stuff) The benchmaks : ############### Cherokee listen on port 9999, apache on 80, cherokee.html is a small static file (1.7Ko) both web server point to the same file in these tests. Cherokee bench : ============ ab -c 20 -t 2 http://localhost:9999/cherokee.html This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 5000 requests Completed 10000 requests Completed 15000 requests Completed 20000 requests Finished 20020 requests Server Software: Cherokee/0.99.20 Server Hostname: localhost Server Port: 9999 Document Path: /cherokee.html Document Length: 1795 bytes Concurrency Level: 20 Time taken for tests: 2.000 seconds Complete requests: 20020 Failed requests: 0 Write errors: 0 Total transferred: 39975888 bytes HTML transferred: 35950260 bytes Requests per second: 10008.36 [#/sec] (mean) Time per request: 1.998 [ms] (mean) Time per request: 0.100 [ms] (mean, across all concurrent requests) Transfer rate: 19516.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.4 1 8 Processing: 0 1 0.4 1 9 Waiting: 0 1 0.4 1 9 Total: 0 2 0.7 2 10 Percentage of the requests served within a certain time (ms) 50% 2 66% 2 75% 2 80% 2 90% 3 95% 3 98% 3 99% 4 100% 10 (longest request) apache 2.2 bench: ============= ab -c 20 -t 2 http://localhost/cherokee.html This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking localhost (be patient) Completed 5000 requests Completed 10000 requests Completed 15000 requests Completed 20000 requests Completed 25000 requests Finished 27873 requests Server Software: Apache/2.2.11 Server Hostname: localhost Server Port: 80 Document Path: /cherokee.html Document Length: 1795 bytes Concurrency Level: 20 Time taken for tests: 2.001 seconds Complete requests: 27873 Failed requests: 0 Write errors: 0 Total transferred: 59487384 bytes HTML transferred: 50037420 bytes Requests per second: 13932.28 [#/sec] (mean) Time per request: 1.436 [ms] (mean) Time per request: 0.072 [ms] (mean, across all concurrent requests) Transfer rate: 29037.78 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.2 1 3 Processing: 0 1 0.3 1 6 Waiting: 0 1 0.3 1 6 Total: 1 1 0.3 1 6 Percentage of the requests served within a certain time (ms) 50% 1 66% 1 75% 2 80% 2 90% 2 95% 2 98% 2 99% 2 100% 6 (longest request) Note : apache configuration is a standard one (out of the box), not optimized ! May be it is a Ubuntu/debian issue : what do you think ? Eric
_______________________________________________ Cherokee mailing list [email protected] http://lists.octality.com/listinfo/cherokee
