WordPress Caching Comparision – W3 Total Cache vs. WP Super Cache vs. WP Cache

Updated June 14. Added results for W3 Total Cache using Disk Enhanced caching only at the request of Frederick Townes, author of W3 Total Cache. I ran tests with both “gzip” and “gzip and deflate” settings.

I’ve seen a lot of discussion lately about the various WordPress caching plugins. Here’s a quick comparison using Apache Bench. First some background on the test platform.

This is a 512mb VPS from prgmr.com

Fresh install of Ubuntu 10.04

NginX, PHP, MySQL installed via APT (PHP 5.3.2-1ubuntu4.2ppa3~lucid1 (FPM/FastCGI), NginX 0.7.65, MySQL (5.1.41-3ubuntu12.3))

WordPress 2.9.2, standard Kubrick theme, nginx Compatibility plug-in installed.

Plugin Versions:

WP-Cache 2.12
WP Super Cache 0.9.9
W3 Total Cache 0.8.5.2

The following command line was used. The -c and -n flags were modified during different runs as illustrated below.

ab -k -n XXX -c XXX http://testingserver/wordpress/2010/06/hello-world/
-n flag is the total number of requests (this is 1000 unless noted)
-c flag is for the number of concurrent requests
The Results

Click for full version
There was no -n 10000 -c 250 run for WordPress with no cache, as it would’ve taken very long and no further information would be gained.. Updated
Raw Data
50 Concurrent Requests

cache method time taken total transferred html transferred req/sec transfer rate

none 42.631 7025688 6786210 23.46 160.94

wp-cache 9.567 7157000 6872000 104.53 730.58

wp super cache (half on) 7.636 7184084 6905065 130.96 918.8

wp super cache (full) 7.411 7180000 6901000 134.93 946.07

w3 total cache (quick) 8.228 6427618 6039371 121.53 762.84

w3 total cache (APC for all) 8.384 6554037 6087793 119.28 763.44

w3 total cache (DE only) 7.787 7419504 7032408 128.41 930.43

w3 total cache (DE only gzip+deflate) 7.518 7393440 7008630 133.01 960.33

100 Concurrent Requests

cache method time taken total transferred html transferred req/sec transfer rate

none 41.277 7025688 6786210 24.23 166.22

wp-cache 7.942 7229988 6940603 125.91 888.98

wp super cache (half on) 4.711 7353500 7063600 212.28 1524.42

wp super cache (full) 4.598 7316282 7013904 217.49 1553.89

w3 total cache (quick) 4.619 6483320 6090890 216.5 1370.77

w3 total cache (APC for all) 5.326 6571413 6103337 187.76 1204.91

w3 total cache (DE only) 5.213 7467288 7076001 191.83 1398.88

w3 total cache (DE only gzip+deflate) 4.503 7458600 7068075 222.07 1617.52

250 Concurrent Requests

cache method time taken total transferred html transferred req/sec transfer rate

none 45.112 6694982 6459715 22.17 144.93

wp-cache 5.001 7370444 7067664 199.95 1439.19

wp super cache (half on) 4.782 7479736 7181764 209.11 1527.41

wp super cache (full) 3.436 7513840 7197120 291.02 2135.43

w3 total cache (quick) 5.341 6384178 5999741 187.24 1167.33

w3 total cache (APC for all) 7.17 6579256 6110264 139.46 896.05

w3 total cache (DE only) 4.648 7532448 7135446 215.14 1582.52

w3 total cache (DE only gzip+deflate) 5.265 7462944 7072038 189.93 1384.21

250 Concurrent Requests – 10000 Total Requests

cache method time taken total transferred html transferred req/sec transfer rate

none 384.545 64628053 62311067 26 164.12

wp-cache 34.552 71599548 68748013 289.42 2023.66

wp super cache (half on) 29.075 72047348 69241705 343.94 2419.91

wp super cache (full) 28.534 72337968 69365832 350.46 2475.77

w3 total cache (quick) 42.432 63564752 59751704 235.67 1462.91

w3 total cache (APC for all) 43.688 64968473 60366489 228.9 1452.25

w3 total cache (DE only gzip) 42.674 73695480 69868335 234.34 1686.48

w3 total cache (DE only gzip+deflate) 42.391 73612944 69793038 235.9 1695.81

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Remove Injected PHP code from hackers

Here’s a quick little php script to batch process all your .php files and remove base64_decode junk if your site has been hacked. Just save this as a php file, upload it to your website and visit that page in your web browser.

<?php
set_time_limit(0);
$tmpdir = "./";
$rmcmd = `find $tmpdir -name "*.php" -type f | xargs sed -i 's#<?php /\*\*/ eval(base64_decode(".*?>##g' 2>&1`;
echo "Finished";
?>

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Lost S6E5 & E6 Thoughts

Missed a week.

Not much to think about with E5 that I can’t cover in E6 anyways.

Kate wasn’t going back to the temple the last time we saw her, with Hurley and Jack, but she ends up walking in anyways. There’s a missing part there. She’s run into someone who sent her to the temple, and not exactly to find Claire either. The top choices are either Locke, Jin or creepy jungle boy. She seems to have some knowledge of what’s going on in the end, not happy about it, but she has a new mission now.

Where the hell are Sawyer and Richard?

Are we supposed to believe that Dogen + Ash = Monster repellant? Or can Dogen fight and kill Smokey by himself, and Sayid make a hole in the ash allowing Smokey in?

Why are we avoiding the thing inside Locke’s name? “My Friend”, etc. Is it a name we already know? So strange.

Let’s jump all the way back to Season 2 when the others have Jack, Kate, Sawyer, Hurley, etc on the docks. Jack asks who they are and Ben replies “We’re the good guys.” Looking back, it’s probably true. As in they’re following Jacob and MiB is influencing the Losties making them the bad guys. If Claire is infected, then Rousseau probably was too. If you look at all of her actions, she was working towards the same end as Clarie. Blowing up the others as they came to the beach was her idea remember.

Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , ,