Tópicos Especiales en Evaluación de Desempeño Evaluación de Desempeño de Sistemas Informáticos Introducción Prof. Mariela J. Curiel H. M. Curiel 1 - Definiciones - Desempeño: Cuán bien hace un sistema informático el trabajo que se supone que tiene que hacer. - Análisis de Desempeño: Combinación de medidas, interpretación y comunicación de la capacidad de un sistema M. Curiel 2 ¿ Para qué sirve la evaluación del desempeño ? El desempeño es un criterio clave en el diseño, adquisición y uso de sistemas de computación. La meta es lograr el mayor desempeño al menor costo. Para evaluar el desempeño de los sistemas se necesita un conocimiento básico de la terminología y ciertas técnicas. M. Curiel Mariela J. Curiel H. 3 1 Tópicos Especiales en Evaluación de Desempeño ¿ Para qué sirve la evaluación del desempeño ? Comparar dos o más sistemas Aceleracion = Tx Ty Determinar el impacto de agregar/eliminar un componente Determinar el valor óptimo de uno o varios parámetros (tuning). Encontrar el dispositivo cuello de botella. M. Curiel 4 Ejemplo de saturación del CPU M. Curiel 5 ¿ Para qué sirve la evaluación del desempeño ? Performance Debugging Caracterizar la carga del sistema. Determinar el tiempo que falta para que nuestros sistemas se saturen. Predecir el desempeño con una carga futura M. Curiel Mariela J. Curiel H. 6 2 Tópicos Especiales en Evaluación de Desempeño Problemas que se podrán resolver al finalizar este curso Seleccionar la técnica adecuada de evaluación de desempeño y las métricas. Seleccionar y caracterizar la carga de trabajo. Realizar medidas en forma correcta. Usar herramientas estadísticas adecuadas. Diseñar experimentos para obtener la mayor cantidad información con el menor número posible de medidas o simulaciones M. Curiel 7 Problemas que podremos resolver al finalizar este curso Realizar correctamente modelos de simulación e interpretar sus resultados. Usar modelos de colas simples para analizar el desempeño de ciertos tipos de sistemas M. Curiel 8 Técnicas de evaluación del desempeño Sistema Experimentar con Un modelo Experimentar con el Sistema real Modelo matemático Modelo Físico Analítico M. Curiel Mariela J. Curiel H. Simulación 9 3 Tópicos Especiales en Evaluación de Desempeño Técnicas de evaluación del desempeño Los métodos para evaluar el desempeño de los sistemas informáticos se pueden dividir en dos principales áreas: evaluación basada en medidas y evaluación basada en modelos. M. Curiel 10 Técnicas de evaluación del desempeño Los modelos se fundamentan, en general, en la teoría de colas y se pueden tratar mediante los métodos analíticos que proporcionan la teoría de colas, o por medio de la simulación M. Curiel 11 Técnicas de evaluación del desempeño Exit Disk1 p Enter Disk2 CPU 1-p Disk3 Disk1 1-p CPU Disk2 p Disk3 Terminals En un QNM el sistema se representa como una red de colas. Las estaciones o centros de servicio son los recursos (discos, CPU, etc) Los clientes son los trabajos, procesos, transacciones, o cualquier otro tipo de entidad activa. M. Curiel Mariela J. Curiel H. 12 4 Tópicos Especiales en Evaluación de Desempeño Técnicas de evaluación del desempeño Con los modelos analíticos se busca predecir el comportamiento del sistema resolviendo alguna clase de algoritmo o fórmula cerrada (exacta o aproximada) En la simulación se desarrolla un programa que imita el comportamiento en el tiempo del sistema bajo estudio, basándose en sus estados y transiciones. M. Curiel 13 Factores que influyen en la selección de la técnica de evaluación Modelo Analítico Flexibilidad Alto Simulación Medidas Alto Bajo Costo Bajo Medio Alto Credibilidad Bajo Medio Alto Precisión Bajo Medio Alto M. Curiel 14 Factores que influyen en la selección de la técnica de evaluación Etapa del ciclo de vida del desarrollo del software. Tiempo disponible. Herramientas disponibles. Nivel de precisión deseado. Costo. Credibilidad de los resultados. M. Curiel Mariela J. Curiel H. 15 5 Tópicos Especiales en Evaluación de Desempeño Ejemplo t1 = time(); buscarCache(); t2 = time(); T = t2 – t1; if encontro break; Else { t1 = time() buscarMemoria(); t2 = time() T = T + (t2 – t1) } T = htc + (1 – h)tm tc = tiempo de acceso al cache tm = tiempo de acceso a la memoria h = hit ratio 1 – h = miss Modelo Analítico Simulación M. Curiel 16 Definiciones Métricas: valor usado para describir el desempeño de un sistema. Parámetros: Todo lo que afecta las métricas. Factores: Es un conjunto reducido de los parámetros. M. Curiel 17 Tipos de métricas Para cada servicio hay varias salidas posibles: Se prestó el servicio correctamente: Métricas de rapidéz Se prestó incorrectamente: Es útil clasificar los errores y determinar las probabilidades de ocurrencia. Métricas de confiabilidad No se prestó el servicio: Es útil clasificar las fallas y determinar las probabilidades de cada falla. Métricas de disponibilidad. M. Curiel Mariela J. Curiel H. 18 6 Tópicos Especiales en Evaluación de Desempeño Métricas usadas comúnmente Externas Tiempo de Respuesta: es el intervalo de tiempo que transcurre entre la solicitud de un usuario al sistema y la respuesta de este último. Throughput: es la tasa a la cual el sistema puede atender las peticiones. Capacidad: Máxima cantidad de trabajo útil que se puede realizar por unidad de tiempo. M. Curiel 19 Métricas usadas comúnmente Internas Longitud de Cola: es el número de clientes (transacciones, mensajes, etc.) esperando por recibir o recibiendo un servicio. Utilización de los dispositivos: es la fracción de tiempo en la que un recurso está ocupado sirviendo peticiones. Tiempo de servicio: tiempo que tarda un dispositivo en servir una petición M. Curiel 20 Tiempo de Respuesta Capacidad Teórica 1.0 throughput 0.8 Knee capacity 0.6 R 0.4 Nivel aceptable 0.2 0.0 0 Response Time Capacidad Efectiva 2 4 6 8 10 Troughput (tps) Load M. Curiel Mariela J. Curiel H. 21 7 Tópicos Especiales en Evaluación de Desempeño Tiempo de Respuesta Tiempo de respuesta Def 2 Tiempo de respuesta Def. 1 Tiempo de reflexión tiempo Usuario Introduce la peticion Sistema comienza a procesar la petición Sistema Sistema comienza a Termina responder de responder Usuario Introduce la peticion M. Curiel 22 Métricas usadas comúnmente Confiabilidad: se mide usualmente como la probabilidad de error o el tiempo medio entre errores. Disponibilidad: es la fracción de tiempo que el sistema está disponible para atender las peticiones de los usuarios. M. Curiel 23 Clasificación de las métricas Mientras más alto el valor, mejor: HB (Higher is better). Ejm. el throughput Mientras más bajo es el valor, mejor LB (Lower is better). Ejm. El tiempo de respuesta. Nominal es mejor NB (Nominal is best): No se desean ni valores altos ni bajos para estas métricas. Ejm. La utilización. M. Curiel Mariela J. Curiel H. 24 8 Tópicos Especiales en Evaluación de Desempeño Características de una buena Métrica Linealidad Confiabilidad Repetibilidad Facilidad de medir Consistencia M. Curiel 25 ¿Cómo se establecen los requerimientos de desempeño? Se deben establecer de forma precisa, evitando afirmaciones vagas tales como: Los tiempos de respuesta deben ser satisfactorios para los usuarios finales. Algunos paquetes se pueden perder La disponibilidad debe mejorar M. Curiel 26 ¿Cómo se establecen los requerimientos de desempeño? Se deben establecer metas específicas, tales como: - El tiempo medio entre fallas debe exceder las 10000 horas. - El servidor de archivos debe tener una disponibilidad de 98%. - La probabilidad de perder un paquete debe ser menor al 1%. M. Curiel Mariela J. Curiel H. 27 9 Tópicos Especiales en Evaluación de Desempeño ¿Cómo se establecen los requerimientos de desempeño? Realistas: puedan lograrse con la tecnología y un diseño sensato. Razonables: los objetivos son una consecuencia directa o indirecta de los requerimientos del negocio. Cuantificables: deben ser expresados en términos numéricos Medibles M. Curiel 28 Pasos a seguir en un estudio de evaluación del desempeño Definir el sistema bajo estudio y establecer las metas Listar los servicios y las salidas Seleccionar las métricas Realizar una lista de los parámetros Seleccionar los factores a estudiar M. Curiel 29 Pasos a seguir en un estudio de evaluación del desempeño Seleccionar la técnica de evaluación a utilizar Seleccionar la carga de trabajo Diseñar los experimentos Analizar e interpretar los datos Presentar los resultados M. Curiel Mariela J. Curiel H. 30 10 Tópicos Especiales en Evaluación de Desempeño ¿ Para qué sirve la evaluación del desempeño ? Comparar dos o más sistemas Aceleracion = Tx Ty Determinar el impacto de agregar/eliminar un componente Determinar el valor óptimo de uno o varios parámetros (tuning). Encontrar el dispositivo cuello de botella. M. Curiel 31 Comparar Sistemas Una manera sencilla de comparar el rendimiento de diversos sistemas informáticos es utilizar como medida de desempeño el tiempo de ejecución de un programa o un conjunto de programas (carga de prueba) El computador más rápido es el que ejecutará el programa en menor tiempo. Los resultados dependen de la carga M. Curiel 32 Comparar Sistemas Todos los sistemas (hw o sw) tienen un costo. Resulta muy útil relacionar el rendimiento del sistema con el coste. M. Curiel Mariela J. Curiel H. 33 11 Tópicos Especiales en Evaluación de Desempeño Comparar Sistemas Relación entre rendimientos - Resulta interesante decir que el rendimiento de un computador es el inverso del tiempo que tarda en ejecutar un programa - Cuanto más rápido se ejecute el programa, más alto será el rendimiento del computador. M. Curiel 34 Comparar Sistemas Ty Tx Si Tx < Ty, el computador X tarda menos tiempo en ejecutar el Programa. X es más rápido que Y. Cuántas veces más rápido? M. Curiel 35 Comparar Sistemas Aceleración = Ty Tx A, Ar , ΔA La aceleración representa el incremento de rendimiento de una Máquina respecto de la otra. “ X es tantas veces mejor que Y ” X es un n% más rápido que Y M. Curiel Mariela J. Curiel H. 36 12 Tópicos Especiales en Evaluación de Desempeño Comparar Sistemas Aceleración = Ty n = 1+ Tx 100 Tx = 36 y Ty = 40 segundos X es 40/36 = 1,11 veces más rápida que Y 1 + 0, 11 = 1 + 11/100 X es un 11% más rápido que Y M. Curiel 37 Comparar Sistemas Relación entre Costos Cx y Cy, Cx > Cy Incremento = Cx n = 1+ Cy 100 X es tantas veces más caro que Y, X es un n% más caro que Y Resulta más intuitivo hablar de incremento de costos M. Curiel 38 Comparar Sistemas Relación Costo-Rendimiento Re n dimientoy Re n dimientox vs Costox Costoy Re n dimientox 1 1 −5 = = = 4,44*10 Costox TxCostox 36 ∗ 625 Re n dimientoy Costoy = 1 1 −5 = = 4,55*10 TyCostoy 40∗ 550 En general el índice que se utilice para expresar el rendimiento depende de cada estudio en particular. M. Curiel Mariela J. Curiel H. 39 13 Tópicos Especiales en Evaluación de Desempeño La ley de Amdahl Acota, de una manera muy sencilla, el incremento de prestaciones que se obtiene en un sistema como consecuencia de la mejora de una o varias partes del mismo. Este incremento de rendimiento dependerá de la calidad de las mejoras efectuadas, como del tiempo en que éstas se utilicen. Podemos decir que este incremento de prestaciones dará la medida de cómo un computador rinde, en relación con un rendimiento previo, después de efectuar en él una o varias mejoras. M. Curiel 40 La ley de Amdahl Toriginal = Toriginal (1 − f ) + Toriginal f Toriginal: tiempo que tarda en ejecutarse la aplicación. - El objetivo es reducir este tiempo mejorando una de las partes del computador. - Durante la fracción de tiempo f el programa hace uso exclusivo De un recurso del sistema (por ejemplo el procesador) -Se puede expresar Toriginal como la suma de dos componentes Disjuntos: uno que utiliza el componente y otro que no. M. Curiel 41 La ley de Amdahl Toriginal Recurso no utilizado Recurso utilizado 1- f f Recurso no utilizado Recurso utilizado Tmejorado Recurso mejorado K veces M. Curiel Mariela J. Curiel H. 42 14 Tópicos Especiales en Evaluación de Desempeño La ley de Amdahl Toriginal f Tmejorado = Toriginal (1 − f ) + k El incremento de prestaciones conseguido con la mejora del recurso depende de la fracción de tiempo en que se emplea. 1 A= 1− f + f k M. Curiel 43 La ley de Amdahl La ley de Amdahl puede generalizarse fácilmente al caso en que se lleven a cabo mejoras sobre más de un A= recurso. Si se mejoran n recursos del sistema en factores k1, k2, ..kn, y cada uno de ellos se utiliza de manera exclusiva durante las fracciones f1, f2, …, fn, la mejora o aceleración obtenida se puede expresar en: n 1 n f0 + ∑ i =1 fi ki , con f0 = 1 − ∑ fi i =1 M. Curiel 44 Bibliografía Daniel Menascé. Virgilio Almeida. Larry W. Dowdy. Capacity Planning and Performance Modeling. Prentice Hall, 1994. Raj Jain. The Art of Computer Systems Performance Analysis, Wiley, 1991. David Lilja. Measuring Computer Performance. Cambridge University Press. 2000. M. Curiel Mariela J. Curiel H. 45 15