EARTH WEEK
Now through April 22, save up to 70% on digital learning resources. Learn more.
Register your product to gain access to bonus material or receive a coupon.
The world's #1 book on Web capacity planning has now been completely revamped to reflect the latest Web services and e-commerce applications, and the latest techniques and technologies for supporting them. In this book, two of the world's leading Web capacity planning experts show how to precisely quantify potential and real performance problems, and address them proactively. Daniel A. Menascé and Virgilio A.F. Almeida introduce quantitative performance predictive models for every major Web scenario -- especially the latest Web services, e-commerce, and mobile applications. The book's extensive coverage of Web services includes protocols and interaction models; unique performance, reliability, and availability challenges; and new capacity planning methodologies. Menascé and Almeida introduce the fundamentals of performance and capacity planning in any client/server environment; specific issues associated with HTTP and TCP/IP protocols; and typical workloads. They demonstrate how to benchmark current performance at both the system and component level; plan future capacity; define service level agreements; accommodate peak usage; and manage tradeoffs between cost and performance.
Preface.
About the Authors.
1. When Web Performance Is a Problem.
Introduction. Web Site Performance. Client/Server Performance. The Capacity Planning Concept. Corporate Portal Performance. ISP Performance. Concluding Remarks.
Introduction. The World of Networks. The World of Clients and Servers. The Peer-to-Peer Model. Web Service Protocols. Concluding Remarks.
Introduction. The Big Picture of Response Time. Service Times and Service Demands. Web Page Download Time. Queues and Contention. Some Basic Performance Results. Performance Metrics in Web Systems. Concluding Remarks.
Introduction. From Boxes to Services. Perception of Performance. Where Are the Delays? Web Infrastructure. Server Architectures. Networks. Concluding Remarks.
Introduction. Adequate Capacity. A Capacity Planning Methodology for Web Services. Understanding the Environment. Workload Characterization. Workload Forecasting. Performance/Availability Modeling and Prediction. Development of a Cost Model. Cost/Performance Analysis. Concluding Remarks.
Introduction. Characterizing the Workload of a Corporate Portal. A Workload Characterization Methodology. Web Workloads. Concluding Remarks.
Introduction. The Nature of Benchmarks. Processor Benchmarks. Web Server Benchmarks. System Benchmarks. Performance Testing. Concluding Remarks.
Introduction. Simple Server Model Infinite Queue. Simple Server Model Finite Queue. Generalized System-Level Models. Other System-Level Models. Concluding Remarks.
Introduction. Queuing Networks. Open Systems. Closed Models. Modeling Multiprocessors. Combining System- and Component-Level Models. An Intranet Model. Concluding Remarks.
Introduction. Incorporating New Phenomena. Client-Side Models. Server-Side Models. Concluding Remarks.
Introduction. A Motivating Availability Example. Why and How Systems Fail. Reliability and Availability Basics. The Reliability of Systems of Components. Revisiting the Online Broker Example. Performance and Availability. Software Aging and Rejuvenation. Concluding Remarks.
Introduction. Why Workload Changes? Forecasting Strategy. Forecasting Process. Forecasting Techniques. Concluding Remarks.
Introduction. Performance Measurement Framework. The Meaning of Measurements. Measurement Process. Data Collection Techniques and Tools. Performance Model Parameters. Obtaining Model Parameters. Concluding Remarks.
Introduction. Characteristics of Large-Scale Systems. Model-Based Approach. Concluding Remarks.
The Microsoft Excel Workbooks. HTTP Log Sample and Program.
This is what makes this book unique and worth reading: Businesses, government agencies, and individuals are increasingly dependent on Web services for their day-to-day operation. As a consequence, quality of service, in particular performance and availability considerations, are becoming extremely important. Performance analysis of Web services is unique in many ways. First, Web services rely on large-scale systems that consist of thousands of computers, networks, software components, and users. Large-scale systems are inherently complex. The randomness associated with the way users request Web services compounds the problem of managing and planning the capacity of those services.
This book uses a quantitative approach to analyzing Web services. It provides a framework to understand the Web's complex relationships and how these relationships impact performance and availability of Web services. This approach lends itself to the development of performance and availability predictive models for managing and planning the capacity of Web services. Instead of relying on intuition, ad hoc procedures, and rules of thumb, we provide a uniform and sound way for dealing with performance problems. The models discussed here are based on probability fundamentals and on the theory of queuing networks. The techniques and models presented in this book provide a simple and practical approach to dealing with Web-based systems. Models are essential tools to simplifying the representation of complex systems and, at the same time, to capturing the most relevant characteristics of those systems.
There are several books on computer system performance evaluation, but they do not focus on Web-based systems. The Web has special features that make its performance problems unique and demand novel approaches to dealing with them. This book presents a sound and practical approach to addressing these challenges. Also, this book is not tied to any specific technology or product; it is general enough to be valuable in any Web-based environment.
This is an example-driven book. Many real-world examples with solutions are used to illustrate the use of models and analytic techniques. The models are available as Microsoft Excel worksheets, which makes it easy for readers to understand detailed situations of capacity planning of real-world Web services. The case studies presented are inspired in problems that come up very often in the course of planning, designing, implementing, operating, and managing Web services. The examples, case studies, and spreadsheets allow the reader to immediately put into practice the methods and models discussed here.
Information technology professionals must ensure that the Web services under their management provide an acceptable quality of service to their users. Managers must avoid the pitfalls of inadequate capacity and meet users' performance expectations in a cost-effective manner. System administrators, Web masters, network administrators, capacity planners and analysts, managers, consultants, and other IT professionals will benefit from reading parts or the entire book. Its practical, yet sound and formal, approach provides the basis for understanding modern and complex networked environments.
This book can be used as a textbook for senior undergraduate and graduate courses in Computer Science and Computer Engineering. At the undergraduate level, the book is a good starting point to motivate students to learn the important implications and solutions to performance problems. In particular, this book is very useful to in providing students with the quantitative skills required to analyze the behavior of Web systems. At the graduate level, it can be used in System Performance Evaluation courses. This book offers a theoretical and practical foundation in performance modeling. The book can also be used as a supplement for systems courses, including Operating Systems, Distributed Systems, and Networking, both at the undergraduate and graduate levels. A series of exercises and short projects is available at the Web site associated with this book (www.cs.gmu.edu/~menasce/webservices/
).
Chapter 1 introduces, through a series of examples, the importance of performance and availability considerations for Web services. The concepts of capacity planning, service levels, and workload evolution are defined and illustrated.
Chapter 2 presents a brief discussion on local and wide area networks and their protocols including TCP/IP, Ethernet, IEEE 802.11, Token Ring, and FDDI. The chapter revisits the client server (C/S) computing paradigm and discusses several kinds of servers, such as file servers, database servers, application servers, groupware servers, object servers, and Web servers. Various architectural C/S issues, including two-tier versus three-tier C/S architectures, are presented. The HTTP protocol is described in this chapter. The Peer-to-Peer model is also discussed as an alternative to the C/S paradigm used to support Web services. Standards-based technologies for Web services, such as Simple Object Access Protocol (SOAP) and Web Service Description Language (WSDL) are also presented. The concepts here are presented in light of performance considerations and tradeoffs.
Chapter 3 investigates, in detail, the nature of the delay incurred by a typical Web request. A complete analysis of the time to download a Web page is presented. This chapter shows how service times can be computed at single disks, disk arrays, networks, and routers. Queues and contention are defined more formally and some very basic and important performance results from Operational Analysis are introduced.
Chapter 4 discusses issues that affect performance of Web services. The chapter starts by looking at the sources of delay in Web environments. After discussing the end-user perspective to Web service performance, the chapter provides an assessment. It examines the components and protocols involved in the execution of Web services and analyzes their capacity and performance issues. New concepts such as heavy-tailed characteristics, traffic spikes, and network caching are analyzed through the use of simple performance models. The Wireless Application Protocol (WAP) is also presented in this chapter.
Chapter 5 introduces a step-by-step methodology to determining the most cost-effective Web service infrastructure. The main steps of the methodology are: understanding the environment, workload characterization, work-load model validation and calibration, performance and availability model development, model validation and calibration, workload forecasting, performance and availability prediction, cost model development, cost prediction, and cost/performance-availability analysis.
Chapter 6 describes and illustrates with examples the major steps required for the construction of workload models. The common steps to be followed by any workload characterization project include specification of the standpoint from which the workload will be analyzed, choice of the set of parameters that capture the most relevant characteristics of the workload for the purpose of the study, monitoring the system to obtain the raw performance data, analysis and reduction of performance data, and construction of a workload model. Some characteristics of Web workloads are discussed and power-laws models are introduced.
Chapter 7 presents several different standard industry benchmarks-such as TPC-C and TPC-W, SPECCPU, SPECWEB, and WebStone-and shows how to use benchmark results as a complementary source of information to support the capacity planning methodology. Mathematical models that represent characteristics of actual Web workloads are studied in this chapter. This chapter also examines performance testing, which is commonly used to determine how users will experience the performance of a Web service.
Chapter 8 starts by introducing very simple models of Web-based systems. Complexity is progressively introduced and the solution to each model is presented using first principles and intuitive concepts. After a few models are presented, the approach is generalized. The models presented in this chapter are called system-level performance models since they view the system being modeled as a "black box."
Chapter 9 introduces powerful techniques to analyzing the performance of intranets and Web sites. The chapter considers the components that make up a Web-based system. Component-level models account for the different resources of the system and the way they are used by different requests. The solution techniques for component-level models are based on Queuing Networks (QN). Solution methods for both open and closed QNs with multiple classes of customers are presented in this chapter. The chapter also shows how system- and component-level models can be combined to address more complex modeling situations.
Chapter 10 shows how the performance models discussed in previous chapters can be specialized to handle specific Web performance issues. The chapter also shows how certain special features common in Web workloads, such as burstiness and heavy-tail distributions of file sizes, can be accounted for in performance models for the Web.
Chapter 11 introduces availability, reliability and performability as important metrics that define the quality of service provided by Web-based applications. A quantitative framework, based on the state transition diagram, is developed to model availability, reliability, performability, software aging and rejuvenation.
Chapter 12 shows how to apply existing forecasting methods and techniques to predict the future workload for Web services. Forecasting techniques includes linear and non linear regression models, moving averages, and exponential smoothing. A strategy and a methodology for workload forecasting is discussed here. It encompasses selection of the workload to be forecast, analysis of historical data and estimation of workload growth, selection of a forecasting technique, application of the forecasting technique to the historical data, and analysis and validation of forecast results.
Chapter 13 presents a framework for collecting performance data in Web environments. Next, it discusses the main issues in the process of measuring the performance of Web-based systems. The chapter does not focus on any specific product or manufacturer. Instead, it presents general procedures for transforming typical measurement data into input parameters. The procedures can be thought of as a set of major guidelines for obtaining input parameters for performance models.
Chapter 14 wraps up the book by emphasizing the approach and methods used to develop and solve analytical performance models of Web services. It also discusses properties that should be pursued for the design and implementation of large-scale information systems. For any service provider, whether financial services, merchants, or government services, it is necessary to guarantee the quality of service, which is represented by key issues such as trustworthiness and security, performance, and availability. The chapter discusses the importance of modeling to address these key issues. Appendix A contains a glossary of the important terms introduced in the book.
Appendix B provides a description of the Microsoft Excel workbooks that accompany this book and describes the C program provided to derive burstiness parameters for HTTP logs.
The Web site at www.cs.gmu.edu/~menasce/webservices/
will be used to keep the readers informed about new developments related to the book and to store the various Excel workbooks described in the book.
The authors' e-mail, postal addresses, and Web sites are:
menasce@cs.gmu.edu
www.cs.gmu.edu/faculty/menasce.html
virgilio@dcc.ufmg.br
www.dcc.ufmg.br/~virgilio