Finally...

This is a first alpha release of the tool. You can download it from 
http://stason.org/works/modules/Apache-Benchmark-0.1.tar.gz .

*** What is it ***

The goals of this project:

Measuring the performance capabilities of the given server (note that it
can be any webserver, not just mod_perl enabled, but it helps :)

  a. Standard behchmarking suite. Supplied as a part of the sw. This
will allow to compare different server versions, since the data under
test (benchmark) will be identical. In addition different HW can be
benchmarked to find the best.

  b. User customized (i.e. using the real code used on production
server). User will be able to run his own code to get the real capacity
and performance figures.

The capabilities to be tested are response plus request processing times
and process sizes under different loads and server configuration.

2. Creating a framework for the automatic optimal server configuration. 
Requires production server usage patterns, using pairs of uri/query and
relative per cent of this pairs as it happens daily or during specific
hours. The more time the code will run the better tuning you will get. The
final output is a configuration parameters like MaxClients, MaxServers etc
to be pasted into production server configuration file.

The first goal is almost completed. The second is not.

*** Getting Started ***

Read the README file for further instructions. But if you want it easy and
have the standard setup where apache sits at /usr/local/apache, just
unpack and run ./bin/bench.pl . Depending on the strenth of your machine
it might take a few minutes or a few hours to complete.

At this point the documentation is scarce, but will be completed once the
design is finalized, after you try it and tell me what do you think about
it. What's good, what's bad, what and how things should be improved. 

*** What you get ***

This is the output I've got on a very strong machine (relative to mine :) 

HW: Dual PII 400Mhz 256M RAM SCSI-HD
SW: Apache 1.3.12 / mod_perl 1.22 / perl 5.005_03 / Linux (RH6.1)

Remember that the actual results are slightly better because currently
both the client and the server are running on the same machine.

### Benchmarks Report performed on Fri Apr 21 13:50:26 2000
==========================================================================
Test 1 [
/tmp/bench/tests/registry_vs_handler_heavy/registry_vs_handler_heavy.
t ]
--------------------------------------------------------------------------
  SubTest          Conne- Concu-  Query AvTime Requests   Suc-
                   ctions rrency Length (msec) PerSecond  cess
--------------------------------------------------------------------------
 handler_heavy       1000     10      0    140    70.41   Pass
 handler_heavy       1000     10      0    141    70.13   Pass
 handler_heavy       1000     20      0    284    69.39   Pass
 handler_heavy       1000     20      0    287    68.69   Pass
 registry_heavy      1000     20      0    288    67.03   Pass
 registry_heavy      1000     10      0    147    66.88   Pass
 registry_heavy      1000     20      0    291    66.76   Pass
 registry_heavy      1000     10      0    148    66.59   Pass
 handler_heavy        100     20      0    248    64.35   Pass
 handler_heavy        100     10      0    156    60.75   Pass
 registry_heavy       100     10      0    150    60.02   Pass
 registry_heavy       100     20      0    300    58.14   Pass
--------------------------------------------------------------------------
Tests descriptions:
  handler_heavy  -- Heavy Perl Handler
  registry_heavy -- Heavy Registry Script
The output sorted by rps, avtime.
--------------------------------------------------------------------------

==========================================================================
Test 2 [ /tmp/bench/tests/mod_cgi_vs_mod_perl/mod_cgi_vs_mod_perl.t ]
--------------------------------------------------------------------------
  SubTest    Conne- Concu-  Query AvTime Requests   Suc-
             ctions rrency Length (msec) PerSecond  cess
--------------------------------------------------------------------------
 mod_perl       200      5      0     20   225.73   Pass
 mod_perl       100      5      0     24   189.39   Pass
 mod_cgi        200      5      0   1365     3.65   Pass
 mod_cgi        100      5      0   1394     3.52   Pass
--------------------------------------------------------------------------
Tests descriptions:
  mod_cgi  -- A script running under mod_cgi 
  mod_perl -- A script running under mod_perl 
The output sorted by rps, avtime.
--------------------------------------------------------------------------

==========================================================================
Test 3 [ /tmp/bench/tests/registry_vs_handler/registry_vs_handler.t ]
--------------------------------------------------------------------------
  SubTest    Conne- Concu-  Query AvTime Requests   Suc-
             ctions rrency Length (msec) PerSecond  cess
--------------------------------------------------------------------------
 handler       2000     15      0     23   625.98   Pass
 handler       5000     15      0     23   625.31   Pass
 handler        500      5      0      7   612.75   Pass
 registry       500     15      0     23   602.41   Pass
 registry       500      5      0      7   591.72   Pass
 handler       5000      5      0      7   590.11   Pass
 handler       5000     10      0     15   585.07   Pass
 handler        500     15      0     24   583.43   Pass
 registry      2000      5      0      7   580.05   Pass
 handler       2000      5      0      7   577.03   Pass
 handler        500     10      0     16   576.70   Pass
 handler       2000     10      0     15   571.43   Pass
 registry       500     10      0     13   565.61   Pass
 registry      5000      5      0      7   556.85   Pass
 registry      2000     15      0     23   532.91   Pass
 registry      5000     10      0     17   521.54   Pass
 registry      2000     10      0     17   521.51   Pass
 registry      5000     15      0     29   490.87   Pass
--------------------------------------------------------------------------
Tests descriptions:
  registry -- Registry Script
  handler  -- Perl Handler
The output sorted by rps, avtime.
--------------------------------------------------------------------------

==========================================================================
Test 4 [
/tmp/bench/tests/cgi.pm_vs_apache_request/cgi.pm_vs_apache_request.t 
]
--------------------------------------------------------------------------
  SubTest          Conne- Concu-  Query AvTime Requests   Suc-
                   ctions rrency Length (msec) PerSecond  cess
--------------------------------------------------------------------------
 apache_request       500      5    597      3  1250.00   Pass
 cgi_pm               500      5    597      3  1225.49   Pass
 apache_request       500     10    597      7  1213.59   Pass
 cgi_pm              1000     10    597      7  1152.07   Pass
 cgi_pm               500     10    597      7  1131.22   Pass
 cgi_pm              5000     10    597      7  1131.22   Pass
 apache_request      1000      5    597      2  1090.51   Pass
 cgi_pm              5000      5    597      3  1087.67   Pass
 cgi_pm              1000      5    597      2  1051.52   Pass
 apache_request      5000     10    597      7   989.32   Pass
 apache_request      1000     10    597      8   973.71   Pass
 apache_request      5000      5    597      3   963.58   Pass
 apache_request       500      5    205      8   512.82   Pass
 apache_request       500      5     25      8   509.68   Pass
 apache_request       500     10    105     18   504.03   Pass
 apache_request       500     10    205     18   503.52   Pass
 apache_request      5000      5     25      8   501.40   Pass
 apache_request      1000      5     25      9   497.51   Pass
 apache_request      1000      5    105      4   489.72   Pass
 apache_request      1000      5    205      7   477.10   Pass
 apache_request      5000      5    205      8   475.92   Pass
 apache_request      5000     10    105     19   475.42   Pass
 apache_request      5000      5    105      9   469.31   Pass
 apache_request      1000     10    105     16   468.60   Pass
 apache_request      1000     10    205     18   466.20   Pass
 apache_request      5000     10     25     20   464.68   Pass
 apache_request       500      5    105      9   460.83   Pass
 apache_request      5000     10    205     20   458.67   Pass
 apache_request      1000     10     25     22   430.66   Pass
 apache_request       500     10     25     22   417.01   Pass
 cgi_pm               500     10     25     27   352.11   Pass
 cgi_pm               500     10    205     28   341.53   Pass
 cgi_pm               500      5    105     13   338.29   Pass
 cgi_pm              1000     10     25     25   334.56   Pass
 cgi_pm              5000     10     25     28   333.91   Pass
 cgi_pm              5000      5    105     14   325.61   Pass
 cgi_pm               500      5    205     14   324.04   Pass
 cgi_pm              5000     10    105     29   320.94   Pass
 cgi_pm              1000      5    205      9   319.18   Pass
 cgi_pm              5000      5    205     14   317.22   Pass
 cgi_pm              1000      5    105     12   317.16   Pass
 cgi_pm              5000     10    205     30   317.10   Pass
 cgi_pm              1000     10    205     28   316.06   Pass
 cgi_pm              5000      5     25     14   315.64   Pass
 cgi_pm              1000     10    105     28   312.21   Pass
 cgi_pm              1000      5     25     15   310.75   Pass
 cgi_pm               500     10    105     26   298.33   Pass
 apache_request       500     10    337     36   258.00   Pass
 apache_request      5000     10    337     37   257.86   Pass
 apache_request      5000      5    337     18   256.08   Pass
 apache_request      1000     10    337     35   256.02   Pass
 apache_request      1000      5    337     18   254.91   Pass
 apache_request       500      5    337     18   253.42   Pass
 cgi_pm               500      5     25     20   219.68   Pass
 cgi_pm              5000      5    337     35   135.02   Pass
 cgi_pm              1000     10    337     72   133.87   Pass
 cgi_pm              5000     10    337     73   133.60   Pass
 cgi_pm               500     10    337     68   133.12   Pass
 cgi_pm              1000      5    337     37   129.27   Pass
 cgi_pm               500      5    337     38   128.17   Pass
--------------------------------------------------------------------------
Tests descriptions:
  apache_request -- Processing Forms Input with Apache::Request
  cgi_pm         -- Processing Forms Input with CGI.pm
The output sorted by rps, avtime.
--------------------------------------------------------------------------


______________________________________________________________________
Stas Bekman             | JAm_pH    --    Just Another mod_perl Hacker
http://stason.org/      | mod_perl Guide  http://perl.apache.org/guide 
mailto:[EMAIL PROTECTED]  | http://perl.org    http://stason.org/TULARC/
http://singlesheaven.com| http://perlmonth.com http://sourcegarden.org
----------------------------------------------------------------------

Reply via email to