Asm Instance Parameter Best Practice

10g/11gR1
Processes = 25 + (10 + [max number of concurrent database file
creations, and file extend operations possible])*n
11g.2.0.3
In 11.2.0.3, the “PROCESSES” parameter will be default to “available CPU cores * 80 + 40” (in the ASM spfile). As the default value for “MEMORY_TARGET” is based on “PROCESSES”, it can be insufficient if there is a large number of CPU cores or large number of diskgroups which could cause issues (i.e. Grid Infrastructure stack fails to stop with ORA-04031 etc) per Bug:13605735 & Bug:12885278, it is recommended to increase the value of MEMORY_MAX_TARGET & MEMORY_TARGET before upgrading/installing to 11.2.0.3 (does not apply to 10g ASM):

 

SQL> alter system set memory_max_target=4096m scope=spfile;
SQL> alter system set memory_target=1536m scope=spfile;

–The number 1536m has proven to be sufficient for most environment, the change will not be effective until next restart.

 

alter system set “_DISABLE_REBALANCE_COMPACT”=true;

 

Exadata上

ASM_POWER_LIMIT=4 (部署时默认值)
ASM 4031

Oracle strongly recommends that you use Automatic Memory Management (AMM) for ASM. Automatic Memory Management, automatically manages the memory-related parameters for ASM instances with the MEMORY_TARGET parameter. AMM is enabled by default on ASM instances, even when the MEMORY_TARGET parameter is not explicitly set. The default value used for MEMORY_TARGET (272 MB) is acceptable for most environments. This is the only parameter that you need to set for complete ASM memory management. You can also increase MEMORY_TARGET dynamically, up to the value of the MEMORY_MAX_TARGET parameter, just as you can for a database instance.

Note: For Linux environments, automatic memory management will not work if /dev/shm is not available or is sized smaller than MEMORY_TARGET. For Enterprise Linux Release 5, /dev/shm is configured to be half the size of the system memory by default. You can adjust this by adding a size option to the entry for /dev/shm in /etc/fstab. For more details, see the man page for the mount command.

Note: The minimum MEMORY_TARGET for ASM is 256 MB in the SPFILE. If you set MEMORY_TARGET to a lower value, Oracle Database increases the value to 256 MB automatically.
If you are not using Automatic Memory Management, then the default value for this parameter is suitable for most environments.
=)> For 32-bit environments 32 MB is the default and minimum requirement for an ASM instance, but 128 MB is recommended.

=)> On 64-bit platforms 88 MB are required for an ASM instance, recommended values is 150 MB.
When you do not use Automatic Memory Management in a database instance, the SGA parameter settings for a database instance may require minor modifications to support ASM. When you use Automatic Memory Management, the sizing data discussed below can be treated as informational only or as supplemental information to help determine the appropriate values that you should use for the SGA. Oracle highly recommends using automatic memory management.
The following are configuration guidelines for Shared Pool sizing on the database instance (when Automatic Memory Management is not used):
SHARED_POOL_SIZE initialization parameter. Aggregate the values from the following queries to obtain the current database storage size that is either on Oracle ASM or stored in Oracle ASM. Next, determine the redundancy type and calculate the SHARED_POOL_SIZE using the aggregated value as input.

 

SELECT SUM(bytes)/(1024*1024*1024) FROM V$DATAFILE;

SELECT SUM(bytes)/(1024*1024*1024) FROM V$LOGFILE a, V$LOG b
WHERE a.group#=b.group#;

SELECT SUM(bytes)/(1024*1024*1024) FROM V$TEMPFILE
WHERE status=’ONLINE’;
o For disk groups using external redundancy, every 100 GB of space needs 1 MB of extra shared pool plus 2 MB.

o For disk groups using normal redundancy, every 50 GB of space needs 1 MB of extra shared pool plus 4 MB.

o For disk groups using high redundancy, every 33 GB of space needs 1 MB of extra shared pool plus 6 MB.
mportant Note:

In 11.2.0.3, we increase the default PROCESSES based on the number of CPU cores, and the default MEMORY_TARGET is based on PROCESSES. If in 11.2.0.2, customers explicitly set MEMORY_TARGET to some value that may not be big enough for 11.2.0.3, when they upgrade to 11.2.0.3, ASM will fail to start with error “memory_target is too small”. We should add additional check for MEMORY_TARGET during the upgrade prerequisite check.

You can unset MEMORY_TARGET so that ASM can use the default value, but if MEMORY_TARGET is explicitly set, please make sure it’s large enough, following the next rules:
1) If PROCESSES parameter is explicitly set:

The MEMORY_TARGET should be set to no less than:

256M + PROCESSES * 132K (64bit)

or

256M + PROCESSES * 120K (32bit)
2) If PROCESSES parameter is not set:

The MEMORY_TARGET should be set to no less than:

256M + (available_cpu_cores * 80 + 40) * 132K (64bit)
or

256M + (available_cpu_cores * 80 + 40) * 120K (32bit)


Posted

in

by

Tags:

Comments

2 responses to “Asm Instance Parameter Best Practice”

Leave a Reply

Your email address will not be published. Required fields are marked *