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.