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.
Could you share your mod_perl configuration? My experiment with Koha last summer under mod_perl occasionally segfaulted Apache, but this might changed in last few months.
LikeLike
It’s a pretty simple set up, purely for testing. And I am totally willing to believe it will still cause problems. But it is certainly worth testing.
PerlRequire "/home/chris/mod_perl-startup.pl"
PerlModule ModPerl::Registry
<Location /cgi-bin/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
Options +ExecCGI
</Location>
And my startup script is as simple as
if ( ! {MOD_PERL}) { die "GATEWAY_INTERFACE not Perl!"; }
use lib qw(/home/chris/git/koha.git);
1;
LikeLike