High Performance Drupal
Upcoming SlideShare
Loading in...5

High Performance Drupal



Presentation from BADCamp 2009 on high performance Drupal: how to make your website fast and scalable.

Presentation from BADCamp 2009 on high performance Drupal: how to make your website fast and scalable.



Total Views
Views on SlideShare
Embed Views



10 Embeds 133

http://www.slideshare.net 53
http://chapterthree.com 38
http://www.chapterthree.com 15
http://dev-c3d7.chapterthree.com 14
http://linux2biz.net 6
http://nextleveldrupal.com 2
http://www.nextleveldrupal.com 2
http://worldofdrupal.local 1
http://dev.c3.gotpantheon.com 1
http://nextleveldrupal.local 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
  • This resource will be useful for those who are dealing with Drupal performance and optimization tasks: http://drupalperformanceblog.com
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

High Performance Drupal High Performance Drupal Presentation Transcript

  • High Performance Drupal Making Your Site Fast Fast Fast
  • Drupal Is Powerful
  • Drupal is Slow
  • Databases are Slow
  • PHP Is Slow
  • Consumer-Grade Networks Are Slow
  • Increasing Speed Means Diving Less Deeply Into The Stack
  • Fast Is Making Fewer Requests From Faster Sources
  • The Life Of A Pageload • Browser Request • Browser Cache? • Network Request • Server Response • Associated Assets (back to top)
  • Optimizing For The Browser • Make Your HTML/CSS Images Efficient • Use CSS/JS Aggregation • Use a CDN • Yslow is good for profiling this
  • Optimizing Server Response • Reverse Proxy/Drupal Page Cache • PHP OpCode Cache • Drupal System Cache
  • Reverse-Proxies Are Very Fast
  • Faster Than Apache
  • Much Faster Than Drupal
  • Don’t Bother Your Power Tools With Simple Tasks
  • Implementing Varnish • Use Pressflow • Implement A Simple VCL Based On Sessions • Enable Aggressive Caching • Enjoy, Experiment, Excel
  • OpCode Caching Keeps Drupal Loaded In Memory
  • Don’t Touch The Disk
  • Don’t Load Up Apache Threads With Copies of Drupal
  • Implementing APC • The Biggest/Cheapest Win • Install via apt-get, yum, or pecl • Monitor with apc.php • Lots of modules? Bump the SHM size • Enable apc.stat=0 with caution
  • Drupal Freezes It’s Code Before Launch
  • Most Real-World Scaling Information Comes After Release
  • Drupal Supports A Crazy Array Of Use Cases
  • $5/month Shared Hosting Is Not High Performance
  • Pressflow • “Pressflow Makes Drupal Scale” • Drop-in Replacement For Core • Backports many Drupal 7 features • PHP 5.x/MySQL 5.x Required • Enables robust reverse-proxy, mysql replication and more • Runs drupal.org and many other high-performance sites
  • Drupal Has A Cache And That Is Good
  • But... Drupal’s Cache Is In The Database
  • And Serialized.
  • That Works Anywhere, But Is Both Slow and Expensive
  • CacheRouter • Use settings.php to plug in cacherouter instead of /includes/cache.inc • Pick your poison: APC, XCache, Memcached, Filesystem, or classic db caching. • Change caches per table. • Vital for high-speed logged-in pageloads.
  • Coming Soon: Advcache • Cache Nodes, Users, Taxonomy Terms and other common objects via cacherouter. • Extends the notion of drupal’s static cache to whole objects. • Still in development, but if you’re into writing patches...
  • Other Tips • Search is among the slowest and most expensive queries. Use Solr instead. • InnoDB can help with locking in MySQL • Hardware is faster and often more cost effective than code cleanup. • Monitor load and scale ahead of problems.
  • Benchmarking/Profiling • Cachegrind to profile code. • Jmeter to simulate load. • Slow Query logs, cactai, etc.
  • Vertical/Horizntal Scaling • Start with all services you need. • Separate services into layers. • Add more servers at each layer as needed. • Shameless plug: Project Mercury: http://getpantheon.com
  • More Resources • http://groups.drupal.org/high-performance • http://pressflow.org • http://tag1consulting.com • http://2bits.com • http://getpantheon.com