Your SlideShare is downloading. ×
0
Make Drupal Run Fastincrease page load speed www.prometsource.com
2http://www.flickr.com/photos/joconnell
3About Promet Source Build websites – we built using open source tools on LAMP stack,  specializing in Drupal development...
4Who is this guy?
5More about me – my beatifull & supportive wife
6More about me – shichon.blogspot.com
7What is page speed? And what is this presentationabout? What is page load speed? Tools used to measure performance of y...
8Other related best practicesMonitoring Best practices - what to set up to make sure you know what is going on with your ...
9Why care about performance?Google announced earlier this month:We encourage you to start looking at your site’s speed— no...
10Definitions Front End Performance Improvement – “In sampling the top ten U.S.  websites, all but one spend less than 20...
11   Performance and Scalability                                              … and now when im not the only             ...
12Front End vs. Back End                          In sampling the top ten U.S. websites,                           all bu...
13Waterfall diagrams Start - when browser sends request to server Connect – when server acknowledges the request First ...
14Tools Yslow for firebug     http://developer.yahoo.com/yslow/ Page Speed - firebug     http://code.Google.com/speed/...
15Yslow•Steve Souders, while hewas Chief Performance atYahoo! Created YSLOW andbest practices•Firefox firebug plug in•Grad...
16Page SpeedSteve Souders is nowat Google GoogleRecommendationsbased on Google bestpractices
17Web Page Test (www.webpagetest.org)
18
19Jmeter – Java based load testing tool
20Apache Bench               Very simple “It is designed                to give you an impression of                how y...
21Devel – great but check views stats separately
22http://www.flickr.com/people/13809318@N
23Six Key Improvements to make Drupal “run fast” On Site, on page changes (use Yslow and Page speed) Performance Module ...
24On Site, on page changes (use Yslow and Page speed)                            Make Fewer HTTP requests                ...
25On Site, on page changes (use Yslow and Page speed) –Make fewer HTTP requestsProblem: Make fewer HTTP requests   80% o...
26On Site, on page changes (use Yslow and Page speed)- With lots of objects – serve objects from multiple domainsServe ob...
27On Site, on page changes (use Yslow and Page speed)- Use a CDNCDN brings your content closer to the edge of the network...
28http://www.flickr.com/photos/vincepal/
29Don’t let your traffic get to the DB – it wants to kill it!                           Your Data center
30Performance Module Settings and how they work
31                                      Browser                                         • CacheApache tuning for DrupalEx...
32                                          Reverse Proxy                                             • Cached            ...
33                                        Application                                        Server                       ...
34                                                    Application                                                    Serve...
35                                                           Application                                                  ...
36Boost Logic              http://drupal.org/files/images/Boost.preview.png
37                                                Application                                                Server       ...
38                                             MySQL                                               • MySQL                ...
39Back End MySQL is core of Drupal MySQL tuning is important but may performance gain may not be as  great as that of ca...
40ww.flickr.com/photos/howar        dlake
41Other quick Hits: off loading search, tweaking settings &why running crons is important - search Search is resource int...
42Drupal settings for performance improvement Always run cron Set minimum cache lifetime to 0 and increase garbage colle...
43Monitoring Tools – Must have in server tuning Trend spotting             You can not fix back end                     ...
44What if you get slashdotted?              RUN! PANIC!
Questions ?                                  ANDY@PROMETSOURCE.COMBlog: www.linuxsysadminblog.comSite: www.prometsource.com
Upcoming SlideShare
Loading in...5
×

Make Drupal Run Fast - increase page load speed

3,402

Published on

What does it mean when someone says “My Site is slow now”? What is page speed? How do you measure it? How can you make it faster? We’ll try to answer these questions, provide you with a set of tools to use and explain how this relates to your server load.

We will cover:

- 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!

- 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.

Published in: Technology, Design
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,402
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
76
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • <div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/joconnell/147987374/"><a rel="cc:attributionURL" href="http://www.flickr.com/photos/joconnell/">http://www.flickr.com/photos/joconnell/</a> / <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">CC BY-SA 2.0</a></div>
  • Fly through
  • Fly through… crack a joke
  • See if anyone can figure out monkey on bike
  • http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html
  • http://www.flickr.com/photos/joiseyshowaa/ http://www.flickr.com/photos/matt512/
  • http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html
  • http://tools.pingdom.com/?url=www.611connect.com&treeview=0&column=objectID&order=1&type=0&save=true http://www.webpagetest.org/ http://www.phpied.com/category/yslow/ Pingdom http://tools.pingdom.com <div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/bike/331967691/"><a rel="cc:attributionURL" href="http://www.flickr.com/photos/bike/">http://www.flickr.com/photos/bike/</a> / <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">CC BY-SA 2.0</a></div>
  • http://blogs.atlassian.com/developer/2008/10/performance_testing_with_jmete.html http://pajamadesign.com/
  • http://www.flickr.com/people/13809318@N00
  • http://wimleers.com/article/improving-drupals-page-loading-performance#rule-1 http://developer.yahoo.com/performance/rules.html#num_http
  • http://tag1consulting.com/files/PageLoad.pdf One pages on which there will always be a lot of objects, you can sometimes see a performance gain by serving the content from multiple domains. (For example, server1.sample.com, server2.sample.com, server3.sample.com, even if all are served from the same physical server with the same IP address). Web browsers limit the number of active connections allowed from a single domain, thus by serving content from multiple domains you can cause web browsers to download more objects on a given page at the same time. Note that on the first visit to your page, the client web browser has to do a DNS lookup for each domain that you use, so serving objects from too many domains can actually cause a slowdown. It is generally recommended to use anywhere from two to four domains, depending on how many objects you are serving per page. (Tag1 Consulting)
  • http://drupal.org/project/simplecdn http://drupal.org/project/cdn http://search.creativecommons.org/?q=world+internet+map&sourceid=Mozilla-search
  • http://www.flickr.com/photos/vincepal/
  • http://groups.drupal.org/node/24318 http://tag1consulting.com/files/PageLoad.pdf
  • http://drupal.org/node/545908#rules
  • http://www.electrictoolbox.com/apc-php-cache-information/
  • http://drupal.org/node/85768
  • http://pajamadesign.com/ http://dev.mysql.com/doc/refman/5.1/en/query-cache.html http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html http://drupal.org/node/51263 MySQL tips that you probably don’t want to incorporate-          Make sure general query log is turned off, that can be a real performance killer-          Measure benchmark performance of database with mysqlbench: http://dev.mysql.com/doc/refman/5.0/en/mysql-benchmarks.html-          MyISAM vs. InnoDBo   MyISAM: Faster but only table lockso   InnoDB: Slower but row level locking so faster with concurrent updates-          For Drupal a large query cache can be beneficial since Drupal sites usually don’t have many updates-          General tuning tips and cache hit ratios: http://mysqltuner.pl/mysqltuner.pl
  • <div xmlns:cc="http://creativecommons.org/ns#" about="http://www.flickr.com/photos/howardlake/3004442357/"><a rel="cc:attributionURL" href="http://www.flickr.com/photos/howardlake/">http://www.flickr.com/photos/howardlake/</a> / <a rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">CC BY-SA 2.0</a></div>
  • Transcript of "Make Drupal Run Fast - increase page load speed"

    1. 1. Make Drupal Run Fastincrease page load speed www.prometsource.com
    2. 2. 2http://www.flickr.com/photos/joconnell
    3. 3. 3About 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. 4. 4Who is this guy?
    5. 5. 5More about me – my beatifull & supportive wife
    6. 6. 6More about me – shichon.blogspot.com
    7. 7. 7What is page speed? And what is this presentationabout? 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. 8. 8Other 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. 9. 9Why 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. 10. 10Definitions 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 whats in the HTML document, namely, the front-end. Thats 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. 11. 11 Performance and Scalability  … and now when im not the only one?  How fast do I get my pageCreative Commons Imageshttp://www.flickr.com/photos/joiseyshowaa/
    12. 12. 12Front 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 whats in the HTML document, namely, the front-end. Thats why the key to faster web sites is to focus on improving front-end performance.
    13. 13. 13Waterfall 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. 14. 14Tools Yslow for firebug  http://developer.yahoo.com/yslow/ Page Speed - firebug  http://code.Google.com/speed/articles/ Web Page Test  http://www.webpagetest.org http://www.flickr.com/photos/bik Apache Bench e/  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
    15. 15. 15Yslow•Steve Souders, while hewas Chief Performance atYahoo! Created YSLOW andbest practices•Firefox firebug plug in•Grades your site based onyahoo best practices•Scores – higher is better
    16. 16. 16Page SpeedSteve Souders is nowat Google GoogleRecommendationsbased on Google bestpractices
    17. 17. 17Web Page Test (www.webpagetest.org)
    18. 18. 18
    19. 19. 19Jmeter – Java based load testing tool
    20. 20. 20Apache Bench 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]/
    21. 21. 21Devel – great but check views stats separately
    22. 22. 22http://www.flickr.com/people/13809318@N
    23. 23. 23Six 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
    24. 24. 24On 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
    25. 25. 25On 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
    26. 26. 26On 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)
    27. 27. 27On 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 by Wim Leers, needs a cron to run a fileconveyorMedia Mover
    28. 28. 28http://www.flickr.com/photos/vincepal/
    29. 29. 29Don’t let your traffic get to the DB – it wants to kill it! Your Data center
    30. 30. 30Performance Module Settings and how they work
    31. 31. 31 Browser • CacheApache tuning for Drupal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
    32. 32. 32 Reverse Proxy • Cached ContentCaching – reverse proxy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
    33. 33. 33 Application Server • APC • MemcacheCache – Cache Router • Boost • Performance Module **Uses fastpath setting, bypassing default cache useEnables different caching optionsFaster because it by-passes databaseFurther configuration is necessary
    34. 34. 34 Application Server • APC • MemcacheCache – Memcache module • 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
    35. 35. 35 Application Server • APC • MemcacheCaching using Boost • 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
    36. 36. 36Boost Logic http://drupal.org/files/images/Boost.preview.png
    37. 37. 37 Application Server • APCBack End – PHP Accelerator • 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
    38. 38. 38 MySQL • MySQL cachingMySQL 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)
    39. 39. 39Back 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
    40. 40. 40ww.flickr.com/photos/howar dlake
    41. 41. 41Other 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
    42. 42. 42Drupal 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
    43. 43. 43Monitoring 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
    44. 44. 44What if you get slashdotted? RUN! PANIC!
    45. 45. Questions ? ANDY@PROMETSOURCE.COMBlog: www.linuxsysadminblog.comSite: www.prometsource.com
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×