Chapter 1. Optimization and tuning on IBM POWER7 and IBM POWER7+ 3
Most of the remaining material in this guide is technical information that was developed by
domain experts at IBM:
We provide hardware information about the POWER7 and POWER7+ processors (see
Chapter 2, “The POWER7 processor” on page 21), highlighting the important features
from a performance perspective and laying out the basic information that is drawn upon by
the material that follows.
Next, we describe the system software stack, examining the IBM POWER Hypervisor™
(see Chapter 3, “The POWER Hypervisor” on page 55), the AIX and Linux operating
systems and system libraries (see Chapter 4, “AIX” on page 67 and Chapter 5, “Linux” on
page 97), and the compilers (see Chapter 6, “Compilers and optimization tools for C, C++,
and Fortran” on page 107). Java (see Chapter 7, “Java” on page 125) also receives
extensive coverage.
In Chapter 4, “AIX” on page 67, we examine a set of operating system-specific
optimization opportunities. Then, we highlight some of the areas in which AIX uses some
new features of the POWER7+ processor. Next, we provide detailed coverage about the
new Dynamic System Optimizer (DSO) feature, building on previous work on the Active
System Optimizer (ASO). ASO or DSO can be enabled to autonomously use some of the
hardware- or operating system-specific optimizations that are described in this guide. The
chapter concludes with a short description of AIX preferred practices regarding system
setup and maintenance.
In Chapter 5, “Linux” on page 97, we describe the two primary Linux operating systems
that are used on POWER7: Red Hat Enterprise Linux (RHEL) for POWER and SUSE
Linux Enterprise Server (SLES) for POWER. The minimum supported levels of Linux,
including service pack (SP) levels, are SLES11/SP1 and RHEL6/GA, which provide full
support and usage of POWER7 technologies and systems. Linux is based on community
efforts that are focused not only on the Linux kernel, but also all of the complementary
packages, tools, toolchains, and GNU Compiler Collection (GCC) compilers that are
needed to effectively use POWER7. IBM provides the expertise for Power Systems by
developing, optimizing, and pushing open source changes to the Linux communities.
Finally, we cover important information about IBM middleware, DB2 (see Chapter 8, “DB2”
on page 137) and IBM WebSphere Application Server (see Chapter 9, “WebSphere
Application Server” on page 147). Various applications use middleware, and it is critical
that the middleware is correctly tuned and performs well. The middleware chapters cover
how these products are optimized for POWER7, including select preferred practices for
tuning and deploying these products.
Three appendixes are included:
Appendix A, “Analyzing malloc usage under AIX” on page 151 explains some simple
techniques for analyzing how an application is using the system memory allocation
routines (malloc and related functions in the C library). malloc is often a bottleneck for
application performance, especially under AIX. AIX has an extensive set of optimized
malloc implementations, and it is easy to switch between them without rebuilding or
changing an application. Knowing how an application uses malloc is key to choosing the
best memory allocation alternatives that AIX offers. Even Java applications often make
extensive use of malloc, either in Java Native Interface (JNI) code that is part of the
application itself or in the Java class libraries, or in binary code that is part of the software
development kit (SDK).
Appendix B, “Performance tooling and empirical performance analysis” on page 155
describes some of the important performance tools that are available on the IBM Power
Architecture under AIX or Linux, and strategies for using them in empirical performance
analysis efforts.