Chapter 17.
59
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
shown at
Section 16.3, “Oracle 10g SGA Sizes in Red Hat Enterprise Linux 3, 4 or 5”
. Note the
hugemem kernel is always recommended on systems with large amounts of RAM, see
Section 2.2,
“32 bit Architecture and the hugemem Kernel”
. This chapter shows how the SGA can be significantly
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
$
Содержание CLUSTER SUITE FOR ENTERPRISE LINUX 5.1
Страница 7: ...Part I Tuning and Optimizing Red Hat Enterprise Linux for Oracle Database 9i and 10g ...
Страница 8: ......
Страница 10: ...4 ...
Страница 16: ...10 ...
Страница 28: ...22 ...
Страница 30: ...24 ...
Страница 36: ...30 ...
Страница 42: ...36 ...
Страница 54: ...48 ...
Страница 60: ...54 ...
Страница 68: ...62 ...
Страница 72: ...66 ...
Страница 88: ...82 ...
Страница 90: ...84 ...
Страница 92: ...86 ...
Страница 94: ...88 ...
Страница 98: ...92 ...
Страница 108: ...102 ...
Страница 112: ...106 ...
Страница 120: ...114 ...
Страница 122: ......
Страница 128: ...122 ...
Страница 132: ...126 ...
Страница 134: ...128 ...
Страница 142: ...136 ...
Страница 146: ...140 ...
Страница 156: ...150 ...
Страница 160: ...154 ...