A01TX1106989.fm Page 55 Monday, March 21, 2005 10:26 AM PUBLISHED BY Microsoft Press A Division of Microsoft Corporation One Microsoft Way Redmond, Washington 98052-6399 Copyright © 2005 by Microsoft Corporation All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher. Library of Congress Congress Control Number 2005921847 Printed and bound in the United States of America. 1 2 3 4 5 6 7 8 9 QWT 8 7 6 5 4 3 Distributed in Canada by H.B. Fenn and Company Ltd. A CIP catalogue record for this book is available from the British Library. A CIP catalogue record for this book is available from the British Library. Microsoft Press books are available through booksellers and distributors worldwide. For further information about international editions, contact your local Microsoft Corporation office or contact Microsoft Press Inter- national directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/mspress. Send comments to [email protected]. Microsoft, Active Directory, ActiveX, Microsoft Press, MSDN, MSN, Visual Basic, Win32, Windows, Win- dows Media, Windows NT, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners. The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. This book expresses the author’s views and opinions. The information contained in this book is provided with- out any express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers, or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book. Acquisitions Editor: Martin DelRe Project Editor: Karen Szall Copy Editor: Victoria Thulman Technical Editor: Mitch Tulloch Indexer: Tony Ross and Lee Ross SubAsy Part No. X11-06988 Body Part No. X11-06989 Contents at a Glance 1 Performance Monitoring Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Performance Monitoring Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 3 Measuring Server Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 4 Performance Monitoring Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . .313 5 Performance Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401 6 Advanced Performance Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537 Contents About the Author. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Document Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Resource Kit Companion CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xvi 1 Performance Monitoring Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Introducing Performance Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Learning About Performance Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Proactive Performance Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Diagnosing Performance Problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Scalability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Performance Monitoring Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12 Definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13 Bottlenecks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22 Utilization Law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28 Queue Time and Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29 Little’s Law. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33 Conclusions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36 System Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Using the Performance Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37 Operating Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38 Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43 Memory and Paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .61 The I/O Subsystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89 Network Interfaces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .98 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123 2 Performance Monitoring Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125 Summary of Monitoring Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 Performance Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126 What do you think of this book? Microsoft is interested in hearing your feedback about this publication so we can We want to hear from you! continually improve our books and learning resources for you. To participate in a brief online survey, please visit: www.microsoft.com/learning/booksurvey/ v vi Contents Event Traces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Load Generating and Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Administrative Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Required Security for Tool Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 Performance Monitoring Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Performance Objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Viewing a Chart in Real Time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Changing the Sampling Interval. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Creating a Custom Monitoring Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 147 Saving Real-Time Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Customizing How Data Is Viewed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 Tips for Working with System Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 Task Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 Working with Task Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Monitoring Applications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Monitoring Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Monitoring Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Monitoring the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Monitoring Users. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 Automated Performance Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Performance Logs and Alerts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Counter Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Tips for Working with Performance Logs and Alerts. . . . . . . . . . . . . . . . . . . . 178 Creating Performance Logs Using Logman. . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Managing Performance Logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Using the Relog Tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Using Typeperf Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Windows Performance Monitoring Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Performance Library DLLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Performance Counter Text String Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Performance Data Helper Processing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 Disable Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Remote Monitoring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Event Tracing for Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Event Tracing Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 Contents vii Using Log Manager to Create Trace Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217 Event Trace Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .224 Alerts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .225 Configuring Alerts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226 Configuring Alert Notification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 Windows System Resource Manager. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233 Network Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233 3 Measuring Server Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235 Using Performance Measurements Effectively. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237 Identifying Bottlenecks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237 Management by Exception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238 Key Performance Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 System and Application Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241 Processor Utilization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242 Monitoring Memory and Paging Rates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256 Monitoring Disk Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279 Managing Network Traffic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .292 Maintaining Server Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .297 Terminal Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310 4 Performance Monitoring Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . .313 Understanding Which Counters to Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Background Performance Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Management Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315 Capacity Planning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Daily Server Monitoring Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316 Daily Counter Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317 Using Alerts Effectively . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330 Daily Management Reporting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338 Historical Data for Capacity Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .346 Automated Counter Log Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354 Using a SQL Server Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .365 Using the System Monitor Console with SQL Server . . . . . . . . . . . . . . . . . . . .366 How to Configure System Monitor to Log to SQL Server . . . . . . . . . . . . . . . .367 Counter Log Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369 Querying the SQL Performance Database . . . . . . . . . . . . . . . . . . . . . . . . . . . .373 viii Contents Capacity Planning and Trending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 Organizing Data for Capacity Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Forecasting Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 Counter Log Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Logging Local Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Monitoring Remote Servers in Real Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 Troubleshooting Counter Collection Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 Missing Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 Restoring Corrupt Performance Counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 5 Performance Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401 Bottleneck Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 Baseline Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 Current Performance Levels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 Resource Utilization and Queue Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 Decomposition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Analysis Procedures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Understanding the Problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Analyzing the Logged Performance Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 Analyzing Performance Data Interactively. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 Fine-Grained Analysis Tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 What to Check Next in the Enterprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 Processor Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 Resource Utilization and Queue Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 Decomposition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 Identifying a Runaway Process by Using Task Manager . . . . . . . . . . . . . . . . . 413 Identifying a Runaway Process by Using a Counter Log. . . . . . . . . . . . . . . . . 416 Memory Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 Counters to Evaluate When Troubleshooting Memory Performance. . . . . . 431 What to Check Next When Troubleshooting Memory Performance . . . . . . 434 Excessive Paging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 Virtual Memory Shortages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 32-Bit Virtual Memory Addressing Limits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456 Disk Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 Disk Performance Expectations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 Diagnosing Disk Performance Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 Contents ix Network Troubleshooting. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .509 Counters to Log When Troubleshooting Network Performance . . . . . . . . . .509 Counters to Evaluate When Troubleshooting Network Performance . . . . . .511 LAN Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .514 WAN Performance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .526 6 Advanced Performance Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .537 Processor Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .538 Instruction Execution Throughput. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .539 Time-Slicing Revisited . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .546 Multiprocessors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .548 Memory Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .608 Extended Virtual Addressing in 32-Bit Machines . . . . . . . . . . . . . . . . . . . . . . .608 64-Bit Virtual Memory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .621 Forecasting Memory Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .622 The System Monitor Automation Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .628 Adding the System Monitor ActiveX Control to a Web Page. . . . . . . . . . . . .629 Customizing the System Monitor ActiveX Control. . . . . . . . . . . . . . . . . . . . . .630 Configuring the System Monitor ActiveX Control Display Type. . . . . . . . . . .632 Configuring the System Monitor ActiveX Control Sampling Rate . . . . . . . . .634 Manually Retrieving Performance Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .634 Configuring the System Monitor ActiveX Control’s Appearance . . . . . . . . . .636 Configuring the System Monitor ActiveX Control Color Schemes. . . . . . . . .637 Configuring the System Monitor ActiveX Control Font Styles . . . . . . . . . . . .638 Adding Performance Counters to the System Monitor ActiveX Control. . . .639 Configuring System Monitor ActiveX Control Performance Counters. . . . . .640 Removing Performance Counters from the System Monitor ActiveX Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .641 Using Counter Paths to Track Individual Performance Counters . . . . . . . . . .642 Creating a Web Page for Monitoring Performance . . . . . . . . . . . . . . . . . . . . .643 Drag-and-Drop Support. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .645 Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649 Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 681 What do you think of this book? Microsoft is interested in hearing your feedback about this publication so we can We want to hear from you! continually improve our books and learning resources for you. To participate in a brief online survey, please visit: www.microsoft.com/learning/booksurvey/