High Performance Drupal

  • 13,583 views
Uploaded on

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.

More in: Technology
  • 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
No Downloads

Views

Total Views
13,583
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
217
Comments
1
Likes
17

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

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