High Performance Drupal
Upcoming SlideShare
Loading in...5
×
 

High Performance Drupal

on

  • 17,716 views

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.

Statistics

Views

Total Views
17,716
Views on SlideShare
17,579
Embed Views
137

Actions

Likes
17
Downloads
215
Comments
1

10 Embeds 137

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

Accessibility

Categories

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.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • 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
    Processing…
Post Comment
Edit your comment

High Performance Drupal Presentation Transcript

  • 1. High Performance Drupal Making Your Site Fast Fast Fast
  • 2. Drupal Is Powerful
  • 3. Drupal is Slow
  • 4. Databases are Slow
  • 5. PHP Is Slow
  • 6. Consumer-Grade Networks Are Slow
  • 7. Increasing Speed Means Diving Less Deeply Into The Stack
  • 8. Fast Is Making Fewer Requests From Faster Sources
  • 9. The Life Of A Pageload • Browser Request • Browser Cache? • Network Request • Server Response • Associated Assets (back to top)
  • 10. Optimizing For The Browser • Make Your HTML/CSS Images Efficient • Use CSS/JS Aggregation • Use a CDN • Yslow is good for profiling this
  • 11. Optimizing Server Response • Reverse Proxy/Drupal Page Cache • PHP OpCode Cache • Drupal System Cache
  • 12. Reverse-Proxies Are Very Fast
  • 13. Faster Than Apache
  • 14. Much Faster Than Drupal
  • 15. Don’t Bother Your Power Tools With Simple Tasks
  • 16. Implementing Varnish • Use Pressflow • Implement A Simple VCL Based On Sessions • Enable Aggressive Caching • Enjoy, Experiment, Excel
  • 17. OpCode Caching Keeps Drupal Loaded In Memory
  • 18. Don’t Touch The Disk
  • 19. Don’t Load Up Apache Threads With Copies of Drupal
  • 20. 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
  • 21. Drupal Freezes It’s Code Before Launch
  • 22. Most Real-World Scaling Information Comes After Release
  • 23. Drupal Supports A Crazy Array Of Use Cases
  • 24. $5/month Shared Hosting Is Not High Performance
  • 25. 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
  • 26. Drupal Has A Cache And That Is Good
  • 27. But... Drupal’s Cache Is In The Database
  • 28. And Serialized.
  • 29. That Works Anywhere, But Is Both Slow and Expensive
  • 30. 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.
  • 31. 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...
  • 32. 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.
  • 33. Benchmarking/Profiling • Cachegrind to profile code. • Jmeter to simulate load. • Slow Query logs, cactai, etc.
  • 34. 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
  • 35. More Resources • http://groups.drupal.org/high-performance • http://pressflow.org • http://tag1consulting.com • http://2bits.com • http://getpantheon.com