1 / 45

Make Drupal Run Fast increase page load speed prometsource

Make Drupal Run Fast increase page load speed www.prometsource.com. http://www.flickr.com/photos/joconnell. About Promet Source. Build websites – we built using open source tools on LAMP stack, specializing in Drupal development www.prometsource.com

Download Presentation

Make Drupal Run Fast increase page load speed prometsource

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Make Drupal Run Fastincrease page load speedwww.prometsource.com

  2. http://www.flickr.com/photos/joconnell

  3. About Promet Source • Build websites – we built using open source tools on LAMP stack, specializing in Drupal development • www.prometsource.com • Drupal Websites for Associations – FREE websites?? Maybe. Ask me. • www.isupportdigital.com • Managed hosting in our Chicago Data center • History • Founded in 2003 • WHQ in Chicago, but mostly virtual • Customers

  4. Who is this guy?

  5. More about me – my beatifull & supportive wife

  6. More about me – shichon.blogspot.com

  7. What is page speed? And what is this presentation about? • What is page load speed? • Tools used to measure performance of your pages and site • Six Key Improvements to make Drupal "run fast" • Performance Module settings and how they work • Caching - biggest gainer and how to implement Boost • Other quick hits: off loading search, tweaking settings & why running crons is important • Ask your host about APC and how to make sure its set up correctly • Dare we look at the database? Easy changes that will help a lot!

  8. Other related best practices • Monitoring Best practices - what to set up to make sure you know what is going on with your server • What if you get slashdoted? Recommendation on how to quickly take cover from a rhino.

  9. Why care about performance? Google announced earlier this month: We encourage you to start looking at your site’s speed— not only to improve your ranking in search engines, but also to improve everyone’s experience on the Internet.

  10. Definitions • Front End Performance Improvement – “In sampling the top ten U.S. websites, all but one spend less than 20% of the total response time getting the HTML document. The other 80+% of the time is spent dealing with what's in the HTML document, namely, the front-end. That's why the key to faster web sites is to focus on improving front-end performance. “** • Back End Performance Improvement – Server related to increase time to First Byte • Performance – How fast does the page load • Scalability - The ability for a distributed system to easily expand and contract its resource pool to accommodate heavier or lighter loads. • High Availablity

  11. Performance and Scalability • How fast do I get my page • … and now when im not the only one? Creative Commons Images http://www.flickr.com/photos/joiseyshowaa/ http://www.flickr.com/photos/matt512/

  12. Front End vs. Back End • In sampling the top ten U.S. websites, all but one spend less than 20% of the total response time getting the HTML document. The other 80+% of the time is spent dealing with what's in the HTML document, namely, the front-end. That's why the key to faster web sites is to focus on improving front-end performance.

  13. Waterfall diagrams • Start - when browser sends request to server • Connect – when server acknowledges the request • First Byte – take it takes the server to render the page and send the first byte of the HTML • Last Byte – time it takes to transform the data

  14. Tools • Yslow for firebug • http://developer.yahoo.com/yslow/ • Page Speed - firebug • http://code.Google.com/speed/articles/ • Web Page Test • http://www.webpagetest.org • Apache Bench • http://httpd.apache.org/docs/2.0/programs/ab.html • JMeter • http://jakarta.apache.org/jmeter/ • Devel • http://drupal.org/project/devel • Speed Tracer – chrome • http://code.Google.com/webtoolkit/speedtracer http://www.flickr.com/photos/bike/

  15. Yslow Steve Souders, while he was Chief Performance at Yahoo! Created YSLOW and best practices Firefox firebug plug in Grades your site based on yahoo best practices Scores – higher is better

  16. Page Speed Steve Souders is now at Google  Google Recommendations based on Google best practices

  17. Web Page Test (www.webpagetest.org)

  18. Jmeter – Java based load testing tool

  19. Very simple “It is designed to give you an impression of how your current Apache installation performs. This especially shows you how many requests per second your Apache installation is capable of serving.” Ab –n # -c # http://[site]/ Apache Bench

  20. Devel – great but check views stats separately

  21. http://www.flickr.com/people/13809318@N00

  22. Six Key Improvements to make Drupal “run fast” • On Site, on page changes (use Yslow and Page speed) • Performance Module settings and how they work • Caching – biggest gainer and how to implement Boost • Other quick hits: off loading search, tweaking settings & why running crons is important • Ask your host about APC and how to make sure its set up correctly • Dare we look at the database? Easy changes that will help a lot! • Performance improvements are implemented at many levels, are iterative • Change, test, analyze, repeat

  23. On Site, on page changes (use Yslow and Page speed) • Make Fewer HTTP requests • Use a CDN • Add Expires headers • Compress components with gzip deflate • Put CSS at top • Put JavaScript at Bottom • Configure entity tags (ETags) • Use cookie-free domains

  24. On Site, on page changes (use Yslow and Page speed) – Make fewer HTTP requests • Problem: Make fewer HTTP requests • 80% of the end-user response time is spent on the front-end. Most of this time is tied up in downloading all the components in the page: images, stylesheets, scripts, Flash, etc. Reducing the number of components in turn reduces the number of HTTP requests required to render the page. This is the key to faster pages. • Drupal Solution • Performance module – turn on Bandwidth optimizations for CSS and Javascript files • Manual CSS sprite generator

  25. On Site, on page changes (use Yslow and Page speed) - With lots of objects – serve objects from multiple domains • Serve objects from multiple domains • There is trade off between dns look ups and parallel downloads • Browsers do matter (www.browserscope.com)

  26. On Site, on page changes (use Yslow and Page speed) - Use a CDN • CDN brings your content closer to the edge of the network, much faster response and download time • Drupal Modules: • http://drupal.org/project/simplecdn • http://drupal.org/project/cdn byWim Leers, needs a cron to runa fileconveyor • Media Mover

  27. http://www.flickr.com/photos/vincepal/

  28. Don’t let your traffic get to the DB – it wants to kill it! Your Data center

  29. Performance Module Settings and how they work

  30. Apache tuning for Drupal Browser • Cache • Extend mod_expires setting (make sure its on) in drupal .htaccess • Compress content before sending it • Apache deflate_module • Solution nginx – gzip module • .htaccess move to httpd.conf eliminates Apache parse and search on every load

  31. Caching – reverse proxy Reverse Proxy • Cached Content • Caching - Very high performance gain • Advanced Step: Squid/Varnish (http://drupal.org/node/91813 ) • Very high performance gain • Sidesteps web servers, may be implemented on separate servers

  32. Cache – Cache Router ApplicationServer • APC • Memcache • Boost • Performance Module ** • Uses fastpath setting, bypassing default cache use • Enables different caching options • Faster because it by-passes database • Further configuration is necessary

  33. Cache – Memcache module ApplicationServer • APC • Memcache • Boost • Performance Module ** • Very simple caching mechanism – uses pair values stored in memory • Very fast • Using memcache by-passes the database caching • Is scalable and distrubuted • May live on other servers

  34. Caching using Boost ApplicationServer • APC • Memcache • Boost • Performance Module ** • Extension of Performance module • Instead of caching results in tables, stores them in files bypassing PHP and MySQL • Limited to anonymous visitors – so good for slashdot but not for sites with high number of authenticated visitors • How it works: Uses apache mod_rewrite directives in .htacess to check if GET Logged in cookie does not exist HTML file cached on fiilesystem

  35. Boost Logic http://drupal.org/files/images/Boost.preview.png

  36. Back End – PHP Accelerator ApplicationServer • APC • Memcache • Boost • Performance Module ** • APC is the Alternative PHP Cache, which is a free, open, and robust framework for caching and optimizing PHP intermediate code. • APC caching PHP code in a compiled state • Needs to be looked at after installation for proper configuration, but generally a big performance boost • Xcache and eacceletarotor are other options

  37. MySQL caching MySQL • MySQL caching • Enable MySQL Query Cache & give it memory • Index Slow queries that run often • Log-slow-queries • Use explain • Index indicies used • Some configuration considerations • InnoDB Buffer Pool ++ • Key_buffer is important for temp tables • Core Search Runs Better on MyISAM (but don’t use core search)

  38. Back End • MySQL is core of Drupal • MySQL tuning is important but may performance gain may not be as great as that of caching or front end • Always run and check slow query log often /Prune Drupal cache tables on busy sites • Database Performance/MySQL • Convert Tables to InnoDB • Row level locking, less problematic on inserts than MyISAM • Advantages debated, but Drupal 7 install will be on InnoDB

  39. http://www.flickr.com/photos/howardlake

  40. Other quick Hits: off loading search, tweaking settings & why running crons is important - search • Search is resource intensive • Consider moving to Apache Solr or using Google Search free or Google Custom Search Engine • Especially if converting tables to innoDB

  41. Drupal settings for performance improvement • Always run cron • Set minimum cache lifetime to 0 and increase garbage collector run frequency for busy sites • Settings.php: • Session.gc_maxlifetime • Session.cache_expire • Write watchdog entries to syslog instead of db table

  42. Monitoring Tools – Must have in server tuning Trend spotting You can not fix back end problems if you do not know what they are Capacity & Load Review impact of changes Analyze Trends Failure & Uptime Nagios 3rd party tools

  43. What if you get slashdotted? • RUN! PANIC!

  44. Questions ? ANDY@PROMETSOURCE.COM Blog: www.linuxsysadminblog.com Site: www.prometsource.com

More Related