Ho una macchina potente con 70 GB di RAM. Quante istanze Oracle con 20 GB possono essere create?


9

Ho una macchina potente con 70 GB di RAM. Ho creato un'istanza Oracle con 20 GB come sga_target. Non riesco a creare un'altra istanza Oracle con sga_target > 10Ganche quando tengo giù il primo database. Se impostato, sga_target >=10Gviene visualizzato l'errore seguente all'avvio:

ORA-27104: i limiti definiti dal sistema per la memoria condivisa sono stati configurati in modo errato

Mentre free -mmostra che c'è abbastanza memoria disponibile però:

             total       used       free     shared    buffers     cached
Mem:         72419      34490      37928          0        618      28159
-/+ buffers/cache:       5711      66707
Swap:         2047          0       2047

Devo aumentare lo spazio di swap? Qualsiasi suggerimento in tal senso è molto apprezzato.

Anche per 70 GB di memoria, per la creazione di molte istanze, quale sarebbe il miglior valore per lo spazio di swap - c'è un modo per risolverlo? Il mio obiettivo è di avere almeno due istanze ciascuna con sga_target=20Ge manterrà una sola istanza alla volta. Se mi manca qualche concetto qui?

L'output di ipcs -imè come di seguito

------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 4194303
max total shared memory (kbytes) = 8388608
min seg size (bytes) = 1

Risposte:


13

I parametri del kernel devono essere modificati.

Modifica /etc/sysctl.confe assicurati che siano presenti le seguenti righe:

kernel.shmall = 18350080
kernel.shmmax = 75161927680
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128

Quindi riavviare il computer.


Grazie funziona. Potete per favore fatemi sapere come è possibile decidere questi valori per shmall, shmax e shmni ecc. C'è un modo per calcolarli?
user419534,

3
shmmax è la dimensione massima in byte di un singolo segmento di memoria condivisa, hai 70Gb di RAM, quindi ho usato 70 * 1024 * 1024 * 1024. shmall è la somma massima di tutti i segmenti di memoria condivisa che possono esistere contemporaneamente e viene misurata in pagine. La dimensione della pagina su Linux è di solito 4k, quindi ho diviso il numero di shmmax per 4096.
Phil


0

L'impostazione del valore shmmax dipende dal fatto che il sistema operativo sia a 32 o 64 bit. C'è una nota metalink che spiega questo in dettaglio.

Valori SHMMAX massimi per Linux x86 e x86-64 [ID 567506.1]

Per favore guarda.

C'è anche una nota sulla memoria condivisa / semafori per Oracle che dovrebbe essere una lettura interessante.

TECH: spiegazione dei semafori Unix e della memoria condivisa [ID 15566.1]

Saluti, Nagendra Chillale

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.