AIX > Tips & Techniques > Systems Management

ASO Can Quickly Boost Performance for Free

In 2011, IBM announced the Active System Optimizer (ASO) enhancement, available only on recent AIX levels for POWER7. The intent was to automatically apply best-practices performance tweaks to individual LPARs. Some of those tweaks include improvements to memory affinity—specifically associating targeted workloads to a specific core or set of cores and determining if memory can be relocated for higher affinity to cache and cores. An in-LPAR solution, ASO runs in the background of each LPAR it’s tuning. Keep in mind it doesn’t support active memory sharing or LPAR migration.

Getting Started

ASO is installed by default in a standard installation as part of the bos.aso fileset. Running lslpp –l | grep bos.aso shows the installed level set. The three ASO prerequisites are:

  1. AIX V6 TL08 or AIX V7
  2. The bos.aso fileset must be installed
  3. A POWER7/7+ server

To check the prerequisites:

# oslevel -s

This output shows the system is at: AIX V7 TL01 SP5.

# lslpp -l | grep aso
  bos.aso           COMMITTED  Active System Optimizer
  bos.aso           COMMITTED  Active System Optimizer
# lsconf | grep ^Processor
Processor Type: PowerPC_POWER7
Processor Implementation Mode: POWER 7
Processor Version: PV_7_Compat
Processor Clock Speed: 3000 MHz

This indicates the system can run ASO without problems.

To use ASO, first start the subsystem, using startsrc –s aso. You can then monitor and control it using the asoo command. The following commands can be very useful:

# lssrc -s aso
Subsystem         Group            PID          Status 
 aso                            	 5373980      active

The ASO subsystem is started and is running as PID 5373980.

# ps -ef | grep 5373980
    root  5373980  3604670   0   Jan 02      -  1:14 /usr/sbin/aso

The program being run is /usr/sbin/aso.

asoo –L			List the current and reboot values
# asoo -L
NAME                  CUR    DEF    BOOT   MIN    MAX     UNIT       TYPE 
aso_active             0      0      0      0      1      boolean      D

#asoo -p -o aso_active=1	Permanently turn ASO on (0 is disabled and is the default)

To check what’s happening in the ASO logs; their location is specified in /etc/syslog.conf and defaults to:

aso.notice /var/log/aso/aso.log      rotate size 128k time 7d    /var/log/aso/aso_process.log rotate size 1024k

The aso.log records the on/off status and the reasons ASO goes into hibernation. Similarly, aso_process.log records the same information as well as details of any actions ASO takes and the processes it modifies.

My test LPAR is on a Power 720 and has an entitlement of 0.5, VPs set to 2 and 4GB of memory. The lssrad command shows I only have one socket, so there’s little to tune with respect to affinity.

# lssrad -av
REF1   SRAD        MEM      CPU
          0    3699.81      0-11

Although the ASO subsystem is running, we still need to enable ASO as follows:

# asoo -o aso_active=1
Setting aso_active to 1

The log now shows:

Jun 16 17:32:46 testlpar aso:notice aso[5373980]: ASO enabled by tunable
Jun 16 17:32:46 testlpar aso:notice aso[5373980]: [HIB] Current number of system
 virtual cpus too low (2 cpus)
Jun 16 17:32:46 testlpar aso:notice aso[5373980]: [HIB] Increase system virtual cpus to
 at least 3 cpus to run ASO. Hibernating.

Jaqui Lynch is an independent consultant, focusing on enterprise architecture, performance and delivery on Power Systems with AIX and Linux.

comments powered by Disqus



2017 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
AIX News Sign Up Today! Past News Letters