Diseño y Evaluación de Configuraciones SyntheticLoad: Mecano para construir sistemas distribuidos complejos clientes/servidor J.M. Drake 1
Objetivo de las prácticas. Gestionar la ejecución de aplicaciones complejas para que satisfagan los requisitos de throughput y tiempos de respuesta. Diseñar el despliegue de las aplicaciones en los procesadores para equilibrar las cargas y conseguir el máximo uso de la capacidad disponible. Configurar el sistema operativo de los procesadores para distribuir de forma equilibrada su capacidad de los procesadores entre las aplicaciones que lo requieren: Uso de políticas de planificación y asignación de prioridades. Configuración y dimensionamiento de los buffer. Configurar los servicios de comunicaciones de la plataforma para distribuir de forma equilibrada su anchura de banda. Uso de políticas de planificación y asignación de prioridades. Estrategias de reserva y distribución de la anchura de banda. Analizar la escalabilidad de un sistema: Como afecta el incremento o el decremento de la carga en el comportamiento temporal del sistema. 2 2
Estrategias para medir el comportamiento de los sistemas Medidas del comportamiento del sistema Medida de la carga del sistema Medida del comportamiento de temporal de la aplicaciones Medidas de nivel de uso de los recursos. Modificar la carga del sistema para comprobar su efecto sobre el comportamiento. Incrementar las frecuencia de los requerimientos. Modificar el trabajo que ejecutan las aplicaciones Incrementar las aplicaciones que se están ejecutando. 3 3
Estrategia para configurar el sistema. Pruebas y ensayos sobre el sistema real. Formulación y análisis de modelos de comportamiento. Formulación de los modelos Caracterización de la plataforma de ejecución. Caracterización de las aplicaciones. Análisis de los modelos Verificación de los resultados 4 4
Planteamiento de las prácticas Necesitamos construir sistemas complejos para sobre ellos medir, modelar y configurar. Las practicas la haremos por equipos de dos o tres alumnos y sobre sistemas distribuidos. Necesitamos disponer de aplicaciones y módulos software que nos permitan construir las aplicaciones: No es objetivo de esta asignatura el desarrollo de las aplicaciones. Sin embargo hay que conocerlas lo suficiente para modelar e instrumentar las aplicaciones. En esta sesión vamos a plantear los módulos que vamos a utilizar en la primera parte. Probablemente en las dos últimas semanas estudiaremos sistemas especiales para su estudio. 5 5
Mecano cliente/servidor Permite reproducir aplicaciones complejas cliente servidor de múltiples capas con control de todos sus parámetros: Client Serv 1 Serv 2 Serv 3 Client Serv 1 Serv2 Serv3 6 6
GUI de Cliente UNIFORME CONSTANTE!00% Frecuencia CONSTANTE UNIFORME EXPONENCIAL BIPOLAR EXPONENCIAL Frecuencia BIPOLAR 50% Frecuencia +Rango/2 Frecuencia +Rango/2 Frecuencia -Rango/2 Frecuencia -Rango/2 UDP TCP 7 7
GUI Servidor Destino1 Cliente Servidor Destino 1 Destino 2 Cliente Servidor Destino2 8 8
Práctica 1: Medida de parámetros de performance de un sistema distribuido. Objetivos: Utilizar las herramientas disponibles en Linux para medir los parámetros de características básicas de la carga de los procesadores y de la red. En función de las medidas evaluar ciertas métricas básicas del sistema. Proc_1 Server-a3 Server-a1 Proc_2 Server-a2 Proc_3 Cliente_a Server-b3 Server-b1 Cliente_b Server-b2 Ethernet 100 Mbits/s 9 9
Cliente_A: (Host: Proc_1) Gen: Const (T P =0.2 s) Load: Exp (T L =0.05 s) Mens: Const (L M =256 B) Out: (Proc_2, port:12000) Server A3: (Host: Proc_2) Input: (Port:12002) Load: Exp (T L =0.03 s) Out1:No conectada Out2: No conectada Server A1: (Host: Proc_3) Input: (Port:12000) Load: Exp (T L =0.05 s) Out1:UDP-IP(Proc_1,12002) Out2:UDP-IP(Proc_3,12004) Server A2: (Host:Proc_3) Input: (Port:12004) Load: Exp (T L =0.03 s) Out1:No conectada Out2:No conectada Proc_1 Server-A3 Server-A1 Proc_2 Server-A2 Proc_3 Cliente_A Server-B3 Server-B1 Cliente_B Server-B2 Modo: PIPE Ethernet 100 Mbits/s Server B3: (Host: Proc_1) Input: (Port:12010) Load: Unif(T L =0.55s,Rang=0.15) Out1:No conectada Out2: No conectada Server B1: (Host: Proc_2) Input:(Port:12000) Load:Unif (T L =0.5 s,rang=0.2s) Out1:UDP-IP(Proc_3,12008) Out2:UDP-IP(Proc_1,12010) Server B2: (Host: Proc_3) Input:(Port:12008) Load:Unif(T L =0.45s,Rang=0.1s) Out1:No conectada Out2:No conectada Cliente_B: (Host: Proc_3) Gen: Const (T P =2.02s) Load: Exp (T L =0.5s) Mens: Const (L M =25 KB) Out: (Proc_2, port:12006) 10 10
Medidas en el procesador Identificación de los procesos/thread del procesador de cada módulo. Tanto por ciento de utilización de los procesadores por cada módulo de la aplicación. Tanto por ciento de utilización de la aplicación. Utilización de memoria por la aplicación y por cada módulo. Estadística de los tiempos de ejecución de la CPU. 11 11
Medidas sobre la red Identificación de los tráficos de red que corresponden a las comunicaciones de cada módulo. Tanto por ciento de utilización de la red por la aplicación. Tanto por ciento de utilización de la red por cada conexión entre módulos de la aplicación. Estadística de longitudes de mensajes/paquetes que corresponden a comunicación entre módulos de la aplicación. 12 12
Validación de las medidas Analizar la concordancia entre las medidas y los valores esperados de acuerdo con la configuración de la aplicación. 13 13