A co-worker and friend of mine Iliya Polihronov gave this talk earlier this year at WordCamp San Francisco 2012. He walked through an optimal server configuration for a high-performance WordPress environment, including nginx, php-fpm, APC and memcached. His notes are on SlideShare.
I’ve been running an nginx and php-fpm configuration for over a year now, with a VPS from MediaTemple. I tried quite a lot of different configurations, including Batcache, W3 Total Cache, Varnish and more. I found that WP Super Cache with nginx and php-fpm works really well for my setup, where I have just over ten sites in a multisite environment, running on 512M of memory.
After watching Iliya’s talk and the performance improvements possible by APC, I have decided to give it a go some time later this year. My codebase is quite small, so I think I’ll manage to survive with much less than 32M dedicated to APC.
I’d also really love to run the Memcached Backend for WordPress’ object cache, but unable to at the time of writing, since one of my sites in the network has over a thousand “posts” published every day, but accessed only once or twice in their life time. If you’re wondering, they’re Twitter profiles for Foller.me.
As much as I’d like to avoid that, I’ll have to move the site out from the network, instead of hacking the Memcached plugin to avoid caching, based on a domain, which I think is also possible. I’ll keep looking into other solutions, and probably blog about how I solved that later.
In addition to the tools Iliya talked about, I’d like to mention one called ab, or the Apache server benchmarking utility. It has quite a few options to test and benchmark your (not necessarily Apache) web server performance.
What does your WordPress environment look like? Which caching plugins and techniques do you use? Are you planning to try something, or is your setup working well for you? Share your thoughts via the comments section. Thanks for reading!