SlideShare a Scribd company logo
1 of 47
open source web development




       open source web development




                                     Page Speed
                                     andy@promethost.com
                                      Twitter: @akucharski
open source web development




         @akucharski          @dev_machev
open source web development




                               About Promet
  • 2003 Founded
  • 2008 focus on Drupal CMS
  • 2009 Mobile development
  • Faces of Promet today:
open source web development
                                                   Awards and Press

                              CMS Expo Spotlight Awards
                              • 2012 Best Drupal CMS App for Commerce
                              • 2012 Best Drupal Mobile CMS App
                              Notable Press Mentions
                              • Wireless Week - Promet iPhone Madison app
                              • Cult of Mac – ipad Dispatch system
                              50+ Drupal sponsorships, speaking
                              sessions and attending
open source web development
                                                               Our Solutions

Promet Solutions Inc.

                      Promet Source
                       - Open source web development
                       - Drupal-based websites, products, and applications


                      Promet Support
                      - Drupal Managed Services
                      - Drupal DevOps consulting


                      Promet Mobile
                      - Enterprise mobile business solutions
                      - Drupal integration with mobile
open source web development




                              http://www.flickr.com/photos/joconnell
What is page speed? And what is
open source web development
                                       this presentation about?



•What’s speed got to do with it? – Why
 faster is better
•What is page load speed?
•Tools used to measure performance of
 your pages and site
•Key Improvements to make Drupal
 "run fast"
open source web development
                                     Why care about page speed?


•Time = Money…
Why care about performance?

•Speed = Money…
•Slower Page load = Less Money

Google Blog: 2011 – ―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. “
open source web development

         HTML DELAY EXPERIMENT
                        GOAL

          Determine impact of server delays
            METHODOLOGY

            Delay before sending HTML page
            Different experiments with different delays
            Small % of traffic
            Monitor negative impact
open source web development
open source web development
open source web development
                                             Lets not get confused




• 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
open source web development
                                        Waterfall diagrams

                              • X = Time
                              • Y = Number of objects on page
                              • Y(1) = HTTP Request – rest of
                                objects are elements of the
                                page, images, CSS and js
                                files, etc, etc.




                                • Time to load all elements
open source web development                    Waterfall diagrams




• DNS Lookup – time it takes for browser to find the server
• Initial Connection – three way handshake, hard to control
• Time to First Byte – server wait time
• Content Download – how long it takes to transfer the data from server
  to browser
open source web development
                                     Waterfall diagrams

                              • Back End


                              • Front End




                               • Render Start


                               • Render complete
open source web development    Front End vs. Back End


Front End vs. Back End




http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
open source web development
                                                                              Tools
• Browser Tools:
• Firebug
• Yslow for firebug
   • http://developer.yahoo.com/yslow/
• Page Speed – online/Firefox/Chrome
   • http://code.Google.com/speed/articles/
• Web Page Test
   • http://www.webpagetest.org
• Apache Bench
                                                         http://www.flickr.com/photos/bik
   • http://httpd.apache.org/docs/2.0/programs/ab.html                   e/
• Devel
   • http://drupal.org/project/devel
open source web development   Firebug
open source web development



 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
open source web development



  Page Speed




Steve Souders at Google 
Google Recommendations based on Google best practices
open source web development



Page Speed
Web Page Test
open source web development
                              (www.webpagetest.org)
Web Page Test
open source web development
                              (www.webpagetest.org)
open source web development
                                           Apache 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]/
open source web development
                              Devel
open source web development




                              http://www.flickr.com/people/13809318@N
The Basics – for designers themers
 open source web development                    and content editors

 Avoid bad requests
 Avoid CSS expressions
 Combine images using CSS sprites
 Minimize DNS lookups
 Minimize redirects
 Optimize images
 Remove unused CSS
 Serve scaled images
 Specify image dimensions
 Use efficient CSS selectors
              https://developers.google.com/speed/docs/insights/rules
Key Improvements to make Drupal
open source web development
                                                    “run fast”
• Low hanging fruit – Turn on performance improvements in Drupal
open source web development                     What about views?
• Views Cache and Views Content Cache (Alpha)
open source web development                     What about views?
• Views Cache and Views Content Cache (Alpha)
open source web development   Drupal.org/projects/speedy



• Speedy - Minfy JavaScript
 – contributed module

•Minifying the files removes
 comments, whitespace, and can even
 transform parts of functions in ways to
 make them smaller. For example, a minified
 drupal.js is 24% the size of the original. The
 minifier used to generate these files is
 UglifyJS. This is the same one jQuery uses.
                              http://upload.wikimedia.org/wikipedia/en/thumb/a/a1/Poster_of_Speedy_Delivery.jpg/220px-
                                                          Poster_of_Speedy_Delivery.jpg
open source web development                  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
open source web development   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)
Stay vigilant, check performance continuously
open source web development             and watch out for foreign objects
open source web development




                         http://www.flickr.com/photos/vincepal/
Don’t let your traffic get to the DB – it
open source web development
                                                       wants to kill it!




                                    Your Data center



  Browser              CDN            Reverse Proxy   Application        MySQL
                                                      Server

     •Cache              •Cached         •Cached          •APC             •MySQL
                          static          Content         •Memcache         caching
                          content                         •Boost
                                                          •Performance
                                                           Module **
Performance Module Settings and
open source web development
                                               how they work
open source web development
                              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
open source web development
                               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
open source web development
                              Cache – Cache Router
                                      Application
                                      Server

                                         •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
open source web development
                                                      Application
                                                      Server

                                                          •APC
Cache – Memcache module                                   •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


Memcache Serverer1            Memcache Server2     Memcache Server3
       Bin:cache                   Bin:cache            Bin:cache
   Bin:Cache_block              Bin:Cache_block      Bin:Cache_block
   Bin:Cache_filter             Bin:Cache_filter     Bin:Cache_filter
         Bin…                        Bin…                   Bin…
open source web development
                                               CachingApplication Boost
                                                       using
                                                           Server

                                                              •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
open source web development
                                                                                 Boost Logic




                              http://drupal.org/files/images/Boost.preview.png
open source web development

                                                      Application
                                                      Server

Back End – PHP Accelerator                                •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
open source web development
                                         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)
Drupal settings for performance
open source web development
                                                 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
open source web development          Questions ?




        open source web development




                                      ANDY@PROMETSOURCE.COM



Blog: www.linuxsysadminblog.com
Site: www.prometsource.com

More Related Content

What's hot

Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)ajevans
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1Derek Jacoby
 
Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!Jorge Diaz
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationNick Josevski
 
Untangling the web - week 3
Untangling the web - week 3Untangling the web - week 3
Untangling the web - week 3Derek Jacoby
 
Optimizing Your WordPress Site: Why speed matters, and how to get there
Optimizing Your WordPress Site: Why speed matters, and how to get thereOptimizing Your WordPress Site: Why speed matters, and how to get there
Optimizing Your WordPress Site: Why speed matters, and how to get thereStephen Bell
 
Untangling spring week3
Untangling spring week3Untangling spring week3
Untangling spring week3Derek Jacoby
 
Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...
Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...
Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...Jorge Diaz
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6Derek Jacoby
 
Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2Derek Jacoby
 
Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126Mike Hillwig
 
Top 5 Ways to Fail at DevOps
Top 5 Ways to Fail at DevOpsTop 5 Ways to Fail at DevOps
Top 5 Ways to Fail at DevOpsFawzy Manaa
 
Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)Dave Olsen
 
DIY Support? 5 Key Benefits of Managed Drupal Support
DIY Support? 5 Key Benefits of Managed Drupal SupportDIY Support? 5 Key Benefits of Managed Drupal Support
DIY Support? 5 Key Benefits of Managed Drupal SupportPromet Source
 
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012WordCamp Sydney
 
Atmosphere Conference 2015: DevOps sum is greater than its parts
Atmosphere Conference 2015: DevOps sum is greater than its partsAtmosphere Conference 2015: DevOps sum is greater than its parts
Atmosphere Conference 2015: DevOps sum is greater than its partsPROIDEA
 
Performance - When, What and How
Performance - When, What and HowPerformance - When, What and How
Performance - When, What and HowAstrails
 
The Importance of Culture: Building and Sustaining Effective Engineering Org...
The Importance of Culture:  Building and Sustaining Effective Engineering Org...The Importance of Culture:  Building and Sustaining Effective Engineering Org...
The Importance of Culture: Building and Sustaining Effective Engineering Org...Randy Shoup
 
Create Your Own Starter Files
Create Your Own Starter FilesCreate Your Own Starter Files
Create Your Own Starter FilesEmily Lewis
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Randy Shoup
 

What's hot (20)

Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
Making the case for Play Framework and Scala- Budapest Ping-Conf (2014)
 
Untangling spring week1
Untangling spring week1Untangling spring week1
Untangling spring week1
 
Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!Bootstrap + Drupal Commerce in less than 45 minutes!
Bootstrap + Drupal Commerce in less than 45 minutes!
 
Picnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable applicationPicnic Software - Developing a flexible and scalable application
Picnic Software - Developing a flexible and scalable application
 
Untangling the web - week 3
Untangling the web - week 3Untangling the web - week 3
Untangling the web - week 3
 
Optimizing Your WordPress Site: Why speed matters, and how to get there
Optimizing Your WordPress Site: Why speed matters, and how to get thereOptimizing Your WordPress Site: Why speed matters, and how to get there
Optimizing Your WordPress Site: Why speed matters, and how to get there
 
Untangling spring week3
Untangling spring week3Untangling spring week3
Untangling spring week3
 
Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...
Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...
Second Edition: Bootstrap + Drupal Commerce in less than 45 minutes - DrupalC...
 
Untangling spring week6
Untangling spring week6Untangling spring week6
Untangling spring week6
 
Untangling spring week2
Untangling spring week2Untangling spring week2
Untangling spring week2
 
Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126Seven Jobs You Should Be Running #sqlsat126
Seven Jobs You Should Be Running #sqlsat126
 
Top 5 Ways to Fail at DevOps
Top 5 Ways to Fail at DevOpsTop 5 Ways to Fail at DevOps
Top 5 Ways to Fail at DevOps
 
Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)Measuring Web Performance (HighEdWeb FL Edition)
Measuring Web Performance (HighEdWeb FL Edition)
 
DIY Support? 5 Key Benefits of Managed Drupal Support
DIY Support? 5 Key Benefits of Managed Drupal SupportDIY Support? 5 Key Benefits of Managed Drupal Support
DIY Support? 5 Key Benefits of Managed Drupal Support
 
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
What Multisite can do for You - Anthony Cole - WordCamp Sydney 2012
 
Atmosphere Conference 2015: DevOps sum is greater than its parts
Atmosphere Conference 2015: DevOps sum is greater than its partsAtmosphere Conference 2015: DevOps sum is greater than its parts
Atmosphere Conference 2015: DevOps sum is greater than its parts
 
Performance - When, What and How
Performance - When, What and HowPerformance - When, What and How
Performance - When, What and How
 
The Importance of Culture: Building and Sustaining Effective Engineering Org...
The Importance of Culture:  Building and Sustaining Effective Engineering Org...The Importance of Culture:  Building and Sustaining Effective Engineering Org...
The Importance of Culture: Building and Sustaining Effective Engineering Org...
 
Create Your Own Starter Files
Create Your Own Starter FilesCreate Your Own Starter Files
Create Your Own Starter Files
 
Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015Service Architectures At Scale - QCon London 2015
Service Architectures At Scale - QCon London 2015
 

Similar to Front End page speed performance improvements for Drupal

Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedPromet Source
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalEric Sembrat
 
Web tech weblamp_infosession_2012-13
Web tech weblamp_infosession_2012-13Web tech weblamp_infosession_2012-13
Web tech weblamp_infosession_2012-13Konrad Roeder
 
Play Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a ProposalPlay Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a ProposalMike Slinn
 
Going from Zero to Sixty in Drupal with Acquia
Going from Zero to Sixty in Drupal with AcquiaGoing from Zero to Sixty in Drupal with Acquia
Going from Zero to Sixty in Drupal with AcquiaAcquia
 
Testing Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and NetworksTesting Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and NetworksAcquia
 
"Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful..."Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful...softwaretrainer2elys
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_phpJeanho Chu
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_phpJeanho Chu
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksFITC
 
Evaluating Drupal for the Enterprise
Evaluating Drupal for the EnterpriseEvaluating Drupal for the Enterprise
Evaluating Drupal for the Enterpriseultimike
 
Portal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted TschoppPortal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted TschoppTed Tschopp
 
SYED_PHPMYSQL_CV
SYED_PHPMYSQL_CVSYED_PHPMYSQL_CV
SYED_PHPMYSQL_CVNaser Syed
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013hernanibf
 
Drupal status report for all staff day
Drupal status report for all staff dayDrupal status report for all staff day
Drupal status report for all staff daysbclapp
 
Web Development Agency in Noida in 2024 1
Web Development Agency in Noida in 2024 1Web Development Agency in Noida in 2024 1
Web Development Agency in Noida in 2024 1NadeemAnsari576752
 

Similar to Front End page speed performance improvements for Drupal (20)

Make Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speedMake Drupal Run Fast - increase page load speed
Make Drupal Run Fast - increase page load speed
 
USG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using DrupalUSG Summit - September 2014 - Web Management using Drupal
USG Summit - September 2014 - Web Management using Drupal
 
Be faster then rabbits
Be faster then rabbitsBe faster then rabbits
Be faster then rabbits
 
Web tech weblamp_infosession_2012-13
Web tech weblamp_infosession_2012-13Web tech weblamp_infosession_2012-13
Web tech weblamp_infosession_2012-13
 
Play Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a ProposalPlay Architecture, Implementation, Shiny Objects, and a Proposal
Play Architecture, Implementation, Shiny Objects, and a Proposal
 
Going from Zero to Sixty in Drupal with Acquia
Going from Zero to Sixty in Drupal with AcquiaGoing from Zero to Sixty in Drupal with Acquia
Going from Zero to Sixty in Drupal with Acquia
 
Testing Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and NetworksTesting Drupal Site Performance Across Browsers, Geographies and Networks
Testing Drupal Site Performance Across Browsers, Geographies and Networks
 
"Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful..."Python web development combines the simplicity of the language with powerful...
"Python web development combines the simplicity of the language with powerful...
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
 
Week01 jan19 introductionto_php
Week01 jan19 introductionto_phpWeek01 jan19 introductionto_php
Week01 jan19 introductionto_php
 
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript FrameworksBuilding Enterprise Grade Front-End Applications with JavaScript Frameworks
Building Enterprise Grade Front-End Applications with JavaScript Frameworks
 
Week01 jan19
Week01 jan19Week01 jan19
Week01 jan19
 
Evaluating Drupal for the Enterprise
Evaluating Drupal for the EnterpriseEvaluating Drupal for the Enterprise
Evaluating Drupal for the Enterprise
 
Portal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted TschoppPortal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted Tschopp
 
Web Desing.pptx
Web Desing.pptxWeb Desing.pptx
Web Desing.pptx
 
SYED_PHPMYSQL_CV
SYED_PHPMYSQL_CVSYED_PHPMYSQL_CV
SYED_PHPMYSQL_CV
 
My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013My Site is slow - Drupal Camp London 2013
My Site is slow - Drupal Camp London 2013
 
Drupal status report for all staff day
Drupal status report for all staff dayDrupal status report for all staff day
Drupal status report for all staff day
 
Web Development Agency in Noida in 2024 1
Web Development Agency in Noida in 2024 1Web Development Agency in Noida in 2024 1
Web Development Agency in Noida in 2024 1
 

More from Promet Source

How To Start Building Your Own Website With Drupal by Mary Chris Casis
How To Start Building Your Own Website With Drupal by Mary Chris CasisHow To Start Building Your Own Website With Drupal by Mary Chris Casis
How To Start Building Your Own Website With Drupal by Mary Chris CasisPromet Source
 
DrupalCamp Cebu 2018 R&F by Andrew Kucharski
DrupalCamp Cebu 2018 R&F by Andrew KucharskiDrupalCamp Cebu 2018 R&F by Andrew Kucharski
DrupalCamp Cebu 2018 R&F by Andrew KucharskiPromet Source
 
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018Promet Source
 
Migrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan ManaloMigrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan ManaloPromet Source
 
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018Promet Source
 
Drupal Development with Docker
Drupal Development with DockerDrupal Development with Docker
Drupal Development with DockerPromet Source
 
Migrating Drupal 7 to Drupal 8
Migrating Drupal 7 to Drupal 8Migrating Drupal 7 to Drupal 8
Migrating Drupal 7 to Drupal 8Promet Source
 
Web Accessibility in Drupal
Web Accessibility in DrupalWeb Accessibility in Drupal
Web Accessibility in DrupalPromet Source
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsPromet Source
 
Drupal 8 Involvement with Promet Source
Drupal 8 Involvement with Promet SourceDrupal 8 Involvement with Promet Source
Drupal 8 Involvement with Promet SourcePromet Source
 
Using Commerce License for Premium Content on Drupal Sites
Using Commerce License for Premium Content on Drupal SitesUsing Commerce License for Premium Content on Drupal Sites
Using Commerce License for Premium Content on Drupal SitesPromet Source
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with BehatPromet Source
 
Composer tools and frameworks for Drupal
Composer tools and frameworks for DrupalComposer tools and frameworks for Drupal
Composer tools and frameworks for DrupalPromet Source
 
Responsive Design Testing the Promet Way
Responsive Design Testing the Promet WayResponsive Design Testing the Promet Way
Responsive Design Testing the Promet WayPromet Source
 
Optimize and succeed your next Fixed Budget Project planning process
Optimize and succeed your next Fixed Budget Project planning process Optimize and succeed your next Fixed Budget Project planning process
Optimize and succeed your next Fixed Budget Project planning process Promet Source
 
Diy continuous integration
Diy continuous integrationDiy continuous integration
Diy continuous integrationPromet Source
 
Getting agile with drupal
Getting agile with drupalGetting agile with drupal
Getting agile with drupalPromet Source
 
Project Estimation Presentation - Donte's 8th level of estimating level of ef...
Project Estimation Presentation - Donte's 8th level of estimating level of ef...Project Estimation Presentation - Donte's 8th level of estimating level of ef...
Project Estimation Presentation - Donte's 8th level of estimating level of ef...Promet Source
 
Open Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessOpen Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessPromet Source
 
Augmented Reality March Webinar
Augmented Reality March WebinarAugmented Reality March Webinar
Augmented Reality March WebinarPromet Source
 

More from Promet Source (20)

How To Start Building Your Own Website With Drupal by Mary Chris Casis
How To Start Building Your Own Website With Drupal by Mary Chris CasisHow To Start Building Your Own Website With Drupal by Mary Chris Casis
How To Start Building Your Own Website With Drupal by Mary Chris Casis
 
DrupalCamp Cebu 2018 R&F by Andrew Kucharski
DrupalCamp Cebu 2018 R&F by Andrew KucharskiDrupalCamp Cebu 2018 R&F by Andrew Kucharski
DrupalCamp Cebu 2018 R&F by Andrew Kucharski
 
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
Unit test in drupal 8 by Pratomo Ardianto Drupalcamp Cebu 2018
 
Migrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan ManaloMigrating to-Drupal-8 by Bryan Manalo
Migrating to-Drupal-8 by Bryan Manalo
 
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
Why and When to use Drupal by Luc Bezier - Drupalcamp Cebu 2018
 
Drupal Development with Docker
Drupal Development with DockerDrupal Development with Docker
Drupal Development with Docker
 
Migrating Drupal 7 to Drupal 8
Migrating Drupal 7 to Drupal 8Migrating Drupal 7 to Drupal 8
Migrating Drupal 7 to Drupal 8
 
Web Accessibility in Drupal
Web Accessibility in DrupalWeb Accessibility in Drupal
Web Accessibility in Drupal
 
Drupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond JenkinsDrupal Continuous Integration and devops - Beyond Jenkins
Drupal Continuous Integration and devops - Beyond Jenkins
 
Drupal 8 Involvement with Promet Source
Drupal 8 Involvement with Promet SourceDrupal 8 Involvement with Promet Source
Drupal 8 Involvement with Promet Source
 
Using Commerce License for Premium Content on Drupal Sites
Using Commerce License for Premium Content on Drupal SitesUsing Commerce License for Premium Content on Drupal Sites
Using Commerce License for Premium Content on Drupal Sites
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with Behat
 
Composer tools and frameworks for Drupal
Composer tools and frameworks for DrupalComposer tools and frameworks for Drupal
Composer tools and frameworks for Drupal
 
Responsive Design Testing the Promet Way
Responsive Design Testing the Promet WayResponsive Design Testing the Promet Way
Responsive Design Testing the Promet Way
 
Optimize and succeed your next Fixed Budget Project planning process
Optimize and succeed your next Fixed Budget Project planning process Optimize and succeed your next Fixed Budget Project planning process
Optimize and succeed your next Fixed Budget Project planning process
 
Diy continuous integration
Diy continuous integrationDiy continuous integration
Diy continuous integration
 
Getting agile with drupal
Getting agile with drupalGetting agile with drupal
Getting agile with drupal
 
Project Estimation Presentation - Donte's 8th level of estimating level of ef...
Project Estimation Presentation - Donte's 8th level of estimating level of ef...Project Estimation Presentation - Donte's 8th level of estimating level of ef...
Project Estimation Presentation - Donte's 8th level of estimating level of ef...
 
Open Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing BusinessOpen Source Software: An Edge For Your Growing Business
Open Source Software: An Edge For Your Growing Business
 
Augmented Reality March Webinar
Augmented Reality March WebinarAugmented Reality March Webinar
Augmented Reality March Webinar
 

Front End page speed performance improvements for Drupal

  • 1. open source web development open source web development Page Speed andy@promethost.com Twitter: @akucharski
  • 2. open source web development @akucharski @dev_machev
  • 3. open source web development About Promet • 2003 Founded • 2008 focus on Drupal CMS • 2009 Mobile development • Faces of Promet today:
  • 4. open source web development Awards and Press CMS Expo Spotlight Awards • 2012 Best Drupal CMS App for Commerce • 2012 Best Drupal Mobile CMS App Notable Press Mentions • Wireless Week - Promet iPhone Madison app • Cult of Mac – ipad Dispatch system 50+ Drupal sponsorships, speaking sessions and attending
  • 5. open source web development Our Solutions Promet Solutions Inc. Promet Source - Open source web development - Drupal-based websites, products, and applications Promet Support - Drupal Managed Services - Drupal DevOps consulting Promet Mobile - Enterprise mobile business solutions - Drupal integration with mobile
  • 6. open source web development http://www.flickr.com/photos/joconnell
  • 7. What is page speed? And what is open source web development this presentation about? •What’s speed got to do with it? – Why faster is better •What is page load speed? •Tools used to measure performance of your pages and site •Key Improvements to make Drupal "run fast"
  • 8. open source web development Why care about page speed? •Time = Money… Why care about performance? •Speed = Money… •Slower Page load = Less Money Google Blog: 2011 – ―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. “
  • 9. open source web development HTML DELAY EXPERIMENT GOAL Determine impact of server delays METHODOLOGY  Delay before sending HTML page  Different experiments with different delays  Small % of traffic  Monitor negative impact
  • 10. open source web development
  • 11. open source web development
  • 12. open source web development Lets not get confused • 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
  • 13. open source web development Waterfall diagrams • X = Time • Y = Number of objects on page • Y(1) = HTTP Request – rest of objects are elements of the page, images, CSS and js files, etc, etc. • Time to load all elements
  • 14. open source web development Waterfall diagrams • DNS Lookup – time it takes for browser to find the server • Initial Connection – three way handshake, hard to control • Time to First Byte – server wait time • Content Download – how long it takes to transfer the data from server to browser
  • 15. open source web development Waterfall diagrams • Back End • Front End • Render Start • Render complete
  • 16. open source web development Front End vs. Back End Front End vs. Back End http://www.stevesouders.com/blog/2012/02/10/the-performance-golden-rule/
  • 17. open source web development Tools • Browser Tools: • Firebug • Yslow for firebug • http://developer.yahoo.com/yslow/ • Page Speed – online/Firefox/Chrome • http://code.Google.com/speed/articles/ • Web Page Test • http://www.webpagetest.org • Apache Bench http://www.flickr.com/photos/bik • http://httpd.apache.org/docs/2.0/programs/ab.html e/ • Devel • http://drupal.org/project/devel
  • 18. open source web development Firebug
  • 19. open source web development 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
  • 20. open source web development Page Speed Steve Souders at Google  Google Recommendations based on Google best practices
  • 21. open source web development Page Speed
  • 22. Web Page Test open source web development (www.webpagetest.org)
  • 23. Web Page Test open source web development (www.webpagetest.org)
  • 24. open source web development Apache 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]/
  • 25. open source web development Devel
  • 26. open source web development http://www.flickr.com/people/13809318@N
  • 27. The Basics – for designers themers open source web development and content editors  Avoid bad requests  Avoid CSS expressions  Combine images using CSS sprites  Minimize DNS lookups  Minimize redirects  Optimize images  Remove unused CSS  Serve scaled images  Specify image dimensions  Use efficient CSS selectors https://developers.google.com/speed/docs/insights/rules
  • 28. Key Improvements to make Drupal open source web development “run fast” • Low hanging fruit – Turn on performance improvements in Drupal
  • 29. open source web development What about views? • Views Cache and Views Content Cache (Alpha)
  • 30. open source web development What about views? • Views Cache and Views Content Cache (Alpha)
  • 31. open source web development Drupal.org/projects/speedy • Speedy - Minfy JavaScript – contributed module •Minifying the files removes comments, whitespace, and can even transform parts of functions in ways to make them smaller. For example, a minified drupal.js is 24% the size of the original. The minifier used to generate these files is UglifyJS. This is the same one jQuery uses. http://upload.wikimedia.org/wikipedia/en/thumb/a/a1/Poster_of_Speedy_Delivery.jpg/220px- Poster_of_Speedy_Delivery.jpg
  • 32. open source web development 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
  • 33. open source web development 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)
  • 34. Stay vigilant, check performance continuously open source web development and watch out for foreign objects
  • 35. open source web development http://www.flickr.com/photos/vincepal/
  • 36. Don’t let your traffic get to the DB – it open source web development wants to kill it! Your Data center Browser CDN Reverse Proxy Application MySQL Server •Cache •Cached •Cached •APC •MySQL static Content •Memcache caching content •Boost •Performance Module **
  • 37. Performance Module Settings and open source web development how they work
  • 38. open source web development 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
  • 39. open source web development 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
  • 40. open source web development Cache – Cache Router Application Server •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
  • 41. open source web development Application Server •APC Cache – Memcache module •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 Memcache Serverer1 Memcache Server2 Memcache Server3 Bin:cache Bin:cache Bin:cache Bin:Cache_block Bin:Cache_block Bin:Cache_block Bin:Cache_filter Bin:Cache_filter Bin:Cache_filter Bin… Bin… Bin…
  • 42. open source web development CachingApplication Boost using Server •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
  • 43. open source web development Boost Logic http://drupal.org/files/images/Boost.preview.png
  • 44. open source web development Application Server Back End – PHP Accelerator •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
  • 45. open source web development 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)
  • 46. Drupal settings for performance open source web development 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
  • 47. open source web development Questions ? open source web development ANDY@PROMETSOURCE.COM Blog: www.linuxsysadminblog.com Site: www.prometsource.com

Editor's Notes

  1. Add in 2 photos.look up cms
  2. <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>
  3. http://www.flickr.com/people/13809318@N00
  4. http://tag1consulting.com/files/PageLoad.pdfOne 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)
  5. http://www.flickr.com/photos/vincepal/
  6. http://drupal.org/node/545908#rules
  7. http://www.electrictoolbox.com/apc-php-cache-information/