Guerrilla Capacity Planning: A Tactical Approach to Planning for Highly Scalable Applications and Services by Neil J. Gunther
$39.96
|
The Practical Performance Analyst by Neil J. Gunther
$45.95
|
The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling by R. K. Jain
$76.00
|
Computer Systems Performance Evaluation and Prediction by Paul Fortier
$66.90
|
Analyzing Computer Systems Performance: With Perl: PDQ by Neil J. Gunther
$55.96
|
Practical systems modeling: planning performance, availability, security, and more
Computing systems must meet increasingly strict Quality of Service (QoS) requirements for performance, availability, security, and maintainability. To achieve these goals, designers, analysts, and capacity planners need a far more thorough understanding of QoS issues, and the implications of their decisions. Now, three leading experts present a complete, application-driven framework for understanding and estimating performance. You'll learn exactly how to map real-life systems to accurate performance models, and use those models to make better decisions--both up front and throughout the entire system lifecycle. Coverage includes:
The accompanying Web site provides companion Excel workbooks that implement many of the book's algorithms and numerical examples.
Goal, Theme, and Approach
The idea of writing this book originated from our observation that some of the most fundamental concepts and methods related to performance modeling and analysis are largely unknown to most Information Technology (IT) practitioners. As a result, many IT systems are designed and built without sufficient consideration given to their non-functional requirements such as performance, availability, and reliability. More often than not, performance is an afterthought. Performance testing is done when a system is nearing completion. At that late stage, it may be necessary to conduct a major redesign to correct eventual performance problems. This approach is inefficient, expensive, time consuming, and professionally irresponsible.
A major goal of this book is to provide to those involved in designing and building computer systems a performance engineering framework to be applied throughout a computer system's life cycle. This framework is quantitative, rigorous, and based on the theory of queuing networks. Some of our readers may not be interested in the details behind the models. For that reason, we divided the book into two parts: the practice of performance engineering (Part I) and the theory of performance engineering (Part II).
Part I brings many examples and case studies supported by algorithms implemented in Visual Basic modules attached to the various MS Excel workbooks provided with the book. Five complete case studies are inspired in real-world problems: a database service sizing, a Web service capacity planning situation, a data center's cost and availability analysis, the sizing of an e-business service, and the performance engineering of a future help desk application. After reading Part I, the reader should be able to 1) identify the sources of potential performance problems of a computer system and 2) build and solve performance models to answer what-if questions regarding competing hardware and software alternatives. The models that you build can be solved with the tools provided with the book.
Part II presents the theory of performance engineering in an intuitive, example-driven manner. Before the algorithms and methods are formalized, the basic ideas are derived from first principles applied to examples. The readers of part II are exposed to the most important techniques for solving 1) Markov models, 2) open and closed multiclass queuing networks using exact and approximate methods, and 3) non-product form queuing networks that represent software contention, blocking, high service time variability, priority scheduling, and fork and join systems.
Throughout Part I, references to specific techniques and methods of Part II provide a nice integration between the two components of this text.
Who Should Read This Book
Information technology professionals must ensure that the systems 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. Performance engineers, system administrators, software engineers, 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 also be used as a textbook for senior undergraduate and graduate courses in Computer Science and Computer Engineering. Exercises are provided at the end of all fifteen chapters. At the undergraduate level, the book is a good starting point to motivate students to learn the important implications and solutions to performance problems. An undergraduate course would concentrate on the first part of the book, i.e., the practice of performance engineering. 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.
Book Organization Part I: The Practice of Performance Engineering
Chapter 1 introduces several properties and metrics used to assess the quality of IT systems. Such metrics include response time, throughput, availability, reliability, security, scalability, and extensibility. The chapter also discusses the various phases of the life cycle of a computer system and shows the importance of addressing QoS issues early on in the design stage as opposed to after the system is deployed.
Chapter 2 presents the qualitative aspects of the performance engineering framework used in this book. The framework is based on queuing networks. The chapter uses examples of practical systems to introduce the various aspects of such queuing networks.
Chapter 3 focuses on the quantitative aspects of the queuing network framework and introduces the input parameters and performance metrics that can be obtained from these models. The notions of service times, arrival rates, service demands, utilization, queue lengths, response time, throughput, and waiting time are discussed. The chapter also introduces Operational Analysis, a set of basic quantitative relationships between performance quantities.
Chapter 4 presents a practical performance engineering methodology and describes its steps: specification of the system's performance goals, understanding the current environme