Litespeed Wordpress cache benchmark

Hedloff

Well-Known Member
#1
Hello,

I have testet the cache plugin from Litespeed on a couple of Wordpress installations and they give a great performance boost.
These are relative small sites but, when testing before and after cache plugin is activated it is a great difference:

Before plugin is activated and no other cache plugin is used:

Benchmarking testing.domain.tld (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Finished 300 requests

Server Software: LiteSpeed
Server Hostname: testing.domain.tld
Server Port: 80

Document Path: /wp/
Document Length: 12742 bytes

Concurrency Level: 2
Time taken for tests: 20.612 seconds
Complete requests: 300
Failed requests: 0
Write errors: 0
Total transferred: 3912900 bytes
HTML transferred: 3822600 bytes
Requests per second: 14.55 [#/sec] (mean)
Time per request: 137.416 [ms] (mean)
Time per request: 68.708 [ms] (mean, across all concurrent requests)
Transfer rate: 185.38 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 3 0.2 3 5
Processing: 128 134 3.9 134 155
Waiting: 117 123 3.2 123 143
Total: 131 137 3.9 137 157

Percentage of the requests served within a certain time (ms)
50% 137
66% 139
75% 140
80% 140
90% 142
95% 144
98% 148
99% 148
100% 157 (longest request)

When plugin is activated and enabled:

Benchmarking testing.domain.tld (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Finished 300 requests

Server Software: LiteSpeed
Server Hostname: testing.domain.tld
Server Port: 80

Document Path: /wp/
Document Length: 12742 bytes

Concurrency Level: 2
Time taken for tests: 1.397 seconds
Complete requests: 300
Failed requests: 0
Write errors: 0
Total transferred: 3940356 bytes
HTML transferred: 3822600 bytes
Requests per second: 214.79 [#/sec] (mean)
Time per request: 9.312 [ms] (mean)
Time per request: 4.656 [ms] (mean, across all concurrent requests)
Transfer rate: 2754.99 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 3 0.1 3 3
Processing: 5 7 11.0 6 142
Waiting: 3 4 10.3 3 130
Total: 8 9 11.0 8 145

Percentage of the requests served within a certain time (ms)
50% 8
66% 8
75% 8
80% 8
90% 9
95% 9
98% 9
99% 9
100% 145 (longest request)

As you see it will reduce loading by over far over 1500%!
 

Lauren

LiteSpeed Staff
Staff member
#2
Thanks for sharing this. This will give others confidence if you put a review on wordpress.org.
We are actively working on this to make it easier to use.
 

Hedloff

Well-Known Member
#3
I will :)

I have done some more testing and also tested other cache plugins against your plugin.

WP-Supercache:
Benchmarking testing.domain.tld (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Finished 300 requests

Server Software: LiteSpeed
Server Hostname: testing.domain.tld
Server Port: 80

Document Path: /wp/
Document Length: 12886 bytes

Concurrency Level: 2
Time taken for tests: 2.545 seconds
Complete requests: 300
Failed requests: 0
Write errors: 0
Total transferred: 3984404 bytes
HTML transferred: 3878686 bytes
Requests per second: 117.87 [#/sec] (mean)
Time per request: 16.968 [ms] (mean)
Time per request: 8.484 [ms] (mean, across all concurrent requests)
Transfer rate: 1528.81 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 3 3 0.6 3 9
Processing: 13 14 1.4 14 23
Waiting: 10 11 1.0 11 16
Total: 15 17 1.6 16 28

Percentage of the requests served within a certain time (ms)
50% 16
66% 17
75% 17
80% 17
90% 19
95% 20
98% 22
99% 24
100% 28 (longest request)

As you see WP-Supercache is fast, but not as fast as Litespeed Cache Plugin for Wordpress :)
 
#7
I am not seeing this large improvement using Litespeeds Wordpress cache or wit Super cache. the results are pretty close across the board.


No Cache

/usr/local/apache/bin/ab -n 6000 -c 40 http://*.net:80/wordpress

This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking *.net (be patient)
Completed 600 requests
Completed 1200 requests
Completed 1800 requests
Completed 2400 requests
Completed 3000 requests
Completed 3600 requests
Completed 4200 requests
Completed 4800 requests
Completed 5400 requests
Completed 6000 requests
Finished 6000 requests
Server Software: cloudflare-nginx
Server Hostname: *.net
Server Port: 80

Document Path: /wordpress
Document Length: 1147 bytes

Concurrency Level: 40
Time taken for tests: 9.418 seconds
Complete requests: 6000
Failed requests: 0
Non-2xx responses: 6000
Total transferred: 9636000 bytes
HTML transferred: 6882000 bytes
Requests per second: 637.11 [#/sec] (mean)
Time per request: 62.784 [ms] (mean)
Time per request: 1.570 [ms] (mean, across all concurrent requests)
Transfer rate: 999.22 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 22 61.8 18 1021
Processing: 37 41 17.2 39 886
Waiting: 37 41 16.9 39 886
Total: 54 63 64.3 56 1097

Percentage of the requests served within a certain time (ms)
50% 56
66% 57
75% 59
80% 59
90% 63
95% 67
98% 78
99% 101
100% 1097 (longest request)



Wp-Super Cache

/usr/local/apache/bin/ab -n 6000 -c 40 http://*.net:80/wordpress

This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking *.net (be patient)
Completed 600 requests
Completed 1200 requests
Completed 1800 requests
Completed 2400 requests
Completed 3000 requests
Completed 3600 requests
Completed 4200 requests
Completed 4800 requests
Completed 5400 requests
Completed 6000 requests
Finished 6000 requests
Server Software: cloudflare-nginx
Server Hostname: *.net
Server Port: 80

Document Path: /wordpress
Document Length: 1147 bytes

Concurrency Level: 40
Time taken for tests: 8.872 seconds
Complete requests: 6000
Failed requests: 0
Non-2xx responses: 6000
Total transferred: 9636000 bytes
HTML transferred: 6882000 bytes
Requests per second: 676.31 [#/sec] (mean)
Time per request: 59.144 [ms] (mean)
Time per request: 1.479 [ms] (mean, across all concurrent requests)
Transfer rate: 1060.70 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 18 12.9 18 1018
Processing: 37 41 8.6 39 348
Waiting: 37 41 8.6 39 348
Total: 54 59 15.5 56 1057

Percentage of the requests served within a certain time (ms)
50% 56
66% 58
75% 59
80% 60
90% 63
95% 67
98% 75
99% 85
100% 1057 (longest request)

Litespeed Wordpress Cache LSCWP

/usr/local/apache/bin/ab -n 6000 -c 40 http://*.net:80/wordpress
This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking*.net (be patient)
Completed 600 requests
Completed 1200 requests
Completed 1800 requests
Completed 2400 requests
Completed 3000 requests
Completed 3600 requests
Completed 4200 requests
Completed 4800 requests
Completed 5400 requests
Completed 6000 requests
Finished 6000 requests
Server Software: cloudflare-nginx
Server Hostname: *.net
Server Port: 80

Document Path: /wordpress
Document Length: 1147 bytes

Concurrency Level: 40
Time taken for tests: 8.778 seconds
Complete requests: 6000
Failed requests: 0
Non-2xx responses: 6000
Total transferred: 9636000 bytes
HTML transferred: 6882000 bytes
Requests per second: 683.54 [#/sec] (mean)
Time per request: 58.519 [ms] (mean)
Time per request: 1.463 [ms] (mean, across all concurrent requests)
Transfer rate: 1072.03 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 18 12.9 18 1018
Processing: 37 40 8.6 39 399
Waiting: 37 40 8.6 39 399
Total: 54 58 15.5 56 1056

Percentage of the requests served within a certain time (ms)
50% 56
66% 57
75% 59
80% 59
90% 62
95% 66
98% 74
99% 82
100% 1056 (longest request)
 
#9
Seems I was missing a / at the end, good catch!

Here are results between no cache And with Litespeed Wordpress Cache Enabled:

Cache Enabled

Document Path: /wordpress/
Document Length: 47368 bytes

Concurrency Level: 40
Time taken for tests: 16.186 seconds
Complete requests: 6000
Failed requests: 0
Total transferred: 287437035 bytes
HTML transferred: 284208000 bytes
Requests per second: 370.69 [#/sec] (mean)
Time per request: 107.906 [ms] (mean)
Time per request: 2.698 [ms] (mean, across all concurrent requests)
Transfer rate: 17342.34 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 18 3.1 18 142
Processing: 74 90 57.9 80 1146
Waiting: 38 52 57.3 43 1111
Total: 91 107 58.0 98 1164

Percentage of the requests served within a certain time (ms)
50% 98
66% 102
75% 105
80% 109
90% 119
95% 129
98% 161
99% 246
100% 1164 (longest request)


Cache Disabled

Document Path: /wordpress/
Document Length: 47368 bytes

Concurrency Level: 40
Time taken for tests: 16.352 seconds
Complete requests: 6000
Failed requests: 0
Total transferred: 287574000 bytes
HTML transferred: 284208000 bytes
Requests per second: 366.93 [#/sec] (mean)
Time per request: 109.012 [ms] (mean)
Time per request: 2.725 [ms] (mean, across all concurrent requests)
Transfer rate: 17174.50 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 18 0.8 18 45
Processing: 74 91 42.4 82 759
Waiting: 38 50 41.4 42 724
Total: 92 109 42.4 99 777

Percentage of the requests served within a certain time (ms)
50% 99
66% 107
75% 113
80% 115
90% 121
95% 129
98% 156
99% 289
100% 777 (longest request)


Still not much of a difference between enabled and disabled. I thought maybe the cache was not working but headers show a hit when on and a miss when off.
 

mistwang

LiteSpeed Staff
#10
Your test is likely network bounded, so it is really limited by network speed.
But, you should be able to tell the difference by checking server load during the test.
 
#11
Hi mistwang,

If I run it local it is true there is a large increase in performance but still the results with no cache compared to with cache on are almost identical.

No Cache

Server Software: LiteSpeed
Server Hostname: 127.0.0.1
Server Port: 80

Document Path: /home/xoiwjrbc/public_html/wordpress/
Document Length: 10065 bytes

Concurrency Level: 40
Time taken for tests: 3.051 seconds
Complete requests: 4000
Failed requests: 0
Non-2xx responses: 4000
Total transferred: 40852000 bytes
HTML transferred: 40260000 bytes
Requests per second: 1311.24 [#/sec] (mean)
Time per request: 30.505 [ms] (mean)
Time per request: 0.763 [ms] (mean, across all concurrent requests)
Transfer rate: 13077.85 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.4 0 9
Processing: 5 30 5.4 29 65
Waiting: 2 21 4.0 20 48
Total: 6 30 5.4 29 65

Percentage of the requests served within a certain time (ms)
50% 29
66% 30
75% 31
80% 34
90% 37
95% 38
98% 43
99% 50
100% 65 (longest request)


With Cache

Server Software: LiteSpeed
Server Hostname: 127.0.0.1
Server Port: 80

Document Path: /home/xoiwjrbc/public_html/wordpress/
Document Length: 10065 bytes

Concurrency Level: 40
Time taken for tests: 2.940 seconds
Complete requests: 4000
Failed requests: 0
Non-2xx responses: 4000
Total transferred: 40852000 bytes
HTML transferred: 40260000 bytes
Requests per second: 1360.61 [#/sec] (mean)
Time per request: 29.399 [ms] (mean)
Time per request: 0.735 [ms] (mean, across all concurrent requests)
Transfer rate: 13570.21 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.3 0 9
Processing: 4 29 4.3 29 43
Waiting: 1 20 3.2 19 34
Total: 5 29 4.2 29 43

Percentage of the requests served within a certain time (ms)
50% 29
66% 29
75% 30
80% 32
90% 36
95% 36
98% 37
99% 40
100% 43 (longest request)

 
#13
Document Path: /wordpress/
Document Length: 47368 bytes

Concurrency Level: 40
Time taken for tests: 19.171 seconds
Complete requests: 6000
Failed requests: 0
Total transferred: 287573399 bytes
HTML transferred: 284208000 bytes
Requests per second: 312.97 [#/sec] (mean)
Time per request: 127.807 [ms] (mean)
Time per request: 3.195 [ms] (mean, across all concurrent requests)
Transfer rate: 14648.78 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 18 0.6 18 31
Processing: 74 110 372.9 79 6811
Waiting: 38 72 361.2 42 6763
Total: 91 127 373.0 97 6829

Percentage of the requests served within a certain time (ms)
50% 97
66% 99
75% 102
80% 103
90% 109
95% 117
98% 130
99% 150
100% 6829 (longest request)

Both benchmarks with and without cache result in the same numbers give or take 10% The test is run locally.
 

mistwang

LiteSpeed Staff
#14
Have you verified the response header to make sure cache is really on? "X-LiteSpeed-Cache: hit" is set?
either cache is not working properly, or something is slowing down the server.

Do you have mod_security enabled?
 
#15
Mod_sec was on. I disabled it in that account and this is the result. I have verified in the header that the cache is active yes.

Document Path: /wordpress/
Document Length: 47368 bytes

Concurrency Level: 40
Time taken for tests: 14.779 seconds
Complete requests: 6000
Failed requests: 0
Total transferred: 287574000 bytes
HTML transferred: 284208000 bytes
Requests per second: 405.99 [#/sec] (mean)
Time per request: 98.526 [ms] (mean)
Time per request: 2.463 [ms] (mean, across all concurrent requests)
Transfer rate: 19002.45 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 17 18 0.8 18 34
Processing: 73 81 12.6 77 231
Waiting: 38 43 8.2 40 132
Total: 91 98 12.8 94 256

Percentage of the requests served within a certain time (ms)
50% 94
66% 96
75% 98
80% 100
90% 108
95% 117
98% 137
99% 155
100% 256 (longest request)
 
#17
It seems like the cache completely ignores that I have turned it off. I cleared cache, disabled it yet headers continue to show hits on "X-LiteSpeed-Cache". Tried Chrome, Opera, and Firefox to be sure also.
 
Top