# Register all requests
###
foreach (1..) {
foreach my (@urls) {
my = HTTP::Request->new('GET', );
->register();
}
}
###
# Launch processes and check time
###
my = [gettimeofday];
my = ->wait();
my = tv_interval();
### # Requests all done, check results ###
my = 0;
my %errors = ();
foreach my (values %) {
my = ->response();
if(->is_success()) {
++; # Another satisfied customer
} else {
# Error, save the message
->message("TIMEOUT") unless ->code();
{->message}++;
}
}
###
# Format errors if any from %errors
###
my = join(',', map "sh ({sh})", keys %errors);
= "NONE" unless ;
### # Format results ###
#@urls = map {(sh,".")} @urls;
my @P = (
"URL(s)" => join("ntt ", @urls),
"Total Requests" => "",
"Parallel Agents" => ,
"Succeeded" => sprintf(" (%.2f%%)n",
* 100 / ),
"Errors" => ,
"Total Time" => sprintf("%.2f secsn", ),
"Throughput" => sprintf("%.2f Requests/secn",
/ ),
"Latency" => sprintf("%.2f secs/Request",
(->get_latency_total() || 0) /
),
);
my (, );
###
# Print out statistics
###
format STDOUT =
@
while((, ) = splice(@P, 0, 2)) {
write;
}
Benchmarking PerlHandlers
The Apache::Timeit module does PerlHandler Benchmarking. With
the help of this module you can log the time taken to process the
request, just like you'd use the Benchmark module to benchmark a
regular Perl script. Of course you can extend this module to perform
more advanced processing like putting the results into a database for
a later processing. But all it takes is adding this configuration
directive inside httpd.conf:
PerlFixupHandler Apache::Timeit
Since scripts running under Apache::Registry are running inside the
PerlHandler these are benchmarked as well.
An example of the lines which show up in the error_log file:
timing request for /perl/setupenvoff.pl:
0 wallclock secs ( 0.04 usr + 0.01 sys = 0.05 CPU)
timing request for /perl/setupenvoff.pl:
0 wallclock secs ( 0.03 usr + 0.00 sys = 0.03 CPU)
The Apache::Timeit package is a part of the Apache-Perl-contrib
files collection available from CPAN.
References
The mod_perl site’s URL: http://perl.apache.org
httperf — webserver Benchmarking tool
http://www.hpl.hp.com/personal/David_Mosberger/httperf.html
Property of TechnologyAdvice. © 2025 TechnologyAdvice. All Rights Reserved
Advertiser Disclosure: Some of the products that appear on this site are from companies from which TechnologyAdvice receives compensation. This compensation may impact how and where products appear on this site including, for example, the order in which they appear. TechnologyAdvice does not include all companies or all types of products available in the marketplace.