Analysis and Performance Information Systems 337 Prof. Harry Plantinga.

Slides:



Advertisements
Similar presentations
Optimizing Websites with YSlow Tom Lianza Co-Founder Wishlisting.com Tom Lianza Co-Founder Wishlisting.com.
Advertisements

The Internet.
Hotmails Performance Tuning Best Practices Aladdin A. Nassar Hotmails Performance Champion Microsoft.
CS193H: High Performance Web Sites Lecture 12: Rule 8 – Make JavaScript and CSS External Steve Souders Google
Web Performance Meetup 1 Web Performance 101 Jeremy
Monitoring a web sites health. Web Analytics - Definition Measurement of the behavior of visitors to a website Which aspects of the website work towards.
Web Site Performance What makes web sites slow? Back end Front end Tools for measuring performance Firebug / YSlow Visual Studio Test Edition W3.org html.
CHAPTER 15 WEBPAGE OPTIMIZATION. LEARNING OBJECTIVES How to test your web-page performance How browser and server interactions impact performance What.
Exadata Distinctives Brown Bag New features for tuning Oracle database applications.
Client side performance in Web based Banking applications Divakar Prabhu Infosys Limited (NASDAQ: INFY)
Amazon CloudFront An introductory discussion. What is Amazon CloudFront? 5/31/20122© e-Zest Solutions Ltd. Amazon CloudFront is a web service for content.
Urchin & Website Usability. Usability Study Usability study is a repetitive process that involves testing a site and then using the test results to change.
1 Content Delivery Networks iBAND2 May 24, 1999 Dave Farber CTO Sandpiper Networks, Inc.
Website Development with PHP and MySQL Introduction.
High Performance Websites (Based on Steve Souder’s lecture) By Bhoomi Patel.
Front-end Performance Optimization Using Drupal Fixing all validation errors reported by the Yslow & Page Speed tools.Yslow Page Speed.
Mark Phillip markphillip.com 200s, 304s, Expires Headers, HTTP Compression, And You.
Justin Klein Keane Drupal Training Session 1 Introduction to Drupal.
Responsive Web Design, Discoverability, and Mobile Challenge
Drupal Workshop Introduction to Drupal Part 1: Web Content Management, Advantages/Disadvantages of Drupal, Drupal terminology, Drupal technology, directories.
CIT 256 SEO and Web Commerce Dr. Beryl Hoffman. After you create a website Buy a domain name and rent web server space or go for a free one if you don’t.
Performance, SEO, Accessibility Ivan Zhekov Telerik Corporation
22-Aug-15 | 1 |1 | Help! I need more servers! What do I do? Scaling a PHP application.
Lighttpd & Modcache 2009/06/28. Basic lighttpd info Event-driven, single process Event-driven, single process Uses non-block io (network) + writev (memory)
 Internet vs WWW  Pages vs Sites  How the Internet Works  Getting a Web Presence.
Drupal Training Syllabus Chaitanya Lakshmi
WaveMaker Visual AJAX Studio 4.0 Training Troubleshooting.
Making your website go faster! Front-end Developer, Deeson Online Alli Price.
Performance of Web Applications Introduction One of the success-critical quality characteristics of Web applications is system performance. What.
User Side Factors. Download Speed Download speed from a user’s side, is how long it takes a webpage to load, once requested. The measurement for time.
Global NetWatch Copyright © 2003 Global NetWatch, Inc. Factors Affecting Web Performance Getting Maximum Performance Out Of Your Web Server.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
WaveMaker Visual AJAX Studio 4.0 Training Installation.
Web Programming: Client/Server Applications Server sends the web pages to the client. –built into Visual Studio for development purposes Client displays.
Drupal Jumpstart Information Systems 337 Prof. Harry Plantinga.
Copyrighted material John Tullis 10/6/2015 page 1 Performance: WebSphere Commerce John Tullis DePaul Instructor
Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.
Database-Driven Web Sites, Second Edition1 Chapter 5 WEB SERVERS.
CSC 2720 Building Web Applications Improving Web Application Performance.
JavaScript – Quiz #9 Lecture Code:
INFO 1300: LOCAL DEVELOPMENT 10/16/2015. Index.html Important Homepage for every project in this course Points will be deducted otherwise.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Module 10 Administering and Configuring SharePoint Search.
Web Design (1) Terminology. Coding ‘languages’ (1) HTML - Hypertext Markup Language - describes the content of a web page CSS - Cascading Style Sheets.
Department of Computer Science Internet Performance Measurements using Firefox Extensions Scot L. DeDeo Professor Craig Wills.
© 2005 BEA Systems, Inc. | 1 Portal Server Cache Settings Plumtree (BEA ALUI) March, 2007.
ESRI User Conference 2004 ArcSDE. Some Nuggets Setup Performance Distribution Geodatabase History.
Empirical Quantification of Opportunities for Content Adaptation in Web Servers Michael Gopshtein and Dror Feitelson School of Engineering and Computer.
PERFORMANCE ENHANCEMENT IN ASP.NET By Hassan Tariq Session #1.
Unit 1 – Web Concepts Instructor: Brent Presley.
Accelerating PHP Applications Ilia Alshanetsky O’Reilly Open Source Convention August 3rd, 2005.
The Internet. Important Terms Network Network Internet Internet WWW (World Wide Web) WWW (World Wide Web) Web page Web page Web site Web site Browser.
Module 6: Administering Reporting Services. Overview Server Administration Performance and Reliability Monitoring Database Administration Security Administration.
Configuring Drupal Information Systems 337 Prof. Harry Plantinga.
Performance & Security Satish C Ayappan (Drupal Architect- Capgemini)
Web Cache. What is Cache? Cache is the storing of data temporarily to improve performance. Cache exist in a variety of areas such as your CPU, Hard Disk.
Website: Contact:
THE FUTURE IS HERE: APPLICATION- AWARE CACHING BY ASHOK ANAND.
Technical SEO tips for Web Developers Richa Bhatia Singsys Pte. Ltd.
Enhance Your Page Load Speed And Improve Traffic.
What is Google Analytics?
Time is the enemy: Ten Core Lessons for Achieving Peak
BTEC NCF Dip in Comp - Unit 15 Website Development Lesson 05 – Website Performance Mr C Johnston.
Information Systems 337 Prof. Harry Plantinga Assessment.
Web Caching? Web Caching:.
Database Driven Websites
Hints and tips for faster web apps
AMP.
Scaling and Performance
Yale Digital Conference 2019
Presentation transcript:

Analysis and Performance Information Systems 337 Prof. Harry Plantinga

Analysis Your boss says "Who's visiting our site? Where are they coming from? What pages are popular? What paths are users taking through the site? What are the problem pages where we lose visitors?" Your boss says "Who's visiting our site? Where are they coming from? What pages are popular? What paths are users taking through the site? What are the problem pages where we lose visitors?" Analysis options: Analysis options: Read the raw logfile Read the raw logfile Set up a logfile analysis program Set up a logfile analysis program Sign up for Google Analytics Sign up for Google Analytics

Google Analytics An amazing tool… An amazing tool… Where do my customers live? Where do my customers live? What path do they take through the site? What path do they take through the site? What links are popular? What links are popular? Would a certain change improve the site? (A/B testing) Would a certain change improve the site? (A/B testing) How to add Google Analytics to a web site? How to add Google Analytics to a web site? Sign up for GA, install the google_analytics module Sign up for GA, install the google_analytics module

Suppose… You set up a new web site using Drupal You set up a new web site using Drupal Performance is mediocre Performance is mediocre What was a site in the top 5% (for speed) drops near the bottom… What was a site in the top 5% (for speed) drops near the bottom… 5 seconds for a page load 5 seconds for a page load 0.75sec minimum for every file served 0.75sec minimum for every file served high server load averages high server load averages occasionally, load average shoots up and server crashes occasionally, load average shoots up and server crashes What to do? What to do?

Minimize download time Reduce the number of hits (stylesheets, images) per pageview Reduce the number of hits (stylesheets, images) per pageview Use Drupal's CSS and JS optimization (although they didn't exist in Drupal 4…) Use Drupal's CSS and JS optimization (although they didn't exist in Drupal 4…) [ Reduced from >30 to about 20 files per pageview (stylesheets, artwork, etc) this way] Can also minimize javascript Can also minimize javascript Limit 2 files at once per server Limit 2 files at once per server Any way to improve this? Any way to improve this?

Second domain name Add a second server on a different domain name Add a second server on a different domain name Serve static files (artwork, stylesheets, etc) from a separate server Serve static files (artwork, stylesheets, etc) from a separate server Allow 4 files to be downloaded at once between the two domain names Allow 4 files to be downloaded at once between the two domain names Can turn on maximum caching for static files Can turn on maximum caching for static files

Caching Turn on Drupal's page cache Turn on Drupal's page cache Make sure users' browser cache works as well as possible Make sure users' browser cache works as well as possible Static content should never expire Static content should never expire Change filename for revised files Change filename for revised files Static server: add an Expires or Cache-control header: make sure content doesn't expire Static server: add an Expires or Cache-control header: make sure content doesn't expire Still, 40-60% of visitors come with an empty cache… Still, 40-60% of visitors come with an empty cache…

Optimize artwork Make sure artwork files are small Make sure artwork files are small optimize in Photoshop or another program optimize in Photoshop or another program optimize Many small files == slow. How to reduce? Many small files == slow. How to reduce? combine artwork into one background image combine artwork into one background imageone background imageone background image use jQuery to round corners use jQuery to round cornersround cornersround corners use CSS Sprites use CSS SpritesCSS SpritesCSS Sprites use inline images in stylesheets with data: urls use inline images in stylesheets with data: urlsdata: urlsdata: urls

Reduce download times 80-90% of wait time is downloading content 80-90% of wait time is downloading content More ideas More ideas Compress components Compress components Accept-Encoding: gzip, deflate? Then deflate! Accept-Encoding: gzip, deflate? Then deflate! Apache: use mod_deflate Apache: use mod_deflate Use a content delivery network Use a content delivery network E.g. Akami E.g. Akami Can improve av. response time 20% or more Can improve av. response time 20% or more

Make pages appear faster Stylesheets at the top, so pages can be rendered right away Stylesheets at the top, so pages can be rendered right away Scripts at the bottom Scripts at the bottom Specify image dimensions Specify image dimensions Minimize expensive page components Minimize expensive page components

Page Speed Google Page Speed tools help identify ways to improve performance Google Page Speed tools help identify ways to improve performancePage Speed Page Speed Firebug add-on for Firefox Firebug add-on for Firefox Apache module mod_pagespeed Apache module mod_pagespeed

Problems remain? At this point we still had very slow page display times and occasional load average spike/crash At this point we still had very slow page display times and occasional load average spike/crash How to debug? How to debug? What are the possible server performance bottlenecks? What are the possible server performance bottlenecks?

Server Bottlenecks Possible server bottlenecks Possible server bottlenecks Is the CPU maxed out? Is the CPU maxed out? Running out of RAM Running out of RAM Disk speed, transactions per second Disk speed, transactions per second Network bandwidth Network bandwidth Database capacity Database capacity How to test? How to test?

Disk maxed out? Check disk activity (reads vs. writes) Check disk activity (reads vs. writes) vmstat on linux vmstat on linux performance monitor on windows performance monitor on windows or write your own… or write your own… If pegged, find cause If pegged, find cause excessively verbose logging? excessively verbose logging? background process, e.g. backups? background process, e.g. backups? poorly configured database? poorly configured database? too many database writes? too many database writes? some other bad algorithm? some other bad algorithm?

Running out of bandwidth? Get a bigger pipe Get a bigger pipe Or, send less data Or, send less data smaller artwork smaller artwork better caching better caching gzip compression gzip compression

Running out of RAM? Check with linux top or free, performance monitor, etc. Check with linux top or free, performance monitor, etc. Each server process takes MB or more Each server process takes MB or more Each Apache or Drupal module takes more Each Apache or Drupal module takes more Our crashes were due to running out of RAM, then swap space Our crashes were due to running out of RAM, then swap space Solutions? Solutions? Set MaxClients appropriately Set MaxClients appropriately Turn down Keepalive time! (Default 15, to 2?) Turn down Keepalive time! (Default 15, to 2?) MaxRequestsPerChild to lower number, e.g. 300 MaxRequestsPerChild to lower number, e.g. 300 Get more RAM Get more RAM

Running out of CPU? Check with top (linux/mac) or performance monitor (windows) Check with top (linux/mac) or performance monitor (windows) PHP is interpreted PHP is interpreted Each request: load, compile all the code… Each request: load, compile all the code… This was taking us something like 0.5 secs of CPU time per page This was taking us something like 0.5 secs of CPU time per page Use a PHP Accelerator (bytecode cache) Use a PHP Accelerator (bytecode cache)PHP Accelerator PHP Accelerator e.g. eAccelerator, Zend, Alternative PHP Cache e.g. eAccelerator, Zend, Alternative PHP Cache Application profiling Application profiling Get a faster CPU Get a faster CPU

Database swamped? Use mysqladmin to figure out how many transactions per second you are using Use mysqladmin to figure out how many transactions per second you are using How many transactions per second can a database process? How many transactions per second can a database process? fully cached: lots fully cached: lots requiring a disk access: 100? 200? requiring a disk access: 100? 200? Solutions: Solutions: optimize expensive queries optimize expensive queries add indexes on tables add indexes on tables enlarge server's query cache / tune server enlarge server's query cache / tune server reduce database writes reduce database writes

Drupal-specific optimizations Some improvements you can make in Drupal: Some improvements you can make in Drupal: Turn on page caching Turn on page caching Stylesheet optimization Stylesheet optimization Prune the sessions table/make sessions shorter Prune the sessions table/make sessions shorter Reduce time before garbage collection (cron) Reduce time before garbage collection (cron) Prune error reporting logs (watchdog table) Prune error reporting logs (watchdog table) Automatic throttling Automatic throttling

What next? I've done all that. What else can I do? I've done all that. What else can I do? Separate database server Separate database server Load balancer and additional servers Load balancer and additional servers Database replication Database replication