Login / Status
developer.Resource
Home . Documentation . Document Library . Extension Manuals
Sponsors
hosted by punkt.deTYPO3 and Open Source MagazineAOE Media

1.7. The need for speed

Here are some test results for a USER page generated from cache by TYPO3 and one pushed from static html. The test tool used is apache bench. The “-c” means that 100 simultaneous users are simulated, “-n 1000” means that a thousand unique requests are generated.

By default apachebench uses NoKeepAlive which means that every image and css file will use a new apache connection.

Future test may include measurements done sucking a complete site (static + dynamic pages) once with static cache enabled and once without static cache enabled. Sucking tools:

  1. crawler extension (TYPO3)

  2. curl

  3. httrack

  4. wget

  5. siege

  6. . . . need to check

Tests were run on a dual Xeon 5040 with raid5 and 4GB of ram and a tweaked out apache and mysql configuration.

The USER cached page

ab -c 100 -n 1000 http://some.fictive.domain.org/gnu-gpl-short/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking some.fictive.domain.org (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Finished 1000 requests
Server Software:        Apache/2.2.3
Server Hostname:        some.fictive.domain.org
Server Port:            80
Document Path:          /gnu-gpl-short/
Document Length:        570 bytes
Concurrency Level:      100
Time taken for tests:   42.962096 seconds
Complete requests:      1000
Failed requests:        899
   (Connect: 0, Length: 899, Exceptions: 0)
Write errors:           0
Non-2xx responses:      101
Total transferred:      12456824 bytes
HTML transferred:       12002703 bytes

Requests per second:    23.28 [#/sec] (mean)

Time per request:       4296.209 [ms] (mean)
Time per request:       42.962 [ms] (mean, across all concurrent requests)
Transfer rate:          283.13 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   2.2      0      63
Processing:   378 4098 1481.2   4120   15311
Waiting:      378 4076 1474.6   4098   15296
Total:        378 4098 1481.1   4120   15311
Percentage of the requests served within a certain time (ms)
  50%   4120
  66%   4344
  75%   4523
  80%   4718
  90%   5303
  95%   6369
  98%   7974
  99%  10141
 100%  15311 (longest request)

The static html page pushed by mod_rewrite

ab -c 100 -n 1000 http://some.fictive.domain.org/gnu-gpl-short/
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking some.fictive.domain.org (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Finished 1000 requests
Server Software:        Apache/2.2.3
Server Hostname:        some.fictive.domain.org
Server Port:            80
Document Path:          /gnu-gpl-short/
Document Length:        13372 bytes
Concurrency Level:      100
Time taken for tests:   0.187034 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      13753000 bytes
HTML transferred:       13372000 bytes
Time per request:       0.187 [ms] (mean, across all concurrent requests)

Requests per second:    5346.62 [#/sec] (mean)

Time per request:       18.703 [ms] (mean)
Transfer rate:          71805.12 [Kbytes/sec] received
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.9      0       5
Processing:     2   16   4.4     17      30
Waiting:        2   16   4.4     17      30
Total:          2   17   4.3     17      30
Percentage of the requests served within a certain time (ms)
  50%     17
  66%     20
  75%     21
  80%     21
  90%     23
  95%     23
  98%     24
  99%     24
 100%     30 (longest request)

Test result

Quick calculation show us a performance increase factor of:

5346.62 / 23.28 = 230

Let's see that again, but with more energy

23000 %

Wow!