Appendix C. POWER7 optimization and tuning with third-party applications
195
Implementing Sybase IQ to POWER7
Sybase IQ is a specialized data server that is optimized for
ad hoc
queries and reporting on
data warehouses and data marts.
AIX kernel tunables for Sybase IQ are the same regarding virtual memory, I/O, network, and
ulimits as for Sybase ASE and Oracle.
However, there are some special environment variables and scheduler tunables that should
be considered, based on joint work between Sybase and AIX development teams. These
items were originally developed for POWER6, but are also applicable to POWER7. Some of
these are f
irm suggestions
that we urge you to follow, and others are
soft suggestions
, as they
are helpful with specific workloads, and can be used at your discretion.
Environment variables
The environment variables are:
SPINLOOPTIME=500
(
Firm suggestion
)
If a user thread cannot get a mutex, it spins for some time, hoping to acquire the lock
afterward. The environment variable
SPINLOOPTIME
controls the spin time duration. After
the period, the thread either goes to sleep or stays runnable (see
YIELDLOOPTIME
).
YIELDLOOPTIME=0
(
Firm suggestion
)
It is more efficient for a runnable thread to resume than to wake up from sleep and run.
After the spin time is exhausted, the thread can go to sleep or give up CPU but stay
runnable. The environment variable
YIELDLOOPTIME
defines the number of times a thread
gives up the CPU before it sleeps.
AIXTHREAD_SCOPE=S
(Same as
AIXTHREAD_MNRATIO=1:1
) (
Firm suggestion
)
Setting
AIXTHREAD_SCOPE=S
means that user threads created with default attributes are
placed into system-wide contention scope. If a user thread is created with system-wide
contention scope, it is bound to a kernel thread, and it is scheduled by the kernel. The
underlying kernel thread is not shared with any other user thread.
AIXTHREAD_MNRATIO=8:1
(the default if
AIXTHREAD_SCOPE
is defaulted to
P
) (
Soft suggestion
)
Setting
AIXTHREAD_SCOPE=S
means that user threads created with default attributes are
placed into system-wide contention scope. Defaulting to
AIXTHREAD_SCOPE
or specifying a
ratio greater than 1:1 for
AIXTHREAD_MNRATIO=M:N
means that kernel threads might be
shared by M user threads. M>N might be more efficient for highly threaded processes.
Sybase IQ start script
start_iq
ships with deprecated values for
AIXTHREAD_MNRATIO
,
SPINLOOPTIME
, and
YIELDLOOPTIME
(
Firm suggestion
)
Sybase IQ start scripts set both
AIXTHREAD_SCOPE=S
and
AIXTHREAD_MNRATIO=4;1
. The
latter overrides the former. The former is considered a starting point for systematic testing.
IQ start scripts also set
SPINLOOPTIME
and
YIELDLOOPTIME
to 40 without any explanation.
AIXTHREAD_MUTEX_FAST=ON
(
Firm suggestion
)
Setting the variable to
ON
forces threaded applications to use an optimized mutex locking
mechanism, resulting in increased performance.
MALLOCOPTIONS=multiheap:8,considersize
(
Firm suggestion
)
Multiheap defaults to 32 heaps, but a smaller number is suggested. The number must
equal the number of logical CPUs, or 32, whichever is less. Watson and Yorktown versions
of
MALLOCOPTIONS
are problematic for Sybase IQ.
Summary of Contents for Power System POWER7 Series
Page 2: ......
Page 36: ...20 POWER7 and POWER7 Optimization and Tuning Guide...
Page 70: ...54 POWER7 and POWER7 Optimization and Tuning Guide...
Page 112: ...96 POWER7 and POWER7 Optimization and Tuning Guide...
Page 140: ...124 POWER7 and POWER7 Optimization and Tuning Guide...
Page 162: ...146 POWER7 and POWER7 Optimization and Tuning Guide...
Page 170: ...154 POWER7 and POWER7 Optimization and Tuning Guide...
Page 223: ......