Using Very Large Memory (Vlm); General - Red Hat ENTERPRISE LINUX 5.1 - LINUX ORACLE Tuning Manual

Oracle 9i and 10g tuning guide
Table of Contents

Advertisement

Chapter 17.

Using Very Large Memory (VLM)

17.1. General

This chapter does not apply to x86-64 (64 bit) systems.
With hugemem kernels on 32 bit systems, the SGA size can be increased but not significantly as
Section 16.3, "Oracle 10g SGA Sizes in Red Hat Enterprise Linux 3, 4 or
shown at
hugemem kernel is always recommended on systems with large amounts of RAM, see
"32 bit Architecture and the hugemem
increased using VLM on 32 bit systems.
Starting with Oracle9i Release 2 the SGA can theoretically be increased to about 62 GB (depending
on block size) on a 32 bit system with 64 GB RAM. A processor feature called Page Address
Extension (PAE) provides the capability of physically addressing 64 GB of RAM. However, it does
not enable a process or program to address more than 4GB directly or have a virtual address space
larger than 4GB. Hence, a process cannot attach to shared memory directly if it has a size of 4GB or
more. To address this issue, a shared memory file system (memory-based file system) can be created
which can be as large as the maximum allowable virtual memory supported by the kernel. With a
shared memory file system processes can dynamically attach to regions of the file system allowing
applications like Oracle to have virtually a much larger shared memory on 32 bit systems. This is not
an issue on 64 bit systems.
For Oracle to use a shared memory file system, a feature called Very Large Memory (VLM) must be
enabled. VLM moves the database buffer cache part of the SGA from the System V shared memory to
the shared memory file system. It is still considered one large SGA but it consists now of two different
OS shared memory entities. It is noteworthy to say that VLM uses 512MB of the non-buffer cache SGA
to manage VLM. This memory area is needed for mapping the indirect data buffers (shared memory
file system buffers) into the process address space since a process cannot attach to more than 4GB
directly on a 32 bit system. For example, if the non-buffer cache SGA is 2.5 GB, then you will only
have 2 GB of non-buffer cache SGA for shared pool, large pool, and redo log buffer since 512MB
is used for managing VLM. If the buffer cache is less than 512 MB, then the init.ora parameter
VLM_WINDOW_SIZE must be changed to reflect the size of the database buffer cache. However, it is
not recommended to use VLM if db_block_buffers is not greater than 512MB.
In Red Hat Enterprise Linux 3, 4 and 5 there are two different memory file systems that can be used
for VLM:
• shmfs/tmpfs: This memory file system is pageable and swappable and cannot be backed by Huge
Pages because Huge Pages are not swappable.
• ramfs: This memory file systems is not pageable or swappable and not backed by Huge Pages,
see also Huge Pages and Shared Memory File System in Red Hat Enterprise Linux 3 and 4.
Note that the shmfs file system is available in Red Hat Enterprise Linux 3 but not in Red Hat
Enterprise Linux 4 or 5:
$ cat /etc/redhat-release
Red Hat Enterprise Linux AS release 3 (Taroon Update 6)
$ egrep "shm|tmpfs|ramfs" /proc/filesystems
nodev
tmpfs
nodev
shm
nodev
ramfs
$
Kernel". This chapter shows how the SGA can be significantly
5". Note the
Section 2.2,
59

Advertisement

Table of Contents
loading

Table of Contents