Getting VLM: large SGA on
Dr. Tim Hall has published an excellent article on leveraging RAM on
32-bit Linux servers, using Page Address Extension (PAE).
One of the biggest problems with 32-bit Linux servers is that they
commonly come with 4-gig or 8-gig RAM, yet the SGA cannot be greater
than 1.7 gig (2 to the 10th power).
The shmfs is created using the following command as the root
mount -t shm shmfs -o size=3g /dev/shm
The shared memory file system can be mounted automatically by
adding the following line into /etc/fstab file:
shmfs /dev/shm shm size=3g 0 0
These instructions who you how to take the db_block_buffers “above
There are several ways to allocate more memory than this, but the
most robust and scalable method requires the use of a shared memory
file system (shmfs). The procedure presented in this article assumes
you are using RedHat Advanced Server (AS) 2.1 with the enterprise
kernel which supports Page Address Extension (PAE).
Here is an article on using PAE for 32-bit Linux Oracle
and shows techniques for taking the SGA into high RAM.
Many sites look at using the PAE capability with the shm or
ramfs file system to utilize up to 62 gigabytes of memory for db
block buffers. This is accomplished by using a 36 rather than a
32 bit addressing for the memory area and mapping the extended
memory through the PAE (Page Address Extensions) to the
configured memory file system. If upgrade to 64 bit CPUs and
Linux is not an option, then this is a viable option. It is easy
1. Use the hugemem kernel in Linux RedHat 3.0 AS enterprise
2. Set up the shm file system or the ramfs filesystem to the
size you want the upper memory for Oracle, plus about 10% or
3. Set use_indirect_data_buffers to true
· Mount the shmfs file system as root using command:
% mount -t shm shmfs -o nr_blocks=8388608 /dev/shm
· Set the shmmax parameter to half of RAM size
$ echo 3000000000 >/proc/sys/kernel/shmmax
· Set the init.ora parameter use_indirect_data_buffers=true
· Startup oracle.