La Carga de Trabajo Definición y Selección Prof. Mariela J. Curiel H. Carga de trabajo (Workload) Definición: El término carga de trabajo se usa para designar todos los requerimientos introducidos al sistema por la comunidad de usuarios durante un período de tiempo. Por qué es importante usar modelos de la carga? Satisfacer la exigencia de reproductibilidad de los experimentos. Reducir sustancialmente la duración de cada sesión de medición con respecto a la que se requeriría para ejecutar la carga real total. Obtener una representación de la carga que sea consistente con su uso (por ejemplo, la entrada de un simulador o de un modelo analítico) 1
Por qué es importante usar modelos de la carga? Evitar problemas de privacidad y seguridad, que a veces limitan el uso de programas y datos reales en los estudios de evaluación del rendimiento. Evitar la interferencia con el funcionamiento del sistema real. Factores a tener en cuenta al momento de seleccionar la carga Servicios: El sistema se debe ver como un proveedor de servicios. El benchmark debe hacer uso exhaustivo de todos los servicios que provee el sistema. Nivel de carga: La carga de trabajo sintética podría hacer uso de los recursos del sistema en su capacidad total (mejor caso), más alla de esta capacidad (peor caso) o al nivel de carga observado en el sistema real (caso típico). Factores a tener en cuenta al momento de seleccionar la carga Nivel de detalle. La lista de posibilidades incluye: Seleccionar únicamente la petición más frecuente. Hacer una lista de varios servicios, sus características y su frecuencia. Obtener una traza del sistema real y usar esta traza como carga de trabajo. Usar el consumo promedio de los recursos. Especificar una distribución del consumo. 2
Grupo Número Promedio de procesos Frecuencia diaria Tiempo Usuario (seg) Tiempo de Sistema (seg) Uso de la Memoria (Kb) Fallos de Página 0 8.8 11805.1 0.020 0.005 1878.9 106.11 1 250.08 121.4 0.198 0.108 2425.34 266.33 2 2.25 17270.8 0.271 0.0621 11938.23 135.12 3 40.5 277.4 1.664 0.419 9539.69 1200.73 4 2.89 36.12 48.307 6.149 7174.27 755.85 5 3.5 12.83 10.256 11.134 2730.65 346.3 6 2 3.36 93.096 91.629 11899.57 661.39 7 1.57 8.71 72.918 9.854 7362.77 443.68 8 1.67 3.64 4.863 1.461 7040.48 8251.19 Clases Funcionales Comandos linux, utilities, prog. Administración Compiladores, enlazadores Programas asociados a los ambientes KDE y GNOME Web Browsers Programas asociados al correo electrónico Editores y procesadores de palabras Herramientas de monitoreo Aplicación para manipular documentos Postcripts y PDF Programas asociados al sistema de ventanas X Programas relacionados con la máquina virtual JAVA Screensavers Programas Usuarios Grupos 0,1,5 1 1,3 2,3 1 0,1,3,4,8 1,5 1,3 1,4 2,3 1,3,4,5,6,7,8 0,1 Factores a tener en cuenta al momento de seleccionar la carga Existencia de cargas de trabajo externas: Es importante determinar si el sistema se ejecutará en forma aislada o se ejecutará concurrentemente con otros sistemas no relacionados. 3
Características de un buen modelo Metas Compacto Flexible Completo Representativo Reproducible Descripción La cantidad de parámetros y datos utilizados en el modelo debe ser menor a aquellos recolectados en el sistema real. El modelo debe ser capaz de producir cargas de trabajo que sean fáciles de modificar El modelo debería representar todos los parámetros y datos que se consideren importantes en el estudio de desempeño El comportamiento del sistema bajo el modelo de la carga de trabajo debe ser similar a su comportamiento bajo la carga de trabajo real. El modelo debería generar cargas de trabajo que produzcan características similares bajo los mismos parámetros de entrada. Características de un buen modelo Representatividad La tasa de llegada de las peticiones debería ser igual o proporcional a la de la aplicación. El consumo total de cada uno de los recursos clave debería ser igual o proporcional al de la aplicación. El perfil del uso de recursos debería ser similar en el benchmark y en la aplicación. El perfil del uso de recursos se refiere a la secuencia e intensidad en la cual la aplicación usa los diferentes recursos disponibles. Representatividad de un Modelo de la Carga Modelo de la Carga Carga Real Sistema o modelo del sistema Sistema Medidas de Desempeño (Pmodel)? Medidas de Desempeño (Preal) 4
Niveles de caracterización de la carga A nivel funcional: se describen los programas o aplicaciones que componen la carga de trabajo A nivel virtual: se toma en cuenta el consumo de recursos pero únicamente a nivel lógico Orientada al consumo de recursos : a este nivel de caracterización, se describe el consumo físico de recursos por parte de la carga de trabajo Niveles de la caracterización de la Carga Bajo Dependencia del Sistema Alto funcional virtual físico Alto Nivel de Especificación Bajo Ejemplos: funcional: -comandos -transacciones -aplicaciones Lógico : - accesos a la base de datos - accesos a los archivos - Instrucciones de alto nivel Físico: - Uso de CPU - Operaciones de I/O, red. Niveles de la caracterización de la Carga Alto funcional Organiz. Por, Aplicación Orientación Geográfica virtual Nivel de Especificación físico Bajo 5
Tipos de modelos cargas de trabajo Modelos Naturales: se construyen, o usando componentes básicos de la carga real (programas extraídos de la carga real) o usando trazas de ejecución de la carga real. Modelos Artificiales: en su construcción no se usa ningún componente de la carga de trabajo real. Se construyen a partir de programas de propósito especial o parámetros descriptivos. Se dividen en ejecutables y no ejecutables. Tipos de modelos de cargas de trabajo Modelos De Carga Real Natural Artificial -Natural Híbrida - Trazas - Mix - Kernels Ejecutable -Programas Sintéticos -Benchmarks de Applic. No-Ejecutable -Valores medios -Distribuciones Estadísticas Modelos Artificiales Mezclas de instrucciones: son programas para probar la rapidez de un procesador (Gibson Mix) Kernels: son piezas de código extraídas de partes computacionalmente intensivas de un programa real.se concentran en el procesador y no en la E/S (Tree Searching, Sorting, Inversión de matrices, etc.) Programas sintéticos: son piezas de código que colocan demandas en diferentes recursos de un sistema Benchmarks de Aplicación: contienen un subconjunto representativo de funciones típicas de la aplicación que será usada (ejem. TPC-C) 6
Metodología para la caracterización de la carga Formulación Construcción Validación Fase de formulación: se determina el uso previsto del modelo, los componentes básicos de la carga, los parámetros a utilizar, el nivel de caracterización, y el criterio para evaluar la representatividad. Parámetros que caracterizan la carga Intensidad: tasa de llegadas, número de clientes, tiempo de reflexión, número de procesos ejecutándose en forma simultánea, etc. Demandas: se describen por una K-tupla (D i1, D i2,..., D ik ), donde K es el n úmero de recursos considerados y Dij es la demanda de servicio del componente de la carga i al recurso j. Fase de Formulación Ejemplo: File server - Frecuencia de distribución de cada tipo de petición (read, write, etc) - Tiempo entre llegadas. - El porcentaje de accesos a cada archivo - Tamaño de las escrituras y lecturas. 7
Metodología para la caracterización de la carga Fase de construcción: recolección de datos, división de la carga de trabajo, extracción de los componentes básicos y asignación de valores a los parámetros a los componentes del modelo. Metodología para la caracterizaciónde la carga Fase de validación: En esta fase se aplica el criterio de representatividad, si el modelo es representativo, se considera que el modelo está listo para el uso previsto. Si el modelo no es representativo, se comienza la fase de calibración del modelo. Fase de construcción Recolección de Datos. Identificar las ventanas que definirán las secciones de medidas. Monitorear y medir las actividades del sistema durante las sesiones Usar los datos recolectados para asignar valores a los parámetros que caracterizan cada componente de la carga de trabajo. 8
Fase de construcción División de la carga de trabajo Por el uso de recursos Por aplicaciones Por el tipo de objetos que se acceden Por la orientación geográfica Por clases funcionales Por unidades organizacionales Por el tipo de interacción con el sistema Se pueden hacer particiones por más de un atributo 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. A. L. Hunter. Aspects of Workload Characterization for Distributed System Models. Master Thesis. University of Toronto, 1996., V. Céspedes y M.E. Pérez. On the workload characterization of Linux processes in an academic environment. Artículo en proceso de arbitraje. 9