Utilizzare il comando Oracle ipcs per determinare la memoria condivisa

Un comando di memoria utile che è possibile utilizzare per monitorare Oracle SGA è il comando ipcs. Il comando ipcs visualizza la dimensione di ciascun segmento di memoria condivisa per l’SGA. Se non c’è abbastanza memoria per l’intero SGA per adattarsi a un pezzo di memoria contiguo, l’SGA verrà costruito in segmenti di memoria non contigui. In caso di crash istantaneo, la memoria potrebbe non essere rilasciata. Se ciò accade, si noti che il comando ipcrm rimuove i segmenti (ipcrm-m per i segmenti di memoria e ipcrm-s per i segmenti del semaforo). Usa ipcs-b su Solaris e ipcs-a su Linux, HPUX e AIX.

1024_001

Nell’esempio precedente, l’SGA è costruito in tre segmenti non contigui (che costituiscono l’SGA 100M+). L’istanza viene quindi chiusa e avviata con un SGA più piccolo (quindi l’SGA è costituito da pezzi di memoria contigui). Dopo che l’SGA è stato abbassato a 70M, emetto nuovamente il comando ipcs:

1024_002

Il montaggio dell’intero SGA in un singolo segmento di memoria condivisa è generalmente preferibile a causa del sovraccarico che può essere richiesto per tenere traccia di più di un segmento e del tempo necessario per passare avanti e indietro tra questi segmenti. È possibile aumentare la dimensione massima di un singolo segmento di memoria condivisa aumentando l’impostazione SHMMAX nel file /etc/system (o /etc/sysctl.conf a seconda della versione). Consultare la documentazione di installazione di Oracle per informazioni più specifiche per la piattaforma. Su Solaris 10, l’impostazione dei parametri di memoria condivisa è stata spostata su resource control, quindi se si modifica il file /etc/system, tutte le modifiche apportate vengono ignorate. Infine, se configuri Hugepages, la memoria viene estratta da un pool e i semafori non vengono utilizzati. AMM richiede l’uso di semafori, quindi se si imposta MEMORY_TARGET, non è possibile utilizzare Hugepages.

SUGGERIMENTO

Usa il comando ipcs per vedere se il tuo SGA è costruito usando più pezzi di memoria non contigui. Un arresto anomalo del database può causare problemi non rilasciando la memoria. Utilizzare il comando ipcrm (solo se i pezzi SGA non vengono rilasciati dopo un crash del database) per rimuovere i pezzi SGA dalla memoria. Non emettere il comando ipcrm con un database in esecuzione.

Write a Comment

Il tuo indirizzo email non sarà pubblicato.