SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
Make Drupal Run Fast
increase page load speed

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

                                              … and now when im not the only
                                               one?




    How fast do I get my page




Creative Commons Images
http://www.flickr.com/photos/joiseyshowaa/
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
                                                          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




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
19




Jmeter – Java based load testing tool
20




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]/
21




Devel – great but check views stats separately
22




http://www.flickr.com/people/13809318@N
23




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
24




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
25




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
26




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)
27




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 by
 Wim Leers, needs a cron to run
 a fileconveyor
Media Mover
28




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




Don’t let your traffic get to the DB – it wants to kill it!


                           Your Data center
30




Performance Module Settings and how they work
31



                                      Browser


                                         • Cache
Apache 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


                                          Reverse Proxy


                                             • Cached
                                               Content
Caching – 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


                                        Application
                                        Server

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


                                                    Application
                                                    Server

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


                                                           Application
                                                           Server

                                                               • APC
                                                               • Memcache
Caching 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




Boost Logic




              http://drupal.org/files/images/Boost.preview.png
37


                                                Application
                                                Server

                                                    • APC

Back 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


                                             MySQL


                                               • MySQL
                                                 caching
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)
39




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
40

ww.flickr.com/photos/howar
        dlake
41




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
42




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
43




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
44




What if you get slashdotted?




              RUN! PANIC!
Questions ?




                                  ANDY@PROMETSOURCE.COM

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

Más contenido relacionado

La actualidad más candente

Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Phase2
 
Lessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking SitesLessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking SitesPatrick Senti
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance Dave Olsen
 
Best Practices for Migrating a Legacy-Based CMS to Drupal
Best Practices for Migrating a Legacy-Based CMS to DrupalBest Practices for Migrating a Legacy-Based CMS to Drupal
Best Practices for Migrating a Legacy-Based CMS to DrupalAcquia
 
Building faster websites: web performance with WordPress
Building faster websites: web performance with WordPressBuilding faster websites: web performance with WordPress
Building faster websites: web performance with WordPressJohannes Siipola
 
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...George White
 
Make WordPress Faster with W3 Total Cache & Cloudflare
Make WordPress Faster with W3 Total Cache & CloudflareMake WordPress Faster with W3 Total Cache & Cloudflare
Make WordPress Faster with W3 Total Cache & CloudflareMarshall Reyher
 
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthPhilip Norton
 
High Performance on Drupal 7
High Performance on Drupal 7High Performance on Drupal 7
High Performance on Drupal 7Exove
 
Changhao jiang facebook
Changhao jiang facebookChanghao jiang facebook
Changhao jiang facebookzipeng zhang
 
Memcached: What is it and what does it do? (PHP Version)
Memcached: What is it and what does it do? (PHP Version)Memcached: What is it and what does it do? (PHP Version)
Memcached: What is it and what does it do? (PHP Version)Brian Moon
 
WordPress Performance Optimization for Mere Mortals
WordPress Performance Optimization for Mere MortalsWordPress Performance Optimization for Mere Mortals
WordPress Performance Optimization for Mere MortalsJohn Levandowski
 
Optimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingOptimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingJon Brown
 
Twitter - Architecture and Scalability lessons
Twitter - Architecture and Scalability lessonsTwitter - Architecture and Scalability lessons
Twitter - Architecture and Scalability lessonsAditya Rao
 
LinkedIn Communication Architecture
LinkedIn Communication ArchitectureLinkedIn Communication Architecture
LinkedIn Communication ArchitectureLinkedIn
 
Analysis of Google Page Speed Insight
Analysis of Google Page Speed InsightAnalysis of Google Page Speed Insight
Analysis of Google Page Speed InsightSarvesh Sonawane
 
Apache kafka configuration-guide
Apache kafka configuration-guideApache kafka configuration-guide
Apache kafka configuration-guideChetan Khatri
 
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website OptimizationRadu Pintilie
 

La actualidad más candente (20)

Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7Taking your site from Drupal 6 to Drupal 7
Taking your site from Drupal 6 to Drupal 7
 
Lessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking SitesLessons from Highly Scalable Architectures at Social Networking Sites
Lessons from Highly Scalable Architectures at Social Networking Sites
 
Measuring Web Performance
Measuring Web Performance Measuring Web Performance
Measuring Web Performance
 
Best Practices for Migrating a Legacy-Based CMS to Drupal
Best Practices for Migrating a Legacy-Based CMS to DrupalBest Practices for Migrating a Legacy-Based CMS to Drupal
Best Practices for Migrating a Legacy-Based CMS to Drupal
 
Building faster websites: web performance with WordPress
Building faster websites: web performance with WordPressBuilding faster websites: web performance with WordPress
Building faster websites: web performance with WordPress
 
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
Imagine 2014: The Devil is in the Details How to Optimize Magento Hosting to ...
 
Make WordPress Faster with W3 Total Cache & Cloudflare
Make WordPress Faster with W3 Total Cache & CloudflareMake WordPress Faster with W3 Total Cache & Cloudflare
Make WordPress Faster with W3 Total Cache & Cloudflare
 
20080611accel
20080611accel20080611accel
20080611accel
 
Drupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp NorthDrupal Performance : DrupalCamp North
Drupal Performance : DrupalCamp North
 
High Performance on Drupal 7
High Performance on Drupal 7High Performance on Drupal 7
High Performance on Drupal 7
 
Changhao jiang facebook
Changhao jiang facebookChanghao jiang facebook
Changhao jiang facebook
 
Memcached: What is it and what does it do? (PHP Version)
Memcached: What is it and what does it do? (PHP Version)Memcached: What is it and what does it do? (PHP Version)
Memcached: What is it and what does it do? (PHP Version)
 
WordPress Performance Optimization for Mere Mortals
WordPress Performance Optimization for Mere MortalsWordPress Performance Optimization for Mere Mortals
WordPress Performance Optimization for Mere Mortals
 
Ui perf
Ui perfUi perf
Ui perf
 
Optimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web HostingOptimizing WordPress Performance on Shared Web Hosting
Optimizing WordPress Performance on Shared Web Hosting
 
Twitter - Architecture and Scalability lessons
Twitter - Architecture and Scalability lessonsTwitter - Architecture and Scalability lessons
Twitter - Architecture and Scalability lessons
 
LinkedIn Communication Architecture
LinkedIn Communication ArchitectureLinkedIn Communication Architecture
LinkedIn Communication Architecture
 
Analysis of Google Page Speed Insight
Analysis of Google Page Speed InsightAnalysis of Google Page Speed Insight
Analysis of Google Page Speed Insight
 
Apache kafka configuration-guide
Apache kafka configuration-guideApache kafka configuration-guide
Apache kafka configuration-guide
 
Client-side Website Optimization
Client-side Website OptimizationClient-side Website Optimization
Client-side Website Optimization
 

Similar a Make Drupal Run Fast - increase page load speed

Performance Optimization in Drupal 8
Performance Optimization in Drupal 8Performance Optimization in Drupal 8
Performance Optimization in Drupal 8valuebound
 
DrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingDrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingAshok Modi
 
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamFrom Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamAndreas Grabner
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalPromet Source
 
Pagespeed what, why, and how it works
Pagespeed   what, why, and how it worksPagespeed   what, why, and how it works
Pagespeed what, why, and how it worksIlya Grigorik
 
Demystifying web performance tooling and metrics
Demystifying web performance tooling and metricsDemystifying web performance tooling and metrics
Demystifying web performance tooling and metricsAnna Migas
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalAndy Kucharski
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuningJohn McCaffrey
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performanceSagar Desarda
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best PracticesRatnesh kumar, CSM
 
Supercharge Application Delivery to Satisfy Users
Supercharge Application Delivery to Satisfy UsersSupercharge Application Delivery to Satisfy Users
Supercharge Application Delivery to Satisfy UsersNGINX, Inc.
 
High performance website
High performance websiteHigh performance website
High performance websiteChamnap Chhorn
 
Speed Up WordPress Websites - Part 1 - WordPress Cairo Meetup
Speed Up WordPress Websites - Part 1 - WordPress Cairo MeetupSpeed Up WordPress Websites - Part 1 - WordPress Cairo Meetup
Speed Up WordPress Websites - Part 1 - WordPress Cairo MeetupAhmed Mohammed Nagdy
 

Similar a Make Drupal Run Fast - increase page load speed (20)

Performance Optimization in Drupal 8
Performance Optimization in Drupal 8Performance Optimization in Drupal 8
Performance Optimization in Drupal 8
 
DrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizingDrupalCampLA 2011 - Drupal frontend-optimizing
DrupalCampLA 2011 - Drupal frontend-optimizing
 
Web Performance Optimization (WPO)
Web Performance Optimization (WPO)Web Performance Optimization (WPO)
Web Performance Optimization (WPO)
 
Making the web faster
Making the web fasterMaking the web faster
Making the web faster
 
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 PotsdamFrom Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for Drupal
 
Pagespeed what, why, and how it works
Pagespeed   what, why, and how it worksPagespeed   what, why, and how it works
Pagespeed what, why, and how it works
 
Demystifying web performance tooling and metrics
Demystifying web performance tooling and metricsDemystifying web performance tooling and metrics
Demystifying web performance tooling and metrics
 
Front End page speed performance improvements for Drupal
Front End page speed performance improvements for DrupalFront End page speed performance improvements for Drupal
Front End page speed performance improvements for Drupal
 
Cvcc performance tuning
Cvcc performance tuningCvcc performance tuning
Cvcc performance tuning
 
performance.ppt
performance.pptperformance.ppt
performance.ppt
 
Improving frontend performance
Improving frontend performanceImproving frontend performance
Improving frontend performance
 
Advanced Drupal 8 Caching
Advanced Drupal 8 CachingAdvanced Drupal 8 Caching
Advanced Drupal 8 Caching
 
Drupal performance optimization Best Practices
Drupal performance optimization Best PracticesDrupal performance optimization Best Practices
Drupal performance optimization Best Practices
 
Supercharge Application Delivery to Satisfy Users
Supercharge Application Delivery to Satisfy UsersSupercharge Application Delivery to Satisfy Users
Supercharge Application Delivery to Satisfy Users
 
5 critical-optimizations.v2
5 critical-optimizations.v25 critical-optimizations.v2
5 critical-optimizations.v2
 
High performance website
High performance websiteHigh performance website
High performance website
 
Tips to improve your website performance
Tips to improve your website performanceTips to improve your website performance
Tips to improve your website performance
 
Speed Up WordPress Websites - Part 1 - WordPress Cairo Meetup
Speed Up WordPress Websites - Part 1 - WordPress Cairo MeetupSpeed Up WordPress Websites - Part 1 - WordPress Cairo Meetup
Speed Up WordPress Websites - Part 1 - WordPress Cairo Meetup
 
Web performance
Web performanceWeb performance
Web performance
 

Más de 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
 
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will come
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will comeHigher Ed Web 2013 presentation - Field of Dreams, build it and they will come
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will comePromet 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
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitablePromet Source
 

Más de 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
 
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will come
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will comeHigher Ed Web 2013 presentation - Field of Dreams, build it and they will come
Higher Ed Web 2013 presentation - Field of Dreams, build it and they will come
 
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...
 
DrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & ProfitableDrupalCon 2013 Making Support Fun & Profitable
DrupalCon 2013 Making Support Fun & Profitable
 

Último

Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 

Último (20)

Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 

Make Drupal Run Fast - increase page load speed

  • 1. Make Drupal Run Fast increase page load speed www.prometsource.com
  • 3. 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
  • 5. 5 More about me – my beatifull & supportive wife
  • 6. 6 More about me – shichon.blogspot.com
  • 7. 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. 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. 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. 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. 11 Performance and Scalability  … and now when im not the only one?  How fast do I get my page Creative Commons Images http://www.flickr.com/photos/joiseyshowaa/
  • 12. 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. 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. 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 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 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. 16 Page Speed Steve Souders is now at Google  Google Recommendations based on Google best practices
  • 17. 17 Web Page Test (www.webpagetest.org)
  • 18. 18
  • 19. 19 Jmeter – Java based load testing tool
  • 20. 20 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]/
  • 21. 21 Devel – great but check views stats separately
  • 23. 23 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
  • 24. 24 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
  • 25. 25 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
  • 26. 26 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)
  • 27. 27 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 by Wim Leers, needs a cron to run a fileconveyor Media Mover
  • 29. 29 Don’t let your traffic get to the DB – it wants to kill it! Your Data center
  • 30. 30 Performance Module Settings and how they work
  • 31. 31 Browser • Cache Apache 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 Reverse Proxy • Cached Content Caching – 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 Application Server • APC • Memcache Cache – 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 Application Server • APC • Memcache Cache – 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 Application Server • APC • Memcache Caching 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 Boost Logic http://drupal.org/files/images/Boost.preview.png
  • 37. 37 Application Server • APC Back 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 MySQL • MySQL caching 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)
  • 39. 39 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
  • 41. 41 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
  • 42. 42 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
  • 43. 43 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
  • 44. 44 What if you get slashdotted? RUN! PANIC!
  • 45. Questions ? ANDY@PROMETSOURCE.COM Blog: www.linuxsysadminblog.com Site: www.prometsource.com

Notas del editor

  1. <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>
  2. Fly through
  3. Fly through… crack a joke
  4. See if anyone can figure out monkey on bike
  5. http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html
  6. http://www.flickr.com/photos/joiseyshowaa/ http://www.flickr.com/photos/matt512/
  7. http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html
  8. 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>
  9. http://blogs.atlassian.com/developer/2008/10/performance_testing_with_jmete.html http://pajamadesign.com/
  10. http://www.flickr.com/people/13809318@N00
  11. http://wimleers.com/article/improving-drupals-page-loading-performance#rule-1 http://developer.yahoo.com/performance/rules.html#num_http
  12. 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)
  13. http://drupal.org/project/simplecdn http://drupal.org/project/cdn http://search.creativecommons.org/?q=world+internet+map&sourceid=Mozilla-search
  14. http://www.flickr.com/photos/vincepal/
  15. http://groups.drupal.org/node/24318 http://tag1consulting.com/files/PageLoad.pdf
  16. http://drupal.org/node/545908#rules
  17. http://www.electrictoolbox.com/apc-php-cache-information/
  18. http://drupal.org/node/85768
  19. 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
  20. <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>