Tag Archives: benchmarking

Playing with plackup

I spent a little time playing with plack again this weekend, first I benchmarked apache2.


Benchmarking opac.koha.workbuffer.org (be patient)
Server Software: Apache/2.2.12
Server Hostname: opac.koha.workbuffer.org
Server Port: 80
Document Path: /cgi-bin/koha/opac-main.pl
Document Length: 7754 bytes
Concurrency Level: 5
Time taken for tests: 356.021 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 8113454 bytes
HTML transferred: 7754000 bytes
Requests per second: 2.81 [#/sec] (mean)
Time per request: 1780.103 [ms] (mean)
Time per request: 356.021 [ms] (mean, across all concurrent requests)
Transfer rate: 22.26 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 4 6 2.7 5 51
Processing: 776 1773 291.0 1768 2648
Waiting: 767 1755 290.2 1741 2642
Total: 780 1779 291.2 1772 2661
Percentage of the requests served within a certain time (ms)
50% 1772
66% 1922
75% 1986
80% 2031
90% 2149
95% 2248
98% 2406
99% 2519
100% 2661 (longest request)

Then next with nginx and plack.


Benchmarking opac.koha.workbuffer.org (be patient)
Server Software: nginx/0.7.62
Server Hostname: opac.koha.workbuffer.org
Server Port: 82
Document Path: /cgi-bin/koha/opac-main.pl
Document Length: 7737 bytes
Concurrency Level: 5
Time taken for tests: 17.453 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 8087000 bytes
HTML transferred: 7737000 bytes
Requests per second: 57.30 [#/sec] (mean)
Time per request: 87.263 [ms] (mean)
Time per request: 17.453 [ms] (mean, across all concurrent requests)
Transfer rate: 452.51 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 7 3.6 7 22
Processing: 41 80 28.8 75 359
Waiting: 34 71 28.1 66 349
Total: 44 87 29.4 82 364
Percentage of the requests served within a certain time (ms)
50% 82
66% 92
75% 99
80% 104
90% 116
95% 125
98% 139
99% 222
100% 364 (longest request)

Koha benchmarking

Plain old CGI

Authentication successful
--------------
Koha circulation benchmarking utility
--------------
Benchmarking with 200 occurences of each operation and 10 concurrent sessions
Load testing staff client dashboard page 127347ms 1.57051206545894 pages/sec
Load testing catalog detail page 131230ms 1.52404175874419 biblios/sec
Load testing patron detail page 128608ms 1.55511321224185 borrowers/sec
Load testing circulation transaction (checkouts) 132053ms 1.51454340302757 checkouts/sec
Load testing circulation transaction (checkins) 132129ms 1.51367224454889 checkins/sec
Load testing all transactions at once 374410ms 2.67086883363158 operations/sec

mod_perl

Authentication successful
--------------
Koha circulation benchmarking utility
--------------
Benchmarking with 200 occurences of each operation and 10 concurrent sessions
Load testing staff client dashboard page 10578ms 18.9071658158442 pages/sec
Load testing catalog detail page 1450ms 137.931034482759 biblios/sec
Load testing patron detail page 10318ms 19.3836014731537 borrowers/sec
Load testing circulation transaction (checkouts) 16046ms 12.4641655241182 checkouts/sec
Load testing circulation transaction (checkins) 11541ms 17.3295208387488 checkins/sec
Load testing all transactions at once 38375ms 26.0586319218241 operations/sec

Circulation at least seems fine under mod_perl, I will do more testing but with a 1000% speed increase, this is definitely where we want to spend some quality testing time.