Uno de mis clientes ha implementado la base de datos de nuestro producto en una máquina Solaris que ya tiene 3 instancias de Oracle. Entonces, en este momento hay 4 instancias de Oracle ejecutándose en la misma máquina. Y ahora estamos experimentando problemas de rendimiento.
No tengo acceso a otras instancias ni a la máquina, y todas las herramientas que tengo son alert.log, AWR y ADDM. Sé que hay algo relacionado con varias instancias, pero no puedo probarlo.
Entonces, mi pregunta es, ¿has experimentado una situación similar? ¿Cómo debo lidiar con eso? ¿Cómo puedo identificar la causa de los problemas de rendimiento relacionados con varias instancias?
fuente
Es posible ejecutar varias instancias en el mismo servidor y, en algunos casos, es necesario. El oratab está diseñado específicamente para manejar la administración de múltiples instancias. En los casos en que tenga varias aplicaciones independientes, puede ser preferible tener una instancia para cada aplicación.
Tener suficiente memoria es crítico. Oracle construye el SGA en memoria compartida. Si no tiene suficiente memoria, el SGA o los procesos comenzarán a intercambiarse. Esto se conoce como golpear y da como resultado una penalización de rendimiento significativa.
Es posible ajustar las instancias para que se ejecuten con un SGA más pequeño. Oracle proporciona herramientas para ayudar a ajustar el tamaño de SGA. Si alguna de las instancias tiene un SGA excesivamente grande, penalizará todas las instancias.
Otro uso para la memoria que es importante es el espacio del búfer. Esto actúa como caché secundaria y puede eliminar la E / S de lectura significativa.
Ejecutar
sar
(suponiendo que las bases de datos de Unix S / S) le puede dar buenos diagnósticos sobre dónde está el problema. Los problemas probables son el intercambio o la saturación de E / S del disco. Agregar RAM probablemente resolverá cualquiera de estos problemas.La saturación de E / S de disco también se puede solucionar moviendo algunos espacios de tabla a otros discos. Generalmente configuro Oracle para que la E / S se distribuya en tantos discos como sea posible.
EDITAR: Estos son algunos casos que pueden requerir instancias separadas.
fuente
El recurso más crítico es la RAM.
Cada instancia de Oracle en ejecución asigna algo de RAM por sí misma, cuando recién se inicia y no está bajo carga.
Estamos ejecutando un 10g con 10 y 11g con 8 instancias, pero estos son servidores de desarrollo. Después de reiniciar el sistema operativo, algunos de los servicios de Oracle no se inician automáticamente y deben iniciarse manualmente: Oradim -startup -sid xxx.
Recién estamos comenzando a usar la Administración automática de memoria, pero la situación es diferente de la de SQL Server, donde puede agregar bases de datos tanto como el espacio en disco.
En su caso, con más instancias en una máquina, el SGA para cada instancia se vuelve más pequeño, se puede almacenar en caché menos sql precompilado y la máquina tiene que hacer más compilación de sql, lo que reduce el rendimiento.
Agregar RAM podría ayudar en su situación.
fuente