As promised I've did a simple FastRouter performance test with 1.4.4 and
current 1.5 dev branch.
This is not very scientific but numbers are stable and repeatable.

My cluster consist of 4 backend nodes and 1 FastRouter with nginx in front
(nginx->fastrouter->nodes). All nodes are running on HP DL 360 G6 (2x
Xeon [email protected] and 32GB of ram).

I've tested small static files performance to stress the FastRouter itself
as much as possible, not the app I'm running.
All tests were run using apache benchmark with this command line:

$ ab -c <256-1000> -n 100000 -H "Host: my.app.com"
http://10.0.0.99:8080/static/css/fullcalendar.css

fullcalendar.css has size of 10699 bytes

Results are available at https://gist.github.com/4660375 (email will most
likely eat table formatting)
Detailed logs are attached.

tl;dr version - 1.5 improved FastRouter stability and performance, there
are no failed requests with 1.5 under high concurrency, max response times
are also lower. It's just got better

Great work Roberto, 1.5 is looking really good, it received a lot of small
fixes and enhancements, i'm getting tempted to start using it on production
nodes ;)


-- 
Łukasz Mierzwa
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 10.0.0.99 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.2.4
Server Hostname:        10.0.0.99
Server Port:            8080

Document Path:          /static/css/fullcalendar.css
Document Length:        10699 bytes

Concurrency Level:      256
Time taken for tests:   19.579 seconds
Complete requests:      100000
Failed requests:        91
   (Connect: 0, Receive: 0, Length: 91, Exceptions: 0)
Write errors:           0
Non-2xx responses:      91
Total transferred:      1090935764 bytes
HTML transferred:       1068942043 bytes
Requests per second:    5107.40 [#/sec] (mean)
Time per request:       50.123 [ms] (mean)
Time per request:       0.196 [ms] (mean, across all concurrent requests)
Transfer rate:          54412.54 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   11 182.9      0    9004
Processing:     1   35 264.0      3    7018
Waiting:        1   34 263.9      3    7018
Total:          1   46 321.8      3    9007

Percentage of the requests served within a certain time (ms)
  50%      3
  66%      4
  75%      4
  80%      4
  90%      6
  95%    208
  98%    215
  99%   2531
 100%   9007 (longest request)

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 10.0.0.99 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.2.4
Server Hostname:        10.0.0.99
Server Port:            8080

Document Path:          /static/css/fullcalendar.css
Document Length:        10699 bytes

Concurrency Level:      512
Time taken for tests:   18.490 seconds
Complete requests:      100000
Failed requests:        218
   (Connect: 0, Receive: 0, Length: 218, Exceptions: 0)
Write errors:           0
Non-2xx responses:      218
Total transferred:      1089590072 bytes
HTML transferred:       1067605114 bytes
Requests per second:    5408.32 [#/sec] (mean)
Time per request:       94.669 [ms] (mean)
Time per request:       0.185 [ms] (mean, across all concurrent requests)
Transfer rate:          57547.39 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   24 273.5      0    9008
Processing:     1   62 374.3      3    7477
Waiting:        1   61 374.0      3    7477
Total:          1   87 467.0      4    9215

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      4
  75%      5
  80%      5
  90%     12
  95%    214
  98%   2470
  99%   3010
 100%   9215 (longest request)

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 10.0.0.99 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.2.4
Server Hostname:        10.0.0.99
Server Port:            8080

Document Path:          /static/css/fullcalendar.css
Document Length:        10699 bytes

Concurrency Level:      756
Time taken for tests:   19.950 seconds
Complete requests:      100000
Failed requests:        277
   (Connect: 0, Receive: 0, Length: 277, Exceptions: 0)
Write errors:           0
Non-2xx responses:      277
Total transferred:      1088975827 bytes
HTML transferred:       1066994720 bytes
Requests per second:    5012.50 [#/sec] (mean)
Time per request:       150.823 [ms] (mean)
Time per request:       0.200 [ms] (mean, across all concurrent requests)
Transfer rate:          53305.60 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   38 335.7      1    8995
Processing:     1  101 502.7      4   12281
Waiting:        1   99 502.1      3   12275
Total:          1  139 606.3      4   15284

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      6
  75%      8
  80%     10
  90%    215
  95%    428
  98%   3010
  99%   3211
 100%  15284 (longest request)

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 10.0.0.99 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.2.4
Server Hostname:        10.0.0.99
Server Port:            8080

Document Path:          /static/css/fullcalendar.css
Document Length:        10699 bytes

Concurrency Level:      256
Time taken for tests:   19.088 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      1091910919 bytes
HTML transferred:       1069910699 bytes
Requests per second:    5238.83 [#/sec] (mean)
Time per request:       48.866 [ms] (mean)
Time per request:       0.191 [ms] (mean, across all concurrent requests)
Transfer rate:          55862.70 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   14 201.3      0    3011
Processing:     1   31 246.5      3    4641
Waiting:        1   31 246.3      2    4641
Total:          1   45 323.4      3    6213

Percentage of the requests served within a certain time (ms)
  50%      3
  66%      3
  75%      4
  80%      4
  90%      5
  95%    105
  98%    215
  99%   2998
 100%   6213 (longest request)

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 10.0.0.99 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.2.4
Server Hostname:        10.0.0.99
Server Port:            8080

Document Path:          /static/css/fullcalendar.css
Document Length:        10699 bytes

Concurrency Level:      512
Time taken for tests:   17.799 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      1091905792 bytes
HTML transferred:       1069905572 bytes
Requests per second:    5618.17 [#/sec] (mean)
Time per request:       91.133 [ms] (mean)
Time per request:       0.178 [ms] (mean, across all concurrent requests)
Transfer rate:          59907.32 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   26 280.2      0    9013
Processing:     1   58 352.3      3    9022
Waiting:        1   56 352.0      3    9022
Total:          1   84 453.0      3    9024

Percentage of the requests served within a certain time (ms)
  50%      3
  66%      4
  75%      4
  80%      5
  90%      8
  95%    213
  98%   2999
  99%   3010
 100%   9024 (longest request)

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 10.0.0.99 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.2.4
Server Hostname:        10.0.0.99
Server Port:            8080

Document Path:          /static/css/fullcalendar.css
Document Length:        10699 bytes

Concurrency Level:      756
Time taken for tests:   17.521 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      1091907240 bytes
HTML transferred:       1069907020 bytes
Requests per second:    5707.56 [#/sec] (mean)
Time per request:       132.456 [ms] (mean)
Time per request:       0.175 [ms] (mean, across all concurrent requests)
Transfer rate:          60860.62 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   38 340.5      1    9009
Processing:     1   83 426.1      3    4835
Waiting:        1   81 425.4      3    4832
Total:          1  121 548.7      4    9012

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      4
  75%      5
  80%      6
  90%    210
  95%    224
  98%   3008
  99%   3014
 100%   9012 (longest request)

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 10.0.0.99 (be patient)
Completed 10000 requests
Completed 20000 requests
Completed 30000 requests
Completed 40000 requests
Completed 50000 requests
Completed 60000 requests
Completed 70000 requests
Completed 80000 requests
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests


Server Software:        nginx/1.2.4
Server Hostname:        10.0.0.99
Server Port:            8080

Document Path:          /static/css/fullcalendar.css
Document Length:        10699 bytes

Concurrency Level:      1000
Time taken for tests:   17.349 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      1091900000 bytes
HTML transferred:       1069900000 bytes
Requests per second:    5763.94 [#/sec] (mean)
Time per request:       173.492 [ms] (mean)
Time per request:       0.173 [ms] (mean, across all concurrent requests)
Transfer rate:          61461.42 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   50 386.1      1    9010
Processing:     1  109 493.8      4   11315
Waiting:        1  106 493.3      3   11315
Total:          1  159 634.6      4   11325

Percentage of the requests served within a certain time (ms)
  50%      4
  66%      6
  75%      7
  80%      9
  90%    217
  95%    428
  98%   3011
  99%   3035
 100%  11325 (longest request)

_______________________________________________
uWSGI mailing list
[email protected]
http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi

Reply via email to