<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="" type="text/css"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
         xmlns:rss="http://purl.org/rss/1.0/"
         xmlns:content="http://purl.org/rss/1.0/modules/content/">

    <rss:channel rdf:about="http://www.mountainleverage.com/blogs/jeremy-keiper">

        <rss:title>Jeremy Keiper</rss:title>
        <rss:link>http://www.mountainleverage.com/blogs/jeremy-keiper</rss:link>

        
        <rss:description>Jeremy Keiper RSS 1.0 feed.</rss:description>

        <rss:image rdf:resource="http://www.mountainleverage.com/logo.png"/>

        <sy:updatePeriod>daily</sy:updatePeriod>
        <sy:updateFrequency>1</sy:updateFrequency>

        <rss:items>
            <rdf:Seq>
                
                <rdf:li rdf:resource="http://www.mountainleverage.com/blogs/jeremy-keiper/2008/01/10/wordpress-woes"/>
                
            </rdf:Seq>
        </rss:items>
    </rss:channel>

    <rss:image rdf:about="http://www.mountainleverage.com/logo.png">
        <rss:title>Jeremy Keiper</rss:title>
        <rss:link>http://www.mountainleverage.com/blogs/jeremy-keiper</rss:link>
        <rss:url>http://www.mountainleverage.com/logo.png</rss:url>
    </rss:image>

    

    <rss:item rdf:about="http://www.mountainleverage.com/blogs/jeremy-keiper/2008/01/10/wordpress-woes">

        <rss:title>wordpress woes</rss:title>

        <rss:link>http://www.mountainleverage.com/blogs/jeremy-keiper/2008/01/10/wordpress-woes</rss:link>       

        <rss:description>In the blog-o-sphere, this major player can take down the mightiest of servers in a matter of seconds.</rss:description>

        <content:encoded>
          <![CDATA[
          
<p>As a <a class="external-link" href="http://www.python.org/">Python </a>developer, I have spent very little time investigating <a class="external-link" href="http://www.php.net/">PHP </a>or any of the massive open source projects based on it (<a class="external-link" href="http://drupal.org/">Drupal</a>, <a class="external-link" href="http://www.joomla.org/">Joomla</a>, <a class="external-link" href="http://www.oscommerce.com/">osCommerce</a>, and specifically <a class="external-link" href="http://wordpress.org/">WordPress</a>).&nbsp; During a recent project involving very high concentrated traffic, I became fully aware of the power of PHP on my server's load.</p>
<p>We created an out-of-the-box WordPress site running through <a class="external-link" href="http://www.apache.org/">Apache</a> and dumping data in <a class="external-link" href="http://www.mysql.com/">MySQL</a> on a dedicated linux box with 2 GB of RAM and dual duo-core CPUs at a <a class="external-link" href="http://www.rackspace.com/">very reliable hosting company</a>.&nbsp; With a few plugins enabled, including <a class="external-link" href="http://ocaoimh.ie/wp-super-cache/">WP Super Cache</a>, our server was delivering fast pages and we saw very low load.&nbsp; All this changed when the client directed users to try out the beta site, specifically a "live blog".</p>
<p>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.&nbsp; We did a lot of research and came up with a solution combining <a class="external-link" href="http://varnish.projects.linpro.no/">Varnish</a>, <a class="external-link" href="http://xcache.lighttpd.net/">XCache</a>, the use of another server for static files, and tweaks to Apache, WP Super Cache and MySQL configurations.&nbsp; To simulate a tremendous amount of traffic, comment entries and post modifications, we developed tests using <a class="external-link" href="http://jakarta.apache.org/jmeter/index.html">JMeter </a>and ran them on three geographically disperse workstations.&nbsp; The results were extremely helpful for identifying leaks and problems with various elements in the mix.</p>
<p>The lessons learned in this feat of smashing an 800 pound gorilla into a pillbox:</p>
<ul><li>design your tests early</li><li>everyone appreciates a good cache</li><li>WordPress can and will be tamed</li><li>MySQL deserves its own special place in this world<br /></li></ul>

          ]]>
        </content:encoded>        

        <dc:date>2008-01-10T12:45:55-06:00</dc:date>

        <dcterms:modified>2008-01-10T12:45:55-06:00</dcterms:modified>

        <dc:creator>Jeremy Keiper</dc:creator>

        

        
            <dc:subject>Apache</dc:subject>
        
        
            <dc:subject>PHP</dc:subject>
        
        
            <dc:subject>WordPress</dc:subject>
        
        
            <dc:subject>JMeter</dc:subject>
        
        
            <dc:subject>MySQL</dc:subject>
        

    </rss:item>

    

</rdf:RDF>
