pyramid-cubicweb #4669711 document performance impact [open]

Serving just "/":

Server Software: TwistedWeb/14.0.2
Server Hostname: localhost
Server Port: 8080

Document Path: /
Document Length: 7569 bytes

Concurrency Level: 8
Time taken for tests: 5.033 seconds
Complete requests: 50
Failed requests: 0
Total transferred: 398450 bytes
HTML transferred: 378450 bytes
Requests per second: 9.93 [#/sec] (mean)
Time per request: 805.274 [ms] (mean)
Time per request: 100.659 [ms] (mean, across all concurrent requests)
Transfer rate: 77.31 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 406 784 268.4 656 1267
Waiting: 405 782 268.0 654 1267
Total: 406 784 268.4 656 1267

Percentage of the requests served within a certain time (ms)
50% 656
66% 1011
75% 1025
80% 1093
90% 1129
95% 1147
98% 1267
99% 1267
100% 1267 (longest request)

Server Software: waitress
Server Hostname: localhost
Server Port: 8080

Document Path: /
Document Length: 8212 bytes

Concurrency Level: 8
Time taken for tests: 2.980 seconds
Complete requests: 50
Failed requests: 0
Total transferred: 435450 bytes
HTML transferred: 410600 bytes
Requests per second: 16.78 [#/sec] (mean)
Time per request: 476.753 [ms] (mean)
Time per request: 59.594 [ms] (mean, across all concurrent requests)
Transfer rate: 142.71 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 226 458 82.6 463 604
Waiting: 224 457 82.4 463 599
Total: 226 458 82.6 463 604

Percentage of the requests served within a certain time (ms)
50% 463
66% 489
75% 505
80% 509
90% 571
95% 591
98% 604
99% 604
100% 604 (longest request)

With a blog instance, two blog entries of very small size (one written in rest) with the following command:

$ ab -n 50 -c 4 -s 120 http://localhost:8080/blogentry

We get:

Server Software: TwistedWeb/14.0.2
Server Hostname: localhost
Server Port: 8080

Document Path: /blogentry
Document Length: 10128 bytes

Concurrency Level: 4
Time taken for tests: 12.719 seconds
Complete requests: 50
Failed requests: 0
Total transferred: 522200 bytes
HTML transferred: 506400 bytes
Requests per second: 3.93 [#/sec] (mean)
Time per request: 1017.491 [ms] (mean)
Time per request: 254.373 [ms] (mean, across all concurrent requests)
Transfer rate: 40.10 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 670 1005 99.0 1003 1274
Waiting: 670 1004 98.8 1002 1273
Total: 670 1005 99.0 1003 1274

Percentage of the requests served within a certain time (ms)
50% 1003
66% 1047
75% 1061
80% 1079
90% 1136
95% 1137
98% 1274
99% 1274
100% 1274 (longest request)

Server Software: waitress
Server Hostname: localhost
Server Port: 8080

Document Path: /blogentry
Document Length: 10771 bytes

Concurrency Level: 4
Time taken for tests: 8.967 seconds
Complete requests: 50
Failed requests: 0
Total transferred: 559200 bytes
HTML transferred: 538550 bytes
Requests per second: 5.58 [#/sec] (mean)
Time per request: 717.381 [ms] (mean)
Time per request: 179.345 [ms] (mean, across all concurrent requests)
Transfer rate: 60.90 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 339 707 86.4 720 870
Waiting: 339 706 86.2 718 868
Total: 339 707 86.4 720 870

Percentage of the requests served within a certain time (ms)
50% 720
66% 733
75% 742
80% 755
90% 807
95% 815
98% 870
99% 870
100% 870 (longest request)

Interestingly, I couldn't test with 100 requests because twisted exceeded a 120sec timeout parameter each time I launched ab.

prioritynormal
typetask
done in<not specified>
closed by<not specified>