Hi,

Per Craig's request, here are the script files I used to develop the 
Apache-based presentation mentioned in an earlier post. 

Assuming I understand the ab source code, the scripts represent a setting 
involving single-request clients (who make a request and wait for a reply 
before making another) generating a homogeneous workload (ie, HelloWorld) 
on the server: I'm working on the single-client heterogeneous case now.

If you have heartburn about these scripts or want to propose something 
better, please do.  

Attached are two simplistic ascii bash shell scripts that work with 
Apache on Redhat6.1. Since I haven't finished installing TC4.0, so I 
don't know first-hand what's required to use ab with servlets: I'm told 
that having an http-address of the following form is sufficient: "
https://localhost:8080/servlet/HTTPGetServlet" 
Also attached is a sample summary file. I'm writing a shell/awk script to 
process the summary files that are posted. 

1) tcdriver

which which invokes tcscript with two parameters: the  number of 
concurrent connections (1, 20, 40, 60, 80, and 100) and one (!) servlet 
of your choice (make it HelloWorld the first time you use the script - 
and then send the summary before using it again with your second most 
favorite servlet).


2) tcscript

which invokes ab using the two parameters from tcdriver, dumps filtered 
data to a summary file, and cleans up the intermediate files. You will 
need to modify the line that invokes ab to give your localhost pathname. 
By running ab in localhost mode, network variability is eliminated (even 
though TCPIP loopback processing isn't). 

The data collected includes:

(from ab) info on per request connection times, total test, time and 
throughput;

(from sar) cpu utilization (%) and disk activity;

(from sa) cpu minutes per process.

I ran each iteration of the script after a cold boot, but I think running 
the whole thing immediately after a cold boot is sufficient.

Assuming Linux/Unix people decide to use these scripts, please attach the 
summary file in ascii format to a post that describes your system 
configuration (CPU, disk, memory, OS, etc.) I will process that files 
post the results every TBD days.

Sorry about the length. If I knew how to make it shorter, I would. :-)

Roy
-- 
Roy Wilson
E-mail: [EMAIL PROTECTED] 

>>>>>>>>>>>>>>>>> Original Message <<<<<<<<<<<<<<<<<<

On 11/2/00, 1:32:20 PM, "Craig R. McClanahan" 
<[EMAIL PROTECTED]> wrote regarding Re: Tomcat 4.0 Milestone 4 
performance measurement:

> Roy, would it be possible for you to write us a simple "cookbook" to 
follow
> in executing tests, so that we can each follow the same script and then
> report the results consistently?

> Craig McClanahan


> Roy Wilson wrote:

> > Hi,
> >
> > (1) System throughput and response time data collection
> >
> > I plan to do measurements myself using Henri Gomez' rpmized version of
> > TC-4.0-m4, but since machines and environments differ, it might be
> > interesting to know what kind of total time, throughput, avg and max
> > connection and processing time per request people see using the
> > HelloWorld servlet driving their system with ab in localhost mode
> > (immediately after a cold boot). These are the kinds of data presented by
> > Costin at ApacheCon Europe. I'd like to compile such numbers if people
> > are willing to post them along with info on CPU (e.g. Celeron 400Mhz),
> > memory (eg. 256M SDRAM100), disk (eg. WD Caviar 10.2MB, 5400 rpms), OS
> > (Redhat6.1), JVM (Classic), etc.
> >
> > (2) System resource usage data collection
> >
> > CPU and disk demand per request on each system might be interesting. I
> > have done some very simple resource measurement and performance modeling
> > of Apache that is described in a Office2000 PowerPoint (but created in
> > StarImpress) presentation at
> >
> > http://members.bellatlantic.net/~designrw/BENCH1.zip
> >
> > My current plan is to apply the same approach to TC-4.0 and then to
> > extend it by considering a mix of servlets, not just the HelloWorld
> > servlet (again in keeping with Costin's pitch at ApacheCon).
> >
> > Roy Wilson
> > --
> > Roy Wilson
> > E-mail: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]


> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
# Draft script by Roy Wilson used on Redhat6.1 system (bash)
# Assume ONLY HelloWorld servlet being used: better to have a set, but what?
# 
# To promote comparability, run script immediately after a cold boot
echo Use only after a cold boot: This helps make results comparable
echo When done please and post the summary file
echo to the Tomcat development list
echo Usage: sh tcscript servlet-name
rm -f summary
# see resource demand with concurrency with C = 1
sh tcscript 1 $1 
# Then ramp up load to 20, 40, 60, 80, 100 continuously active users 
load=20
while [ "$load" -le 100 ]
do
        sh tcscript $load $1 
        load=$(($load+20))
done


# Roy Wilson 11/2/00

echo "Starting ab load test with C = " $1 "and servlet = "$2
rm -f $1$2.sardata
# Next 2 lines may need adjustment on account of OS differences
# Start with a fresh temporary system accounting log file
cp /var/log/savacct /var/log/tcacct
/usr/sbin/accton /var/log/tcacct
# sample CPU and disk usage with 1 second resolution
(sar -u -b -o $1$2.sardata 1 > /dev/null )&
sarpid=$!
# modify path in next line for use of servlet
/usr/sbin/ab -n 100000 -c $1 http://ALFRED/$2 >> summary  
kill -s TERM ${sarpid}
# Next line may need modification: Turns off system accounting
/usr/sbin/accton
# peel off raw data, keep sar summary line
sar -f $1$2.sardata 1 | grep Average >> summary
# collect CPU per minute data from system accounting package 
/usr/sbin/sa -a /var/log/tcacct >> summary
rm -f $1$2.sardata 
echo "Finished ab load test with C = "$1 "and servlet = "$2
This is ApacheBench, Version 1.3a
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Benchmarking ALFRED (be patient)...
                                                                           
Server Software:        Apache/1.3.9
Server Hostname:        ALFRED
Server Port:            80

Document Path:          /1.html
Document Length:        4815 bytes

Concurrency Level:      1
Time taken for tests:   257.178 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      508000000 bytes
HTML transferred:       481500000 bytes
Requests per second:    388.84
Transfer rate:          1975.29 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     0  3000
Processing:     1     1     1
Total:          1     1  3001
Average:      15.61%     0.00%    36.93%    47.45%      2.61      0.17      2.43      
1.43     19.48
    1022     121.79re       4.36cp         0avio       688k
    1019     113.22re       3.21cp         0avio       689k   httpd*
       1       4.29re       1.15cp         0avio       714k   ab
       1       4.29re       0.00cp         0avio       281k   sar
       1       0.00re       0.00cp         0avio       266k   accton
This is ApacheBench, Version 1.3a
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Benchmarking ALFRED (be patient)...
                                                                           
Server Software:        Apache/1.3.9
Server Hostname:        ALFRED
Server Port:            80

Document Path:          /1.html
Document Length:        4815 bytes

Concurrency Level:      20
Time taken for tests:   165.362 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      508000000 bytes
HTML transferred:       481500000 bytes
Requests per second:    604.73
Transfer rate:          3072.05 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     9  3023
Processing:     2    23   851
Total:          2    32  3874
Average:      27.30%     0.00%    57.88%    14.82%      2.20      0.01      2.18      
0.14     17.45
    1012      49.80re       4.51cp         0avio       687k
    1006      44.28re       3.47cp         0avio       689k   httpd*
       1       2.76re       1.03cp         0avio       717k   ab
       1       2.76re       0.01cp         0avio       281k   sar
       1       0.00re       0.00cp         0avio       267k   rmmod
       1       0.00re       0.00cp         0avio       568k   sendmail*
       1       0.00re       0.00cp         0avio       325k   crond*
       1       0.00re       0.00cp         0avio       266k   accton
This is ApacheBench, Version 1.3a
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Benchmarking ALFRED (be patient)...
                                                                           
Server Software:        Apache/1.3.9
Server Hostname:        ALFRED
Server Port:            80

Document Path:          /1.html
Document Length:        4815 bytes

Concurrency Level:      40
Time taken for tests:   148.645 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      508066040 bytes
HTML transferred:       481562595 bytes
Requests per second:    672.74
Transfer rate:          3417.98 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0    17  3040
Processing:     8    41   470
Total:          8    58  3510
Average:      30.65%     0.00%    65.33%     4.00%      2.31      0.00      2.31      
0.00     18.54
     992      82.38re       4.64cp         0avio       688k
     989      77.42re       3.59cp         0avio       689k   httpd*
       1       2.48re       1.05cp         0avio       720k   ab
       1       2.48re       0.00cp         0avio       281k   sar
       1       0.00re       0.00cp         0avio       266k   accton
This is ApacheBench, Version 1.3a
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Benchmarking ALFRED (be patient)...
                                                                           
Server Software:        Apache/1.3.9
Server Hostname:        ALFRED
Server Port:            80

Document Path:          /1.html
Document Length:        4815 bytes

Concurrency Level:      60
Time taken for tests:   144.356 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      508106680 bytes
HTML transferred:       481601115 bytes
Requests per second:    692.73
Transfer rate:          3519.82 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0    25  3093
Processing:    30    60   282
Total:         30    85  3375
Average:      31.72%     0.00%    66.40%     1.86%      2.71      0.00      2.71      
0.00     21.72
     995     109.46re       4.60cp         0avio       688k
     992     104.65re       3.53cp         0avio       689k   httpd*
       1       2.41re       1.06cp         0avio       723k   ab
       1       2.41re       0.01cp         0avio       281k   sar
       1       0.00re       0.00cp         0avio       266k   accton
This is ApacheBench, Version 1.3a
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Benchmarking ALFRED (be patient)...
                                                                           
Server Software:        Apache/1.3.9
Server Hostname:        ALFRED
Server Port:            80

Document Path:          /1.html
Document Length:        4815 bytes

Concurrency Level:      80
Time taken for tests:   138.916 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      508106680 bytes
HTML transferred:       481601115 bytes
Requests per second:    719.86
Transfer rate:          3657.65 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0    34  3097
Processing:    49    75    87
Total:         49   109  3184
Average:      32.05%     0.00%    67.22%     0.73%      2.26      0.00      2.26      
0.00     18.08
    1005     144.23re       4.44cp         0avio       688k
    1002     139.60re       3.46cp         0avio       689k   httpd*
       1       2.32re       0.97cp         0avio       726k   ab
       1       2.32re       0.01cp         0avio       281k   sar
       1       0.00re       0.00cp         0avio       266k   accton
This is ApacheBench, Version 1.3a
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Benchmarking ALFRED (be patient)...
                                                                           
Server Software:        Apache/1.3.9
Server Hostname:        ALFRED
Server Port:            80

Document Path:          /1.html
Document Length:        4815 bytes

Concurrency Level:      100
Time taken for tests:   140.047 seconds
Complete requests:      100000
Failed requests:        0
Total transferred:      508238760 bytes
HTML transferred:       481726305 bytes
Requests per second:    714.05
Transfer rate:          3629.06 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0    47  3157
Processing:    69    92   105
Total:         69   139  3262
Average:      31.54%     0.00%    67.73%     0.71%      2.35      0.00      2.35      
0.00     18.80
    1021     213.28re       4.63cp         0avio       688k
    1018     208.61re       3.64cp         0avio       689k   httpd*
       1       2.33re       0.99cp         0avio       728k   ab
       1       2.33re       0.00cp         0avio       281k   sar
       1       0.00re       0.00cp         0avio       266k   accton
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to