Documento que describe cómo diagnosticar el uso de CPU elevado de una instancia de base de datos Oracle (oracle.exe) en entorno Windows.Descripción co...
Se puede encontrar parte de la Información de un CPU
arquitectura de cpuDescripción completa
Acta a utilizar en caso de secion de bienes
si
Uso de cuentos en terapiaDescripción completa
Uso de polímeros en muros de adobe en la construccion
javaDescripción completa
Descripción completa
Tanque Elevado
Descripción: CALCULO DE TANQUEELEVADO
Atividades de Risco Elevado CAE
Título: Diagnosticar uso de CPU elevado de oracle.exe orac le.exe en Windows Fecha: 22/08/2011
Diagnosticar uso de CPU elevado de oracle.exe en Windows
Departamento:
Proyecto:
Documento: ODMS$_DIAG_CPU_ORA_WIN.docx
Asunto: Autor: ODMS http://locutoriorama.blogspot.com/ Fecha de creación: 22/08/2011 Lista de Distribución:
Aprobado por: Fecha de aprobación:
Página 1 de 6
Nº pags: 6
Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows Fecha: 22/08/2011
Introducción. ......................................................................................................................................................... 3 Un caso práctico .................................................................................................................................................. 3 Identificar la instancia ..................................................................................................................................... 3 Identificar la sesión oracle. ............................................................................................................................. 4 Referencias......................................................................................................................................................
Página 2 de 6
6
Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows Fecha: 22/08/2011
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 respons able 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
Página 3 de 6
Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows Fecha: 22/08/2011
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.
Página 4 de 6
Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows Fecha: 22/08/2011
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.progr am "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-- ;
Página 5 de 6
Título: Diagnosticar uso de CPU elevado de oracle.exe en Windows Fecha: 22/08/2011
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]