diagnosticar uso de cpu elevado de oracle.exe en windows
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]