Está en la página 1de 62

Monitorizacin de sistemas y programas

Cmo medir el rendimiento de un sistema informtico?

Usuarios, administradores y diseadores


Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 1

Contenido
1. Introduccin
Medida por deteccin de eventos Medida por muestreo

2. Monitores de actividad
Monitores software, hardware e hbridos

3. Monitorizacin en Unix
Carga media de un sistema Herramientas de monitorizacin Anlisis con SarCheck

4. Anlisis de programas

(profiling) en sistemas Unix


Anlisis por funciones: gprof Anlisis por lneas: gcov

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

1. Introduccin
Tcnicas de medida: deteccin de eventos y muestreo

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

La medida
Carga Qu est ocurriendo?

Problema de la medida
Qu informacin? Dnde est esta informacin? Cmo se puede extraer y dnde grabarla?

El instrumento de medida puede perturbar el funcionamiento del sistema

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Tcnicas de medida
Cmo se toman medidas del sistema?
Cada vez que ocurre un evento Cada periodo fijo de tiempo

Medida por muestreo

Medida por deteccin de eventos

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Deteccin de eventos
Estado del sistema
Contenido de todas las memorias

Ejemplos de eventos:
Inicio/fin de la ejecucin de un programa Activacin de las seales RD* y WR* de memoria Acierto/fallo en memoria cache Atencin a un dispositivo perifrico Abrir/cerrar un fichero

Evento
Provoca un cambio del estado

Volumen de informacin recogida


Depende de la frecuencia de los eventos

Ei-1
Estado i-1 Estado i

Ei

Una gran parte de los eventos (no todos) pueden ser detectados por software

Estado i+1

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Muestreo
Observacin a intervalos regulares o aleatorios
Anlisis estadstico de datos ms fcil Volumen de informacin recogida y precisin: dependen de T

Medidas

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

2. Monitores de actividad
Monitores software, hardware e hbridos

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Concepto de monitor
Herramienta diseada para observar la actividad de un sistema informtico mientras es utilizado por los usuarios
Monitor Carga

Acciones tpicas de un monitor


Observar el comportamiento Recoger datos estadsticos Analizar estos datos Mostrar los resultados
9

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Utilidad de los monitores


Administrador
Conocer la utilizacin de los recursos (deteccin de cuellos de botella) Ajustar los parmetros del sistema (sintonizacin)

Analista
Parametrizar la carga real Calcular los parmetros de entrada a modelos del sistema (analticos o simulacin)

Sistema
Adaptarse dinmicamente a la carga

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

10

Esquema conceptual de un monitor

Procesador de la informacin

Interfcie de instrumentacin

Grabacin de la informacin

Filtro o selector Intrprete de la informacin


Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 11

Atributos de los monitores


Interferencia o sobrecarga (overhead)
Diferentes grados de intrusismo Sistema informtico Monitor Sistema informtico Sistema informtico Monitor

Precisin
Calidad de la medida

Resolucin
Frecuencia de medida

mbito o dominio de medida


Monitor Qu mide

Anchura
Bits de informacin

Capacidad de sntesis de datos Coste Facilidad de instalacin y uso

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

12

Implementacin de los monitores


Software
Programas instalados en el sistema Los ms habituales

Hardware
Dispositivos externos al sistema

Hbridos
Utiliza los dos tipos anteriores Entornos muy especficos

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

13

Situacin de los monitores


Sondas electromagnticas

Sistema informtico Monitor softw are

Monitor hardw are

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

14

Monitores software
Son los ms usados Activacin Ejecucin de instrucciones Sobrecarga Implementacin
Adicin de un nuevo programa Modificacin del software a medir Modificacin del sistema operativo

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

15

Sobrecarga en un monitor software


La ejecucin de las instrucciones del monitor se lleva a cabo en el procesador del sistema monitorizado

Tiempo de ejecucin del monitor Sobrecarga = Intervalo de medida


Ejemplo de clculo
El monitor se activa cada 5 s y cada activacin del mismo usa el procesador durante 6 ms

6 10 3 s Sobrecarga = = 0.0012 = 0.12% 5s


Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 16

Monitores hardware
Instrumentos independientes (externos) del sistema a monitorizar conectados a este mediante sondas electromagnticas Ventajas
No usan recursos del sistema monitorizado Rapidez (circuitos electrnicos)

Inconvenientes
Los sistemas no facilitan la instalacin de sondas Personal especializado para su operacin Hay magnitudes no accesibles por hardware Posibles perturbaciones electromagnticas

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

17

Ejemplo de un monitor hardware


Reloj Recurso Biestable
Contador1 Contador2

Contador1 Salida biestable Contador2

Contador 2 U= Contador 1

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

18

Monitores hbridos
Parte hardware
Acta como un dispositivo de I/O que guarda, analiza y procesa la informacin enviada por la parte software

Parte software
Cdigo aadido al SO: instrucciones especiales de I/O Acta como una sonda que recoge informacin y la enva a la parte hardware
Monitor hbrido
Software

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

19

3. Monitorizacin en Unix
Herramientas de medida: time, who, w, uptime, ps, top, vmstat, df, du, hdparm, sar, mpstat, iostat Herramienta de anlisis SarCheck

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

20

time
Mide el tiempo de ejecucin de un programa
Refleja la percepcin de las prestaciones del sistema por parte del usuario
real: tiempo total usado por el sistema (tiempo de respuesta) user: tiempo de CPU ejecutando en modo usuario (user-state CPU time) sys: tiempo de CPU en modo supervisor (system-state CPU time) ejecutando cdigo del ncleo
%time quicksort real 6m 23s user 3m 50s sys 2m 10s

Tiempo de respuesta = real = 383 s Tiempo de CPU = user+sys = 360 s (94% del total) Tiempo de espera = real-(user+sys) = 23 s (6% del total) consumido en espera de I/O o en la ejecucin de otros programas
Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 21

who y w
who: quin est conectado al sistema (logged on)
fede xavi :0 pts/0 Oct 30 15:07 (console) Oct 30 17:45 (paraiso.disca.upv.es)

w: quin est conectado al sistema (logged on) y qu hace


% w 1:38pm USER jaume fede xavi pperez up 4:27, 18 users, load average: 0.04, TTY FROM LOGIN@ IDLE ttyp1 kaizen.gap.upv.e 9:17am 2:02m ttyp2 10:28am 51:02 :0 songoku.disca.up 1:20pm ? ttyp3 10:02am 29:22 0.03, 0.04 JCPU PCPU 2:48 0.48s 0.14s 0.03s 7:32 ? 0.18s 0.14s

WHAT -sh rlogin ma ssh tiberio.

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

22

Carga media del sistema Unix


Estados bsicos de un proceso
En ejecucin (running process) En espera
Dispone de todo menos de la CPU (runnable process) Bloqueado en una operacin de I/O (blocked process)

La cola de procesos del ncleo (run queue) est formada por aquellos que pueden ejecutarse (runnable) Carga media (system load average): nmero medio de procesos en ejecucin y en la cola del ncleo
blocked runnable running

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

23

uptime
Tiempo que lleva el sistema en marcha y la carga media que soporta
% uptime 1:21pm

up

1 day, 4:09, 18 users,

load average: 1.04, 0.30, 0.09 ltimo minuto 15 ltimos minutos

Hora actual

Tiempo en marcha

5 ltimos minutos

Estimacin de la carga
Operacin normal: hasta 3 Muy alta: entre 4 y 7 Excesivamente alta: mayor que 10

La carga se tolera segn la configuracin de cada sistema


Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 24

Evolucin tpica de la carga media

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

25

Figuras tpicas: interpretacin?


8:00am 8:10am 8:50am 9:15am 9:40am 10:30am 11:00am 11:20am 1:00pm
load average: load average: load average: load average: load average: load average: load average: load average: load average:

1.21 37.34 19.21 13.92 10.51 8.50 8.15 7.72 6.85

0.81 9.47 16.02 15.13 13.50 10.93 9.84 9.20 7.37

0.13 3.30 7.40 8.18 8.47 8.61 8.55 8.44 7.83

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

26

Cmo mide la carga media el SO?


Experimentos de Neil Gunther
www.teamquest.com/resources/gunther/ldavg1.shtml

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

27

ps (process status)
Informacin sobre el estado de los procesos del sistema
Es una de las herramientas ms importantes empleadas en tareas de monitorizacin Tiene una gran cantidad de parmetros

$ ps aur USER PID %CPU %MEM VSZ RSS miguel 29951 55.9 0.1 1448 384 carlos 29968 50.6 0.1 1448 384 xavier 30023 0.0 0.5 2464 1492

TTY pts/0 pts/0 pts/0

STAT R R R

START 09:16 09:32 09:27

TIME 0:11 0:05 0:00

COMMAND tetris tetris ps aur

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

28

Informacin aportada por ps


USER
Usuario que lanz el proceso

%CPU, %MEM
Porcentaje de procesador y memoria fsica usada

SIZE (o VSIZE)
Memoria (KB) de datos (no cdigo) ocupada por el proceso (non shared virtual memory)

RSS (resident size)


Memoria (KB) fsica ocupada por el proceso

STAT
R (runnable), T (stopped), P (waiting for page-in), D (waiting for disk I/O), S (sleeping for less than 20 s), I (idle for more than 20 s), Z (zombie: terminated but not died) W (swapped out), > (memory soft limit exceeded) N (running niced), < (high niced level)
Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 29

top
Carga media, procesos, consumo de memoria Se actualiza dinmicamente
8:48am up 70 days, 21:36, 1 user, load average: 0.28, 0.06, 0.02 47 processes: 44 sleeping, 3 running, 0 zombie, 0 stopped CPU states: 99.6% user, 0.3% system, 0.0% nice, 0.0% idle Mem: 256464K av, 234008K used, 22456K free, 0K shrd, 13784K buff Swap: 136512K av, 4356K used, 132156K free 5240K cached PID 9826 9831 1 2 4 5 6 7 8 11 USER PRI NI SIZE carlos 0 0 388 miguel 19 0 976 root 20 0 76 root 20 0 0 root 20 19 0 root 20 0 0 root 2 0 0 root 20 0 0 root 20 0 0 root 0 -20 0 RSS SHARE STAT LC %CPU %MEM TIME COMMAND 388 308 R 0 99.6 0.1 0:22 simulador 976 776 R 0 0.3 0.3 0:00 top 64 44 S 0 0.0 0.0 0:03 init 0 0 SW 0 0.0 0.0 0:00 keventd 0 0 SWN 0 0.0 0.0 0:00 ksoftiq 0 0 SW 0 0.0 0.0 0:13 kswapd 0 0 SW 0 0.0 0.0 0:00 bdflush 0 0 SW 0 0.0 0.0 0:10 kdated 0 0 SW 0 0.0 0.0 0:01 kinoded 0 0 SW< 0 0.0 0.0 0:00 recoved
30

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

vmstat (virtual memory statistics)


Paging (paginacin), swapping, interrupciones, cpu
La primera lnea no sirve para nada
% vmstat n 1 procs r b w swpd 0 0 0 868 0 0 0 868 0 0 0 868 0 0 0 868 0 0 0 868 0 0 0 868 6 free 8964 8964 8964 8964 8964 8968 memory swap buff cache si so 60140 342748 0 0 60140 342748 0 0 60140 342748 0 0 60140 342748 0 0 60140 342752 0 0 60140 342748 0 0 bi 23 0 0 0 0 0 io bo 7 14 0 0 2 18 system in cs 222 199 283 278 218 212 175 166 182 196 168 175 us 1 0 6 3 0 3 sy 4 7 2 3 7 8 cpu id 95 93 93 94 93 89

Procesos: r (runnable), b (I/O blocked), w (swapped out) Bloques por segundo transmitidos: bi (blocks in), (blocks out) KB/s entre memoria y disco: si (swapped in), so (swapped out) in (interrupts por second), cs (context switches)
31

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Procesos disponibles para ejecutar


6 5 4 Pp rpe oo( cdr ea ss) oru r jt ec aa r 3 2 1 0 0

1 0

1 5

2 0 In n sa td a e m e d i

2 5

3 0

3 5

4 0

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

32

Capacidad de memoria libre


1 2 4 0

1 2 0 K( Br df ee m o r) ilr a b e

1 2 0

1 8 0

1 6 0 0 5 1 0 1 5 2 0 Ie n sa td a m e d i 2 5 3 0 3 5 4 0

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

33

Interrupciones por segundo


8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0

Iuu nrd tpn es rn( co iei) on s p o e g

1 0

1 5

2 0 In n sa td a e m e d i

2 5

3 0

3 5

4 0

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

34

Utilizacin del procesador


1 0 9 0 8 0 7 0 6 0 Ury sci) oa (lrd % )od du es p e s o ( , 5 0 4 0 3 0 2 0 1 0 0 0 5 1 0 1 5 2 0 In n sa td a e m e d i 2 5 3 0 3 5 4 0
Promedios: user = 98% system = 2% idle = 0%

u s e r s y t e m il d e

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

35

Informacin sobre los discos


df (filesystem disk space usage)
$ df Filesystem /dev/hda2 /dev/hdb1 1k-blocks 9606112 12775180 Used Available Use% Mounted on 3017324 6100816 34% / 9236405 3140445 75% /home

du (file space usage)

$ du doc 160 doc/cartas 432 doc

hdparm (hard disk parameters)


$ hdparm -g /dev/hda /dev/hda: geometry = 790/255/63, sectors = 12706470, start = 0

$ hdparm -tT /dev/hda Timing buffer-cache reads: Timing buffered disk reads: 128 MB in 64 MB in 1.15 seconds =111.30 MB/sec 6.04 seconds = 10.60 MB/sec
36

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

El directorio /proc
Contiene ficheros con informacin del sistema
Configuracin Estadsticas: contadores

Ejemplos
cpuinfo meminfo interrupts devices etc.

%more /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 modelo : 5 modelo name : Pentium II (Deschutes) stepping : 2 cpu MHz : 350.807487 cache size : 512 KB fdiv_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr bogomips : 349.80

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

37

El monitor sar
sar (system activity reporter)
Muy utilizado por los administradores de sistemas Unix en la deteccin de cuellos de botella (bottlenecks) Informacin sobre todo el sistema
Actual: qu est pasando el da de hoy, o ahora mismo, al sistema Histrica: qu ha pasado en el sistema en otros das pasados
Ficheros histricos saDD, donde los dgitos DD indican el da del mes

Hace uso de contadores estadsticos del ncleo del sistema operativo ubicados en los directorios /proc y /dev/kmem

Disponibilidad en internet
http://perso.orange.fr/sebastien.godard ftp:atcomputing.nl/pub/tools/linux
Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 38

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

39

Ejemplo de salidas del monitor sar


Utilizacin de los procesadores (sistema biprocesador)
$ sar 00:00:00 00:05:00 00:10:00 ... 11:15:00 11:20:00 11:25:00 CPU all all all all all %user 0.09 0.01 0.02 0.44 0.05 %nice 0.00 0.00 0.00 0.00 0.00 %system 0.08 0.01 0.02 0.20 0.02 %idle 99.83 99.98 99.96 99.36 99.92

Actividad del sistema de entrada/salida


$ sar -b 00:00:00 00:05:00 00:10:01 00:15:00 00:20:00 tps 0.74 0.09 0.15 65.12 rtps 0.39 0.00 0.00 59.96 wtps 0.35 0.09 0.14 5.16 bread/s 7.96 0.00 0.03 631.62 bwrtn/s 3.27 0.91 1.36 162.64

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

40

Funcionamiento del monitor sar


Se basa en dos rdenes complementarias
sadc (system-accounting data collector)
Recoge los datos estadsticos (lectura de contadores) y construye un registro en formato binario (back-end)

sar
Lee los datos binarios que recoge sadc y las traduce a un formato legible por nosotros en formato texto (front-end)

contadores binarios

/dev/kmem

fichero histrico

sadc
contadores ASCII

sar pipe

Informe

/proc

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

41

Los datos sobre la actividad


Se utiliza un fichero histrico de datos por cada da Se programa la ejecucin de sadc un nmero de veces al da con la utilidad cron del sistema Unix
Por ejemplo, una vez cada 5 minutos

Cada ejecucin de sadc aade un registro binario con las datos recogidos al fichero histrico del da
%ls /var/log/sa -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root -rw-r--r-1 root root root root root root root root root root 3049952 3049952 3049952 3049952 3049952 3049952 3049952 3049952 2372320 Sep 30 23:55 sa30 Oct 1 23:55 sa01 Oct 2 23:55 sa02 Oct 3 23:55 sa03 Oct 4 23:55 sa04 Oct 5 23:55 sa05 Oct 6 23:55 sa06 Oct 7 23:55 sa07 Oct 8 18:45 sa08

Da actual

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

42

Anlisis de un ficheros histrico


Ejemplo
El fichero histrico de un da ocupa 3.049.952 bytes (unos 3 MB) La orden sadc se ejecuta cada 5 minutos
Cada hora se recogen 12 muestras Al da se recogen 24 x 12 = 288 muestras

Por tanto, cada registro ocupa 10.3 KB

-rw-r--r--

1 root root 3049952

Oct 2

23:55

sa02

Fichero sa02 (da 2 de octubre)

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

43

Parmetros de sar
Gran cantidad de parmetros
Varan de unas versiones a otras del monitor
-u -B -c -b -d -I -n -q -r -w -W -x PID Utilizacin del procesador Paginacin de la memoria virtual Creacin de procesos Transferencias con la entrada/salida Transferencias para cada disco Sistema de interrupciones Conexin de red Carga media del sistema Sistema de memoria Cambios de contexto Intercambio (swapping) Estadsticas sobre un proceso

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

44

Ejemplos de ejecucin de sar


Ejecucin interactiva
sar 2 30

Informacin recogida sobre el da de hoy


sar sar -d -s 10:00 -e 12:00 sar -A sar -r

Informacin recogida en otro da anterior


sar -f /var/log/sa/sa02 sar -p -f /var/log/sa/sa06 sar -d -s 10:00 -e 12:00 -f /var/log/sa/sa04

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

45

Actividad debida a la paginacin


5 0 4 5 4 0 3 5 3 0 Aia/ crnis tacn idin va ) p( op pg g o 2 5 2 0 1 5 1 0 5 0 1 2 : 0

1 4 : 0

1 6 : 0 H o re a d e m d ia

1 8 : 0

2 0 :

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

46

Evolucin de las pginas activas


34000 32000 30000 28000 26000 24000 22000 20000 18000 12:00

Pginas activas (activepg)

14:00

16:00 Hora de medida

18:00

20:00

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

47

Utilizacin del procesador


1 0

8 0

u s e r s y t e m ie d l

6 0 Ur se od do e( lra p) o c s %

4 0

2 0

0 1 2 : 0

1 4 : 0

1 6 : 0 H o re a d e m d ia

1 8 : 0

2 0 :

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

48

Programa SarCheck
Herramienta para
Anlisis de prestaciones Sintonizacin, planificacin de la capacidad

Sistemas Sun Solaris, HP-UX, AIX y Linux x86 Basado en el monitor sar Utiliza gnuplot para generar grficos Genera informes en formato HTML
Seccin de recomendaciones Seccin de anlisis de recursos Sumario de estadsticas, etc.

www.sarcheck.com

UNIX Performance Tuning Simplified... and Linux Performance Tuning too!


49

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

50

Ejemplo informe generado por SarCheck


RESOURCE ANALYSIS SECTION
Average CPU utilization was only 15.7 percent. This indicates that spare capacity exists within the CPU. If any performance problems were seen during the monitoring period, they were not caused by a lack of CPU power. CPU utilization peaked at 34.00 percent from 08:10:01 to 08:15:01. A CPU upgrade is not recommended because the current CPU had significant unused capacity.

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

51

Otras herramientas de S. Godard


mpstat (processors related statistics)
$ mpstat -P 1 3 5 12:07:03 CPU 12:07:06 1 12:07:09 1 12:07:12 1 12:07:15 1 12:07:18 1 Average: 1 %user 100.00 100.00 100.00 100.00 100.00 100.00 %nice %system 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 %idle 0.00 0.00 0.00 0.00 0.00 0.00 intr/s 63.00 66.00 44.00 74.00 50.00 59.40

iostat (input/output statistics)


$ iostat cpu-avg: Device: dev2-0 dev3-0 dev3-1 %user %nice %sys 3.70 0.02 0.48 tps Blq_read/s 0.00 0.00 0.55 4.53 0.01 0.00 %idle 95.81 Blq_wrtn/s 0.00 6.62 0.61

Blq_read 133 11726226 2698

Blq_wrtn 0 17108122 1590072


52

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

4. Anlisis de programas (profiling) en sistemas Unix


Anlisis por funciones: gprof Anlisis por lneas de cdigo: gcov

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

53

Anlisis de programas
Objetivo
Observar el comportamiento de los programas

Informacin que proporcionan las herramientas de anlisis


Dnde pasa la mayor parte de su tiempo de ejecucin? Cuntas veces se ejecuta una lnea de programa? Cuntas veces se llama a un procedimiento y desde dnde? Qu funciones se llaman desde un determinado procedimiento?

Herramientas disponibles en Unix


Orden gprof: orientada al anlisis de procedimientos Orden gcov: orientada al anlisis de lneas y bloques de instrucciones
Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 54

Etapas a seguir
Compilar el programa habilitando la recogida de informacin Ejecutar el programa instrumentado

Programa original

Aadir instrumentacin

Programa instrumentado

Ejecucin ms lenta porque se ha de recoger y dejar la informacin en un fichero (profile data)

Analizar la informacin contenida en el fichero de comportamiento

Datos sobre el comportamiento del programa

Ejecutar programa

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

55

Monitor gprof
Da informacin sobre el tiempo de ejecucin y nmero de veces que se ejecuta una funcin Utilizacin de gprof
Instrumentacin en la compilacin
gcc prog.c o prog pg g a

Ejecucin del programa y recogida de informacin


prog
La informacin recogida se deja en el fichero gmon.out

Visualizacin de la informacin referida a la ejecucin del programa


gprof prog > prog.gprof

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

56

Utilizacin del monitor gprof


Pasos
#include <stdio.h> #include <time.h> #include <math.h> double a=3.14,b=6.34,c=-3.03; long y; void main() { producto(); producto(); producto(); division(); division(); atangente(); } producto() {for (i=0; i<50000000; y++) c=a*b;} division() {for (i=0; i<30000000; y++) c=a/b;} atangente() {for (i=0; i<30000000; y++) c=atan(a);}
Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 57

Instrumentacin (-pg) en la compilacin Ejecucin del programa y recogida de informacin Obtencin de la informacin referida a la ejecucin del programa

% gcc bucles.c -pg -o bucles % bucles % gprof bucles > bucles.prof

Salida del monitor gprof


Each sample counts as 0.01 seconds % cumulative self time seconds seconds calls 62.79 11.12 11.12 2 20.33 14.72 3.60 1 16.88 17.71 2.99 3 self ms/call 5560.00 3600.00 996.67 total ms/call 5560.00 3600.00 996.67

flat profile
name division atangente producto

index % time [1] 100.0

self

children

called

name

call profile

0.00 17.71 main [1] 11.12 0.00 2/2 division [2] 3.60 0.00 1/1 atangente [3] 2.99 0.00 3/3 producto [4] ------------------------------------------------------------11.12 0.00 2/2 main [1] [2] 62.8 11.12 0.00 2 division [2] ------------------------------------------------------------3.60 0.00 1/1 main [1] [3] 20.3 3.60 0.00 1 atangente [3] ------------------------------------------------------------2.99 0.00 3/3 main [1] [4] 16.9 2.99 0.00 3 producto [4] ------------------------------------------------------------Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas 58

Opciones disponibles de gprof


Opciones de compilacin (gcc)
Informacin sobre funciones: pg Informacin lnea a lnea del cdigo fuente: g Informacin por bloques de instrucciones: a

Opciones de obtencin de informacin (gprof)


Predeterminados: p (flat profile) q (call profile) Informe sin explicaciones: b (brief) Informe por lnea de cdigo: l Informe por bloque: A Un largo etctera

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

59

Monitor gcov
Aporta informacin sobre el nmero de veces que se ejecuta una lnea de cdigo Utilizacin de gcov
Instrumentacin en la compilacin
gcc prog.c o prog fprofile-arcs ftest-coverage

Ejecucin del programa y recogida de informacin


prog
La informacin recogida se deja en varios ficheros

Visualizacin de la informacin referida a la ejecucin del programa


gcov prog.c (genera el fichero prog.c.gcov)

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

60

Salida del monitor gcov


void main() { 1 1 1 1 1 1 1 producto(); producto(); producto(); division(); division(); atangente(); } producto() { for (i=0;i<50000000;i++) c=a*b; } division() { for (i=0;i<30000000;i++) c=a/b; } atangente() { for (i=0;i<30000000;i++) c=atan(a); } 61

%gcc o bucles.c o bucles fprofile-arcs ftestcoverage %prog %gcov bucles.c 100.00% of 16 source lines executed in file bucles.c Creating bucles.c.gcov

150000003 150000000 3 60000002 60000000 2 30000001 30000000 1

bucles.c.gcov

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

Opciones disponibles de gcov


Frecuencias de salto en instruccions de salto: b (branch) Informe por funciones: f
%gcc o bucles.c o bucles fprofile-arcs ftest-coverage %gcov -f -b bucles.c 100.00% of 7 source lines executed in function main No branches in function main 100.00% of 7 calls executed in function main 100.00% of 3 source lines executed in function producte 100.00% of 3 branches executed in function producte 33.33% of 3 branches taken at least once in function producte 100.00% of 1 calls executed in function producte ... 100.00% of 9 branches executed in file bucles.c 55.56% of 9 branches taken at least once in file bucles.c 100.00% of 12 calls executed in file bucles.c Creating bucles.c.gcov.

Evaluacin y modelado del rendimiento de los sistemas informticos: Monitorizacin de sistemas y programas

62

También podría gustarte