diagnosticar uso de cpu elevado de oracle.exe en windows

6
  Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows Fecha: 22/08/2011 Página 1 de 6 Diagnosticar uso de CPU elevado de oracle.exe en Windows Departamento: Proyecto: Documento: ODMS$_DIAG_CPU_ORA_WIN.docx Nº pags: 6 Asunto: Autor: ODMS http://locutoriorama.blogspot.com/  Aprobado por: Fecha de creación: 22/08/2011 Fecha de aprobación: Lista de Distribución:  

Upload: locuto

Post on 07-Jul-2015

1.196 views

Category:

Documents


0 download

DESCRIPTION

Documento que describe cómo diagnosticar el uso de CPU elevado de una instancia de base de datos Oracle (oracle.exe) en entorno Windows.

TRANSCRIPT

5/9/2018 Diagnosticar uso de CPU elevado de oracle.exe en Windows - slidepdf.com

http://slidepdf.com/reader/full/diagnosticar-uso-de-cpu-elevado-de-oracleexe-en-windows 1/6

 

 

Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows

Fecha: 22/08/2011

Página 1 de 6 

Diagnosticar uso de CPU

elevado de oracle.exe en

Windows

Departamento:  Proyecto:  Documento:

ODMS$_DIAG_CPU_ORA_WIN.docx  Nº pags:

6

Asunto: 

Autor: ODMShttp://locutoriorama.blogspot.com/ 

Aprobado por: 

Fecha de creación: 22/08/2011 Fecha de aprobación: 

Lista de Distribución: 

5/9/2018 Diagnosticar uso de CPU elevado de oracle.exe en Windows - slidepdf.com

http://slidepdf.com/reader/full/diagnosticar-uso-de-cpu-elevado-de-oracleexe-en-windows 2/6

 

 

Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows

Fecha: 22/08/2011

Página 2 de 6 

Introducción. ......................................................................................................................................................... 3 Un caso práctico .................................................................................................................................................. 3 

Identificar la instancia ..................................................................................................................................... 3 Identificar la sesión oracle. ............................................................................................................................. 4 

Referencias...................................................................................................................................................... 6 

5/9/2018 Diagnosticar uso de CPU elevado de oracle.exe en Windows - slidepdf.com

http://slidepdf.com/reader/full/diagnosticar-uso-de-cpu-elevado-de-oracleexe-en-windows 3/6

 

 

Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows

Fecha: 22/08/2011

Página 3 de 6 

Introducción.

En entorno Windows, los procesos de una base de datos Oracle están implementados como hilos dentro

de un proceso principal llamado “oracle.exe”. Por este motivo, si tenemos varias instancias oracle

corriendo en la misma máquina, con las herramientas propias del sistema operativo, no es directo poder 

identificar qué instancia consume más CPU, y qué sesión en concreto de dicha instancia es quién

provoca ese consumo.

Un caso práctico

Identificar la instancia

Detectamos un uso elevado de CPU en una máquina con varias instancias oracle, mediante herramientas

de monitorización del sistema, queja de los usuarios, etc. Nos conectamos a la máquina y examinamos el

Task Manager:

Sabemos que un proceso “oracle.exe” es el responsable del consumo elevado de CPU, pero no sabemos

exactamente cuál de las posibles instancias oracle de esa máquina es concretamente.

La podemos identificar porque tenemos el PID, y con el siguiente comando podremos saber de qué

servicio oracle se trata:

Tasklist /svc | findstr ora

5/9/2018 Diagnosticar uso de CPU elevado de oracle.exe en Windows - slidepdf.com

http://slidepdf.com/reader/full/diagnosticar-uso-de-cpu-elevado-de-oracleexe-en-windows 4/6

 

 

Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows

Fecha: 22/08/2011

Página 4 de 6 

Identificar la sesión oracle.

Bien, ya sabemos que se trata de la instancia con SID=TPOR10.

 Ahora necesitamos saber exactamente el identificador del hilo dentro del proceso oracle.exe (6064) que

está consumiendo la cpu. Utilizamos la herramienta “process explorer”. Abriendo las propiedades del

proceso 6064, nos muestra un cuadro con sus hilos de ejecución y el consumo de cpu de cada uno. Aquí

vemos que hay dos hilos que consumen alrededor del 50% de cpu cada uno. Apuntamos sus Thread ID:

3800 y 1000.

5/9/2018 Diagnosticar uso de CPU elevado de oracle.exe en Windows - slidepdf.com

http://slidepdf.com/reader/full/diagnosticar-uso-de-cpu-elevado-de-oracleexe-en-windows 5/6

 

 

Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows

Fecha: 22/08/2011

Página 5 de 6 

 Ahora nos conectamos a la instancia oracle (TPOR10) e identificamos la sesión oracle que corresponde

con cada uno de los hilos que hemos obtenido antes:

select p.spid "Thread ID", b.name "Background Process", s.username "User Name", s.osuser "OS User",

s.status "STATUS", s.sid "Session ID", s.serial# "Serial No.", s.program "OS Program" 

from v$process p, v$bgprocess b, v$session s

where s.paddr = p.addr 

and b.paddr(+) = p.addr 

and p.spid= --TID decimal value-- ;

5/9/2018 Diagnosticar uso de CPU elevado de oracle.exe en Windows - slidepdf.com

http://slidepdf.com/reader/full/diagnosticar-uso-de-cpu-elevado-de-oracleexe-en-windows 6/6

 

 

Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows

Fecha: 22/08/2011

Página 6 de 6 

Y la sentencia que están ejecutando:

select s2.sql_text

from v$process p,v$session s1,v$sqlarea s2

where p.addr = s1.paddr 

and s1.SQL_HASH_VALUE = s2.HASH_VALUE

and p.spid= --TID decimal value--;

Ya tenemos identificadas las sesiones oracle que están consumiendo la CPU y podemos tomar las

medidas que creamos oportunas.

Referencias

My Oracle Support: How to diagnose the high CPU utilization of ORACLE.EXE in Windows environment

[ID 273646.1]