You are previewing Sun Performance and Tuning: Java™ and the Internet, Second Edition.
O'Reilly logo
Sun Performance and Tuning: Java™ and the Internet, Second Edition

Book Description


“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:

  • Performance Management and Measurement

  • TCP and Internet Server Tuning

  • JAVA Network Computer Server Sizing

  • SPARC System Architectures

  • Kernel Algorithms and Tuning

  • How to Build Your Own Performance Tools

  • Performance Rules and the virtual_adrian SE Tool

To get up to speed quickly on critical performance issues, this is the one book any Sun administrator, integrator or developer needs.

Table of Contents

  1. Copyright
  2. List of Figures
  3. List of Tables
  4. Acknowledgments
  5. Preface
  6. Quick Tips and Recipes
    1. Quick Reference for Common Tuning Tips
    2. Cold Start Procedure
    3. Configuration and Tuning Recipes
  7. Performance Management
    1. What Is Performance Management?
    2. Performance Management Products
    3. Thoughts on the Future
  8. Performance Measurement
    1. The Workload
    2. Configuration Changes
    3. Measurement Types and Relationships
    4. Collecting Measurements
    5. Processing and Analyzing the Measurements
    6. Further Reading
  9. Internet Servers
    1. Introduction to TCP
      1. Further Reading
    2. TCP Transfer Characteristics for Web Servers
    3. Internet Web Server Sizing
    4. Web Server Performance Management
    5. Real-World HTTP Rate Changes over Time
    6. Proxy Web Caching Servers
  10. Java Application Servers
    1. Java Overview and Terminology
    2. Client/Server Comparisons
    3. Emulating NC-Based Users
    4. Sizing Tests and Results
    5. Overall Sizing Estimates
  11. Source Code Optimization
    1. Java Tuning
    2. When Does “64 Bits” Mean More Performance?
    3. Linker Options and Tuning
    4. UltraSPARC Compiler Tuning
  12. Applications
    1. Tools for Applications
    2. The Effect of Underlying Filesystem Type
    3. Customizing the Execution Environment
    4. Databases and Configurable Applications
    5. Basic Tuning Ideas
  13. Disks
    1. Disk Workloads
    2. Disk Configuration Trade-off
    3. Disk Load Monitoring
    4. Filesystem Tuning
    5. Disk Specifications
    6. IPI Disk Controllers
    7. SCSI Disk Controllers
  14. Networks
    1. New NFS Metrics
    2. New Network Metrics
    3. Virtual IP Addresses
    4. Network Interface Types
    5. Using NFS Effectively
    6. The nfsstat Command
    7. The netstat Command
  15. Processors
    1. Monitoring Processors
    2. Unix on Shared Memory Multiprocessors
    3. Multiprocessor Hardware Configurations
    4. CPU Caches
  16. System Architectures
    1. SPARC Architecture and Implementation
    2. Register Windows and Different SPARC CPUs
    3. Identifying Different SPARC CPUs
    4. SPARC CPU Cache Architectures
    5. I/O Caches
    6. Block Copy Support
    7. Memory Management Unit Designs
    8. Early SPARC System Architectures
    9. SuperSPARC-Based Multiprocessor Hardware
    10. Bus Architectures Overview
    11. SuperSPARC XDBus Server Architecture
    12. SuperSPARC Server Architectural Overview
    13. UltraSPARC Interconnect Architectures
    14. UltraSPARC System Implementations
  17. Caches
    1. Cache Principles
    2. File Access Caching with Local Disk
    3. Networked File Access
  18. RAM and Virtual Memory
    1. Memory Usage and Sizing Tools
    2. Understanding vmstat and sar Output
    3. Virtual Memory Address Space Segments
    4. The Life Cycle of a Typical Physical Memory Page
    5. Free Memory—The Memory-Go-Round
    6. Kernel Values, Tunables, and Defaults
    7. Swap Space
  19. Kernel Algorithms and Tuning
    1. Kernel Tuning
    2. Tunable Parameters
    3. SunOS and Solaris Release Overview
    4. Solaris 2.6 Performance Improvements
    5. Parameters Derived from maxusers
    6. Filesystem Name and Attribute Caching
    7. Measuring the Kernel
    8. Setting Default Limits
    9. Mapping Device Nicknames to Full Names in Solaris 2
  20. Metric Collection Interfaces
    1. Standards and Implementations
    2. Solaris 2 Native Metric Interfaces
    3. The Traditional Kernel Memory Interface
    4. The Solaris 2 “kstat” Interface
    5. Network Protocol (MIB) Statistics via Streams
    6. The Network Device Driver Interface
    7. Process Data Sources
    8. The TNF Kernel Trace Probes
    9. The RPC Remote Statistics Daemon and perfmeter
    10. System Configuration Information
  21. The SymbEL Example Tools
    1. Installing and Using SE3.0
    2. System Performance Monitoring with SE
    3. Actions Explained for the Performance Rules
    4. Look Out, There’s a Guru About
    5. Features of the SE Language
    6. Example Program Descriptions
  22. The SymbEL Language
    1. Collection of Performance Data
    2. Basic Structure
    3. Operators and Expressions
    4. Control Flow
    5. Functions, Procedures, and Programming Notes
    6. Structures
    7. Language Classes
    8. User-Defined Classes
    9. Pitfalls
    10. Tricks
  23. Tunables Quick Reference
    1. Tunable Kernel Parameters
  24. References
    1. Internet Resources
    2. Document Descriptions