Red Hat ENTERPRISE LINUX AS 2.1 - Instalační příručka Strana 55

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 160
  • Tabulka s obsahem
  • ŘEŠENÍ PROBLÉMŮ
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 54
Chapter 15.
49
Growing the Oracle SGA to 2.7 GB
in x86 Red Hat Enterprise Linux 2.1
Without VLM
15.1. General
Due to 32 bit virtual address limitations workarounds have been implemented in Linux to increase
the maximum size for shared memories. The workaround is to lower the Mapped Base Address
(mapped_base) for shared libraries and the SGA Attach Address for shared memory segments.
Lowering the Mapped Base Address and the SGA Attach Address allows SGA sizes up to 2.7 GB.
By default, the shared memory segment size can only be increased to roughly 1.7 GB in Red Hat
Enterprise Linux 2.1.
To better understand the process of lowering the Mapped Base Address for shared libraries and the
SGA Attach Address for shared memory segments, a basic understanding of the Linux memory layout
is necessary.
15.2. Linux Memory Layout
The 4 GB address space in 32 bit x86 Linux is usually split into different sections for every process on
the system:
0GB-1GB User space - Used for text, code and brk/sbrk allocations. malloc uses brk for small
chunks.
1GB-3GB User space - Used for shared libraries, shared memory, and the stack. Shared memory
and malloc use mmap. malloc uses mmap for large chunks.
3GB-4GB Kernel Space - Used by and for the kernel itself
In older Linux systems the split between brk(2) and mmap(2) was changed by setting the kernel
parameter TASK_UNMAPPED_BASE and by recompiling the kernel. However, on all Red Hat Enterprise
Linux systems this parameter can be changed dynamically as will be shown later. The mmap allocated
memory grow bottom up from 1GB and the stack grows top down from around 3GB. The split
between userspace and kernelspace is set by the kernel parameter PAGE_OFFSET which is usually
0xc0000000 (3GB).
By default, in Red Hat Enterprise Linux 2.1 the address space between 0x40000000 (1 GB) and
0xc0000000 (3 GB) is available for mapping shared libraries and shared memory segments. The
default mapped base for loading shared libraries is 0x40000000 (1 GB) and the SGA attach address
for shared memory segments is above the shared libraries. In Oracle 9i on Red Hat Enterprise Linux
2.1 the default SGA attach address for shared memory is 0x50000000 (1.25 GB) where the SGA is
mapped. This leaves 0.25 GB space for loading shared libraries between 0x40000000 (1 GB) and
0x50000000 (1.25 GB).
The address mappings of processes can be checked by viewing the proc file /proc/<pid>/maps
where pid stands for the process ID. Here is an example of a default address mapping of an Oracle 9i
process in Red Hat Enterprise Linux 2.1:
08048000-0ab11000 r-xp 00000000 08:09 273078 /ora/product/9.2.0/bin/oracle
Zobrazit stránku 54
1 2 ... 50 51 52 53 54 55 56 57 58 59 60 ... 159 160

Komentáře k této Příručce

Žádné komentáře