“As practical as a Swiss Army knife for a power-hungry SysAdmin. For all the Sun gurus, veterans and newbies: This is for you. As a must-have in one's library, it'll be one of your most worn out references in your serious IT career. It is practical and very illustrative in its approach to solving sample problems.” —Dexter D. Laggui
Hailed in its first edition as an indispensable reference for system administrators, Sun Performance and Tuning has been revised and expanded to cover Solaris 2.6, the newest generation of SPARC hardware, and the latest Internet and Java server technologies.
Featuring a quick guide to get you started, as well as detailed reference information, this book is indispensable both for developers who need to design for speed and administrators who need to manage system and network performance.
Performance guru Adrian Cockcroft brings his unique expertise and structured approach to this complex and rapidly changing topic, providing detailed information on key aspects of performance management and system behavior that is not available anywhere else. Rich Pettit, author of the SE performance toolkit, describes the performance interfaces in Solaris and how to use this freely available toolkit to build your own customized performance-monitoring tools.
Key topics covered include:
To get up to speed quickly on critical performance issues, this is the one book any Sun administrator, integrator or developer needs.
Click here for a sample chapter for this book: 0130952494.pdf
1. Quick Tips and Recipes.
Quick Reference for Common Tuning Tips. Cold Start Procedure. Configuration and Tuning Recipes.
What Is Performance Management? Performance Management Products. Thoughts on the Future.
The Workload. Configuration Changes. Measurement Types and Relationships. Collecting Measurements. Processing and Analyzing the Measurements. Further Reading.
Introduction to TCP. TCP Transfer Characteristics for Web Servers. Internet Web Server Sizing. Web Server Performance Management. Processing Collected Data. Real-World HTTP Rate Changes over Time. Proxy Web Caching Servers.
Java Overview and Terminology. Client/Server Comparisons. Emulating NC-Based Users. Sizing Tests and Results. Overall Sizing Estimates.
Java Tuning. When Does "64 Bits" Mean More Performance? Linker Options and Tuning. UltraSPARC Compiler Tuning.
Tools for Applications. The Effect of Underlying Filesystem Type. Customizing the Execution Environment. Databases and Configurable Applications. Basic Tuning Ideas.
Disk Workloads. Disk Configuration Trade-off. Disk Load Monitoring. Filesystem Tuning. Disk Specifications. IPI Disk Controllers. SCSI Disk Controllers.
New NFS Metrics. New Network Metrics. Virtual IP Addresses. Network Interface Types. Using NFS Effectively. The nfsstat Command. The netstat Command.
Monitoring Processors. Unix on Shared Memory Multiprocessors. Multiprocessor Hardware Configurations. CPU Caches.
SPARC Architecture and Implementation. Register Windows and Different SPARC CPUs. Identifying Different SPARC CPUs. SPARC CPU Cache Architectures. I/O Caches. Block Copy Support. Memory Management Unit Designs. Early SPARC System Architectures. SuperSPARC-Based Multiprocessor Hardware. Bus Architectures Overview. SuperSPARC XDBus Server Architecture. SuperSPARC Server Architectural Overview. UltraSPARC Interconnect Architectures. UltraSPARC System Implementations.
Cache Principles. File Access Caching with Local Disk.
Memory Usage and Sizing Tools. Understanding vmstat and sar Output. Virtual Memory Address Space Segments. The Life Cycle of a Typical Physical Memory Page. Free Memory-The Memory-Go-Round. Kernel Values, Tunables, and Defaults. Swap Space.
Kernel Tuning. Tunable Parameters. SunOS and Solaris Release Overview. Solaris 2.6 Performance Improvements. Parameters Derived frommaxusers. Filesystem Name and Attribute Caching. Measuring the Kernel. Setting Default Limits. Mapping Device Nicknames to Full Names in Solaris 2.
Standards and Implementations. Solaris 2 Native Metric Interfaces. The Traditional Kernel Memory Interface. The Solaris 2 "kstat" Interface. Network Protocol (MIB) Statistics via Streams. The Network Device Driver Interface. Process Data Sources. The TNF Kernel Trace Probes. The RPC Remote Statistics Daemon and perfmeter. System Configuration Information.
Installing and Using SE3.0. System Performance Monitoring with SE. Actions Explained for the Performance Rules. Look Out, There's a Guru About. Features of the SE Language. Example Program Descriptions.
Collection of Performance Data. Basic Structure. Operators and Expressions. Control Flow. Functions, Procedures, and Programming Notes. Structures. Language Classes. User-Defined Classes. Pitfalls. Tricks.
Tunable Kernel Parameters.
Internet Resources. Document Descriptions.
This book consists of everything I have learned over the years about performance and tuning. It includes a structured approach, opinions, heuristics, and references. It contains documentation of the behavior of systems, with recommendations that are often needed but that are rarely available. I cover all of the Solaris operating system releases up to Solaris 2.6, and major Sun products up to the beginning of 1998.
This second edition of Sun Performance and Tuning has doubled in size, and almost all the content is new. I have been writing a monthly performance question and answer column for SunWorld Online magazine at http://www.sun.com/sunworldonline, and many of those columns have been updated and incorporated into this book. You should read my column regularly to keep up to date with developments that postdate publication of this book.
During the three years since first publication, the Internet transitioned from a useful tool to a major part of the computer business, and the Java phenomenon arrived. This is both a subject for discussion-hence the new subtitle for this edition-and a resource for obtaining detailed and up-to-date information. I have also worked closely with Richard Pettit over the last few years to develop the SE Performance Toolkit, and this edition contains detailed documentation written by Richard on the toolkit, and the performance interfaces provided by Solaris. We decided not to include it with the book on a CD-ROM, as it is easy to download the latest release over the Internet. The SE3.0 release is available and my January 1998 SunWorld Online column is a FAQ for SE.
This book is aimed both at developers who want to design for performance and need a central reference to better understand Sun machines, and at system administrators who have a Sun machine running applications and want to understand and improve overall performance.
This book covers an incredibly complex and fast-changing topic. I have tried to organize it in a useful manner with the most important information up front in each chapter and many cross-references. A book like this can never truly be complete and finished, but it has to be frozen at some point so it can be published!
How This Book Is Organized
This book is intended to be read sequentially, as it tries to cover the most significant and most common performance problems first. You can use it as a reference work by following the many cross-references that link related topics.
Chapter 1 - Quick Tips and Recipes is for those of you who need results now and don't have time to read the whole book first.
Chapter 2 - Performance Management covers the methods and tools used to manage performance.
Chapter 3 - Performance Measurement to decide whether your efforts at tuning have made any difference to the system performance.
Chapter 4 - Internet Servers contains an introduction to TCP/IP and offers guidelines on tuning and sizing web servers and proxy caching web servers.
Chapter 5 - Java Application Servers contains a complete sizing guide for serving the new class of Network Computer client systems based on Java.
Chapter6 - Source Code Optimization is aimed primarily at developers and end users who have access to the source code of the application being tuned. It covers Java performance and 64 bit issues.
Chapter7 - Applications tells you how to find out what an off-the-shelf application is doing and discusses changes in the execution environment.
Chapter8 - Disks investigates the performance characteristics of disk subsystems and describes how to monitor and tune them.
Chapter 9 - Networks contains Sun-specific information on network hardware and performance issues.
Chapter10 - Processors looks at how to decide whether you have enough CPU power for your workload. The chapter also provides a high-level description of the interactions between multiprocessor machines and Unix.
Chapter11 - System Architectures looks at the way uniprocessor and multiprocessor SPARC systems are put together.
Chapter12 - Caches looks at how caches work in principle, with examples of hardware and kernel based caching mechanisms.
Chapter13 - RAM and Virtual Memory explains how the paging algorithm works and where memory flows to and from in the system.
Chapter 14 - Kernel Algorithms and Tuning provides an insight into the algorithms and tunable parameters of the Solaris 2 kernel.
Chapter 15 - Metric Collection Interfaces describes the interfaces to Solaris and how to code to them to get at performance information.
Chapter 16 - The SymbEL Example Tools documents the example tools that are provided with the SE performance toolkit.
Chapter 17 - The SymbEL Language contains the complete user manual and descriptions of how to use this freely available performance toolkit.
Appendix A - Tunables Quick Reference turns the advice given elsewhere into tunable values summarized in table form.
AppendixB - References contains a long list of sources of further information, with a description of what is of interest in each document.
I have tried to avoid duplicating the techniques and content covered by my colleague Brian Wong in his book Configuration and Capacity Planning for Solaris Servers, Sun Microsystems Press, 1997. There is some natural overlap, but it is best to treat the two books as a matched pair. Brian covers in great detail the techniques required to decide on an initial configuration and has far more information on system and storage architectures than I do.
During the summer of 1997, I presented a week long "Practical Performance Methods" class with Dr. Neil Gunther as part of the Stanford University Western Institute of Computer Science (WICS) summer seminar program. Neil's material is covered in his book, The Practical Performance Analyst, McGraw-Hill, 1998. Neil takes the most advanced techniques of performance analysis and modeling and relates them to real-world situations in a way that you can use directly to solve problems.