|修改时间 20-JUN-2011 类型 HOWTO 状态 PUBLISHED|| |
In this Document
Applies to:Oracle Server - Enterprise Edition - Version: 10.2.0.1 to 22.214.171.124 - Release: 10.2 to 11.2
This pertains to oracle 10.2 database instances on LINUX x86-64 bit systems running ASMM (i.e. SGA_TARGET with SGA_MAX_SIZE)
GoalThis document explains the supportability of LINUX HUGEPAGES on Oracle 10.X database instances running with Automatic Shared Memory Management (ASMM) and contrasts this to the documented limits of AMM usage with LINUX HUGEPAGES on version 11.X database instances.
SolutionDue to some misunderstandings in the supportability of LINUX HUGEPAGES with LINUX x86-64 bit running with ASMM (version 10g feature) enabled I am writing this note to consolidate the information on the topic.
1. Unpublished Bug 6781280 Describes the issue as follows:
For 11g on Linux if you want to use Linux hugepages (which is recommended in
most cases), then you cannot use the 11g new feature Automatic Memory
Management. From the 11g Administrator's guide:
Automatic Memory Management (AMM) is the simplest way to manage instance
memory is to allow the Oracle Database instance to automatically manage and
tune it for you. To do so (on most platforms), you set only a target memory
size initialization parameter (MEMORY_TARGET) and optionally a maximum memory
size initialization parameter (MEMORY_MAX_TARGET). The instance then tunes to
the target memory size, redistributing memory as needed between the system
global area (SGA) and the instance program global area (instance PGA).
If AMM is enabled and Linux hugepage's are enabled as well, then AMM will
override Linux hugepage's usage.
The AMM feature is not to be confused with Automatic Shared Memory Management
(ASMM) which was introduced in 10g. ASMM along with the PGA_AGGREGATE_TARGET
database parameter will automatically manage the SGA memory and the PGA
memory and does not conflict with Linux hugepage's. Thus, if you want to use
Linux hugepage's and automatically manage database memory then using ASMM is
2. The oracle documentation for 11.2 explains the hugepages memory limitations with AMM:
Oracle® Database Administrator's Reference
11g Release 2 (11.2) for Linux and UNIX-Based Operating Systems
Part Number E10839-14
G.2.3 Restrictions for HugePages Configurations
Following are the limitations of using HugePages:
The Automatic Memory Management (AMM) and HugePages are not compatible. With AMM the entire SGA memory is allocated by creating files under /dev/shm. When Oracle Database allocates SGA that way HugePages are not reserved. You must disable AMM on Oracle Database 11g to use HugePages.
If you are using VLM in a 32-bit environment, then you cannot use HugePages for the Database Buffer cache. HugePages can be used for other parts of SGA like shared_pool, large_pool, and so on. Memory allocation for VLM (buffer cache) is done using shared memory file systems (ramfs/tmpfs/shmfs). HugePages does not get reserved or used by the memory file systems.
HugePages are not subject to allocation or release after system startup, unless a system administrator changes the HugePages configuration by modifying the number of pages available, or the pool size. If the space required is not reserved in memory during system startup, then HugePages allocation fails.
As ramfs does not provide the necessary functionality to support memory target, Automatic Memory Management is not supported when ramfs is used to mount /dev/shm.
Oracle recommends that you unset MEMORY_TARGET parameter, before implementing Very Large Memory on the same system.
ASMM is supported with LINUX x86-64 Hugepages but AMM is not supported with Hugepages.
ReferencesBUG:9358381 - ASM INSTANCE IS CRASHING AS ORA-600[KGHLKREM1] WHEN HUGEPAGES ARE IN USE
NOTE:361468.1 - HugePages on Oracle Linux 64-bit
NOTE:749851.1 - HugePages and Oracle Database 11g Automatic Memory Management (AMM) on Linux
来自 “ ITPUB博客 ” ，链接：http://blog.itpub.net/38267/viewspace-706616/，如需转载，请注明出处，否则将追究法律责任。