Páginas

sexta-feira, 11 de novembro de 2011

Automatic Memory Management (AMM) - Oracle11g

Nova feature do 11g que torna o gerenciamento automático de SGA+PGA.

MEMORY_TARGET: tamanho máximo da SGA+PGA. É dinâmico e não pode ultrapassar o máximo setado no parâmetro MEMORY_MAX_TARGET. O default é 0.
MEMORY_MAX_TARGET: Máximo que o memory_target pode atingir sem restart da instância. O default é o valor do parâmetro memory_target.

Para melhor controle de memória, deve-se setar SGA_TARGET e PGA_AGGREGATE_TARGET para 0, pois se setados, serão os valores mínimos de SGA e PGA.

Essa memória compartilhada fica alocada no tmpfs (Linux):

[rrsantos@server.adm.infra ~]$ df -h /dev/shm
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  12G     0   12G   0% /dev/shm

Para alterar esse valor alocado:

umount tmpfs
mount -t tmpfs shmfs -o size=12000m /dev/shm
 
/etc/fstab :
tmpfs                   /dev/shm                tmpfs   size=12000m      0 0 


Queries relevantes:

-- Individual values.
COLUMN name FORMAT A30
COLUMN value FORMAT A10

SELECT name, value
FROM   v$parameter
WHERE  name IN ('pga_aggregate_target', 'sga_target')
UNION
SELECT 'maximum PGA allocated' AS name, TO_CHAR(value) AS value
FROM   v$pgastat
WHERE  name = 'maximum PGA allocated';

-- Calculate MEMORY_TARGET
SELECT sga.value + GREATEST(pga.value, max_pga.value) AS memory_target
FROM (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'sga_target') sga,
     (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'pga_aggregate_target') pga,
     (SELECT value FROM v$pgastat WHERE name = 'maximum PGA allocated') max_pga;
 
 
 
Referências:
http://www.oracle-base.com/articles/11g/AutomaticMemoryManagement_11gR1.php
http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/memory003.htm#ADMIN11011

Nenhum comentário:

Postar um comentário