systemadmin.es > DBA > La solución más fácil

La solución más fácil

A veces la solución más tonta te arregla un problema, por ejemplo con un servidor de bases de datos Oracle 10g que tenía un crecimiento extraño de consumo de memoria:

Vista anual del crecimiento de uso de memoria de un Oracle 10g

Crecimiento del consumo de memoria de un Oracle 10g

Además recientemente se apreciaba un crecimiento extraño del consumo de CPU:

Crecimiento del consumo de CPU

Crecimiento del consumo de CPU

El cual corresponde a un domingo por la mañana cuando no hay nada programado y además el proceso correspondía al Enterprise Manager:

oracle   18726  0.0  0.0   8140  6468 ?        S    Apr26   0:24 /opt/oracle/otk/home/oracle/product/10.2.0/db_2/perl/bin/perl /opt/oracle/otk/home/oracle/product/10.2.0/db_2/bin/emwd.pl dbconsole /opt/orac
oracle   21706  0.0  0.2  67124 16660 ?        Sl   Apr26  29:56  \_ /opt/oracle/otk/home/oracle/product/10.2.0/db_2/bin/emagent
oracle   19764  100  0.0  23128  7780 ?        R    09:50   8:20  |   \_ /opt/oracle/otk/home/oracle/product/10.2.0/db_2/perl/bin/perl /opt/oracle/otk/home/oracle/product/10.2.0/db_2/sysman/admin/scripts/db
oracle    3177  0.0 14.2 1657476 1166200 ?     Sl   Apr26  72:27  \_ /opt/oracle/otk/home/oracle/product/10.2.0/db_2/jdk/bin/java -server -Xmx256M -XX:MaxPermSize=96m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFree
oracle   22351  0.0  0.4 254144 36696 ?        Sl   Apr26   5:42 /opt/oracle/otk/home/oracle/product/10.2.0/db_2/jdk/bin/java -Djava.awt.headless=true -Doracle.oc4j.localhome=/opt/oracle/otk/home/oracle/pro

Al reiniciar el Enterprise Manager:

$ emctl stop dbconsole
$ emctl start dbconsole

El consumo de CPU evidentemente desaparece y además se libera toda esa memoria que ha ido acumulando:

Liberación de memoria por el reinicio del Enterprise Manager

Liberación de memoria por el reinicio del Enterprise Manager

Me resulta extraño que el Enterprise Manager, que solo es una consola de gestión, se dedique a acumular tal cantidad de memoria… ¿Alguien ha dicho memory leak?

8 comments to “La solución más fácil”

  1. Esto huele a metalink y cabrearse con mas de uno…. tiene pinta que el enterprise manager hace algo programado que no debe. Lo mejor desde mi punto de vista, seria buscar la forma de limitar su uso de memoria y CPU, al ser una aplicacion web, como solución temporal y seguir investigando….. Algun DBA presente?? 🙂

  2. Si, es un metalink como una casa. Estas consolas de gestión nunca me han gustado por estos temas pero hay mucha gente que no pueden vivir sin esto

  3. Cuánta Swap tienes en la máquina y cuánta memoria física? Si aumentas la swap,… se estabiliza en algún punto? aunque sí… huele a memory leak! 😀

  4. No ha llegado a tirar de swap, solo a pasado de consumir un 10% al 30% en los 7 meses. No tiene pinta que se estabilice pero no lo se seguro porque crece muy poco a poco por lo que probarlo sería dejarlo ir comiendo durante mucho tiempo.

    Dentro de un tiempo volveré a mirar a ver si sigue el mismo patrón que la primera vez.

    De momento esta bien volviendo a consumir el 10% aproximadamente:

    # free -m
                 total       used       free     shared    buffers     cached
    Mem:          7976       7924         52          0         40       6994
    -/+ buffers/cache:        889       7087
    Swap:         8189          0       8189
    
  5. En principio es una cosa ajena al servidor por lo que bastaría un preventivo básico en cron o at, un par de veces al mes por ejemplo.

    Con mis servidores lo que hago es tener paradas programadas, normalmente la noche del sábado al domingo, tras el backup y pocos servidores (salvo los esx) tienen uptimes superiores a un mes

  6. Es una solución pero lo veo feo… Una aplicación así no debería necesitar estos apaños

  7. Saludos,

    Por realizar una consulta, tengo oracle 10g instalado en red hat 5, en esta cree dos instancias o base de datos, realice el escrip para que inicie oracle cuando inicia el sistema y funciona inicia las instancias, pero únicamente el enterprise manager (em) de una instancia inicia o funciona por navegador, pero la otra em de la otra instancia no inicia.

    Como puedo o que tengo que hacer para que se inicie el em de la otra instancia, agradezco por su tiempo y sus respuesta

    Muchas gracias

  8. Entiendo que te refieres que una instancia no se levanta solo al arrancar. Debes modificar la última columna del /etc/oratab cambiando el N (no arrancar solo) por el Y (Yes we can!) 😀

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>