American Physician Scientists Association

American Physician Scientists Association (APSA) asked us to help them with performance problems on their Drupal/CiviCRM installation. While at first glance, their site was responsive and seemed to perform well, they wanted to improve page load times for authenticated users and views generated pages.

After moving their site to our sandbox, we began high level benchmarking by comparing times between our VPS and their production host. This allows us to determine right away if there's an environmental problem affecting performance. Our hosted VPS environment is proven to perform well under load. Whether we're using it for development, load balancing, offsite backup or testing, it's always withstood anything we've thrown at it. This is the same custom VPS configuration we use when hosting clients on Linode.

We established benchmarks by timing page loads from different areas of the site including the homepage, views generated content and a 'static' Drupal page. In all, we captured timings from 10 unique areas both from the production host and our VPS. The average page load time was 5 seconds on the production host and 4.5 seconds on our VPS. While our VPS was marginally quicker it wasn't enough to recommend moving to Linode. The next step was to dig deeper and start looking for the bottleneck in the LAMP stack. Was it MySQL, Drupal, Apache or all of the above?

Our analysis revealed a high page execution time compared to query execution. Meaning, the content was coming from the database quickly but Drupal was taking a long time to build the page. In the end, we installed and fine-tuned APC, Varnish and optimized some custom code running in the theme. This dropped the page execution time down to an average of 1.4 seconds. A more detailed analysis is available for anyone interested in learning more about the tools we used.

APSA has also contracted with us for additional work writing custom event signup implementation for Drupal/CiviCRM and enhancing payment processor functionality.