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 124

http://www.slideshare.net 53
http://chapterthree.com 29
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.


11 of 1

  • 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