Nginx vs Cherokee
I did a micro benchmark for quick comparison between nginx and cherokee on Linode 540 VPS. Result may differ on a dedicate server. static file(100MB)
Cherokee |
---|
Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Finished 200 requests Server Software: Cherokee/0.99.0 Server Hostname: localhost Server Port: 80 Document Path: /100mb.test Document Length: 104857600 bytes Concurrency Level: 20 Time taken for tests: 30.696 seconds Complete requests: 200 Failed requests: 0 Write errors: 0 Total transferred: 20971557200 bytes HTML transferred: 20971520000 bytes Requests per second: 6.52 [#/sec] (mean) Time per request: 3069.623 [ms] (mean) Time per request: 153.481 [ms] (mean, across all concurrent requests) Transfer rate: 667184.09 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.2 1 1 Processing: 3004 3069 73.9 3048 3228 Waiting: 0 1 0.2 1 2 Total: 3004 3069 73.9 3048 3228 Percentage of the requests served within a certain time (ms) 50% 3048 66% 3068 75% 3071 80% 3191 90% 3228 95% 3228 98% 3228 99% 3228 100% 3228 (longest request) |
Nginx |
Benchmarking localhost (be patient) Completed 100 requests Completed 200 requests Finished 200 requests Server Software: nginx/0.6.35 Server Hostname: localhost Server Port: 80 Document Path: /100mb.test Document Length: 104857600 bytes Concurrency Level: 20 Time taken for tests: 30.543 seconds Complete requests: 200 Failed requests: 0 Write errors: 0 Total transferred: 20971571000 bytes HTML transferred: 20971520000 bytes Requests per second: 6.55 [#/sec] (mean) Time per request: 3054.277 [ms] (mean) Time per request: 152.714 [ms] (mean, across all concurrent requests) Transfer rate: 670536.80 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.2 0 1 Processing: 3006 3054 32.6 3047 3106 Waiting: 0 1 0.4 1 3 Total: 3006 3054 32.6 3048 3107 ERROR: The median and mean for the initial connection time are more than twice the standard deviation apart. These results are NOT reliable. Percentage of the requests served within a certain time (ms) 50% 3048 66% 3069 75% 3087 80% 3098 90% 3107 95% 3107 98% 3107 99% 3107 100% 3107 (longest request) |
Small html file (468 bytes)
Nginx |
---|
Server Software: nginx/0.6.35 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 468 bytes Concurrency Level: 200 Time taken for tests: 0.123 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 737100 bytes HTML transferred: 491400 bytes Requests per second: 8150.03 [#/sec] (mean) Time per request: 24.540 [ms] (mean) Time per request: 0.123 [ms] (mean, across all concurrent requests) Transfer rate: 5866.59 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 3 8 1.7 9 11 Processing: 6 14 3.3 14 24 Waiting: 3 11 3.3 12 23 Total: 14 22 2.6 22 33 Percentage of the requests served within a certain time (ms) 50% 22 66% 23 75% 23 80% 24 90% 25 95% 26 98% 29 99% 30 100% 33 (longest request) |
Cherokee |
Server Software: Cherokee/0.99.0 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 468 bytes Concurrency Level: 200 Time taken for tests: 0.139 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 732224 bytes HTML transferred: 509184 bytes Requests per second: 7203.83 [#/sec] (mean) Time per request: 27.763 [ms] (mean) Time per request: 0.139 [ms] (mean, across all concurrent requests) Transfer rate: 5151.19 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 6 11 2.5 12 16 Processing: 7 14 3.9 14 27 Waiting: 3 10 3.9 9 19 Total: 16 25 3.5 25 33 Percentage of the requests served within a certain time (ms) 50% 25 66% 27 75% 27 80% 28 90% 29 95% 31 98% 32 99% 32 100% 33 (longest request) |
Varnish |
Server Software: ---------- Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 468 bytes Concurrency Level: 200 Time taken for tests: 0.141 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 879491 bytes HTML transferred: 528372 bytes Requests per second: 7067.44 [#/sec] (mean) Time per request: 28.299 [ms] (mean) Time per request: 0.141 [ms] (mean, across all concurrent requests) Transfer rate: 6070.07 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 6 11 2.5 11 16 Processing: 6 14 3.5 13 24 Waiting: 3 10 3.5 9 21 Total: 17 25 3.4 25 38 Percentage of the requests served within a certain time (ms) 50% 25 66% 26 75% 26 80% 27 90% 29 95% 31 98% 33 99% 34 100% 38 (longest request) |
Small image file (23k bytes)
Nginx |
---|
Server Software: nginx/0.6.35 Server Hostname: localhost Server Port: 80 Document Path: /cherokee-logo.png Document Length: 23619 bytes Concurrency Level: 200 Time taken for tests: 0.139 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 24624128 bytes HTML transferred: 24379632 bytes Requests per second: 7171.34 [#/sec] (mean) Time per request: 27.889 [ms] (mean) Time per request: 0.139 [ms] (mean, across all concurrent requests) Transfer rate: 172449.16 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 5 3.6 4 16 Processing: 0 20 6.1 23 29 Waiting: 0 15 5.7 17 26 Total: 6 25 5.5 26 45 Percentage of the requests served within a certain time (ms) 50% 26 66% 27 75% 27 80% 27 90% 28 95% 35 98% 41 99% 43 100% 45 (longest request) |
Cherokee |
Server Software: Cherokee/0.99.0 Server Hostname: localhost Server Port: 80 Document Path: /cherokee-logo.png Document Length: 23619 bytes Concurrency Level: 200 Time taken for tests: 0.180 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 26518338 bytes HTML transferred: 26287947 bytes Requests per second: 5564.92 [#/sec] (mean) Time per request: 35.939 [ms] (mean) Time per request: 0.180 [ms] (mean, across all concurrent requests) Transfer rate: 144113.78 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 11 3.4 11 18 Processing: 11 21 5.0 21 36 Waiting: 3 8 3.7 7 24 Total: 21 32 4.7 33 43 Percentage of the requests served within a certain time (ms) 50% 33 66% 34 75% 35 80% 36 90% 38 95% 40 98% 41 99% 43 100% 43 (longest request) |
Varnish |
Server Software: -------------- Server Hostname: localhost Server Port: 80 Document Path: /cherokee-logo.png Document Length: 23619 bytes Concurrency Level: 200 Time taken for tests: 0.154 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 23933000 bytes HTML transferred: 23619000 bytes Requests per second: 6498.44 [#/sec] (mean) Time per request: 30.777 [ms] (mean) Time per request: 0.154 [ms] (mean, across all concurrent requests) Transfer rate: 151882.08 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 4 11 3.0 11 17 Processing: 10 18 4.5 17 33 Waiting: 2 6 2.1 5 12 Total: 15 29 4.6 29 48 Percentage of the requests served within a certain time (ms) 50% 29 66% 29 75% 30 80% 31 90% 33 95% 36 98% 41 99% 46 100% 48 (longest request) |
Nginx is the fastest to serve small static file on my VPS. No significant difference in serving larging file.