WordPress beschleunigen mit einem Cache Plugin (W3 Total Cache)

19. Februar 2012

Allgemein bekannt ist die eher bescheidene Performance von WordPress.

Um WordPress zu beschleunigen setzte ich auf das Plugin „W3 Total Cache„. Das bietet viele Einstellungsmöglichkeiten um das Caching auf seine Bedürfnisse perfekt anzupassen.

Nach der Installation hab ich Page Cache mit Disk: Enhanced und Minify für JavaScript und CSS auf Disk aktiviert.

 

Um die Geschwindigkeitsunterschiede zu messen hab ich apache bench auf einem anderen Root-Server eingesetzt. Einmal hab ich die Performance getestet ohne Caching und einmal mit.

Als Einstellung hab ich 1000 Requests mit 10 konkurierenden Verbindungen gewählt.

Ergebnis ohne Caching:

root@entwicklung: ab -n 1000 -c 10 http://techroll.de/
Benchmarking www.techroll.de (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
Completed 1000 requests
Finished 1000 requests

Server Software:        Apache
Server Hostname:        www.techroll.de
Server Port:            80

Document Path:          /
Document Length:        12404 bytes

Concurrency Level:      10
Time taken for tests:   185.342 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      12718000 bytes
HTML transferred:       12404000 bytes
Requests per second:    5.40 [#/sec] (mean)
Time per request:       1853.419 [ms] (mean)
Time per request:       185.342 [ms] (mean, across all concurrent requests)
Transfer rate:          67.01 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    1   1.4      0      40
Processing:   556 1851 1066.1   1631    9287
Waiting:      513 1582 1016.9   1374    8986
Total:        556 1851 1066.4   1632    9291

Percentage of the requests served within a certain time (ms)
50%   1632
66%   1684
75%   1720
80%   1739
90%   1828
95%   3189
98%   6318
99%   8184
100%   9291 (longest request)

Man sieht schön das nur 5.4 requests/sec mit einer durchschnittlichen Zeit von 1,8 Sekunden erreicht werden. Das ist nicht sehr berauschend und der Server geht bei einem kleinen Ansturm recht flott in die Knie 🙁

 

Aktiviert man das Caching und startet das Benchmarking erneut bekommt man folgendes Ergebnis.

Ergebnis mit Caching:

root@entwicklung: ab -n 1000 -c 10 http://techroll.de/
Benchmarking www.techroll.de (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
Completed 1000 requests
Finished 1000 requests

Server Software:        Apache
Server Hostname:        www.techroll.de
Server Port:            80

Document Path:          /
Document Length:        11709 bytes

Concurrency Level:      10
Time taken for tests:   1.303 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      12031000 bytes
HTML transferred:       11709000 bytes
Requests per second:    767.32 [#/sec] (mean)
Time per request:       13.032 [ms] (mean)
Time per request:       1.303 [ms] (mean, across all concurrent requests)
Transfer rate:          9015.22 [Kbytes/sec] received

Connection Times (ms)
min  mean[+/-sd] median   max
Connect:        0    2   0.8      2       8
Processing:     5   11   4.4     10      60
Waiting:        2    9   4.5      8      56
Total:          6   13   4.2     12      63

Percentage of the requests served within a certain time (ms)
50%     12
66%     14
75%     15
80%     16
90%     18
95%     19
98%     21
99%     25
100%     63 (longest request)

Mit dem Caching werden jetzt mehr als 700 requests/sec bei einer durschnittlichen Zeit von 13 ms erreicht. Das sind ca. 150 mal so viele requests/sec! Wow!

 

Fazit: Das Caching bringt einen ernomen Performanceschub und sollte bei keiner WordPress Installation fehlen 🙂

 

Kommentare sind geschlossen