Evaluación de rendimientos de sistemas

40
1 Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento Introducción a la evaluación del rendimiento Usuarios, administradores y diseñadores Obtener el rendimiento más alto con el coste más pequeño

Transcript of Evaluación de rendimientos de sistemas

Page 1: Evaluación de rendimientos de sistemas

1Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Introducción a la evaluación del rendimiento

Usuarios, administradores

y diseñadores

Obtener el rendimiento más alto con el coste

más pequeño

Page 2: Evaluación de rendimientos de sistemas

2Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

1. Introducción a la evaluaciónLa carga

Medidas de rendimiento

Variables que afectan al rendimiento

2. Técnicas de evaluaciónMonitorización de sistemas

Referenciación (benchmarking)

Modelado

3. Comparación de prestaciones y costeAceleración del rendimiento

Incremento del coste

4. Límites en la mejora de rendimiento

Ley de Amdahl

Ley de Gustafson

Ejemplos de aplicación

Contenido

Page 3: Evaluación de rendimientos de sistemas

3Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

1. Introducción a la evaluación

¿Qué interés tiene la evaluación?

¿Qué variables reflejan el rendimiento?

¿Qué afecta al rendimiento?

Page 4: Evaluación de rendimientos de sistemas

4Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

¿Por qué evaluar el rendimiento?

Los computadores tienen un precio que dependen de los costes de diseño y de fabricación

Hace falta relacionar precio y calidad– Comprador: “este computador cuesta el doble que el otro,

pero... ¿es el doble de rápido?”– Diseñador: “esta decisión de diseño incrementa el precio de

fabricación, pero... ¿incrementa la calidad y velocidad del producto en la misma o mayor proporción?”

El análisis de prestaciones y precios (costes) es un mecanismo que permite elegir entre productos

Terminología básica sobre rendimiento (performance)– Rendimiento, prestaciones, desempeño (Latinoamérica)

Page 5: Evaluación de rendimientos de sistemas

5Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

El papel del rendimiento es importante

Page 6: Evaluación de rendimientos de sistemas

6Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

¿En qué consiste la evaluación?

Saber cómo el software (combinación de programas) está usando el hardware de una máquina: comportamiento

Carga

¿Tiene un diseño adecuado?¿Cuál es su rendimiento?¿Puede rendir mejor?¿Cómo puede rendir mejor?

Varía con el tiempo

Page 7: Evaluación de rendimientos de sistemas

7Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

¿Para qué sirve la evaluación?

Optimizar el diseño de un sistema informático– Evaluación del impacto de diferentes opciones

Seleccionar un sistema informático– Relación rendimiento/precio

Ajustar un sistema informático (system tuning)– Variación del software/hardware para mantener el máximo

rendimiento

Predecir la carga máxima aceptable (capacity planning)– ¡El rendimiento siempre depende de la carga!

Page 8: Evaluación de rendimientos de sistemas

8Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

La carga y la evaluación

Carga (load): conjunto de tareas que ha de hacer un sistema– Programas, datos y órdenes de los usuarios

Carga de prueba (workload)– Carga empleada en un estudio de evaluación

Variables que reflejan la carga– Número de programas simultáneos en ejecución– Accesos por unidad de tiempo a un servidor de páginas web– Peticiones por unidad de tiempo a una base de datos

Page 9: Evaluación de rendimientos de sistemas

9Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Adaptación a la carga: el mito

Un computador no es bueno ni malo per se, sino que se adapta mejor o peor a un tipo determinado de carga

Computadores adaptados a cargas específicas– Servidores web– Servidores de bases de datos– Servidores de ficheros– Computadores personales– Multiprocesadores– Multicomputadores– Etc.

Page 10: Evaluación de rendimientos de sistemas

10Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Cómo se ve la actividad de un sistema

Vistas del sistema– Interna: administrador, diseñador– Externa: usuario

Magnitudes medibles– Consumo de tiempo– Utilización de dispositivos o recursos– Trabajo hecho por el sistema o por algún componente

Parámetros(configuración)

Medidascuantitativas

Carga

Page 11: Evaluación de rendimientos de sistemas

11Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Medidas de rendimiento

Tiempo de respuesta (response time)– Tiempo total desde el principio hasta el final de la actividad

• Tiempo de ejecución de un programa (s)

• Tiempo de acceso a un disco (ms)

Productividad (throughput)– Cantidad de trabajo hecho por unidad de tiempo

• Programas ejecutados por hora

• Páginas por hora servidas por un servidor web

• Correos por segundo procesados por un servidor de correo

• Peticiones por minuto procesados por un servidor de comercio electrónico

¡La más fiable e intuitiva para comparar rendimientos!

Page 12: Evaluación de rendimientos de sistemas

12Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Formas canónicas del rendimiento

Page 13: Evaluación de rendimientos de sistemas

13Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Ejemplo para un servidor web

Page 14: Evaluación de rendimientos de sistemas

14Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Representación no canónica

Page 15: Evaluación de rendimientos de sistemas

15Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Ejemplos de gráficas erróneas

Page 16: Evaluación de rendimientos de sistemas

16Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

¿Qué afecta al rendimiento?

Parámetros del sistema operativo– Tipos de sistema operativo– Políticas de planificación y gestión de procesos– Configuración del sistema de memoria virtual

Componentes hardware del sistema– Calidad y velocidad

Diseño de los programas– Localidad en las referencias

Distribución de la carga (load balancing)

Page 17: Evaluación de rendimientos de sistemas

17Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

¿Cómo podemos mejorar el rendimiento?

Actualización de componentes (upgrading techniques)– Reemplazamiento por dispositivos más rápidos– Añadir nuevas unidades

Ajuste o sintonización (tuning techniques)– Parámetros del sistema operativo– Parámetros de las aplicaciones informáticas

Algunos problemas prácticos– Actualización de componentes

• Compatibilidad con los existentes o facilidad del sistema– Biprocesadores, discos agrupados en matrices (RAID)

– Sintonización• Conocimiento profundo del sistema operativo

• Posible alteración de la fiabilidad

Page 18: Evaluación de rendimientos de sistemas

18Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

2. Técnicas de evaluación

¿Cómo podemos medir (o predecir) el rendimiento de un sistema informático?

Page 19: Evaluación de rendimientos de sistemas

19Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Contextos para obtener rendimiento

Carga real

Sistema real

Modelo del sistema real

Modelo de la carga real

Índices de rendimiento

Índices de rendimiento

Índices de rendimiento

¿Son iguales?

Page 20: Evaluación de rendimientos de sistemas

20Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

¿De qué técnicas disponemos?

Métodos y herramientas para estimar los índices de prestaciones– Monitorización del sistema real

• Herramientas de medida sobre el sistema real

– Referenciación (benchmarking) con sistemas reales o modelados

• Comparación del rendimiento de sistemas

– Modelado• Reproducción del comportamiento del sistema

– Métodos analíticos (redes de colas, cadenas de Markov, redes de Petri, ...)

– Simulación discreta (CSIM, SMPL, Simula, ...)

Page 21: Evaluación de rendimientos de sistemas

21Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

3. Comparación conjunta de prestaciones y coste

Relación de rendimientos: aceleración (speedup)

Relación rendimiento/coste

Page 22: Evaluación de rendimientos de sistemas

22Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Comparación de prestaciones

Perspectiva actual– Ejecutar los programas reales (o los más precidos a los

programas reales) para evaluar el rendimiento de un sistema

El computador más rápido es aquel que ejecuta la aplicación en el tiempo más corto

X Y

Programa

Page 23: Evaluación de rendimientos de sistemas

23Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Comparación de prestaciones

“El computador X es A veces más rápido que Y”

“El computador X es un n% más rápido que Y”

Hay que evitar: – “El computador X es un n% MEJOR que Y”– “El computador Y es un n% más LENTO que X”

Y

X

X

Y

oRendimient

oRendimient

ejecución de Tiempo

ejecución de TiemponAceleració

1000.1

oRendimient

oRendimient

ejecución de Tiempo

ejecución de Tiempo

Y

X

X

Y n

Page 24: Evaluación de rendimientos de sistemas

24Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Ejemplo de comparación de prestaciones

Un programa se ejecuta en 36 s en el computador VERDE y en 45 s en el computador ROJO

El computador VERDE es 1.25 veces más rápido que el ROJO

El computador VERDE es un 25% más rápido que el ROJO

100

250.125.1

s 36

s 45

Tiempo

Tiempo

VERDE

ROJO A

Page 25: Evaluación de rendimientos de sistemas

25Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Ejemplo de comparación de costes

El computador VERDE cuesta 625 €El computador ROJO cuesta 550 €

El computador VERDE es 1.14 veces más caro que el ROJO

El computador VERDE es un 14% más caro que el ROJO

100

140.114.1

€ 550

€ 625

Coste

Coste

ROJO

VERDE C

Page 26: Evaluación de rendimientos de sistemas

26Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Comparación de rendimiento y coste

En general, resulta una cuestión muy complicadaLa bibliografía no trata este tema de una forma

sistemáticaSe suele hablar de las relaciones siguientes:

– Rendimiento/coste (a maximizar)– Coste/rendimiento (a minimizar)

Optaremos por soluciones muy sencillas

Page 27: Evaluación de rendimientos de sistemas

27Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Ejemplo comparación prestaciones/coste

En comparaciones de sistemas, idealmente, siempre interesará elegir aquellas opciones que maximicen el cociente prestaciones/coste

En este caso, el computador VERDE presenta una relación ligeramente más alta que el ROJO

5

ROJOROJOROJO

ROJO 1004.455045

1

CosteTiempo

1

Coste

oRendimient

5

VERDEVERDEVERDE

VERDE 1044.425636

1

CosteTiempo

1

Coste

oRendimient

Page 28: Evaluación de rendimientos de sistemas

28Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

4. Límites en la mejora del rendimiento

La ley de Amdahl

La ley de Gustafson

Ejemplos de aplicación

Page 29: Evaluación de rendimientos de sistemas

29Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Mejora de un sistema

La mejora de un sistema no es ilimitada– Hay que saber hacia dónde dirigir los esfuerzos de optimización

La mejora de cualquier sistema debido a un componente más rápido depende del tiempo que éste se utilice

Discusión preliminar– Un sistema tarda un tiempo Toriginal en ejecutar un programa

– Mejoramos el sistema acelerando k veces uno de sus componentes

– Este componente se utiliza durante una fracción f del tiempo

Toriginal

– ¿Cuál es la aceleración A del sistema global?

Page 30: Evaluación de rendimientos de sistemas

30Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Tiempo original vs tiempo mejorado

Recurso no utilizado Recurso utilizado

Fracción 1 f Fracción f

Recurso no utilizado Recurso utilizado

Toriginal

Tmejorado

Recurso mejorado k veces

Page 31: Evaluación de rendimientos de sistemas

31Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Ley de Amdahl (1967)

¿Cuál es la aceleración A (speedup) del sistema completo después de acelerar k veces un componente?

Casos particulares de la ley– Si f = 0 A = 1: no hay ninguna mejora en el sistema– Si f = 1 A = k : el sistema mejora igual que el componente

mejorado

original

T

T A

k

ff1TT originalmejorado

kf

fA

1

1

Page 32: Evaluación de rendimientos de sistemas

32Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Ejemplo de cálculo

La utilización de un procesador es del 60%¿En cuánto aumentará el rendimiento del sistema si se

duplica la velocidad del procesador (k=2)?

Aceleración máxima que se puede conseguir

43.1

26.0

)6.01(

1

A El rendimiento aumenta 1.43 vecesEl rendimiento aumenta un 43%

5.2.60-1

1

-1

1lím

fA

k

Page 33: Evaluación de rendimientos de sistemas

33Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Contexto de la ley de Amdahl

Artículo firmado por Gene Amdahl– “Validity of the Single Processor Approach to Achieving Large-

Scale Computing Capabilities”, AFIPS Conference Proceedings, (30), pp. 483-485, 1967.

– Se utiliza para poner de manifiesto las limitaciones de los multiprocesadores en el cómputo paralelo

– No se enuncia como ley

f = 0.5

f = 0.95

Page 34: Evaluación de rendimientos de sistemas

34Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Análisis: relación entre A, f y k

1

2

3

4

5

6

7

8

9

10

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Acc

eler

ació

glo

bal (

A)

Utilització millorada (f)

Relació entre A i f,a

k = Infinitok = 50k = 10k = 5k = 4k = 3k = 2k = 1.5

k =infinito A=2

k=infinito A=5

Utilización mejorada (f)

Ace

lera

ción

glo

bal (

A)

Relación entre A, f y k

Page 35: Evaluación de rendimientos de sistemas

35Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Generalización de la ley de Amdahl

Caso con una mejora solamente

Caso general con n mejoras

kf

fA

1

1

n

i i

in

ii k

ff

A

11

1

1

Page 36: Evaluación de rendimientos de sistemas

36Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Rendimiento de multiprocesadores

Sistema con p procesadoresAplicación a paralelizar

– Fracción secuencial = 0.10– Fracción paralelizable = 0.90

• ¿Cuál es la aceleración obtenida con 15 procesadores?

• ¿Cuál es la aceleración máxima obtenible?

25.6

1590.0

10.0

11

paralelasecuencial

p

ff

A

1010.0

11lím

secuencial

f

Ap

Page 37: Evaluación de rendimientos de sistemas

37Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

0,00

2,00

4,00

6,00

8,00

10,00

12,00

14,00

16,00

0 10 20 30 40 50

Procesadores

Acele

ració

n

Evolución de la aceleración

5% secuencial

8.82

6.25

10% secuencial

Page 38: Evaluación de rendimientos de sistemas

38Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Planteamiento de Gustafson

Amdahl enfatiza el aspecto más negativo del procesamiento paralelo

Las máquinas paralelas se usan para resolver grandes problemas (meteorología, biología molecular…)

Un computador secuencial nunca podría ejecutar un gran programa paralelo

pT

TA 1

paralela Parte1

secuencial Parte

Page 39: Evaluación de rendimientos de sistemas

39Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

La aceleración proporcional

La cantidad de trabajo que se puede hacer en paralelo varía linealmente con el número de procesadores– Con más procesadores se pueden acometer problemas de

mayor coste computacional

)1()1(

1

111 ppT

pTT

T

TA

pp

T1 = Tp

T’1

T1 (1−) T1

T1 (1−) p T1

Máquina paralela

Máquina secuencial

Page 40: Evaluación de rendimientos de sistemas

40Evaluación y modelado del rendimiento de los sistemas informáticos: Introducción a la evaluación del rendimiento

Algunas reflexiones finales

Una mejora es más efectiva cuanto más grande es la fracción de tiempo en que ésta se aplica

Para mejorar un sistema complejo hay que optimizar los elementos que se utilicen durante la mayor parte del tiempo (caso más común)

Campos de aplicación de las optimizaciones– Dentro del procesador: la ruta de datos (data path)– En el juego de instrucciones: la ejecución de las instrucciones

más frecuentes– En el diseño de la jerarquía de memoria, la programación y la

compilación: hay que explotar la localidad de las referencias• El 90% del tiempo se está ejecutando el 10% del código