W3 Total Cache: what is considered to be “good” performance?
-
Hello,
I have a question for the W3 Total Cache (W3TC) community out there: what is considered as “good” performance for a site using W3TC?
I get between 0.3 seconds to 1.3 seconds for a page creation. I have yet to try more settings combinations, but I’m curious to know how fast your setup gets.
Let me know, I’m sure that a lot of webmasters are curious. Thanks!
-
This question is often asked, but there’s some thing to understand. It doesn’t matter what other people are doing. W3TC allows you to remove bottlenecks from your server, theme / site.
You should look at your past performance and go step-by-step through the options to realize: lower response time, lower page load time etc relative to your prior speeds. Limitations on what you achieve vary based on your server, theme, plugins and content.
I saw Yoasts video on his settings and that even prompted me to get APC, but now I have switched to the Development Version….any ways to find how others are setting that version most effectively?
Hi Frederick,
I agree with what you say, but having some kind of reference could be interesting. Is there a stressing tool that you would recommend? Often it’s easier to see the bottleneck under load. Thanks!
There are lots of different bottlenecks. I suppose you can use apache bench to check response time / concurrency.
I’m getting 0.10 to 0.20 second for page creation. Only using w3tc for page caching (APC) and minify (APC). Not using it for database caching.
Here are my Apache Bench results on a VPS with 768MB Ram with the following settings:
Minified using disk
Page Caching using disk (enhanced)
Database Caching using apc
Object Caching using apc
Content Delivery via static subdomain (with cookies)[~]# ab -n 1000 -c 10 https://c3mdigital.com/ This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0 Copyright 1996 Adam Twiss, Zeus Technology Ltd, https://www.zeustech.net/ Copyright 2006 The Apache Software Foundation, https://www.apache.org/ Server Software: Apache Server Hostname: c3mdigital.com Server Port: 80 Document Path: / Document Length: 17124 bytes Concurrency Level: 10 Time taken for tests: 2.319919 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 17622710 bytes HTML transferred: 17175372 bytes Requests per second: 431.05 [#/sec] (mean) Time per request: 23.199 [ms] (mean) Time per request: 2.320 [ms] (mean, across all concurrent requests) Transfer rate: 7417.93 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 9 6.4 9 28 Processing: 2 11 6.0 12 30 Waiting: 0 8 6.3 9 27 Total: 16 20 3.9 20 33 Percentage of the requests served within a certain time (ms) 50% 20 66% 21 75% 24 80% 25 90% 27 95% 28 98% 29 99% 30 100% 33 (longest request)
These are my results, using XCache for Page Cache and Minify. Memcached for DB. Server specs are a Xeon 5520 and 6GB RAM.
Server Software: nginx
Server Hostname: exophase.com
Server Port: 80Document Path: /
Document Length: 36176 bytesConcurrency Level: 10
Time taken for tests: 0.603084 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 36626000 bytes
HTML transferred: 36176000 bytes
Requests per second: 1658.14 [#/sec] (mean)
Time per request: 6.031 [ms] (mean)
Time per request: 0.603 [ms] (mean, across all concurrent requests)
Transfer rate: 59306.83 [Kbytes/sec] receivedConnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 2 5 2.5 5 24
Waiting: 2 4 2.4 4 23
Total: 2 5 2.5 5 24Percentage of the requests served within a certain time (ms)
50% 5
66% 6
75% 6
80% 7
90% 8
95% 10
98% 12
99% 15
100% 24 (longest request)I could write a book about benchmarking, but understand:
- Different web servers perform differently with PHP
- In general, static files cached to disk perform better than objects cached in memory.
- The document length is a significant factor in results, try to compare identical pages (like using the twentyten theme home page). Use minify + compression to increase throughput/concurrency.
- Lots more, this is enough for now…
Since everyone is showing AB results, here is a site of mine hosted on a 512MB VPS. Page caching APC, minify APC, no db caching.
ab -n 1000 -c 10 https://blackjack.wpselect.com/ This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, https://www.zeustech.net/ Licensed to The Apache Software Foundation, https://www.apache.org/ Server Software: Apache/2.2.14 Server Hostname: blackjack.wpselect.com Server Port: 80 Document Path: / Document Length: 31840 bytes Concurrency Level: 10 Time taken for tests: 1.327 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 32323000 bytes HTML transferred: 31840000 bytes Requests per second: 753.48 [#/sec] (mean) Time per request: 13.272 [ms] (mean) Time per request: 1.327 [ms] (mean, across all concurrent requests) Transfer rate: 23783.87 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.3 0 5 Processing: 3 13 10.2 11 103 Waiting: 0 12 9.7 10 103 Total: 3 13 10.2 11 103 Percentage of the requests served within a certain time (ms) 50% 11 66% 14 75% 16 80% 18 90% 25 95% 32 98% 42 99% 54 100% 103 (longest request)
Thanks for posting your info – this is very interesting. Frederick, this is very useful info too.
@fredericktownes: There are huge blocks in most sites that could be saved/cached as .php static files and included with a phpinclude, like:
-top stories (with thumbnails, updated every few hrs)
-most commented of last month, week, yesterday
-etc…Because they are based on WP data, they would normally be taxing the system every time they appear in the templates, even if the data itself would change only once a day or week. Even if you cache the DB queries, it seems much slower than saving those block of data to the disk with a cron and use a phpinclude. Am I being too paranoid?
Is there an easy way to redirect the php output to a file on disk?
Thanks!
Am I being too paranoid?
Yes, unless your site is very high traffic in which case you can modify your theme to create those cache files itself and update them at the intervals you wish. I thought about adding that to W3TC, but it’s most useful for very high traffic sites, so I may do it as a plugin later.
would this be a case where using the widget caching plugin (sorry, can’t remember its name) might be helpful?
What do you mean this case? I can imagine no case where that plugin is necessary while running W3TC. Someone else needs to provide a counter-example.
@frederick: Ok, I’ll try to stress the site. If I find an easy way to do it, I’ll go for it, but I’d rather keep things simple. I just have a thing against taxing the system for mostly static stuff.
How would you add it to W3TC? By adding “cache” tags to the template code with an expiration time?
- The topic ‘W3 Total Cache: what is considered to be “good” performance?’ is closed to new replies.