|
|
|
ix | (6) |
|
|
|
xv | (2) |
| Preface |
|
xvii | |
|
Chapter 1 Introduction to Tuning Concepts |
|
|
1 | (6) |
|
|
|
1 | (1) |
|
|
|
2 | (1) |
|
1.3 What Are Your Performance Objectives? |
|
|
3 | (1) |
|
|
|
4 | (1) |
|
1.5 Roles of the Performance Analyst |
|
|
4 | (3) |
|
Chapter 2 AIX System Design |
|
|
7 | (24) |
|
2.1 General AIX Design Goals |
|
|
8 | (1) |
|
|
|
9 | (2) |
|
2.3 Virtual Memory Overview |
|
|
11 | (5) |
|
|
|
11 | (1) |
|
2.3.2 Late Page Space Allocation |
|
|
12 | (2) |
|
|
|
14 | (2) |
|
|
|
16 | (8) |
|
2.4.1 Layers for File I/O |
|
|
16 | (1) |
|
|
|
16 | (4) |
|
2.4.3 Sequential Read-Ahead and Write-Behind |
|
|
20 | (1) |
|
2.4.4 Logical Volume Manager |
|
|
20 | (4) |
|
2.5 CPU Scheduling Overview |
|
|
24 | (3) |
|
|
|
24 | (2) |
|
2.5.2 Memory Overcommitment |
|
|
26 | (1) |
|
2.6 Facts of Life about Disk Hardware |
|
|
27 | (1) |
|
|
|
28 | (3) |
|
Chapter 3 Tools for the System Administrator |
|
|
31 | (30) |
|
3.1 Vmstat: CPU and Virtual Memory Utilization |
|
|
32 | (3) |
|
3.2 Iostat: Disk I/O Utilization |
|
|
35 | (2) |
|
3.3 Sar: System Activity Report |
|
|
37 | (3) |
|
|
|
40 | (1) |
|
|
|
41 | (2) |
|
3.6 Tprof: Trace Profiler |
|
|
43 | (1) |
|
3.7 Filemon: File I/O Activity |
|
|
44 | (6) |
|
3.8 Svmon: Virtual Memory Report |
|
|
50 | (2) |
|
3.9 Rmss: Reduced Memory Simulator |
|
|
52 | (1) |
|
3.10 PDT: Performance Diagnostic Tool |
|
|
53 | (2) |
|
|
|
55 | (5) |
|
|
|
60 | (1) |
|
|
|
61 | (40) |
|
|
|
62 | (8) |
|
|
|
62 | (1) |
|
|
|
63 | (1) |
|
4.1.3 Scheduling Tasks at Other Times |
|
|
63 | (1) |
|
4.1.4 Finding Runaway Processes |
|
|
64 | (1) |
|
4.1.5 Tuning Scheduler Algorithm |
|
|
64 | (6) |
|
4.2 Memory-Bound Remedies |
|
|
70 | (6) |
|
4.2.1 Adding More Real Memory |
|
|
71 | (1) |
|
4.2.2 Tuning File Memory Allocation |
|
|
71 | (2) |
|
4.2.3 Tuning Memory Overcommitment Algorithm |
|
|
73 | (1) |
|
4.2.4 Page Space Configuration |
|
|
74 | (1) |
|
4.2.5 Isolating Memory Leaks |
|
|
75 | (1) |
|
|
|
76 | (24) |
|
4.3.1 Importance of Data Placement on a Disk |
|
|
77 | (1) |
|
4.3.2 Examples of Data Placement |
|
|
78 | (6) |
|
4.3.3 Determining Your Disk Configuration |
|
|
84 | (2) |
|
4.3.4 Specifying Where Your Data Goes |
|
|
86 | (4) |
|
|
|
90 | (7) |
|
4.3.6 SCSI Bus Speed Limitations |
|
|
97 | (1) |
|
4.3.7 Miscellaneous Tuning Parameters |
|
|
98 | (2) |
|
|
|
100 | (1) |
|
Chapter 5 Local Area Network Tuning |
|
|
101 | (26) |
|
5.1 Network Monitoring Tools |
|
|
102 | (7) |
|
|
|
102 | (3) |
|
|
|
105 | (3) |
|
|
|
108 | (1) |
|
5.2 Network Tuning Remedies |
|
|
109 | (15) |
|
|
|
109 | (1) |
|
5.2.2 TCP/IP Memory Options |
|
|
110 | (4) |
|
|
|
114 | (3) |
|
5.2.4 TCP/IP Setup Errors |
|
|
117 | (1) |
|
|
|
117 | (7) |
|
|
|
124 | (3) |
|
Chapter 6 Programming Tools |
|
|
127 | (38) |
|
|
|
127 | (10) |
|
6.1.1 XL Compiler Flags Common to All Languages |
|
|
127 | (9) |
|
6.1.2 XL FORTRAN Unique Flags |
|
|
136 | (1) |
|
|
|
137 | (1) |
|
|
|
137 | (9) |
|
6.2.1 Dynamically Linked Objects |
|
|
139 | (5) |
|
6.2.2 Statically Linked Objects |
|
|
144 | (2) |
|
|
|
146 | (10) |
|
|
|
146 | (5) |
|
|
|
151 | (2) |
|
|
|
153 | (3) |
|
|
|
156 | (7) |
|
|
|
156 | (2) |
|
6.4.2 Trace Postprocessing Tools |
|
|
158 | (2) |
|
|
|
160 | (3) |
|
|
|
163 | (2) |
|
Chapter 7 Remedies for Programmers |
|
|
165 | (26) |
|
|
|
165 | (15) |
|
|
|
165 | (1) |
|
7.1.2 Interprocess Communication |
|
|
166 | (9) |
|
|
|
175 | (1) |
|
7.1.4 Network Socket Options |
|
|
176 | (1) |
|
7.1.5 Dynamic Module Loading |
|
|
177 | (3) |
|
7.2 Hardware Type Inquiry |
|
|
180 | (4) |
|
7.3 Hardware Optimization |
|
|
184 | (6) |
|
7.3.1 Matrix Access Optimization |
|
|
184 | (3) |
|
7.3.2 Lock Access Optimization |
|
|
187 | (1) |
|
|
|
188 | (2) |
|
|
|
190 | (1) |
|
Chapter 8 Putting It All Together |
|
|
191 | (6) |
|
8.1 What Is the Problem--Really? |
|
|
191 | (1) |
|
|
|
192 | (1) |
|
|
|
193 | (1) |
|
|
|
193 | (1) |
|
|
|
194 | (1) |
|
|
|
194 | (3) |
| Appendix |
|
197 | (10) |
| A.1 References |
|
197 | (1) |
| A.1.1 IBM Publications |
|
197 | (1) |
| A.1.2 External Publications |
|
197 | (1) |
| A.2 Sources for AIX Software |
|
198 | (2) |
| A.2.1 IBM Sources |
|
198 | (2) |
| A.3 Sources for Free Software for AIX on the Net |
|
200 | (1) |
| A.4 Performance Toolbox Metrics |
|
200 | (3) |
| A.5 Source Examples |
|
203 | (4) |
| A.5.1 Sieve of Erosthenes--sieve.c |
|
203 | (4) |
| Index |
|
207 | |