Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 401 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
401
Dung lượng
6,97 MB
Nội dung
www.it-ebooks.info www.it-ebooks.info SoftwarePerformanceandScalability www.it-ebooks.info Press Operating Committee Chair Linda Shafer former Director, Software Quality Institute The University of Texas at Austin Editor-in-Chief Alan Clements Professor University of Teesside Board Members David Anderson, Principal Lecturer, University of Portsmouth Mark J. Christensen, Independent Consultant James Conrad, Associate Professor, UNC Charlotte Michael G. Hinchey, Director, Software Engineering Laboratory, NASA Goddard Space Flight Center Phillip Laplante, Associate Professor, Software Engineering, Penn State University Richard Thayer, Professor Emeritus, California State University, Sacramento Donald F. Shafer, Chief Technology Officer, Athens Group, Inc. Janet Wilson, Product Manager, CS Press IEEE Computer Society Publications The world-renowned IEEE Computer Society publishes, promotes, and distributes a wide variety of authoritative computer science and engineering texts. These books are available from most retail outlets. Visit the CS Store at http://computer.org/cspress for a list of products. IEEE Computer Society / Wiley Partnership The IEEE Computer Society and Wiley partnership allows the CS Press authored book program to produce a number of exciting new titles in areas of computer science, computing and networking with a special focus on software engineering. IEEE Computer Society members continue to receive a 15% discount on these titles when purchased through Wiley or at wiley.com/ieeecs. To submit questions about the program or send proposals e-mail j.wilson@computer.org. Telephone þ1-714-821-8380. Additional information regarding the Computer Society authored book program can also be accessed from our web site at http://computer.org/cspress. www.it-ebooks.info SoftwarePerformanceandScalability A Quantitative Approach Henry H. Liu www.it-ebooks.info Copyright # 2009 by IEEE Computer Society. All rights reserved. Published by John Wiley & Sons, Inc., Hoboken, New Jersey Published simultaneously in Canada No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written per- mission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470, or on the web at www.copyright.com. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permission. Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages. For general information on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002. Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic formats. For more information about Wiley products, visit our web site at www.wiley.com. Library of Congress Cataloging-in-Publication Data: Liu, Henry H. Softwareperformanceandscalability : a quantitative approach/Henry H. Liu p. cm. Includes bibliographical references and index. ISBN 978-0-470-46253-9 (cloth) 1. Computer software—Development. 2. System design. I. Title. QA76.76.D47L577 2009 005.1—dc22 2009005654 Printed in the United States of America 10987654321 www.it-ebooks.info To my family www.it-ebooks.info www.it-ebooks.info Contents PREFACE xv ACKNOWLEDGMENTS xxi Introduction 1 Performance versus Scalability / 1 PART 1 THE BASICS 3 1. Hardware Platform 5 1.1 Turing Machine / 6 1.2 von Neumann Machine / 7 1.3 Zuse Machine / 8 1.4 Intel Machine / 9 1.4.1 History of Intel’s Chips / 9 1.4.2 Hyperthreading / 9 1.4.3 Intel’s Multicore Microarchitecture / 13 1.4.4 Challenges for System Monitoring Tools / 17 1.5 Sun Machine / 17 1.6 System Under Test / 18 1.6.1 Processors / 18 1.6.2 Motherboard / 19 1.6.3 Chipset / 20 vii www.it-ebooks.info 1.6.4 Storage / 22 1.6.5 RAID / 24 1.6.6 Networking / 27 1.6.7 Operating System / 29 1.7 Odds Against Turing / 30 1.7.1 Memory Leaks / 30 1.7.2 SLAs / 35 1.8 Sizing Hardware / 35 1.9 Summary / 37 Recommended Reading / 37 Exercises / 38 2. Software Platform 41 2.1 Software Stack / 42 2.2 APIs / 44 2.2.1 Windows APIs / 45 2.2.2 Java APIs / 45 2.2.3 Google APIs / 46 2.3 Multithreading / 47 2.4 Categorizing Software / 53 2.4.1 Systems Software / 53 2.4.2 Application Software / 54 2.4.3 Middleware Software / 55 2.5 Enterprise Computing / 55 2.5.1 What Is Enterprise Software? / 55 2.5.2 Enterprise Software Architecture / 57 2.5.3 Monolithic Architecture / 57 2.5.4 Client/Server Architecture / 58 2.5.5 Three-Tier Architecture / 59 2.5.6 N-Tier Architecture / 60 2.5.7 Software Componentry / 61 2.5.8 Service-Oriented Architecture / 61 2.6 Summary / 63 Recommended Reading / 64 Exercises / 64 3. T esting SoftwarePerformanceandScalability 65 3.1 Scope of SoftwarePerformanceandScalability Testing / 67 3.1.1 Performance Regression Testing / 68 3.1.2 Performance Optimization and Tuning Testing / 70 3.1.3 Performance Benchmarking Testing / 75 viii CONTENTS www.it-ebooks.info [...]... Applied to Optimizing and Tuning SoftwarePerformanceandScalability 205 Analyzing SoftwarePerformanceandScalability / 207 6.1.1 Characterizing PerformanceandScalability Problems / 207 6.1.2 Isolating PerformanceandScalability Factors / 208 6.1.3 Applying Optimization and Tuning / 215 6.2 Effective Optimization and Tuning Techniques / 220 6.2.1 Wait Events and Service Demands / 221 6.2.2 Array... IS ORGANIZED Software Performanceand Scalability: A Quantitative Approach is the first book to focus on softwareperformanceandscalability in a quantitative approach It introduces the basic concepts and principles behind the physics of software performanceandscalability from a practical point of view It demonstrates how the performanceandscalability of your products can be optimized and tuned using... predetermine the performanceandscalability of a software product It concludes with how to test quantitatively the performanceandscalability of a software product Through quantitative measurements, you can determine not only which hardware andsoftware platforms can deliver the required performanceandscalability for your products, but also how to optimize and tune the performanceandscalability of... that performanceandscalability issues are dealt with properly, as it may easily exclude software developers from taking performanceandscalability concerns into account in the first place It’s a reactive and less efficient approach to let the performanceandscalability test engineers find the performanceandscalability defects and then fix them with the developers It’s a lot more costly to fix software. .. Anonymous PERFORMANCE VERSUS SCALABILITY Before we start, I think I owe you an explanation about what the difference is between performanceandscalability for a software system In a word, performanceandscalability are about the scalable performance for a software system You might find different explanations about performance versus scalability from other sources In my opinion, performanceand scalability. .. them get up to speed quickly in helping resolve software performanceandscalability issues they discover through their tests Softwareperformance managers and development managers who are interested in understanding software performanceandscalability problems at a high level so that they can lead more effectively in getting various performanceandscalability defects resolved in time xviii † PREFACE... servers, and any other types of thirdparty components, then the performanceandscalability of such middleware systems can directly affect the performanceandscalability of the application system Understanding the performanceandscalability of a software system qualitatively should begin with a solid understanding of all the performance bits built into the modern computer systems as well as all the performance. .. costly to fix software performanceandscalability defects without having the developers take care of them in the first place That’s the motivation behind this book, which promotes a proactive approach of letting the software developers build the performanceandscalability into the product and letting the performanceandscalability test engineers concentrate on the performanceandscalability verification... spirit, which gives me the power and energy for pursuing every challenging softwareperformanceandscalability problem quantitatively, and thus this book SoftwarePerformanceand Scalability: A Quantitative Approach With my career as a softwareperformance professional, I’d like to especially thank Pat Crain, who introduced me to applying queuing theory to solving softwareperformance challenges Pat also... probability and statistics Many books available today on the subject of softwareperformanceandscalability do not provide the same level of quantitativeness, which is one of the most distinctive merits of this book In my opinion, quantitativeness is a requirement for dealing with softwareperformanceandscalability issues, as performanceandscalability are quantitatively measurable attributes of a software . Scalability 205 6.1 Analyzing Software Performance and Scalability / 207 6.1.1 Characterizing Performance and Scalability Problems / 207 6.1.2 Isolating Performance and Scalability Factors / 208 6.1.3. of letting the software developers build the performance and scalability into the product and letting the performance and scalability test engineers concentrate on the perform- ance and scalability. knowledge and experience in software performance and scalability, fewer defects will slip out of their hands into the builds they deliver. † Software engineers who conduct the performance and scalability