Tengo una máquina poderosa con 70 GB de RAM. ¿Cuántas instancias de Oracle con 20 GB se pueden crear?

9

Tengo una máquina potente con 70 GB de RAM. Creé una instancia de Oracle con 20 GB como sga_target. No puedo crear otra instancia de Oracle sga_target > 10Gincluso cuando mantengo la primera base de datos inactiva. Si lo configuro sga_target >=10Gda el siguiente error al inicio:

ORA-27104: los límites definidos por el sistema para la memoria compartida estaban mal configurados

Aunque free -mmuestra que hay suficiente memoria disponible sin embargo:

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

¿Necesito aumentar el espacio de intercambio? Cualquier puntero a este respecto es muy apreciado.

También para 70 GB de memoria, para crear muchas instancias, ¿cuál sería el mejor valor para el espacio de intercambio? ¿Hay alguna forma de calcular esto? Mi objetivo es tener al menos dos instancias cada una sga_target=20Gy mantendré solo una instancia a la vez. Si me falta algún concepto aquí?

La salida de ipcs -imes la siguiente

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

Respuestas:

13

Los parámetros de su kernel deben modificarse.

Edite /etc/sysctl.confy asegúrese de que las siguientes líneas estén presentes:

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

Luego reinicie la máquina.

Philᵀᴹ
fuente
Gracias esto funciona. ¿Podría decirme cómo podría decidir estos valores para shmall, shmax y shmni, etc.? ¿Hay alguna forma de calcularlos?
user419534
3
shmmax es el tamaño máximo en bytes de un solo segmento de memoria compartida, tiene 70 Gb de RAM, así que usé 70 * 1024 * 1024 * 1024. shmall es la suma máxima de todos los segmentos de memoria compartida que pueden existir a la vez y se mide en páginas. El tamaño de la página en Linux suele ser de 4k, así que dividí el número shmmax por 4096.
Philᵀᴹ
0

Establecer el valor shmmax depende de si el sistema operativo es de 32 bits o de 64 bits. Hay una nota de metalink que explica esto en detalle.

Valores máximos de SHMMAX para Linux x86 y x86-64 [ID 567506.1]

Por favor échale un vistazo.

También hay una nota sobre Memoria compartida / Semáforos para Oracle que debería ser una lectura interesante.

TECNOLOGÍA: Semáforos de Unix y memoria compartida explicados [ID 15566.1]

Saludos, Nagendra Chillale

Nagendra Chillale
fuente