Tuning HP Tru64 UNIX V5.1A and V5.1B for Oracle

8
used by the database for its System Global Area (SGA) or any other application using shmget()
or nshmget() to allocate shared memory.
Using granularity hints memory offers the best performance and is ideally suited for large GS class
AlphaServer systems, especially those with applications that have many processes attached to a
large shared memory region (such as large Oracle databases). On smaller systems the overall
performance gain using granularity hints memory averages 7%; on those systems this may not be
an interesting option, due to its complexity in implementation and management and its relatively
small performance benefit. HP recommends this type of shared memory (statically allocated
granularity hints memory) for the most demanding systems using large shared memory segments.
It is important to ensure that all shared memory segments are allocated in the memory area reserved
for granularity hints memory. When the shared memory segments cannot be allocated in the
reserved memory, then messages will be displayed on the console and through syslog (for
example, /var/adm/messages). System performance will be negatively impacted, see the
ssm_threshold parameter for more information. You can prevent overallocation of this memory
area by setting the parameter gh_fail_if_no_mem = 1.
ipc:ssm_threshold must be disabled by setting ssm_threshold = 0 when using statically
allocated granularity hints memory (rad_gh_regions or gh_chunks) is used.
On those systems that are not NUMA aware, that is, all systems that only have a single RAD, you
can use the gh_chunks attribute to enable granularity hints memory. The gh_chunks parameter
is specified in multiples of the largest possible granularity hints page, that is, it specifies the number
of 4-MB pages to allocate for RAD 0. Both rad_gh_regions and gh_chunks are equally
effective. This document only describes rad_gh_regions; however, you can use gh_chunks on
single RAD systems as an alternative. To avoid confusion, HP recommends using the
rad_gh_regions parameter rather than the gh_chunks parameter.
To view the amount of granularity hints memory configured on a system, use the vmstat –P
command.
On the EV6x NUMA systems (AlphaServer GS80, GS160, and GS320) a RAD corresponds to a
Quad Building Block (QBB). On EV7 CPU based systems (AlphaServer ES47, ES80, and GS1280)
a RAD typically corresponds to a single CPU (unless it is changed through the
generic:cpus_in_rad parameter). The amount of memory per RAD to statically allocate for
granularity hints memory is specified in 1-MB increments through the corresponding
rad_gh_regions parameter.
The naming convention for this tunable parameter is to specify rad_gh_regions[<RAD
number>]. For example, to allocate 2 GB in RAD 0 you would specify 2048 for
rad_gh_regions[0], that is, rad_gh_regions[0] = 2048.
Take your planned/projected Oracle SGA size and divide by the number of RADs your system has
configured. For each rad_gh_regions[x] (where x represents the RAD identifier, from 0-63,
depending on the number of RADs in your system), you would specify the required value in
megabytes (MB). Note that the number of the RAD is determined by the physical location in the
system, that is, unpopulated RADs are still assigned a number.