wordpress woes
In the blog-o-sphere, this major player can take down the mightiest of servers in a matter of seconds.
As a Python developer, I have spent very little time investigating PHP or any of the massive open source projects based on it (Drupal, Joomla, osCommerce, and specifically WordPress). During a recent project involving very high concentrated traffic, I became fully aware of the power of PHP on my server's load.
We created an out-of-the-box WordPress site running through Apache and dumping data in MySQL on a dedicated linux box with 2 GB of RAM and dual duo-core CPUs at a very reliable hosting company. With a few plugins enabled, including WP Super Cache, our server was delivering fast pages and we saw very low load. All this changed when the client directed users to try out the beta site, specifically a "live blog".
Once we got our server rebooted and directed traffic to a static page, we realized that our combination of Apache, PHP and MySQL could not handle several thousands of hits per hour, including one hundred comments in fifteen minutes. We did a lot of research and came up with a solution combining Varnish, XCache, the use of another server for static files, and tweaks to Apache, WP Super Cache and MySQL configurations. To simulate a tremendous amount of traffic, comment entries and post modifications, we developed tests using JMeter and ran them on three geographically disperse workstations. The results were extremely helpful for identifying leaks and problems with various elements in the mix.
The lessons learned in this feat of smashing an 800 pound gorilla into a pillbox:
- design your tests early
- everyone appreciates a good cache
- WordPress can and will be tamed
- MySQL deserves its own special place in this world

