As you will see below, Cocoon's response times scale linear with the number of users hitting the server (assumed that the requested pages are already in the cache). The average response times rise from 140ms (for 40 users) over 280ms (80 users) to 560ms (at 160 concurrent users). This is far beyond the limit a machine should be targeted at in a production environment, but it shows very well that there is no breakdown even under high load.

"''Siege''" output for 40 concurrent users (10 different URLs, 2 hour run)

Transactions:                2077162 hits\\
Availability:                 100.00 %\\
Elapsed time:                7200.46 secs\\
Data transferred:          703126566 bytes\\
Response time:                  0.14 secs\\
Transaction rate:             288.48 trans/sec\\
Throughput:                 97650.23 bytes/sec\\
Concurrency:                   39.93\\
Successful transactions:     2077162\\
Failed transactions:               0\\
\\
2066337        pages delivered in interval 0 - 1 s \\
4869        pages delivered in interval 1 - 2 s \\
109        pages delivered in interval 2 - 3 s \\
34        pages delivered in interval 3 - 4 s \\
5        pages delivered in interval 5 - 6 s \\
0        pages delivered in interval 6 - 10 s \\
0        pages delivered in interval 11 - 20 s \\
0        pages delivered in interval 21 - 30 s \\
0        pages delivered in interval 31 - 180 s \\
0       pages delivered  > 181 s \\
2071354         pages total delivered\\
\\
~99,76 % < 1 sec.


"''Siege''" output for 80 concurrent users (10 different URLs, 2 hour run)

Transactions:                2060632 hits\\
Availability:                 100.00 %\\
Elapsed time:                7200.42 secs\\
Data transferred:          663368765 bytes\\
Response time:                  0.28 secs\\
Transaction rate:             286.18 trans/sec\\
Throughput:                 92129.18 bytes/sec\\
Concurrency:                   79.91\\
Successful transactions:     2060632\\
Failed transactions:               0\\
\\
1963380        pages delivered in interval 0 - 1 s \\
85413        pages delivered in interval 1 - 2 s \\
4097        pages delivered in interval 2 - 3 s \\
432        pages delivered in interval 3 - 4 s \\
99        pages delivered in interval 5 - 6 s \\
17        pages delivered in interval 6 - 10 s \\
1        pages delivered in interval 11 - 20 s \\
0        pages delivered in interval 21 - 30 s \\
0        pages delivered in interval 31 - 180 s \\
0       pages delivered  > 181 s \\
2053439         pages total delivered\\
\\
~95,61 % < 1 sec.


"''Siege''" output for 160 concurrent users (10 different URLs, 2 hour run)

Transactions:                2061097 hits\\
Availability:                 100.00 %\\
Elapsed time:                7199.85 secs\\
Data transferred:          664532442 bytes\\
Response time:                  0.56 secs\\
Transaction rate:             286.27 trans/sec\\
Throughput:                 92298.09 bytes/sec\\
Concurrency:                  159.80\\
Successful transactions:     2061097\\
Failed transactions:               0\\
\\
1684748        pages delivered in interval 0 - 1 s \\
262224        pages delivered in interval 1 - 2 s \\
81564        pages delivered in interval 2 - 3 s \\
18337       pages delivered in interval 3 - 4 s \\
4184        pages delivered in interval 5 - 6 s \\
3043        pages delivered in interval 6 - 10 s \\
69        pages delivered in interval 11 - 20 s \\
0        pages delivered in interval 21 - 30 s \\
0        pages delivered in interval 31 - 180 s \\
0       pages delivered  > 181 s \\
2054169         pages total delivered\\
\\
~82,01 & < 1 sec.



If you are planning to use this tool yourself you may find the attached awk script "siege-auswertung-awk" useful. This script generates the "... pages delivered in interval ..." messages. It is invoked in the following way:

/usr/local/bin/siege > /tmp/siege-test.out
cat /tmp/siege-test.out |grep -v HTTP
cat /tmp/siege-test.out | grep HTTP | /usr/bin/awk -f /usr/local/etc/siege-auswertung-awk



Note: The sharp bend in the curves below is not an error, it was caused because I ran out of disk space for the log files :-(



Attachment: response_time_overall-day.png
Attachment: requests_per_sec_overall-count-day.png
Attachment: siege-auswertung-awk

CocoonPerformanceResults%Scenario1 (last edited 2009-09-20 23:40:03 by localhost)