As an AIX system administrator or programmer, you know that performance tuning is critical to ensuring that your operating system meets the demands placed on today's computer systems and LAN operations. However, the methods of tuning have often been difficult to divine without expert assistance. In Accelerating AIX, Rudy Chukran shares AIX know-how, experience, and insight gained from spending more than ten years as one of IBM's tuning experts.
This comprehensive book provides key information for both system administrators and application programmers, with: full coverage of monitoring, diagnostic, and development tools; remedies for performance slowdowns; techniques for relieving LAN bottlenecks; and proven methodologies for isolating, analyzing, and solving performance problems.
A complete, one-stop reference, Accelerating AIX addresses topics such as:
Drawing on his years of practical experience with AIX, the author shows you "what to do when . . ." in a special chapter that discusses how to recognize and evaluate problems and plan and implement appropriate solutions using many of the tools and techniques presented.
List of Figures.
List of Tables.
1. Introduction to Tuning Concepts.
Why Consider Tuning?
What Can I Tune?
What Are Your Performance Objectives?
Roles of the Performance Analyst.
General AIX Design Goals.
Virtual Memory Overview.
Late Page Space Allocation.
Layers for File I/O.
Sequential Read-Ahead and Write-Behind.
Logical Volume Manager.
CPU Scheduling Overview.
Facts of Life about Disk Hardware.
Vmstat: CPU and Virtual Memory Utilization.
Iostat: Disk I/O Utilization.
Sar: System Activity Report.
Ps: Process Status.
Tprof: Trace Profiler.
Filemon: File I/O Activity.
Svmon: Virtual Memory Report.
Rmss: Reduced Memory Simulator.
PDT: Performance Diagnostic Tool.
Scheduling Tasks at Other Times.
Finding Runaway Processes.
Tuning Scheduler Algorithm.
Adding More Real Memory.
Tuning File Memory Allocation.
Tuning Memory Overcommitment Algorithm.
Page Space Configuration.
Isolating Memory Leaks.
Importance of Data Placement on a Disk.
Determining Your Disk Configuration.
Specifying Where Your Data Goes.
SCSI Bus Speed Limitations.
Miscellaneous Tuning Parameters.
Network Monitoring Tools.
Network Tuning Remedies.
TCP/IP Memory Options.
TCP/IP Setup Errors.
XL Compiler Flags Common to All Languages.
XL FORTRAN Unique Flags.
XL C Unique Flags.
Dynamically Linked Objects.
Statically Linked Objects.
Trace Postprocessing Tools.
Read and Write.
Mapped File I/O.
Network Socket Options.
Dynamic Module Loading.
Hardware Type Inquiry.
Matrix Access Optimization.
Lock Access Optimization.
What Is the Problem--Really?
Where Do I Start?
Where Do I Go Next?
Take Some Remedy.
When to Stop.
Summary of Tools.
Sources for AIX Software.
Sources for Free Software for AIX on the Net.
Performance Toolbox Metrics.
Sieve of Erosthenes--sieve.c.
This book is intended for computer professionals who need to understand and control the factors that affect performance of their AIX compatible system. I learned the techniques and system background as a result of helping customers solve performance problems on their own systems for their own environments. The material in this book is an outgrowth of AIX performance-tuning seminars presented at conferences and customer sites. You will likewise learn methods of performance problem solving: which commands are easiest, which are most informative, which data is important and which is not, when you should stop tuning, and when you don't have sufficient data even to tackle the problem.Who Should Buy This Book?
This is an intermediate book on AIX performance analysis for system administrators and programmers. AIX is a UNIX derivative. Previous experience with UNIX tasks such as editing files, manipulating files and directories, and shell programming is assumed. System administrators will find Chapters 1, 2, 3, 4, 5, and 8 most useful. Programmers will find Chapters 1, 2, 3, 6, 7, and 8 most useful. If you already have a firm basis in UNIX performance analysis, you can easily skip Chapter 1. Except for reading the material in Chapter 3, you can skip chapters and jump right to the topics that interest you.Chapter Summaries
Chapter 1 is a basic overview of the concepts of performance analysis. This chapter discusses a general methodology that applies to any computer system.
Chapter 2 is a brief tutorial of the design of the AIX operating system. Design concepts such as virtual memory management, filesystems, and scheduling are covered. Emphasis is on the parts of the AIX design that offer some degree of tuning.
Chapter 3 covers the more rudimentary performance monitoring tools and techniques that perform the most crucial part of performance problem isolation. These tools allow you to determine whether it's the system or the application program that needs tuning. Both programmers and administrators can benefit from Chapter 3.
Chapter 4 covers remedies involving CPU, disk I/O, and memory bottlenecks. The emphasis in this chapter is on remedies that a system administrator would make to the system configuration, such as disk configurations and virtual memory settings.
Chapter 5 covers remedies involving local area networking bottlenecks. The emphasis is on network settings for TCP/IP and NFS that a system administrator would perform.
Chapter 6 covers performance tools that apply primarily to application program tuning. Programming tools such as compilers, linkers, and profilers are discussed. The emphasis is on compiler flags and techniques for implementing shared libraries.
Chapter 7 covers AIX system call programming. The emphasis in this chapter is on programming interfaces for interprocess communications and shared memory.
Chapter 8 is a summary of the entire book. This is the chapter in which the commands and techniques are reviewed for applicability. This is the "what do I use when" chapter.Which Systems Are Covered?
AIX runs on several hardware platforms. IBM sells the RS/6000 line of products that use the PowerPC chip in their systems; Motorola sells the Power Stack line of systems; Bull sells Escala and Estrella; and Apple sells Network Server. All of these require the AIX version 4.1 or AIX Version 4.2 operating system. The techniques in this book apply to all of these systems and to both versions of AIX.
At the time of writing, AIX 4.2.1 was the most current version of the operating system. The material in this book works on AIX 4.1 and AIX 4.2 system levels as well.
AIX Version 3.2 is not specifically covered in this book; however, a great many of the techniques covered in this book also apply to AIX 3.2. Since AIX 3.2 is no longer serviced or sold, obtaining performance software for these systems is difficult, and the percentage of systems running AIX 3.2 should diminish to obscurity by the time you read this book.Acknowledgments
Thanks to the reviewers of early drafts: Matt Accapadi, IBM; C. Schauble; Wayne Huang; Lee Cheng; Robert Boyce, American Express, TRS; James W. DeRoest, Computing & Communications, University of Washington; Jim Fox, University of Washington; and Bill Mansfield, CIBER. Also thanks go to Dave Robertson, my immediate manager at IBM, who gave me permission to use IBM equipment to test programs and generate figures.
Special thanks go to my wife, Bobbi, an experienced author herself, who was the major source of inspiration for creating this book. She offered invaluable advice on how to cure writer's block when I was stuck on Chapter 1. Her insistent reminders of "Don't you have a book to write?" when I wasn't actually writing kept me chugging down the track to the first draft. And she often did the dishes out of turn so that I could work on the book.