Chapter 10 Performance and Reliability. Objectives Explain performance, workload, throughput, capacity, response time, and latency Describe a process.

Slides:



Advertisements
Similar presentations
Performance Testing - Kanwalpreet Singh.
Advertisements

Hypertext Transfer PROTOCOL ----HTTP Sen Wang CSE5232 Network Programming.
Copyright © 2012 Certification Partners, LLC -- All Rights Reserved Lesson 4: Web Browsing.
CCNA – Network Fundamentals
Lesson 4: Web Browsing.
Distributed components
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Chapter 9 Application Layer, HTTP Professor Rick Han University of Colorado at Boulder
Mi-Joung choi, Hong-Taek Ju, Hyun-Jun Cha, Sook-Hyang Kim and J
Networks: HTTP and DNS1 The Internet and HTTP and DNS Examples.
How the web works: HTTP and CGI explained
Networks: HTTP and DNS 1 The Internet and HTTP and DNS Examples.
Cornell CS502 Web Basics and Protocols CS 502 – Carl Lagoze Acks to McCracken Syracuse Univ.
Networks: HTTP and DNS1 The Internet and HTTP and DNS Examples.
The World Wide Web and the Internet Dr Jim Briggs 1WUCM1.
1 The HyperText Transfer Protocol: HTTP Nick Smith Stuart Alley Tara Tjaden.
ASP.NET 2.0 Chapter 6 Securing the ASP.NET Application.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
Client, Server, HTTP, IP Address, Domain Name. Client-Server Model Client Bob Yahoo Server yahoo.com/finance.html A text file named finance.html.
 Proxy Servers are software that act as intermediaries between client and servers on the Internet.  They help users on private networks get information.
Chapter 9 Overview  Reasons to monitor SQL Server  Performance Monitoring and Tuning  Tools for Monitoring SQL Server  Common Monitoring and Tuning.
MSF Testing Introduction Functional Testing Performance Testing.
Understanding and Managing WebSphere V5
Load Test Planning Especially with HP LoadRunner >>>>>>>>>>>>>>>>>>>>>>
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
TESTING STRATEGY Requires a focus because there are many possible test areas and different types of testing available for each one of those areas. Because.
1 HTML and CGI Scripting CSC8304 – Computing Environments for Bioinformatics - Lecture 10.
Networking Basics TCP/IP TRANSPORT and APPLICATION LAYER Version 3.0 Cisco Regional Networking Academy.
Server tools. Site server tools can be utilised to build, host, track and monitor transactions on a business site. There are a wide range of possibilities.
CP476 Internet Computing Lecture 5 : HTTP, WWW and URL 1 Lecture 5. WWW, HTTP and URL Objective: to review the concepts of WWW to understand how HTTP works.
TCP/IP Protocol Suite 1 Chapter 22 Upon completion you will be able to: World Wide Web: HTTP Understand the components of a browser and a server Understand.
Application Layer 2 Figures from Kurose and Ross
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
CH2 System models.
Protocol(TCP/IP, HTTP) 송준화 조경민 2001/03/13. Network Computing Lab.2 Layering of TCP/IP-based protocols.
Chapter 5 HTTP Request Headers. Content 1.Request headers 2.Reading Request Headers 3.Making a Table of All Request Headers 4.Sending Compressed Web Pages.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 OSI Transport Layer Network Fundamentals – Chapter 4.
Event Management & ITIL V3
Computer Emergency Notification System (CENS)
1 Introductory material. This module illustrates the interactions of the protocols of the TCP/IP protocol suite with the help of an example. The example.
What does WWW stand for? And following abbreviations? HTTP: Hyper Text Transfer Protocol HTML: Hyper Text Mark-up Language URL: Uniform Resource Locator.
Application Layer Khondaker Abdullah-Al-Mamun Lecturer, CSE Instructor, CNAP AUST.
1 CS 4396 Computer Networks Lab TCP/IP Networking An Example.
® IBM Software Group © 2007 IBM Corporation Best Practices for Session Management
Application Layer Honolulu Community College Cisco Academy Training Center Semester 1 Version
WEB SERVER Mark Kimmet Shana Blair. The Project Web Server Application  Receives request for web pages or images from a client browser via the internet.
2: Application Layer 1 Chapter 2: Application layer r 2.1 Principles of network applications  app architectures  app requirements r 2.2 Web and HTTP.
CITA 310 Section 2 HTTP (Selected Topics from Textbook Chapter 6)
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
HTTP Here, we examine the hypertext transfer protocol (http) – originally introduced around 1990 but not standardized until 1997 (version 1.0) – protocol.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
ASP-2-1 SERVER AND CLIENT SIDE SCRITPING Colorado Technical University IT420 Tim Peterson.
Overview of Servlets and JSP
Data Communications and Computer Networks Chapter 2 CS 3830 Lecture 7 Omar Meqdadi Department of Computer Science and Software Engineering University of.
Introduction to Performance Testing Performance testing is the process of determining the speed or effectiveness of a computer, network, software program.
Session 11: Cookies, Sessions ans Security iNET Academy Open Source Web Development.
Ch 2. Application Layer Myungchul Kim
Tool Support for Testing Classify different types of test tools according to their purpose Explain the benefits of using test tools.
DEPLOYING SPDY: 5 “GOTCHAS” TO WATCH OUT FOR BY FASIHULLAH ASKIRI.
Tiny http client and server
Web Development Web Servers.
Software Architecture in Practice
Introduction Web Environments
Web Caching? Web Caching:.
CHAPTER 3 Architectures for Distributed Systems
IS333D: MULTI-TIER APPLICATION DEVELOPMENT
The Internet and HTTP and DNS Examples
Kevin Harville Source: Webmaster in a Nutshell, O'Rielly Books
CSCI-351 Data communication and Networks
Presentation transcript:

Chapter 10 Performance and Reliability

Objectives Explain performance, workload, throughput, capacity, response time, and latency Describe a process for tuning a web application and explain strategies for improving performance Explain how text compression is encoded Explain sources of unreliability and how to improve reliability Explain several testing strategies

Performance Performance Measurement: collecting and analyzing data related to how well an application provides its intended service

Performance Measurement Tools Tools such as JMeter help to determine throughput by simulating one or more users and reporting performance

Throughput and Workload Throughput: the number of transactions processed per unit of time –e.g., 1000 transactions/minute Workload: the number of transactions that need to be processed, per unit of time Ex: A server receives 500 transactions / minute, but is able to process only 80% of that load –workload: 500 transactions / minute –throughput: 400 transactions / minute

Throughput and Workload Ideally, throughput = workload When workload exceeds capacity, throughput < workload and transactions are delayed or lost workload capacity Throughput

Response Time and Latency Response Time: the time required by a server to process one transaction Latency: the time required to process a request, as perceived by the user Latency includes network delay as well as response time

Response Time and Latency User NetworkServer make request transmit request transmit response receive response latency response time

Capacity Planning and Tuning Capacity Planning: the process of estimating the expected workload of an application, and ensuring that the design has adequate capacity Tuning: the process of changing the configuration of a server or application to increase capacity

Tuning Process

Tuning: Thread Pool Size Thread Pool Size: servers reuse threads to handle concurrent requests More threads => higher capacity, but less memory per thread, increasing response time Experimentation determines the best size Number of Threads Memory Available Per Thread Capacity for Concurrent Requests

Tuning: Session Time-Out Sessions are created when clients first contact the server Sessions expire automatically after the specified time-out period (e.g., 5-30 min) Longer time-out => more sessions stored on the server, more memory used Shorter time-out => less convenience for users

Tuning: DNS Reverse Lookup Web servers may keep a log of incoming transactions, including the source URL of each transaction This requires translating IP address from an incoming transaction to a URL via reverse DNS lookup Eliminating the DNS lookup reduces the server workload HTTP transaction DNS lookup

Media and Compression Most media formats (jpeg, mpeg, mp3, etc.) include compression to reduce the size of media files Increased media size and quality increase response time and latency Media should be sized as small as possible given the quality targets of the application

Compression HTML can also be compressed Compression is controlled by HTTP headers: –Accept-Encoding: request header specifying which compression encodings the client understands –Content-Encoding: response header specifying which encoding was used

Compression GET /test.html HTTP/1.1 Host: localhost Accept-Encoding: gzip,deflate HTTP/1.x 200 OK … Content-Type: text/html Content-Length: 1088 Date: Fri, 29 Feb :15:27 GMT... uncompressed content (1088 bytes)... HTTP/ OK … Content-Type: text/html Transfer-Encoding: chunked Content-Encoding: gzip Date: Fri, 29 Feb :12:31 GMT f5... compressed content (245 bytes)... 0 HTTP Request Uncompressed Response Compressed Response (size indicated in hex, xf5 = 245)

Reliability Reliability: the ability of a system to meet its performance target over time –the target may be less than 100% availability Availability: the percentage of time during which a system is available Outage: the period of time during which a system is not available

Reliability Example: A system has a performance target of 98% availability over any 24-hour day Daily availability figures for 5 days: –99%, 100%, 95%, 98%, 100% Reliability over 5 days = 4 / 5 = 80%

Sources of Unreliability External Network Internal Network Server Platform Application Software (including database) External Agents (on which a dependency exists, e.g., a credit-card processing agent) Internal Environment (power, air, security)

Points of Failure Single Point of Failure (SPOF): any system component, the failure of which can cause the entire system to fail SPOFs can be eliminated through: –standby component (or service): an idle component that can be inserted in place of a failed component –replicated component (or service): one of a set of components that work in parallel so that if one fail, the others continue to share the workload

Built In Redundancy Redundant components eliminate SPOFs

Reliable Operations Reliability also depends on –proper operations documentation –well-trained administrative / operations staff –physical security –reliable environment: (electrical power, air coolers, etc.)

Testing The purpose of software testing is not show that a system works, but rather to find the errors in a system –There are always errors!

Characteristics of Web Applications Content-intensive: a great deal of information Multiple, dynamic user configurations (web browsers) Multiple layers (client, server, application, database) Dependent on external networks

Testing Approaches Acceptance Testing Compatibility / Configuration Testing Content Testing Functional Testing Interface Testing Performance Testing Security Testing

Acceptance Testing Evaluate user satisfaction with the system Strategies: –Present prototypes during early development –Alpha testing: users test a nearly complete system, in a mock environment –Beta testing: users test a completed system, in a trial environment Web Application

Compatibility/Configuration Testing Find instances of software incompatibility –especially due to client (web browser) differences and configuration Strategies: –setup virtual machines for different browsers –test multiple versions of each browser –test plugins (e.g.,) PDF reader IE7 Firefox IE8 Opera Safari Web Application

Content Testing Find errors in web pages, documents, or data that users will see Strategies: –Automated spell-checking, grammar-checking –Continuous content review by production staff

Functional Testing Find instances of a component failing to perform in accordance with specifications Strategies: –Black-box testing: test each specification –White-box testing: test each bit of code –Error injection: force errors in order to test error- handling mechanisms –Use testing tools –Maintain a test suite that can be used repeatedly –Regression testing: test new versions against old versions

Interface Testing Ensure that users can effectively use the application and that appropriate help and guidance are provided Strategies: –Check hyperlinks for correct navigation –Check that all help functions are correct and appropriate for the user –Check all error responses –Ask selected users to try the application and record their performance and reactions

Performance Testing Determine if the application has the capacity to support the expected workload Strategies: –Establish peak and average capacity expectations –Use performance measurement tools to place the application under the expected loads –Place the application under increasing load until it fails (stress testing), to determine the maximum capacity

Security Testing Determine if the application is vulnerable to know attacks Strategies: –Establish a threat model during development –Use common documented attack strategies against the system to search for vulnerabilities

Review Performance, workload, throughput, capacity, response time, latency Web application tuning and performance improvement Compression Improving reliability Testing strategies