perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From adam.pr...@utoronto.ca
Subject Re: some flawed benchmarks
Date Fri, 11 Jul 2008 03:43:49 GMT

i've changed some stuff and added fastcgi to the mix.  i've given  
numbers through the proxy as well as without it for all the mod_perl  
examples

I've modified the scripts so that they producing the same amount of  
output for each example (except cgi, which adds a content-length  
header, so the total data transfered is larger)

here's the cgi, used under cgi, perlrun and registry:

#!/usr/bin/perl

use strict;

print qq[Content-Type: text/html\r\n\r\n];

my $blurb = qq[1234567890\n] x 100;

print <<EOF;
<html><body>
<h1>Hello Worlds</h1>
<pre>
$blurb
</pre>
</body></html>
EOF

here's the fastcgi version:

#!/usr/bin/perl

use strict;
use FCGI;

while (FCGI::accept >= 0) {

     print qq[Content-Type: text/html\r\n\r\n];

     my $blurb = qq[1234567890\n] x 100;

     print <<EOF;
<html><body>
<h1>Hello Worlds</h1>
<pre>
$blurb
</pre>
</body></html>
EOF

}

and here's the handler, used for perlscript and modperl:

package Kabob::HelloWorld;

use strict;

use Apache2::RequestRec ();
use Apache2::Const -compile =>qw(:common);

sub handler {
     my $r = shift;

     $r->content_type('text/html');

     my $blurb = qq[1234567890\n] x 100;

     $r->print(<<EOF);
<html><body>
<h1>Hello Worlds</h1>
<pre>
$blurb
</pre>
</body></html>
EOF

     return Apache2::Const::OK;
}

1;


This is the conf entry for fast-cgi

     Alias /fcgi/ /www/p/
     <Location /fcgi/>
         <IfDefine FrontEnd>
             SetHandler fastcgi-script
             Options +ExecCGI
         </IfDefine>
     </Location>

the conf entries for the other examples remained the same as they were  
in the original email.  Obviously i didn't get to the different  
methods of CGI that dodger suggested.  maybe over the weekend.

results ordered by transfer rate:

cgi - no proxy
Total transferred:      13080000 bytes
HTML transferred:       11640000 bytes
Requests per second:    95.58 [#/sec] (mean)
Time per request:       10.462 [ms] (mean)
Transfer rate:          122.09 [Kbytes/sec] received

perlrun - through proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    463.07 [#/sec] (mean)
Time per request:       2.160 [ms] (mean)
Transfer rate:          581.52 [Kbytes/sec] received

registry - through proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    641.11 [#/sec] (mean)
Time per request:       1.560 [ms] (mean)
Transfer rate:          805.10 [Kbytes/sec] received

perlrun - no proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    658.17 [#/sec] (mean)
Time per request:       1.519 [ms] (mean)
Transfer rate:          826.53 [Kbytes/sec] received

perlscript - through proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    788.59 [#/sec] (mean)
Time per request:       1.268 [ms] (mean)
Transfer rate:          990.31 [Kbytes/sec] received

modperl - through proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    1063.74 [#/sec] (mean)
Time per request:       0.940 [ms] (mean)
Transfer rate:          1335.84 [Kbytes/sec] received

registry - no proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    1160.28 [#/sec] (mean)
Time per request:       0.862 [ms] (mean)
Transfer rate:          1457.08 [Kbytes/sec] received

fastcgi - no proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    1201.28 [#/sec] (mean)
Time per request:       0.832 [ms] (mean)
Transfer rate:          1508.57 [Kbytes/sec] received

perlscript - no proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    1430.31 [#/sec] (mean)
Time per request:       0.699 [ms] (mean)
Transfer rate:          1796.18 [Kbytes/sec] received

modperl - no proxy
Total transferred:      12860000 bytes
HTML transferred:       11640000 bytes
Requests per second:    2430.80 [#/sec] (mean)
Time per request:       0.411 [ms] (mean)
Transfer rate:          3052.59 [Kbytes/sec] received

With the proxy taken out of the mix, the jump from perlscript to  
modperl is even more pronounced.

If anyone's got any ideas about why the proxy is having as significant  
an impact as it is, i'd love to tweak it.  Also worth noting is that  
the front end is running worker, the backend is running prefork.

adam


Mime
View raw message