« Trabajando en : Bogota , ColombiaOracle 12c New Features : Ejecución de sentencias SQL a través de RMAN »

Información importante en AWR : Operating System Statistics



Una parte importante para analizar en un reporte de AWR , es lo que corresponde a estadísticas de Sistema Operativo, aunque esto se puede sacar de múltiples formas, como por ejemplo el comando sar, prstat, top , etc,etc.

Pero como está disponible en Oracle a través de un reporte de AWR, sería necesario que supieramos al menos de que se trata, he acá un pequeño resumen de lo que significa ese bloque de datos.

Un ejemplo de estadísticas de sistema operativo



1.- AVG_BUSY_TIME = Es el cálculo de BUSY_TIME/NUM_CPUS
2.- AVG_IDLE_TIME = Es el cálculo de IDLE_TIME/NUM_CPUS
3.- AVG_IOWAIT_TIME = Es el cálculo de IOWAIT_TIME/NUM_CPUS
4.- AVG_SYS_TIME = Es el cálculo de SYS_TIME/NUM_CPUS
5.- AVG_USER_TIME = Es el cálculo de USER_TIME/NUM_CPUS

6.- BUSY_TIME = Es un tiempo equivalente a %usr + %sys en un comando sar , la diferencia está que el comando sar lo expresa en porcentajes y acá se expresa en unidades.
7.- IDLE_TIME = Es un tiempo equivalente a %idle en un comando sar, la diferencia está que el comando sar lo expresa en porcentajes y acá se expresa en unidades.
8.- IOWAIT_TIME = Es un tiempo equivalente a %wio en un comando sar, la diferencia está que el comando sar lo expresa en porcentajes y acá se expresa en unidades.
9.- SYS_TIME = Es un tiempo equivalente a %sys en un comando sar, la diferencia está que el comando sar lo expresa en porcentajes y acá se expresa en unidades.
10.- USER_TIME = Es un tiempo equivalente a %usr en un comando sar, la diferencia está que el comando sar lo expresa en porcentajes y acá se expresa en unidades.

%usr : Es el porcentaje de tiempo de la CPU que es gastada en procesos de usuarios, como aplicaciones , shell scripts o interactuando con el usuario
%idle : Es el porcentaje de tiempo de la CPU en que no hay ninguna actividad .
%wio : Es el porcentaje de tiempo de la CPU en que se está a la espera de una lectura o escritura de un bloque en sistema operativo, por ejemplo, tratando de leer un disco.
%sys : Este porcentaje de tiempo de uso de la CPU está relacionado a la ejecución de las tareas de Kernel (S.O.).


Esta información puede ser obtenida con el comando sar, ejemplo sar -u 1 10 , quiere decir que sacará estadísticas de sistema operativo cada 1 segundo , 100 repeticiones.

Salida de referencia :

$ sar -u 1 10

HP-UX Poseus B.11.31 U ia64 08/26/13

13:00:46 %usr %sys %wio %idle
13:00:47 89 6 5 0
13:00:48 81 4 15 0
13:00:49 78 13 9 0
13:00:50 78 21 1 0
13:00:51 76 22 2 0
13:00:52 85 13 2 0
13:00:53 88 7 5 0
13:00:54 75 11 13 1
13:00:55 61 8 29 2
13:00:56 57 4 35 4

Average 77 11 12 1


11.- LOAD = Significado no es claro, por ende se deja de lado en los análisis (incluso esto aparece en las notas oficiales de Oracle)

12.- OS_CPU_WAIT_TIME = El tiempo de espera en las colas de ejecución (dato no claro de acuerdo a las notas de Oracle)
13.- RSRC_MGR_CPU_WAIT_TIME = Tiempo de espera en los Resource Manager
14.- PHYSICAL_MEMORY_BYTES = Total de memoria usada
15.- NUM_CPUS = Número de CPUs reportadas por el Sistema Operativo

Casi todas las cantidades expresadas están en centésimas segundos...por ende si se requiere cambiar para llevar a porcentajes, se puede hacer de la siguiente forma.

ELAPSED TIME = SYS_TIME + USER_TIME + IDLE_TIME + IOWAIT_TIME

O sea

ELAPSED TIME = 39948702 + 6304516 + 74707066 + 0
ELAPSED TIME = 120960284


El cálculo de "ELAPSED TIME" debe ser muy parecido a la cantidad de segundos que fueron contemplados dentro del informe de AWR, esto lo podemos ver al inicio del reporte

Snap Id Snap Time Sessions Cursors/Session
Begin Snap: 41607 05-Aug-13 00:00:24 1913 3.0
End Snap: 41628 05-Aug-13 21:00:19 51 3.3
Elapsed: 1,259.91 (mins)
DB Time: 1,116.03 (mins)

"ELAPSED TIME" = (Cantidad de minutos desde el Snap inicial al final) * 60 seg. por minuto * Número de CPUs
"ELAPSED TIME" = 1259.91 * 60 * 16
"ELAPSED TIME" = 1209513.6


Como ya tenemos "ELAPSED TIME" derivado del cálculo de SYS_TIME + USER_TIME + IDLE_TIME + IOWAIT_TIME , podemos realizar los cálculos del porcentaje...

ELAPSED TIME = 120960284


Ejemplo

%busy ={(BUSY_TIME / "ELAPSED TIME" )} * 100
%busy ={([USER_TIME + SYS_TIME] / "ELAPSED TIME" ) } * 100
%busy = {([6304516 + 39948702] / 120960284)} * 100
%busy = {46253218 / 120960284} * 100
%busy = 0.38 * 100
%busy = 38


En Oracle 12c , se agrega un nuevo bloque de datos en el AWR, la información que aquí aparece es similar a la salida del comando "sar -u" y muestra la carga que tuvo la base de datos
a nivel de CPU

Espero les sirva

by Ligarius
26.08.13. 16:00:12. 726 words, 6348 views. Categories: Tuning / Performance, Oracle 12c ,