(An) Optimal Drupal 7 Module Configuration for Site Performance JOE PRICE

Similar documents
The importance of Drupal Cache. Luis F. Ribeiro Ci&T Inc. 2013

Simple Tips to Improve Drupal Performance: No Coding Required. By Erik Webb, Senior Technical Consultant, Acquia

Drupal Performance Tuning

Accelerating Wordpress for Pagerank and Profit

making drupal run fast

Cache All The Things

Site Audit ( /site_audit) Generated on Fri, 22 Aug :14:

E-commerce is also about

Auditing Drupal sites for performance, content and optimal configuration

Front-End Performance Testing and Optimization

Varnish the Drupal way

FormAPI, AJAX and Node.js

WompMobile Technical FAQ

Bootstrap + Drupal Commerce in less than 45 minutes! by Jorge Diaz

9 Tried and Tested Tips to Increase the Power of your Magento Store

Nginx 1 Web Server Implementation

Web Performance. Sergey Chernyshev. March '09 New York Web Standards Meetup. New York, NY. March 19 th, 2009

AUDIT REPORT EXAMPLE

The Devil is in the Details. How to Optimize Magento Hosting to Increase Online Sales

79 Tips and Tricks for Magento Performance Improvement. for Magento Performance Improvement

Ensuring scalability and performance with Drupal as your audience grows

Setup The package simply needs to be installed and configured for the desired CDN s distribution server.

Creating Value through Innovation MAGENTO 1.X TO MAGENTO 2.0 MIGRATION

Magento Performance Optimization Whitepaper

Speed up your web site. Alan Seiden Consulting alanseiden.com

4x High Performance for Drupal. Presented by Fabian Franz. Step by Step

Web Performance. Lab. Bases de Dados e Aplicações Web MIEIC, FEUP 2014/15. Sérgio Nunes

Optimizing Drupal Performance. Benchmark Results

Common Server Setups For Your Web Application - Part II

Running Nginx as Reverse Proxy server

Drupal Memcached Nginx

Magento & Zend Benchmarks Version 1.2, 1.3 (with & without Flat Catalogs)

Drupal Training Modules 2015

Wikimedia Architecture Doing More With Less. Asher Feldman Ryan Lane Wikimedia Foundation Inc.

Kentico Site Delivery Checklist v1.1

Drupal CMS for marketing sites

General principles and architecture of Adlib and Adlib API. Petra Otten Manager Customer Support

Learning To Fly: How Angry Birds Reached the Heights of Store Performance

Open Source Content Management System for content development: a comparative study

How does Drupal 7 Work? Tess Flynn, KDØPQK

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

SiteCelerate white paper

Measuring CDN Performance. Hooman Beheshti, VP Technology

MAGENTO HOSTING Progressive Server Performance Improvements

Website Optimization Tips for Speed

Smartphone Enterprise Application Integration

FIVE WAYS TO OPTIMIZE MOBILE WEBSITE PERFORMANCE WITH PAGE SPEED

The truth about Drupal

Doug Goldberg. Vice President of Magento Solutions, ZeroLag

Mobile Application Platform

Getting a Grip on CDN Performance Why & How.

ABTO Software PHP Web Development Overview

WordPress Optimization

Modern Web Development From Angle Brackets to Web Sockets

Are You Ready for the Holiday Rush?

ZingMe Practice For Building Scalable PHP Website. By Chau Nguyen Nhat Thanh ZingMe Technical Manager Web Technical - VNG

HTML5. Turn this page to see Quick Guide of CTTC

Project Orwell: Distributed Document Integrity Verification

Learning Management Redefined. Acadox Infrastructure & Architecture

CS 558 Internet Systems and Technologies

Varnish Tips & Tricks, 2015 edition

Sitecore Dashboard User Guide

API documentation - 1 -

CI Pipeline with Docker

ekomimeetsmage Manual for version 1.0.0, 1.1.0, 1.2.0, 1.3.0, 1.4.0

HYBRID. Course Packet

Server Architecture for High- Performance Drupal

OpenText Information Hub (ihub) 3.1 and 3.1.1

Optimizing WordPress Performance: Page Speed and Load Times. Doug Yuen

5 Mistakes to Avoid on Your Drupal Website

Ajax Development with ASP.NET 2.0

CloudOYE CDN USER MANUAL

Datasheet - Sitekit CMS Performance Tips

4 Understanding. Web Applications IN THIS CHAPTER. 4.1 Understand Web page development. 4.2 Understand Microsoft ASP.NET Web application development

Getting Started Guide for Developing tibbr Apps

3/21/2011. Topics. What is load balancing? Load Balancing

Why Web Performance Matters Open Text Web Solutions Usergroup Anwendertagung Feb Tobias Dreyschultze Tobel Online Web Consultancy

Improving Magento Front-End Performance

LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description

HTTPS Inspection with Cisco CWS

WEB AND APPLICATION DEVELOPMENT ENGINEER

A Tool for Evaluation and Optimization of Web Application Performance

Meeting the challenges of modern website performance Developments in monitoring strategies

Performance Report for: Report generated: Friday, April 24, 2015, 7:29 AM (via API)

Content Management Software Drupal : Open Source Software to create library website

Art of Code Front-end Web Development Training Program

Topics. 1. What is load balancing? 2. Load balancing techniques 3. Load balancing strategies 4. Sessions 5. Elastic load balancing

Mobile Application Performance Report

CONTENT DELIVERY WHITE PAPER proinity GmbH 1

Transcription:

(An) Optimal Drupal 7 Module Configuration for Site Performance JOE PRICE

Intro I m a performance junkie. My top three non-drupal performance tools are Apache Bench, Google PageSpeed Insights, and NewRelic. I currently manage Broadstreet Consulting s servers/site performance. 80% of today s talk will cover performance improving modules The rest will cover performance degrading modules Gist reference https://gist.github.com/pricejn2/10943822

Why We Care Performance (TTFB) impacts search ranking Users expect a fast site (that includes me) Delays drive users away 47% of consumers expect a web page to load in 2 seconds or less. 40% of people abandon a website that takes more than 3 seconds to load. A 1 second delay in page response can result in a 7% reduction in conversions. If an e-commerce site is making $100,000 per day, a 1 second page delay could potentially cost you $2.5 million in lost sales every year.

Types of Performance Improving Modules Five categories for the purposes of our discussion today: Caching Compressing Concurrency Callbacks Queries

Caching This section could be a whole discussion series in and of itself This isn t about server set up, but its hard to completely avoid the topic of at least dependencies DISCLOSURE: I have my preferred server configuration for non-enterprise scale sites, and server-specific modules will inevitably reflect that bias The goal here is to highlight the most useful caching modules, regardless of current popularity Drupal modules aren t the magic bullet to fix all your performance problems With that

Caching: Novice These provide more granularity for different Drupal parts and are all drop-in with frontend configuration required per part in most cases: Block Cache Alter (blockcache_alter) Display Cache (display_cache) Panels Content Cache (panels_content_cache) Views Content Cache (views_content_cache) Enforces Views time-based caching for all uncached views: Views Cache Bully (views_cache_bully)

Caching: Intermediate Boost (boost) Static page caching (ie, serve *.html instead of php) -- best for primarily anonymous traffic. This is a must if you re stuck using a shared host. Use with Cache Expiration (expire) for more intelligent handling of stale content on larger/busier sites with regular updates. mikeytown2 CDN (cdn)

Caching: Advanced Entity cache (entitycache) Use with Redis (redis) for maximum benefit ESI - Edge Side Includes (esi) ESI/SSI support; server-side authenticated user cache Redis (redis) Alternative cache backend integration for Drupal Avoiding stale cache: Expire (expire) Ensures cached items are timely Purge (purge) Clears URLs from reverse proxy caches like Varnish, Squid or Nginx

Compressing Advanced CSS/JS Aggregation (advagg) mikeytown2 Core CSS & JS aggregation, compression, and optimization enhancement. Build aggregates in background using httprl support Drop-in ready Speedy (speedy) Provides minified versions of core JavaScript files Reduced benefits if used with advagg_js_compress Drop-in ready

Concurrency CSS Embedded Images (css_emimage) Really more about reducing total HTTP connections then concurrency per se Integration with advagg Drop-in ready HTTP Parallel Request Library (httprl) Multiple requests using httprl can be over 5x faster then core's drupal_http_request() because multiple connections are open and the streams are downloaded in parallel. Another mikeytown2 contribution. Works fantastically in conjunction with his advagg module. Drop-in integrates with advagg, linkchecker, purge, and others

Callbacks JavaScript/AJAX callback handler (js) Simplified bootstrap -- include only the necessary files needed to serve the request. API to other developers who want to improve their project's AJAX (, SOAP, AHAH, JSON, etc.) performance Drop-in, but with limited benefits to most existing sites. One common exception being admin_menu users. More reading for the interested -- http://www.pixelite.co.nz/article/highperformance-ajax-callbacks-drupal-7-and-js-module

Queries Taxonomy Edge (taxonomy_edge) Specifically for optimizing Drupal s hierarchical taxonomy functions Overrides expensive taxonomy_get_tree() and taxonomy_select_nodes() Provides a transitive closure table data model Important when you have > 20,000 terms

Performance Degrading Modules Database logging (dblog) For a production site, alleviate the amount of writes on the database Enable to debug else disable Update manager (update) Reduce cron jobs Coder (coder) Devel (devel) Localization update (l10n_update) Any unused module

Every Production Site Should 1. At a bare minimum, core + advagg + httprl with proper configuration and disable performance degrading modules (see gist) 2. Consider enabling css_emimage + speedy for most circumstances. 3. Drupal caching is not a one-size-fits all solution, but for any non- Commerce site using Views, views_cache_bully is a highly recommended easy win. 4. Utilize entitycache. 5. If you have more than 20k taxonomy terms, start leveraging taxonomy_edge.

A lot more to think about beyond Drupal modules CDN Server configuration Optimized images Render-blocking external resources

Thanks! QUESTIONS?