Sistemas de Información

Informática. Magnitudes. Variables. Medida. Representación. Muestreo. Carga. Tñecnicas analíticas. Compiladores. Cuellos de botella. Colas: teoría

  • Enviado por: El remitente no desea revelar su nombre
  • Idioma: castellano
  • País: España España
  • 43 páginas
publicidad

ANALISIS Y DISEÑO DE SISTEMAS DE INFORMACIÓN I

TEMA 1 INTRODUCCIÓN

Evaluación del rendimiento de un sistema informático.

Intenta determinar de qué forma un conjunto de programas está utilizando un hardware.

El conjunto de programas es la carga que está procesando el hardware. Según sea la utilización se obtendrán unas prestaciones.

El concepto de prestaciones no se puede desligar de la carga. Se debe evaluar la potencia del ordenador para realizar un conjunto de tareas.

Sin embargo es necesario poder emitir un juicio sobre la eficacia de un sistema en muchas situaciones en las que nos podemos encontrar.

Dificultades

- La carga no es estática.

- Los índices que se utilizan para medir las prestaciones son diferentes según el tipo de

estudio o sistema informático.

- Siempre se intenta mejorar las prestaciones. Se debe negociar un nivel de servicio.

Las prestaciones son fundamentales en el diseño, selección, compra y utilización del sistema informático.

Uno de los principales problemas en el análisis de prestaciones es asegurar que los experimentos, se efectúan con la misma carga.

La carga real es difícil de repetir, por tanto deberemos ser capaces de repetir esa carga. Pero surge otro problema, y es que la carga que utilicemos debe representar una carga hipotética.

Si lo que pretendemos es comparar diferentes equipos, además de los problemas anteriores nos encontraremos que los instrumentos de medida y los índices que estamos utilizando pueden no ser exactamente los mismos.

Motivos de un trabajo de evaluación

- Un trabajo de evaluación de prestaciones arranca de unas necesidades. No se empieza el

trabajo sin unos objetivos.

- Se puede aplicar en todas las fases del ciclo de vida de un sistema informático:

. en el diseño de una máquina

. en el diseño del sistema informático

. en la ampliación o configuración de un sistema informático

. sintonización o ajuste. Sintonizar es equilibrar el consumo de recursos.

. caracterización y predicción de la carga

En general los estudios de prestaciones serán necesarios cuando se necesite predecir el comportamiento o mejorarlo.

Magnitudes a medir

- Tanto el usuario como el responsable de un sistema tienen su idea sobre las prestaciones o

rendimiento.

- Esta idea se basa en magnitudes o parámetros los cuales pueden tener relación con:

. consumo de tiempos

. utilización de recursos

. trabajo realizado por el sistema o por partes del mismo

Por ejemplo para los usuarios una cosa determinante suele ser el tiempo de respuesta ante un comando interactivo ligero. Para el responsable del sistema podría ser la velocidad con la que se procesan grandes trabajos batch.

Hay tres tipos de medidas a partir de las cuales se calculan índices de rendimiento:

1.- Características físicas del sistema.

2.- Condiciones operativas del sistema durante el tiempo que se está haciendo el estudio.

3.- Indices de prestaciones del sistema.

Variables perceptibles por el usuario (Variables o índices externos)

- Productividad (throughput). Para una carga dada es el trabajo útil por unidad de tiempo

- Capacidad: máxima cantidad de trabajo útil por unidad de tiempo (máxima productividad

que puede obtenerse).

- Tiempo de respuesta: tiempo en procesar un trabajo. Trabajo puede significar cosas

diferentes: transacciones, procesos, instrucciones...

Variables internas o del sistema

a) Factor de utilización: tiempo en el que un componente ha sido realmente utilizado.

b) Solapamiento de los componentes: tiempo en el que varios componentes se han utilizado

a la vez.

c) Sobrecarga (overhead): carga que se ha procesado y que no ha sido pedida explícitamente

por los usuarios.

d) Factor de carga de multiprogramación: relación entre el tiempo de respuesta de un

trabajo en un entorno de multiprogramación y en uno monoprogramado.

e) Factor de ganancia de multiprogramación: relación entre el tiempo total de ejecutar un

grupo de trabajos en multiprogramación y monoprogramación.

f) Frecuencia de fallo de página: número de fallos de página que se producen por unidad de

tiempo en un sistema de memoria virtual paginada.

g) Frecuencia de swapping: número de programas expulsados de memoria por unidad de

tiempo.

Magnitudes no relacionadas directamente con las prestaciones

- Fiabilidad: probabilidad de funcionamiento correcto en un intervalo de tiempo.

- Disponibilidad: probabilidad de que en un instante pueda estar funcionando.

- Seguridad: que funcione correctamente sin perjudicar a nadie o sufra averías en las que no

se comprometa a nadie.

- Performabilidad: en sistemas que siguen funcionando con fallos, probabilidad de mantener

un nivel de prestaciones.

- Facilidad para el mantenimiento.

Carga de prueba

- Para evaluar el sistema hay que hacerlo funcionar bajo una carga.

- Esta carga debe representar la carga real (el problema que tiene es que es muy variable,

quieres hacer unas modificaciones y la carga real que tienes en un momento no la tienes en

otro).

- Carga de prueba: la utilizada para tomar las medidas. Debe ser representativa y

reproducible, puede ser real o sintética.

- La carga de prueba o de test suele formarse por componentes de carga.

En realidad se suele usar carga sintética porque permite poder experimentar y reproducir situaciones a nuestro gusto y sin tener que modificar el sistema real. En cambio en muchos casos hay que preocuparse de justificar si esa carga sintética es representativa de la situación o carga que queremos reproducir.

Para comprobar esto último habrá que medir unas magnitudes para que podamos compararlas con las obtenidas bajo carga sintética.

Magnitudes para los componentes de la carga

- Tiempo de CPU por trabajo.

- Número de operaciones de E/S por trabajo. Conviene desglosarlo por tipo de dispositivos.

- Prioridad.

- Memoria.

- Localidad de referencias: tiempo en el que las referencias permanecen en una página.

Magnitudes para el conjunto de la carga

- Tiempo ente llegadas, entre dos peticiones.

- Frecuencia de llegada, inversa del tiempo entre llegadas.

- Distribución de los trabajos: proporción de los diferentes componentes de carga.

- Para cargas conversacionales:

-tiempo de reflexión del ususario: tiempo que el usuario de un terminal de un sistema

interactivo necesita para generar una nueva petición al sistema.

- número de usuarios: número de usuarios interactivos que trabajan simultáneamente

sobre el mismo sistema en un instante dado.

- intensidad del usuario: relación entre el tiempo de proceso de una petición y su tiempo

de reflexión.

Proposición de soluciones

Para solucionar problemas de malas prestaciones:

- Ajustar parámetros del S.O.

- Modificar políticas de gestión del S.O. Puede que partes del S.O. adquirido no se adapten a

una carga en particular.

- Equilibrado de la carga: el objetivo es que se utilice el máximo de recursos al mismo

tiempo.

- Modificación o sustitución de componentes hardware. Debe perseguir el recurso más

cargado.

- Modificación de programas. A efectuar por los usuarios, normalmente escapa al

responsable del sistema.

De lo que se trata es de mejorar el funcionamiento. Para ello habrá que determinar dónde está el problema. Luego habrá que evaluar si se puede solucionar sin cambiar componentes hardware o si hay que adquirir nuevo software.

Si se puede solucionar sin nuevas adquisiciones, intentar modificar la carga desde el punto de vista de la explotación para intentar quitar trabajo a los elementos más solicitados.

Algunos parámetros del S.O.

- Tamaño del quantum.

- Prioridad.

- Factor de multiprogramación: número máximo de trabajos que están simultáneamente en

memoria principal.

- Tamaño de la partición de memoria: cantidad fija de memoria principal asignada a una cola

de trabajos.

- Máxima frecuencia de fallo de página. Si se sobrepasa este índice se manda el proceso a

disco para que no aumente la sobrecarga.

- Indice de supervivencia de páginas. Si una página no se ha utilizado un tiempo, se puede

devolver a disco.

Técnicas en la evaluación de sistemas

- Monitorización: utilización de herramientas de medición sobre el sistema informático.

- Modelado: para evaluar el comportamiento de un sistema en el que hay elementos que no

están instalados. Se suelen implementar sobre la teoría de colas y resolver mediante

métodos analíticos o simulación (programa que representa el comportamiento de un

sistema. Se debe estar seguro de que se ha modelado bien el sistema y de que el programa

funciona bien. Se utiliza cuando no se conoce otro método).

- Benchmark: se trata de cargas utilizadas para la comparación de sistemas o configuraciones.

Los métodos analíticos se basan en leyes que relacionan distintas partes del modelo. Se llega a crear un modelo matemático. En cambio estos modelos normalmente están limitados para modelar comportamientos extraños.

En los modelos de simulación en principio se puede modelar cualquier cosa, pero suelen exigir mucho tiempo de desarrollo y ejecución. Además son muy difíciles de validar.

Las técnicas de benchmarking suelen ser las más sencillas y unas de las utilizadas, aunque muchas veces los resultados obtenidos no dependen únicamente del benchmark, o el benchmark puede no ser representativo de una carga real.

TEMA 2 HERRAMIENTAS DE MEDIDA

Monitor: herramienta utilizada para observar la actividad de un sistema informático mientras está procesando carga.

- Observan el comportamiento.

- Recogen datos estadísticos de la ejecución de los programas.

- Analizan los datos captados.

- Presentan resultados.

El resultado de una medición será distinto unas veces de otras, ya que, normalmente, no es posible repetir las mismas condiciones de carga y en los mismos instantes. Por ello se habla de monitorización y no de medición ya que lo que estrictamente se efectúa es un seguimiento de la actividad realizada.

Utilidad:

- Un administrador puede conocer la utilización de los recursos. Puede intentar soluciones y

comprobar el resultado.

- Un usuario puede adaptar su carga a la del sistema.

- Un analista de sistemas puede utilizarlo para caracterizar la carga, y crear cargas de pruebas.

También puede servir para planificar el crecimiento de la carga. Sirve para extraer los

parámetros de los modelos.

- También hay sistemas adaptativos según las condiciones de la carga.

Características del monitor

- Sobrecarga o interferencia: consumo de los recursos necesarios para el propio monitor.

- Precisión: nivel de error que pueden llevar los datos.

- Resolución: máxima frecuencia a la que se pueden detectar y registrar los datos.

- Ambito o dominio de medida: características que es capaz de medir.

- Anchura de entrada: número máximo de unidades de información que el monitor puede

extraer en paralelo.

- Capacidad de reducción de datos: capacidad para analizar, procesar y empaquetar los datos.

- Compatibilidad: facilidad para adaptarse a otros entornos o requerimientos.

- Precio: adquisición, instalación, mantenimiento, operación.

- Facilidad de instalación: fácil de instalar y retirar.

- Facilidad de utilización: sencillo, completo y agradable.

La sobrecarga hace que el monitor consuma recursos de lo que está midiendo. Esto hace que modifique los resultados de lo que está midiendo. Ej. el programa top suele aparecer el mismo como gran consumidor entre los procesos que enseña.

Clasificación

Según su implantación:

- Monitores software, que son programas o ampliaciones del sistema operativo que acceden al

estado del sistema, informando al usuario sobre dicho estado.

- Monitores hardware, que son dispositivos electrónicos que se conectan a determinados

puntos del sistema.

- Monitores híbridos, que son una combinación de las dos técnicas anteriores.

Según su mecanismo de activación se clasifican en:

- Monitores de eventos o acontecimientos, son aquellos que se activan por la aparición de

ciertos eventos. Si el evento ocurre con frecuencia producen más sobrecarga. Se puede hacer

una traza de lo que está ocurriendo.

- Monitores de muestreo, son aquellos que se activan a intervalos mediante interrupciones de

reloj. Según la frecuencia de muestreo se llega a un compromiso entre resolución y

sobrecarga. Para evitar el sincronismo entre la evolución de los estados y los intervalos de

medida se utilizan intervalos aleatorios.

Y según su forma de presentar los resultados se clasifican en:

- Monitores en línea, van presentando datos parciales.

- Monitores batch, los datos se analizan cuando termina la ejecución del programa.

Esquema conceptual

Sistema a medir

!!!!!

Interface instrumentación

!

Filtro

!

Procesador

!

Registrador

!

Interpretador

La interfaz de instrumentación es lo que conecta al monitor con lo que está observando. Por ejemplo si al S.O. se añaden interrupciones software para detectar determinadas acciones, esas interrupciones serían la interfaz.

El selector permite hacer un registro selectivo de las muestras o variables que nos interesan.

El procesador trata las muestras seleccionadas para poderlas registrar en el formato y con la información adecuada que necesitará la memoria a que se destine y para que se pueda interpretar o analizar.

En algunos casos el analizador trabaja al mismo tiempo que el resto de elementos (on line) y en otros trabaja en diferido.

Monitores software

La activación del monitor implica la ejecución de instrucciones. Pueden ser guiados por sucesos, por muestreo o una mezcla de ambas técnicas.

Inserción del código del monitor:

- Adición de un nuevo programa, fácil de instalar y eliminar.

- Modificación del software a medir, basado en el uso de sondas software.

- Modificación del S.O., se suele utilizar para acceder a datos visibles desde el S.O.

Son programas que se ejecutan junto con los programas y en el sistema que miden.

Las sondas software son conjuntos de instrucciones que se insertan en puntos clave de un programa.

La prioridad de los monitores software deberá ser mayor que la de los elementos que deba medir. Suelen escribirse en el mismo lenguaje que el sistema operativo.

Monitor software por muestreo:

1º) Un temporizador indica el momento del muestreo.

2º) Se inhiben las interrupciones.

3º) Se toman datos sobre las actividades suspendidas o sobre el estado de ciertos elementos.

4º) Almacenar los datos.

5º) Arrancar el temporizador.

6º) Habilitar las interrupciones.

La utilización de registros temporales permite reducir el número de muestras.

La interferencia introducida se pude controlar fijando el periodo de muestreo. Este parámetro se debe establecer de forma que los datos obtenidos sean fiables para el objetivo del estudio pero que no sea tan pequeño que la interferencia introducida sea grande.

En algunos casos se pueden producir efectos de sincronismo entre fenómenos que se están midiendo y la frecuencia de muestreo. Para evitar este peligro se puede utilizar un periodo de muestreo generado aleatoriamente pero donde se puede fijar la media.

Monitores software dirigidos por sucesos:

- Por traps: código que se inserta en partes del programa para extraer información cuando se

llega a esas partes.

- Por interceptación de interrupciones: se desvía el tratamiento de una interrupción a código

del monitor donde se registran datos sobre el estado en ese momento y luego se sigue el

tratamiento de la interrupción.

Monitores hardware

Se conectan al sistema a través de sondas electrónicas.

Suelen utilizarse para índices de prestaciones de bajo nivel.

Su principal característica es que son externos al sistema que van a medir, lo que implica que:

- no utilizan recursos del sistema

- no producen interferencias

- son rápidos

Inconvenientes:

- difíciles de instalar y utilizar

- hay magnitudes que solo puede acceder el software

- pueden producir errores en el hardware

Esquema sencillo monitor hardware:

reloj

módulo contadores almacenamiento

lógico

Los monitores pueden hacerse más complejos, con procesadores y memorias RAM para procesar y grabar los datos. A su vez estos procesadores pueden tener unidades de E/S como pantallas, teclado, etc.

El caso más sencillo es una señal de reloj y una variable a medir conectadas a una puerta and, y la salida enviada a un contador. Se medirá la cantidad de pulsos que la señal está activada.

Un ejemplo de un monitor hardware puede ser una analizador lógico.

Monitores híbridos

Suelen ser software que captan acontecimientos en el sistema operativo y los envía a un módulo hardware que está conectado al bus del sistema. El envío puede ser una instrucción de E/S.

El módulo hw puede ser un procesador que graba el suceso recibido con una marca de tiempo. La información se va procesando y se puede ir representando en una pantalla conectada al procesador del monitor.

Así se disminuye la sobrecarga ya que el tratamiento del monitor se hace en otro sistema y se aumenta la rapidez gracias a tener un hw dedicado.

Se suelen usar en el diseño de nuevas arquitecturas. Algunas arquitecturas paralelas los llevan incorporados.

Comparación

Los monitores hardware:

- más caros.

- más difíciles de utilizar.

- no sobrecargan el sistema.

- tienen más resolución.

- son más portables.

- si el sistema falla pueden seguir midiendo y detectar la causa.

Dato que un monitor hardware no pude acceder: contenido de una posición de memoria.

Dato que un monitor software no pude acceder: cantidad de instrucciones máquina ejecutadas.

Los monitores software:

- pueden acceder a datos de más alto nivel.

- en principio no hay límite al tipo de datos a los que pueden acceder (mayor ámbito de

medida).

- suelen ser más baratos.

TEMA 3 REPRESENTACIÓN DE RESULTADOS

Introducción

- Toma de datos ! presentación de resultados.

- Para facilitar la interpretación ! forma gráfica.

- La representación debe ser clara, concisa, simple y fácil de utilizar.

- Se puede utilizar todo tipo de gráficos, según los datos a representar.

Tipos de variables

Cualitativas: se definen por un conjunto de subclases mutuamente exclusivas que se expresan normalmente con palabras. Pueden estar ordenadas (superordenador, miniordenador, microordenador) o no (carga científica, de ingeniería).

Cuantitativas: sus distintos niveles se expresan numéricamente. Pueden ser de dos tipos:

. Discretas: toman valores contables (ej. número de procesadores en un sistema).

. Continuas: toman valores no contables (ej. tiempo de respuesta de una operación).

Si en el eje de abcisas (x) tenemos variables cualitativas o cuantitativas discretas, conviene usar gráficos de barras.

Recomendaciones para la construcción de gráficos

- Minimizar el esfuerzo del lector.

- Maximizar la información.

- Evitar la información innecesaria.

- Seguir las pautas habituales.

- Evitar ambigüedad: identificar los datos y no mezclar muchos datos en la misma gráfica.

No se deben poner curvas de diferentes unidades y con diferentes escalas en un mismo gráfico.

La información debe evitar explicaciones.

Diagramas de Gantt

En un sistema se busca la utilización máxima de los recursos.

Para que esté bien aprovechado, los recursos se deben utilizar a la vez.

Los diagramas de Gantt permiten ver la utilización de los recursos y el solapamiento en su utilización.

Es un tipo de gráficas que es interesante para el análisis del funcionamiento de un sistema informático. En general se utiliza para visualizar temporalmente los valores que toman un grupo de variables booleanas.

CPU 60

E/S 20 20

Red 30 10 5 15

0% 20% 40% 60% 80% 100%

Gráficos de Kiviat

Permite caracterizar los problemas de forma rápida.

Se trata de un círculo donde los radios representan índices de prestaciones.

La intersección entre el radio y el círculo representa el 100%.

Normalmente el funcionamiento ideal tiene una forma determinada. De forma que al ver el gráfico se identifica rápidamente lo bien o mal que está funcionando el sistema y cuales son las partes causantes.

Normalmente se diferencian índices beneficiosos (que es bueno que tengan valores altos) de valores perniciosos como puede ser el índice de paginación el desaprovechamiento de algún recurso.

Gráfico de Kiviat, versión de Kent:

1º) Seleccionar un número par de variables a estudiar la mitad buenos índices (a mayor valor, mejores prestaciones) y la otra mitad malos índices (mejores prestaciones a menor valor).

2º) Se subdivide el círculo en tantos sectores como variables hay que representar.

3º) Se numeran los radios en sentido horario.

4º) Se asocian los buenos índices a los radios impares y los malos a los pares.

CPU ocupada

CPU supervisor Solo CPU

CPU y cualquier canal

CPU usuario

Al menos un canal activo sin solape con CPU

CPU en espera

Al menos un canal activo

En un sistema ideal, todos los índices buenos tendrían valores altos y los malos, valores muy bajos. El gráfico de Kiviat de ese sistema, tendría forma de estrella.

TEMA 4 CARACTERIZACIÓN DE LA CARGA

Introducción

Carga: demandas que realizan los usuarios de un sistema en un intervalo de tiempo.

- No se puede hablar de prestaciones sin hablar de la carga con la que se han tomado las

medidas.

- Para poder comparar diferentes sistemas y configuraciones, será imprescindible aplicarles

una carga.

Necesidad de caracterizar la carga:

- Tarea difícil debido a qué cambia con el tiempo

• Realimentación interna: sistemas adaptativos.

• Realimentación externa: introducidas por los usuarios.

Caracterización de la carga

Descripción cuantitativa según unos parámetros.

Los parámetros que describe la carga se seleccionan según los objetivos de la caracterización.

Objetivos ! técnica de estudio e instrumentos de medida de parámetros para describir la carga.

Ejemplo de parámetros para describir la carga:

- tiempo de CPU.

- operaciones de E/S.

- espacio en memoria requerido

- ficheros en disco.

- mezcla de instrucciones.

- tiempo medido de CPU entre operaciones de E/S.

- número de usuarios

Carga de prueba

Carga que se procesa durante el periodo de medida.

Para hacer estudios de comparación o de sintonización necesitaremos reproducir la misma carga. Reproducir la misma carga es difícil aunque se ejecuten los mismos programas.

Se utilizan modelos de carga:

- Más difíciles de repetir.

- A veces la carga que se modela no existe (predicciones).

Características de los modelos de carga:

- Repetible o reproducible.

- Compacto, para reducir el tiempo de ejecución.

- Compatible con el tipo de estudio y con máquinas diferentes si es un modelo de carga

ejecutable.

- Permite evitar problemas de privacidad o seguridad.

- Si no es carga real, deben ser representativos.

- Flexible, fácil de modificar para ajustarlo a variaciones de la carga a la que representa.

- Independiente del sistema; que la representatividad del modelo no varíe al cambiarlo de

sistema.

Sesión de medida

Intervalo de tiempo en el que se forman las medidas. No tiene porque ser continuo.

Normalmente habrá varias sesiones de medida. En general unas medidas estarán destinadas a datos para ajustar la carga de prueba y otras serán las medidas realmente aplicando la carga de prueba.

Utilizando varias sesiones de medida se intenta evitar que particularidades en una medida se tomen como un comportamiento general.

Representatividad de un modelo de carga

Es la precisión con que un modelo representa una carga. La carga puede representarse a distintos niveles: nivel físico, nivel virtual, nivel funcional.

El modelo deberá ser representativo atendiendo al nivel al que está asignado.

Representatividad a nivel físico

- Los modelo se caracterizan por el consumo de recursos físicos.

- Orientado al consumo de recursos físicos.

- Muy dependiente del sistema.

- Datos para el modelo fáciles de conseguir (S.O., monitores, hardware).

Las mayores aplicaciones de estos modelos son:

- estudio de sintonización.

- planificación de capacidad residual.

- diseño.

Representatividad a nivel virtual

- Consumos de recursos lógicos.

- Menor dependencia del sistema que en el modelo anterior.

- Más cercanos al usuario.

- Parámetros más difíciles de obtener.

- Se utilizan en estudios de ampliación.

- Ej. de componentes: sentencias de lenguaje de alto nivel, número de ficheros utilizados,

ordenes interactivas, espacio de memoria virtual.

Representatividad a nivel funcional

- Se trata de modelos que realizan las mismas aplicaciones que la carga a la que representan.

- Son bastante independientes del sistema.

- Es difícil diseñarlo de forma sistemática. A veces son bastante subjetivos.

- Aplicaciones: selección de equipos, planificación de la capacidad.

Cargas de test

- Real

- Sintética: utilizan extractos de carga real. Natural o híbrida.

- Artificial: no utilizan extractos de carga real

Ejecutables: Mix, Kernels, Programas sintéticos, Benchmarks

No ejecutables: Distribuciones, Modelos de colas

Carga de test real

- Barata

- Representativa

- Las sesiones de medida se deben seleccionar para que sean representativas del

funcionamiento normal o de la situación de estudio.

- La situación que se quiere reproducir puede no darse en el instante deseado.

- Poco reproducible porque es difícil que volvamos a crear la misma situación a voluntad.

- Poco flexible. (No se puede modificar la carga).

- Puede haber problemas de confidencialidad.

- No se puede usar en problemas de selección.

Se trata de la carga que realmente se está ejecutando en un sistema con todos sus usuarios y sus aplicaciones. Lo único que se tiene que seleccionar es durante cuánto tiempo se está midiendo.

Carga de test sintéticas naturales

- Subconjunto de programas extraídos de la carga real.

- Se suelen usar en estudios de ampliación, reposición y selección.

- Dificultades en la utilización de carga sintética:

Prioridades de ejecución

Parámetros diferentes en las monitorizaciones

Parámetros o ampliaciones de sistemas operativos y programas como compiladores

También se les llama benchmarks, aunque normalmente se llama benchmark a cualquier carga de test. Son programas extraídos de la carga real pero no es carga real porque los usuarios no los están utilizando para realizar trabajo útil.

Cargas de test sintéticas híbridas

- Son una mezcla de programas extraídos de la carga real y de carga artificial.

- Permiten modelar parte de carga existente y parte inexistente (ej. ampliaciones de carga,

programas confidenciales).

Un ejemplo de esta situación puede ser que se estudia la adquisición de un nuevo software pero se quiere preveer cómo responderá el sistema, el cual ya se está utilizando para una serie de tareas.

Cargas artificiales

- Pueden servir para cargar el sistema real o modelos de sistemas.

- No utilizan componentes de la carga real.

Se les llaman artificiales porque están construidas para ser modelos de carga. No son extracciones de la carga real. Hay carga artificial que es ejecutable, es decir que son programas.

MIX (mezcla) de instrucciones

Se trata de medir la frecuencia de aparición de las diferentes instrucciones. Así pues hacer un modelo representativo será hacer una secuencia de instrucciones en las que la proporción y frecuencia de aparición sean las mismas.

El problema de esta técnica es que es difícil aplicarla de forma que solo evaluemos el procesador y no otros aspectos como la gestión de memoria. Otro problema es que la comparación sólo sería válida para procesadores con el mismo juego de instrucciones.

MIX de instrucciones

- Las frecuencias dependen de la carga.

- Los tiempos dependen del procesador.

- El sumatorio de la frecuencia por la carga dará el tiempo del MIX.

- El en sumatorio según el tipo de instrucción y carga se pueden dar pesos.

- Se usaron para comparar procesadores.

- Son muy dependientes del sistema:

gestión de memoria

secuenciamiento de las instrucciones

manejo de direcciones

MIX de sentencias

- Compuesto por sentencias de lenguajes de alto nivel.

- Son más independientes del sistema pero muy dependientes del compilador.

- La frecuencia de aparición de las sentencias se puede medir:

a) Estáticamente: medir la frecuencia de aparición en los listados de los programas.

b) Dinámicamente: frecuencia con la que realmente se están ejecutando las sentencias.

- La forma dinámica es más fiable pero más costosa.

En caso de utilizarlos habría que controlar dos cosas: el grado de optimización del compilador y el tipo de librerías que se utilizan.

El problema de la medición estática es que puede haber partes de un software que sean importantes en talla pero que se ejecuten pocas veces.

La medición dinámica es más complicada porque hay que conocer las partes del programa que más se utilizan utilizando el software con diferentes datos para no representar un comportamiento muy particular.

Kernels (núcleo)

- Fragmento de un programa que representa su parte más característica.

- Son programas cerrados que tienen un consumo de recursos conocido.

- Ej. función de Ackermann, Sieve, inversión de matrices, programas de ordenación.

- Se seleccionan según su similitud con los programas de la carga real.

Hay que tener una precaución al utilizarlos. Como son una parte de una aplicación, puede que quepan enteros en una cache, con lo que los resultados pueden ser muy buenos, pero si se probase la aplicación entera serían completamente diferentes.

Programas sintéticos

- No realizan trabajo útil. Sólo consumen recursos.

- La cantidad de recursos consumidos se fija con parámetros de control:

for i:=1 to N1 do

“Consume CPU”

for i:=1 to N2 do

“Consume E/S”

- Hay parámetros de corrección y calibrado para corregir el consumo que una parte del

programa introduce en otra.

Secuencias conversacionales

- Para cargas transaccionales o conversacionales se utilizan ordenadores que simulan las

peticiones.

- Se suele utilizar el propio sistema a medir para simular esa carga.

- En una carga conversacional se suele hacer un guión que representa el comportamiento de

un usuario.

Ej. de guión:

1- Conexión al sistema

2- Editar un fichero y añadir líneas

3- Compilar

4- Editar

5- Compilar

6- Ejecutar

Tendríamos dos sistemas conectados. Uno generaría las peticiones como si fuesen los usuarios. El otro sería el sistema bajo estudio y que se estaría monitorizando para tomar las medidas.

Benchmarks

- Son programas construidos con alguna de las técnicas anteriores que producen una carga

genérica.

- Se utilizan para la comparación entre ordenadores.

- No representan una carga específica.

La ventaja de estas cargas de prueba es que se suele tomar como una carga de prueba estandar. Los fabricantes y vendedores suelen apoyar su producto con resultados al aplicar alguno de estos benchmarks.

El gran inconveniente es que estas cargas de prueba pueden ser muy poco representativas de nuestra carga.

Cargas artificiales no ejecutables

- Suelen basarse en medidas o procedimientos estadísticos que se utilizan en modelos basados

en redes de colas.

- Se resuelven mediante simulaciones y mediante modelos analíticos.

Por ejemplo en un modelo de redes de colas, la carga se caracterizará con datos como las tasas de llegadas, tiempos de utilización de cada recurso, qué recursos necesita cada cliente y cuántas veces lo visita, ....

Implementación

- Especificación: viene marcada por los objetivos del estudio de prestaciones. La

especificación dará el nivel de detalle de los componentes de la carga de test.

- Construcción: tendrá una parte de extracción de datos de la carga a representar y otra parte

de diseño en la que realmente se construye la carga de prueba.

- Validación: debe comprobar la representatividad de la carga de prueba y su validez para los

objetivos iniciales. Al realizar la carga de prueba debemos pensar de qué forma podemos

comprobar su es útil para nuestro estudio o no.

Fase de especificaciones

- Previsión del uso del modelo.

- Sesión de medida.

- Nivel de modelización.

- Componente básico de carga. La unidad de trabajo más pequeña que es considerada.

- Parámetros a utilizar. (Según el nivel de detalle y según su disponibilidad).

- Criterio para evaluar su representatividad.

Construcción

- Análisis de los parámetros. (Medidas sobre el sistema).

- Extracción de los valores representativos. De la cantidad de valores extraídos en el punto

anterior, hacer una selección.

Mediante técnicas estadísticas

Algoritmos de agrupamiento

Modelos markovianos

- Asignación de valores a los componentes del modelo. De valores representativos a

componentes ejecutables. El número de componentes aumenta la representatividad y

disminuye la compacidad.

- Reconstrucción de mezclas de componentes significativos. Reproducir situaciones que se

producen en la carga real.

Muestreo de distribuciones de cada parámetro

- Se calcula la función de distribución de cada parámetro que se haya medido.

- Se generan los componentes de la carga de test, generando una variable aleatoria que sigue

cada una de las distribuciones.

Este método de extracción de valores representativos es sencillo, en cambio presenta el inconveniente de perder la relación que hay entre los parámetros. Los diferentes parámetros los trata como distribuciones independientes pero esto es falso y se pueden generar modelos de carga poco representativos.

Muestreo de los componentes de la carga real

- Se muestrea la carga real y los parámetros de los componentes muestreados se incluyen en

el modelo de carga.

- Un inconveniente es que la probabilidad de ser muestreado es proporcional al tiempo de

ejecución.

- Se puede corregir tomando una muestra cada n componentes ejecutados.

Esta es una forma sencilla de decidir los componentes que estarán en el modelo de carga de prueba. Para que sea representativo debe haber bastantes muestras.

Los componentes del modelo se pueden construir con métodos artificiales.

Métodos de agrupamiento

- Agrupar las muestras según criterios de similitud para formar los componentes básicos de la

carga.

- Se basan en las distancias entre los elementos.

- Una nube de puntos la convertimos en un número de puntos donde cada uno de ellos

representa un grupo de muestras.

- Un paso previo a estos algoritmos consiste en normalizar los parámetros que caracterizan

cada punto de la nube:

• A partir de la media y la desviación típica:

p'ik = (pik - mk)/k i = 1...m (número de valores), k = 1...n (número de parámetros).

Media del parámetro Desviación típica