<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Passing Curiosity: Posts tagged acquia</title>
    <link href="https://passingcuriosity.com/tags/acquia/acquia.xml" rel="self" />
    <link href="https://passingcuriosity.com" />
    <id>https://passingcuriosity.com/tags/acquia/acquia.xml</id>
    <author>
        <name>Thomas Sutton</name>
        
        <email>me@thomas-sutton.id.au</email>
        
    </author>
    <updated>2013-03-21T00:00:00Z</updated>
    <entry>
    <title>Sydney Drupal Meetup, March 2013</title>
    <link href="https://passingcuriosity.com/2013/first-sydney-drupal-meetup/" />
    <id>https://passingcuriosity.com/2013/first-sydney-drupal-meetup/</id>
    <published>2013-03-21T00:00:00Z</published>
    <updated>2013-03-21T00:00:00Z</updated>
    <summary type="html"><![CDATA[<p>I attended my first <a href="http://www.meetup.com/drupalsydney/events/78491452/">meetup with the Sydney Drupal group</a> tonight and saw a
couple of interesting talks:</p>
<ol type="1">
<li><p>Chris Harrop from Acquia introduced their devcloud platform and some of the
other tools and services they offer.</p></li>
<li><p>Murray Woodman presented some performance measurements of node loading when
using <a href="http://drupal.org/project/entitycache">Entitycache</a> and other techniques.</p></li>
<li><p>Justin Randall gave a pretty thorough introduction to using XHProf to detect
and identify performance problems and regressions.</p></li>
</ol>
<h2 id="acquia">Acquia</h2>
<p>Chris’ talk about Acquia’s offerings was very short and quite high level. I was
interested to see their “checklist-style” Drupal evaluation and testing tool as
I’d was looking at a similar sort of run-the-tests-in-this-checklist tool
yesterday.</p>
<p>Also: I got a code for a free dev environment on their cloud service.</p>
<h2 id="node-weight">Node Weight</h2>
<p>The bulk of Murray’s talk was to present benchmarks of several approaches to
improving <code>entity_load</code> performance in Drupal sites.</p>
<p>He compared:</p>
<ol type="1">
<li><p>Setting <code>innodb_buffer_pool_size</code> appropriately to your machine and
workload.</p></li>
<li><p>Enabling the MySQL query cache.</p></li>
<li><p>Installing the <a href="http://drupal.org/project/entitycache">Entitycache</a> module.</p></li>
<li><p>Using APC to store cached objects.</p></li>
<li><p>Several combinations of the above.</p></li>
</ol>
<p>The biggest and quickest win was installing <em>entitycache</em> (which resulted in an
“80%” performance improvement), with the other techniques yeilding smaller
improvements.</p>
<h2 id="xhprof">XHProf</h2>
<p>Justin began his presentation with a quote:</p>
<blockquote>
<p>Don’t bring logic to a data fight.</p>
</blockquote>
<p>Analysing system performance and identifying performance problems can be
complex and real data on specific cases is more useful and more reliable than
logic. “Don’t trust your gut, use science.”</p>
<p>After a bit of good advice about performance – it’s a process not a goal;
test, and fix, client and network issues first – Justin dug into using
<a href="https://github.com/facebook/xhprof">XHProf</a> to record and analyse performance profiles of Drupal pages.</p>
<p>The XHProf extension has so small an impact on performance that you can run
it on production servers ready and waiting for a performance problem to
profile (which degrades performance by around “&lt;10%”).</p>
<p>Along with the XHProf extension are several tools to process and analyse the
recorded profiles:</p>
<ul>
<li><p>The moderately awful <a href="https://github.com/facebook/xhprof/tree/master/xhprof_html">web interface</a> which comes with the extension.</p></li>
<li><p>The <a href="http://drupal.org/project/xhprof">XHProf Drupal module</a>.</p></li>
<li><p><a href="https://github.com/msonnabaum/XHProfCLI">Mark Sonnabaum’s XHProf CLI</a> tool to aggregate multiple profiles so that
runs can be compared more reliably (when, e.g., checking for performance
regressions in a patch).</p></li>
</ul>
<p>A good tip, which hadn’t occured to me, was to use the <a href="http://php.net/auto-prepend-file"><code>auto_prepend_file</code></a>
feature in PHP to enable XHProf. This is application agnostic, does not require
changes to the application code, and ensures that your profiles include the
whole application.</p>
<p>The idea of building XHProf into my production environments, with a prepend
file configured and waiting to enable profiling (or automatically profiling,
say, 1% of requests) is intriguing.</p>
<h2 id="conclusion">Conclusion</h2>
<p>So this was a pretty good introduction to the Drupal community in Sydney, and
it was nice to see how other groups run meetups (though I gather there have
been some recent changes here).</p>]]></summary>
</entry>

</feed>
