Systems Performance: Enterprise and the CloudThe Complete Guide to Optimizing Systems Performance Written by the winner of the 2013 LISA Award for Outstanding Achievement in System Administration Large-scale enterprise, cloud, and virtualized computing systems have introduced serious performance challenges. Now, internationally renowned performance expert Brendan Gregg has brought together proven methodologies, tools, and metrics for analyzing and tuning even the most complex environments. Systems Performance: Enterprise and the Cloud focuses on Linux(R) and Unix(R) performance, while illuminating performance issues that are relevant to all operating systems. You'll gain deep insight into how systems work and perform, and learn methodologies for analyzing and improving system and application performance. Gregg presents examples from bare-metal systems and virtualized cloud tenants running Linux-based Ubuntu(R), Fedora(R), CentOS, and the illumos-based Joyent(R) SmartOS(TM) and OmniTI OmniOS(R). He systematically covers modern systems performance, including the "traditional" analysis of CPUs, memory, disks, and networks, and new areas including cloud computing and dynamic tracing. This book also helps you identify and fix the "unknown unknowns" of complex performance: bottlenecks that emerge from elements and interactions you were not aware of. The text concludes with a detailed case study, showing how a real cloud customer issue was analyzed from start to finish. Coverage includes - Modern performance analysis and tuning: terminology, concepts, models, methods, and techniques - Dynamic tracing techniques and tools, including examples of DTrace, SystemTap, and perf - Kernel internals: uncovering what the OS is doing - Using system observability tools, interfaces, and frameworks - Understanding and monitoring application performance - Optimizing CPUs: processors, cores, hardware threads, caches, interconnects, and kernel scheduling - Memory optimization: virtual memory, paging, swapping, memory architectures, busses, address spaces, and allocators - File system I/O, including caching - Storage devices/controllers, disk I/O workloads, RAID, and kernel I/O - Network-related performance issues: protocols, sockets, interfaces, and physical connections - Performance implications of OS and hardware-based virtualization, and new issues encountered with cloud computing - Benchmarking: getting accurate results and avoiding common mistakes This guide is indispensable for anyone who operates enterprise or cloud environments: system, network, database, and web admins; developers; and other professionals. For students and others new to optimization, it also provides exercises reflecting Gregg's extensive instructional experience. |
Contents
Chapter 1 Introduction | 1 |
Chapter 2 Methodology | 15 |
Chapter 3 Operating Systems | 85 |
Chapter 4 Observability Tools | 115 |
Chapter 5 Applications | 153 |
Chapter 6 CPUs | 189 |
Chapter 7 Memory | 265 |
Chapter 8 File Systems | 323 |
Chapter 13 Case Study | 617 |
USE Method Linux | 637 |
USE Method Solaris | 643 |
sar Summary | 649 |
DTrace OneLiners | 651 |
Appendix E DTrace to SystemTap | 665 |
Solutions to Selected Exercises | 675 |
Systems Performance Whos Who | 679 |
Chapter 9 Disks | 395 |
Chapter 10 Network | 473 |
Chapter 11 Cloud Computing | 545 |
Chapter 12 Benchmarking | 587 |
Glossary | 683 |
| 689 | |
| 697 | |
Other editions - View all
Common terms and phrases
allocator application architecture benchmark bytes capacity planning Chapter cloud computing command configuration count CPU caches CPU usage database default described disk devices disk I/O dynamic tracing errors example execname execution ext4 Figure file system file system cache guest hardware host hypervisor I/O latency improve inode IOPS Joyent Kbytes kernel kstat latency Linux main memory malloc mance Methodology metrics micro-benchmark multiple mutex network interface observability tools observational analysis on-CPU operating system options output overhead packets performance analysis performance issues priority probe process name processor profiling queue requests resource controls saturation scalability scheduler scripts Section server shows slab allocator socket Solaris Solaris-based systems stack trace statistics swap synchronous syscall system calls system-wide systems performance SystemTap thread throughput timestamp Tracepoint event tunable tuning Unix user-level utilization virtual memory vmstat waiting write



