View
221
Download
1
Category
Preview:
DESCRIPTION
diseño y evaluación de configuraciones
Citation preview
APUNTES DE DISEÑO Y EVALUACION
DE CONFIGURACIONES
Asignatura Optativa de 3er Curso (2º cuatrimestre)Ingeniería Técnica en Informática de Sistemas
U.N.E.D
mayo 2003
Prefacio
Estos apuntes son un resumen del libro Evaluación y explotación de sistemas informáticos.
Puigianer, R.; Serrano, J. J. y Rubio, A., Ed. Síntesis. Madrid, 1995 libro recomendado para el
estudio de la asignatura optativa Diseño y Evaluación de Configuraciones que se imparte en
el 3er Curso (2º Cuatrimestre) de la Ingeniería Técnica en Informática de Sistemas.
Indicar que la sección 3.5 de estos apuntes también es materia de examen , a pesar de
que la reducción de grafos de carga no se explica en el libro recomendado de la asignatura.
Esperamos que estos apuntes le sirvan de ayuda en el estudio de la asignatura, sin otro
particular reciba un afectuoso saludo.
El equipo docente de la asignatura
INDICE
TEMA 1: INTRODUCCION
1.1 EVALUACION DEL RENDIMIENTO DE UN SISTEMA INFORMATICO.......................1
1.2 NECESIDAD DE LA EVALUACION DE LAS PRESTACIONES..................................1
1.3 MAGNITUDES QUE SE DEBEN MEDIR......................................................................2
1.3.1 Variables externas o perceptibles por el usuario..............................................31.3.2 Variables internas o del sistema.......................................................................31.3.3 Otras magnitudes relativas al comportamiento................................................4
1.4 MAGNITUDES QUE CARACTERIZAN LA CARGA......................................................5
1.4.1 Magnitudes que caracterizan cada componente de la carga...........................61.4.2 Magnitudes que caracterizan el conjunto de la carga. .....................................61.4.3 Magnitudes que caracterizan las cargas conversacionales ............................6
1.5 MAGNITUDES PARA CONTROLAR EL COMPORTAMIENTO ..................................6
1.6 SISTEMAS DE REFERENCIA......................................................................................8
1.6.1 Sistema por lotes o batch .................................................................................81.6.2 Sistema transaccional.......................................................................................91.6.3 Sistema interactivo o por demanda..................................................................9
1.7 TECNICAS DE EVALUACION DE UN SISTEMA INFORMATICO .............................10
TEMA 2: TECNICAS DE MEDIDA Y DE PRESENTACION DE LOS RESULTADOS
2.1 HERRAMIENTAS DE MEDIDA MONITORES............................................................13
2.1.1 Introducción.....................................................................................................132.1.2 Características ................................................................................................14
2.2 CONCEPTOS DE MEDIDA........................................................................................15
2.2.1 Detección de acontecimientos........................................................................152.2.2 Muestreo .........................................................................................................16
2.3 ESTRUCTURA DEL MONITOR.................................................................................17
2.4 CLASIFICACION DE LOS MONITORES ...................................................................18
2.4.1 Monitores software ..........................................................................................20
Indice
2.4.2 Monitores hardware.........................................................................................262.4.3 Monitores híbridos ...........................................................................................282.4.4 Comparación entre monitores ........................................................................292.4.5 Monitores de ejecución de programas ...........................................................322.4.6 Monitor de contabilidad ...................................................................................32
2.5 PRESENTACIÓN DE LOS RESULTADOS...............................................................33
2.5.1 Tipos de variables ...........................................................................................332.5.2 Diagramas de Gantt........................................................................................332.5.3 Gráficos de Kiviat............................................................................................37
2.6 MONITORES DE REDES DE AREA LOCAL (LAN) ..................................................41
2.6.1 Tipos de monitores de LAN ............................................................................41
TEMA 3: CARACTERIZACION DE LA CARGA
3.1 INTRODUCCION........................................................................................................45
3.2 REPRESENTATIVIDAD DE UN MODELO DE CARGA ............................................47
3.2.1 Representatividad a nivel físico ......................................................................473.2.2 Representatividad a nivel virtual .....................................................................483.2.3 Representatividad a nivel funcional ................................................................493.2.4 Representatividad a nivel de comportamiento ...............................................50
3.3 CARGAS DE TEST O DE PRUEBA..........................................................................50
3.3.1 Cargas de test reales ......................................................................................513.3.2 Cargas de test sintéticas o reducidas ............................................................523.3.3 Cargas de test artificiales ejecutables ............................................................533.3.4 Cargas de test artificiales no ejecutables .......................................................59
3.4 TECNICAS DE IMPLANTACION DE LOS MODELOS DE LA CARGA.....................60
3.4.1 Fase de especificación ...................................................................................613.4.2 Fase de construcción......................................................................................613.4.3 Fase de validación ..........................................................................................62
3.5 ESTIMACION DE LA CARGA DE NUEVAS APLICACIONES....................................63
3.5.1 Modelo de grafos para nuevas aplicaciones ..................................................633.5.2 Simplificación de grafos de carga...................................................................64
TEMA 4: INTRODUCCION A LAS TECNICAS ANALITICAS: ANALISISOPERACIONAL
4.1 INTRODUCCION........................................................................................................71
4.2 ESTACION DE SERVICIO: VARIABLES OPERACIONALES ...................................72
4.2.1 Variables operacionales en una estación de servicio ....................................73
Indice
4.3 REDES DE COLAS....................................................................................................74
4.3.1 Redes cerradas...............................................................................................754.3.2 Redes abiertas (Sistema transaccional) ........................................................774.3.3 Redes mixtas ..................................................................................................774.3.4 Resumen comparativo....................................................................................784.3.5 Medidas operacionales en redes....................................................................78
4.4 LEYES OPERACIONALES ........................................................................................80
4.4.1 Ley del flujo de salida ......................................................................................804.4.2 Ley de la utilización .........................................................................................814.4.3 Ley del equilibrio del flujo de trabajos..............................................................814.4.4 Ley de Little .....................................................................................................824.4.5 Ley del flujo forzado.........................................................................................87
TEMA 5: ANALISIS DE LOS CUELLOS DE BOTELLA
5.1 INTRODUCCION........................................................................................................97
5.2 DETECCION Y ELIMINACION DE CUELLOS DE BOTELLA....................................98
5.3 ANALISIS DE LOS CUELLOS DE BOTELLA............................................................99
5.3.1 Carga transaccional ......................................................................................1005.3.2 Carga batch o conversacional ......................................................................102
TEMA 6: SELECCIÓN Y CONFIGURACION DE COMPUTADORES:BENCHMARKING
6.1 INTRODUCCION......................................................................................................119
6.2 DEFINICIONES Y NECESIDAD DE LOS BENCHMARKS......................................120
6.3 FACTORES QUE INFLUYEN EN EL BENCHMARKING .........................................121
6.4 ERRORES COMUNES EN EL BENCHMARKING...................................................122
6.5 BENCHMARKING GAMES........................................................................................124
6.6 DESCRIPCION DE ALGUNOS BENCHMARKS......................................................125
6.6.1 Programas LINPACK....................................................................................1256.6.2 DHRYSTONE...............................................................................................1266.6.3 WHETSTONE...............................................................................................127
6.7 UNIDADES UTILIZADAS EN BENCHMARKING.......................................................128
6.8 UN EJEMPLO DE BENCHMARK: PCW ..................................................................129
Indice
TEMA 7: MEJORA DE LAS PRESTACIONES DE UN SISTEMA: SINTONIZACION
7.1 INTRODUCCION......................................................................................................133
7.2 DEFINICION DE OBJETIVOS..................................................................................134
7.3 CARACTERIZACION DE LA CARGA.......................................................................136
7.4 SELECCION DE LA INSTRUMENTACION..............................................................136
7.4.1 Hardware .......................................................................................................1377.4.2 Software.........................................................................................................1407.4.3 Carga.............................................................................................................141
7.5 DISEÑO Y PLANIFICACIÓN DE LA SESIÓN DE MEDIDA......................................142
7.6 VALIDACION.............................................................................................................143
7.7 ESTUDIOS DE SINTONIZACION.............................................................................144
7.7.1 Equilibrar un sistema multiprogramado........................................................1447.7.2 Sintonización de un sistema interactivo........................................................152
.
Tema 1
INTRODUCCION
1
1.1 EVALUACION DEL RENDIMIENTO DE UN SISTEMA
INFORMATICO
Se define evaluación del rendimiento de un sistema informático como la medida de
como un software determinado está utilizando el hardware con una determinada carga del
sistema. Por ejemplo, para un computador se entiende por carga del sistema a una
determinada combinación de programas.
La mayor dificultad que tiene la evaluación de las prestaciones de un sistema informático
se atribuye al hecho de que la carga real de un sistema informático cambia continuamente lo
que impide poder repetir la medida al no ser que se trabaje en un entorno controlado de
carga.
Todas las actividades que forman parte del estudio del comportamiento de un sistema
se denominan de evaluación de sus prestaciones.
1.2 NECESIDAD DE LA EVALUACION DE LAS PRESTACIONES
La necesidad de evaluar las prestaciones de un sistema informático ha surgido como
una consecuencia natural del aumento de la potencia y de la complejidad de los sistemas.
Esta evaluación no es una tarea sencilla, ya que ha de tener en cuenta muchos y variados
aspectos del hardware, del software y de las aplicaciones que se han de llevar a cabo en el
sistema informático.
La evaluación de un sistema informático sirve para:
• Comprobar que el funcionamiento del sistema es el correcto. Detección y
eliminación de los denominados “cuellos de botella”.
TEMA 1: Introducción
2
• Influir en las decisiones de diseño, implantación, compra y modificación de los
sistemas informáticos. Es decir en todas las etapas de su ciclo de vida.
• Comparar un cierto número de diseños alternativos del sistema (diseñador de
sistemas).
• Análisis del sistema más adecuado para ejecutar un determinado número de
aplicaciones (administrador de sistemas).
• Planificación de la capacidad, es decir, predicción del comportamiento del
sistema con nuevas cargas.
Por lo tanto es necesario evaluar un sistema informático cuando se quiere:
n Diseñar una máquina.
n Diseñar un sistema informático.
n Seleccionar y configurar un sistema informático.
n Planificar la capacidad de un sistema informático.
n Sintonizar o ajustar un sistema informático.
n Caracterizar y predecir la carga.
El comportamiento de un sistema es muy dependiente de la carga aplicada al mismo.
Debido al crecimiento vegetativo de la carga de un sistema informático se produce una
disminución de las prestaciones del mismo. Para evitar esta disminución es necesario
ajustar o cambiar algunos de los parámetros del sistema operativo. En ciertos casos si el
sistema no se puede cambiar hay que intentar mejorar el comportamiento mediante la
modificación de la carga (programas).
1.3 MAGNITUDES QUE SE DEBEN MEDIR
Para evaluar el comportamiento de un sistema es necesario disponer de una serie de
medidas cuantitativas o parámetros que:
1) Caracterizan el comportamiento tanto del hardware como del software del
computador.
Diseño y evaluación de configuraciones
3
2) Hacen referencia a cómo el usuario (visión externa) y el responsable del
sistema (visión interna) ven su comportamiento.
Estas magnitudes o parámetros están relacionadas con tres tipos de medidas
correspondientes a:
• Consumo de tiempos.
• Utilización de recursos o dispositivos.
• Trabajo realizado por el sistema o componentes del mismo.
1.3.1 Variables externas o perceptibles por el usuario.
Productividad (Throughput), es la cantidad de trabajo útil ejecutado por unidad de
tiempo1 (u.t.) en un entorno de carga determinado. Normalmente se mide en (trabajos/hora)
o en (transacciones/segundo).
Capacidad, es la máxima cantidad de trabajo útil que se puede realizar por u.t. en un
entorno de carga determinado.
Tiempo de respuesta, es el tiempo transcurrido entre la entrega de un trabajo o una
transacción al sistema y la recepción del resultado o la respuesta.
1.3.2 Variables internas o del sistema
Factor de utilización de un componente, es el porcentaje de tiempo durante el cual un
componente del sistema informático (CPU, dispositivo de E/S, canal, etc.) ha sido realmente
usado.
Solapamiento de componentes, es el porcentaje de tiempo durante el cual dos o más
componentes del sistema han sido utilizados simultáneamente.
Overhead, es el porcentaje de tiempo que los distintos dispositivos del sistema (CPU,
disco, memoria, etc) han sido utilizados en tareas del sistema no directamente imputables a
ninguno de los trabajos en curso.
1 Por unidad de tiempo u.t. se puede entender µs, ms, s u hora.
TEMA 1: Introducción
4
Factor de carga de multiprogramación, es la relación entre el tiempo de respuesta de un
trabajo en un determinado entorno de multiprogramación y su tiempo de respuesta en
monoprogramación.
Factor de ganancia de multiprogramación, es la relación entre el tiempo total necesario
para ejecutar un conjunto de programas secuencialmente en monoprogramación y en
multiprogramación.
Frecuencia de fallo de página, es el número de fallos de página que se producen por
unidad de tiempo en un sistema de memoria virtual paginada.
Frecuencia de swapping, es el número de programas expulsados de memoria por unidad
de tiempo a causa de falta de espacio o con el fin de permitir su reorganización para
recuperar espacio en ella o para disminuir la paginación.
1.3.3 Otras magnitudes relativas al comportamiento
Fiabilidad es una función del tiempo definida como la probabilidad que el sistema trabaje
correctamente a lo largo de un intervalo de tiempo dado. Se mide por la probabilidad de fallos
por unidad de tiempo, o por el tiempo medio entre fallos.
Disponibilidad, es una función del tiempo definida como la probabilidad que el sistema
esté trabajando correctamente y por lo tanto se encuentre disponible para realizar sus
funciones en el instante considerado t.
Seguridad, es la probabilidad que el sistema esté realizando correctamente sus
funciones o parado de forma tal que no perturbe el funcionamiento de otros sistemas ni
comprometa la seguridad de las personas relacionadas con él.
Performabilidad, es una función del tiempo definida como la probabilidad que las
prestaciones del sistema estén por encima de un cierto nivel en un instante determinado.
Mantenibilidad, es la probabilidad que un sistema averiado pueda ser reparado y devuelto
al estado operacional dentro de un periodo de tiempo determinado.
Diseño y evaluación de configuraciones
5
1.4 MAGNITUDES QUE CARACTERIZAN LA CARGA
Se denomina carga de prueba a la carga usada en el estudio de las prestaciones de un
sistema informático. Se distinguen dos tipos de carga:
• Carga real, se observa en un sistema durante su funcionamiento normal. Su
principal inconveniente es que no permite repeticiones para eliminar los errores
de medición, por lo que es difícilmente utilizable como carga de prueba.
• Carga sintética esta constituida por un conjunto de programas extraídos o no
de la carga real del sistema informático que la reproduce de forma compacta.
Puede utilizarse repetidamente y puede modificarse sin afectar a la
operatividad del sistema.
En muchos sistemas la evaluación se suele realizar en un sistema distinto (pero
equivalente) al real, es decir, creándose dos sistemas paralelos.
1.4.1 Magnitudes que caracterizan cada componente de la carga.
Tiempo de CPU por trabajo, es el tiempo total de CPU necesario para ejecutar un trabajo
(programa, transacción, etc) en un sistema determinado. Es una función directa del número
de instrucciones que se ejecutan para realizar ese trabajo, del volumen de datos procesados
y de la velocidad del procesador.
Número de operaciones de E/S por trabajo, es el número total de operaciones de E/S
que requiere la ejecución de un trabajo.
Características de las operaciones de E/S por trabajo, hacen referencia al soporte (cinta,
disco, etc.) y, en el caso de discos, a la posición que ocupa el archivo sobre el que se
efectúan.
Prioridad, es la que el usuario asigna a cada uno de los trabajos que procesa el sistema.
Memoria, es la que requiere ocupar, para su ejecución, un trabajo determinado. Puede
ser constante o variable.
Localidad de las referencias, es el tiempo en que todas las referencias hechas por un
trabajo permanecen dentro de una página (segmento) o conjunto de páginas (segmentos).
TEMA 1: Introducción
6
1.4.2 Magnitudes que caracterizan el conjunto de la carga.
Tiempo entre llegadas, es el tiempo entre dos requerimientos sucesivos para un servicio
(ejecución de un trabajo o transacción) del sistema.
Frecuencia de llegada, es el número medio de llegadas de nuevas peticiones de
ejecución que se producen por unidad de tiempo. Es la inversa del tiempo entre llegadas.
Distribución de trabajos, define la proporción existente entre las ejecuciones de los
distintos trabajos que constituyen la carga.
1.4.3 Magnitudes que caracterizan las cargas conversacionales
Tiempo de reflexión del usuario, es el tiempo que el usuario de un terminal de un sistema
interactivo necesita para generar una nueva petición al sistema (tiempo de leer la respuesta
previa, de pensar en la nueva acción que se vaya a formar y de teclearla).
Número de usuarios simultáneos, es el número de usuarios interactivos que trabajan
simultáneamente sobre el sistema en un instante dado.
Intensidad del usuario, es la relación entre el tiempo de respuesta de una petición y el
tiempo de reflexión del usuario.
1.5 MAGNITUDES PARA CONTROLAR EL COMPORTAMIENTO
Algunas de las modificaciones que se pueden introducir en un sistema para mejorar su
comportamiento son:
n Ajuste de los parámetros del sistema operativo
• Tamaño del quantum, es la cantidad de tiempo de uso ininterrumpido de la
CPU que un sistema de tiempo compartido asigna a los diferentes trabajos.
Si el quantum es demasiado grande se favorece a los trabajos con mucho
uso de la CPU, mientras que si es demasiado pequeño se puede introducir
un overhead importante debido a los continuos cambios de contexto de un
programa a otro cada vez que se agota el quantum.
Diseño y evaluación de configuraciones
7
• Prioridad interna, es el nivel inicial de prioridad interna que recibe un
programa en función de la prioridad externa asignada.
• Factor de multiprogramación, es el número máximo de trabajos que están
simultáneamente en memoria principal y, por lo tanto, que tienen opción a
utilizar la CPU y los demás recursos activos del sistema. Cuanto mayor
sea este valor tanto mejor será el aprovechamiento de todos los recursos
del sistema, aunque también aumentará el overhead.
• Tamaño de la partición de memoria, es la cantidad fija de memoria principal
asignada a una cola de trabajos.
• Tamaño de la ventana, es el intervalo de tiempo durante el cual el sistema
toma medidas para determinar el conjunto de trabajo de un programa en un
entorno de memoria virtual paginada que use esa política.
• Máxima frecuencia de fallo de página, es el valor de la frecuencia de fallo
de pagina por encima del cual se produce un excesivo overhead. A partir de
este valor de frecuencia se efectúa la suspensión o swapping de alguno de
los trabajos en curso.
• Número máximo de usuarios simultáneos
n Modificación de las políticas de gestión del sistema operativo, como por ejemplo
cambiar las prioridades de las diferentes tipos de tareas.
n Equilibrado de la distribución de cargas, se pretende utilizar de la forma más
uniforme posible todos los dispositivos del sistema informático. Cuando el uso de
los mismos está desequilibrado se deben disponer los cambios necesarios para
lograr el equilibrio deseado. Este tipo de corrección acostumbra, en muchos
casos, a proporcionar mejoras espectaculares en el comportamiento del sistema.
n Sustitución o ampliación de los componentes del sistema, cuando los métodos
anteriores no funcionan se debe modificar la configuración del sistema, bien sea
sustituyendo determinados elementos por otros de mayor capacidad o rapidez, o
bien sea por aumento del número de dispositivos que constituyen la configuración
del sistema. Es importante darse cuenta de que la ampliación de la configuración
debe hacerse de tal forma que se despeje el posible cuello de botella que se pueda
TEMA 1: Introducción
8
haber detectado, ya que de lo contrario el comportamiento conjunto del sistema
ampliado no variará de forma significativa.
n Modificación de los programas, de tal forma que su ejecución promedio requiera
de menos recursos. Esto se puede conseguir bien mediante recodificación de los
caminos del programa recorridos con mayor asiduidad, o bien por un montaje que
agrupe en la misma página o segmento aquellos módulos del programa que deben
coexistir en memoria para la ejecución del programa, etc. Hay que destacar que
este método provoca la modificación de la carga del sistema, normalmente se
considera la carga como un dato del problema que no se puede modificar.
1.6 SISTEMAS DE REFERENCIA
Se distinguen tres tipos de sistemas de referencia o tipos de funcionamiento de un
sistema informático a la hora del estudio de las prestaciones y su evaluación:
n Sistema por lotes (batch).
n Sistema transaccional.
n Sistema interactivo o por demanda.
1.6.1 Sistema por lotes o batch
Básicamente consiste en que el computador ejecuta una serie de programas que
previamente el responsable del sistema deja almacenados en memoria, es dicha persona
quién decide los trabajos que deben estar en ejecución en cada instante. Por lo tanto la
planificación interna del sistema operativo está ayudada por la externa humana.
Estos trabajos realizan ciclos de uso de la CPU y de los discos de forma continua hasta
que finalizan. Algunos índices de las prestaciones de estos sistemas son los siguientes:
n Tiempo de respuesta (Turnaround time), es el tiempo que transcurre desde
que se lanza la ejecución de un trabajo hasta que se termina.
Diseño y evaluación de configuraciones
9
n Productividad medida en trabajos por u.t.
1.6.2 Sistema transaccional
Un sistema transaccional es aquél en que un conjunto de terminales remotos
conectados al sistema interaccionan con un conjunto determinado de programas, cada una
de las interacciones constituye lo que se denomina una transacción. Ejemplos: el sistema
informático de un banco, o de reserva de billetes o el que recibe medidas de un satélite.
En sistemas de este tipo, el sistema de planificación interna del sistema operativo ha de
ser capaz de gestionar las peticiones que le llegan al sistema no estando ayudado en forma
alguna por la planificación humana externa ya que desde cada terminal se tiene la sensación
de ser el dueño absoluto del sistema y se tiene la posibilidad de lanzar cualquier transacción
en cualquier instante.
Un sistema de este tipo queda definido por el flujo de transacciones que le llega, siendo
su índice de prestaciones característico el tiempo de respuesta tr
tr = tra + ten + tro
Donde:
• tra es el tiempo de reacción, que se define como el tiempo que transcurre
desde que la transacción llega al sistema hasta que comienza su
ejecución.
• ten es el tiempo de ejecución, que se define como el tiempo que transcurre
desde que el sistema comienza la ejecución de la transacción hasta que
termina.
• tro es el tiempo de retorno, que se define como el tiempo que transcurre
desde que finaliza la ejecución hasta que, eventualmente, se completa la
respuesta hacia el usuario.
1.6.3 Sistema interactivo o por demanda
Un sistema interactivo es aquél en que los usuarios acceden a él desde terminales
remotos teniendo acceso a la totalidad del sistema operativo. En estos sistemas, un usuario
TEMA 1: Introducción
10
desde un terminal, da una orden al terminal que pasa a procesarse por el conjunto
CPU+discos y transcurrido un cierto tiempo produce una respuesta en el terminal. Se
trabajará de modo interactivo de acuerdo con el siguiente ciclo:
ORDEN→RESPUESTA→ ORDEN→RESPUESTA→ ORDEN→RESPUESTA→....
En estos sistemas no existe planificación humana que ayude a la planificación del
sistema operativo, además queda definido por los siguientes índices:
n Número de usuarios que tiene conectados.
n Tiempo de reflexión de los usuarios, es el tiempo que transcurre desde que
el usuario recibe la respuesta y envía otra nueva orden.
Además los índices de prestaciones característicos son: el tiempo de respuesta y la
productividad, medida esta última en peticiones por u.t.
1.7 TECNICAS DE EVALUACION DE UN SISTEMA INFORMATICO
Se denominan técnicas de evaluación a los métodos y herramientas que permiten
obtener los índices de prestaciones de un sistema que está ejecutando una carga dada con
unos valores determinados de parámetros del sistema. Se distinguen tres tipos de técnicas:
n Monitorización. Los monitores son unas herramientas de medición que
permiten seguir el comportamiento de los principales elementos de un
sistema informático cuando éste se haya sometido a una carga de trabajo
determinada. Estas herramientas hacen un seguimiento de lo que sucede
en el sistema, es lo que se denomina como monitorización.
n Modelado. Es la herramienta que hay que utilizar cuando se trata de evaluar
el comportamiento de un sistema en el que hay algún elemento que no está
instalado. El modelado se puede realizar de dos formas:
• Métodos analíticos que proporcionan las teorías de colas. Se basan
en la resolución mediante algoritmos aproximados de las
ecuaciones matemáticas que representan el equilibrio existente en
los eventos que se producen en el sistema. Su principal
Diseño y evaluación de configuraciones
11
inconveniente es la limitación para tratar determinadas estructuras
de colas que existen en los sistemas informáticos.
• Simulación. Consiste en la construcción de un programa que
reproduce el comportamiento temporal del sistema, basándose en
sus estados y sus transiciones. Los resultados se obtienen por
extracción de estadísticas del comportamiento simulado del
sistema. Requieren de más tiempo de cálculo y esfuerzo de puesta
a punto que los métodos analíticos.
La principal dificultad del modelado reside en la obtención de datos lo
suficientemente precisos para ejecutar el modelo y obtener resultados con
un grado de aproximación adecuado.
n Benchmarking. Se trata de un método bastante frecuente de comparar
sistemas informáticos frente a una carga característica de una instalación
concreta. La comparación se realiza básicamente a partir del tiempo de
ejecución. Las principales dificultades que plantea este método están
relacionadas con la utilización de una carga que sea lo suficientemente
reducida para ser manejable y lo suficientemente extensa para ser
representativa.
TEMA 1: Introducción
12
Tema 2 TECNICAS DE MEDIDA Y DEPRESENTACION DE LOS RESULTADOS
13
2.1 HERRAMIENTAS DE MEDIDA MONITORES
Como se ha visto en el primer tema, una de las tareas más importantes en el proceso
de evaluación y/o diseño de un sistema informático es la obtención de datos que
“representen” al sistema (actual y futuro). Para ello se hace necesario el uso de
herramientas de medida denominadas monitores.
2.1.1 Introducción
Un monitor es una herramienta utilizada para observar la actividad de un sistema
informático mientras es utilizado por los usuarios y para cuantificar los resultados de dicha
observación.
En general, los monitores observan el comportamiento del sistema, recogen datos
estadísticos de la ejecución de los programas, analizan los datos recogidos y presentan los
resultados.
Se define monitorización como el seguimiento de la actividad realizada por un sistema
informático. Se ha de tener en cuenta, que en informática, puesto que no es posible repetir
las mismas condiciones de carga en los mismos instantes el resultado de una medición será
distinto unas veces de otras, es decir, no se da la repetibilidad de la medida.
La información aportada por el monitor puede ser útil para:
• El usuario y el administrador, ya que les permite conocer toda una serie de
características del sistema (capacidad, posibilidad de ampliación,
planificación, etc.).
• El propio sistema, para la realización de la adaptación dinámica de la carga.
TEMA 2: Técnicas de medida y de presentación de los resultados
14
2.1.2 Características
Se distinguen dos tipos de monitores:
n Monitores software pueden ser programas o conjuntos de instrucciones
(sondas software), capaces ambos de detectar acontecimientos y estados
del sistema.
n Monitores hardware son dispositivos electrónicos que deben conectarse a
puntos específicos del sistema (mediante sondas electrónicas) para
detectar señales que caracterizan los fenómenos que deben observarse.
La calidad de un monitor viene determinada por las siguientes características:
• Sobrecarga o interferencia. La energía del sistema consumida por el
instrumento de medida debe ser tan poca como sea posible de forma que
la perturbación introducida por el instrumento no altere los resultados de la
observación. Los monitores hardware presentan este peligro en sus puntos
de conexión, para evitarlo utilizan sondas electrónicas de muy alta
impedancia. Por otro lado los monitores software aumentan la carga del
sistema y alteran por consiguiente su comportamiento, por lo que se debe
tratar de minimizar al máximo este efecto.
• Precisión. Es el error que puede afectar al valor de los datos recogidos.
Estos errores son debidos a diferentes causas: la interferencia del propio
monitor, una incorrecta instalación o utilización, el número de dígitos para
representar la medición, etc.
• Resolución. Es la capacidad de la herramienta de separar dos
acontecimientos consecutivos en el tiempo. También se define como la
máxima frecuencia a la que se pueden detectar y registrar correctamente
los datos.
• Ambito o dominio de medida, hace referencia al tipo de acontecimientos
que puede detectar, es decir, a las características que puede observar y
medir.
• Anchura de entrada. Es el número máximo de bits que el monitor puede
extraer en paralelo y procesar cuando se produce un acontecimiento.
Diseño y evaluación de configuraciones
15
• Capacidad de reducción de datos. Es la capacidad que puede tener el
monitor de analizar, procesar y empaquetar datos durante la monitorización
para un mejor tratamiento y compresión de los mismos y para reducir el
espacio necesario para almacenar los resultados.
• Compatibilidad. El hardware y el software de monitorización debe ser
fácilmente adaptable a cualquier entorno y requerimiento de la aplicación.
• Coste (adquisición, instalación, mantenimiento, formación y operación).
• Facilidad de instalación y de utilización
2.2 CONCEPTOS DE MEDIDA
La mesurabilidad de un sistema informático se puede definir como una función de la
información que se puede obtener con un monitor y del coste de las mediciones. La
mesurabilidad de un sistema puede variar entre dos extremos, el primero la posibilidad de
poder medir cada componente individual del sistema con el nivel de detalle deseado y el
segundo la total inaccesibilidad del sistema.
Un acontecimiento es un cambio del estado del sistema, una forma de recoger datos de
determinadas actividades del sistema es capturar todos los acontecimientos asociados a los
cambios de estado y registrarlos en el mismo orden en que se producen. En este caso la
medición (observación) se efectúa por detección de acontecimientos.
Otra técnica de medición que interfiere menos en el comportamiento del sistema es la
del muestreo, que consiste en interrumpir el sistema a intervalos regulares o aleatorios para
detectar el estado de algunos de sus componentes.
2.2.1 Detección de acontecimientos
Se define el estado de un sistema informático como el establecido por los valores de
todas sus memorias, normalmente se restringe el estado a un conjunto limitado de
memorias del sistema.
Por otra parte se ha definido un acontecimiento como un cambio de estado del sistema.
En general se distinguen dos tipos de acontecimientos:
TEMA 2: Técnicas de medida y de presentación de los resultados
16
• Acontecimiento software, si el acontecimiento está asociado con una
función de un programa. Ejemplo: un programa inicia una operación de E/S.
• Acontecimiento hardware, consiste en la aparición de una o más señales
en los circuitos de un componente del sistema y es independiente del
programa que se esté ejecutando en ese momento. Ejemplo: los
movimientos del brazo de un disco. Muchos acontecimientos hardware
llevan asociados un acontecimiento software.
La técnica de detección de acontecimientos se basa en la intercepción y registro de
todos los acontecimientos de tipos determinados. Por lo tanto está técnica sólo se deberá
utilizar si es necesario conocer la secuencia de estos acontecimientos o el número de veces
que se han producido en un intervalo determinado.
El principio de detección de acontecimientos software es el de insertar un código
suplementario (traps) en lugares determinados del sistema operativo. Es decir se trata de
interrupciones controladas por programa.
Cuando se produce un acontecimiento que debe detectarse, este código transferirá el
control a la rutina de tratamiento, que almacenará sus datos significativos, junto con el
instante de aparición, en un área tampón, para posteriormente grabarlos en disco y devolver
el control al sistema operativo. El conjunto de todos los datos registrados de esta forma se
denomina una traza de acontecimientos.
En sistemas conducidos por interrupciones, la dirección de la rutina de tratamiento de
una interrupción determinada debe sustituirse por la dirección de inicio de la rutina de
medición. De esta forma, cada vez que se produce una interrupción, está se detecta y se
leen los contenidos de determinadas posiciones de memoria o tablas. Estos datos, junto con
el instante de aparición, se registrarán en cinta o disco antes de devolver el control al sistema
operativo para el tratamiento de la interrupción.
2.2.2 Muestreo
El muestreo es una técnica estadística que consiste en examinar una parte de la
población denominada muestra. A partir de ella, es posible estimar con un grado de precisión
elevado, algunos de los parámetros estadísticos que caracterizan a la población.
Esta técnica presenta las siguientes ventajas:
Diseño y evaluación de configuraciones
17
• Produce un volumen de datos mucho más pequeño que la técnica de
detección de acontecimientos, por lo que se reduce y simplifica el análisis
de los datos.
• El proceso de recogida de datos perturba menos al sistema
El muestreo puede usarse con dos objetivos distintos:
1) Evaluar las fracciones de un intervalo de tiempo dado que cada
componente del sistema ha permanecido en distintos estados. Se ha de
tener en cuenta la precisión de los resultados viene determinada por el
tamaño de la muestra. Además, se supone que la carga es estacionaria
durante largos periodos de tiempo.
2) Seguir la evolución de un sistema y predecir su comportamiento futuro.
2.3 ESTRUCTURA DEL MONITOR
En la Figura 2.1 se representa el esquema conceptual del monitor de un sistema
informático.
Sistema informático
Interfaz deinstrumentación
Selector o filtro
Procesador
Registrador
Analizador
Figura 2.1: Esquema conceptual del monitor de un sistema informático
TEMA 2: Técnicas de medida y de presentación de los resultados
18
En dicho esquema se distinguen los siguientes elementos:
• Interfaz de instrumentación, implementa la conexión entre el monitor y el
sistema, permite acceder a los puntos del sistema que contienen
información relevante para la monitorización.
• Selector o filtro, permite realizar una captura selectiva de las actividades
sondeadas de acuerdo con los diferentes intereses del usuario. Además
genera variables indirectas a partir de las variables medidas.
• Procesador tiene como misión realizar las comprobaciones de los
elementos del sistema que van a ser analizados o medidos.
• Registrador el resultado de las comprobaciones se graba en un medio de
almacenamiento para poder ser analizado e interpretado y así obtener los
resultados deseados.
• Analizador se encarga de analizar los datos almacenados.
Algunas veces la fase de análisis se realiza en paralelo con la detección y captura de
eventos, en ese caso se tiene un sistema de medida en tiempo real.
2.4 CLASIFICACION DE LOS MONITORES
Los monitores se pueden clasificar atendiendo a tres aspectos: forma de implantación,
mecanismo de activación y forma de mostrar los resultados:
Según su implantación se clasifican en:
n Monitores software que son programas o ampliaciones del sistema
operativo que acceden al estado del sistema, informando al usuario sobre
dicho estado.
n Monitores hardware, son dispositivos electrónicos que se conectan a
determinados puntos del sistema, donde se encargan de detectar
determinados niveles o señales eléctricas que caracterizan la evolución del
sistema.
Diseño y evaluación de configuraciones
19
n Monitores híbridos, son una combinación de las dos técnicas anteriores,
intentando combinar las ventajas de una y otra.
Según su mecanismo de activación se clasifican en:
n Monitores de eventos o acontecimientos son aquellos que se activan por la
aparición de ciertos eventos. Si el evento se da con frecuencia la
sobrecarga que se produce es elevada.
n Monitores de muestreo, son aquellos que se activan a intervalos de tiempo
fijos o aleatorios mediante interrupciones de reloj. La frecuencia de
muestreo viene determinada por la frecuencia del estado que se desea
analizar y por la resolución que se desee conseguir.
Según su forma de mostrar los resultados se clasifican en:
n Monitores en tiempo real que constan de un módulo analizador que
procesa los datos a medida que los recibe.
n Monitores batch, que primero recogen la totalidad de la información para
posteriormente analizarla.
Las tres clasificaciones pueden utilizarse de manera conjunta, así pues, un monitor
puede clasificarse como software, conducido por muestreo y con análisis en batch de los
resultados.
Aunque hay que indicar que la clasificación de los monitores según su implantación es la
más habitual. En la Tabla 2.1 se muestra cómo realizan cada una de las funciones los
monitores software, hardware e híbrido.
Función Monitor software Monitor Hardware Monitor HíbridoInstrumentación Traps
InterceptaciónMuestreo
SondasConexión permanente
TrapsSondas
Selector Programa ProgramaLógica
ProgramaLógica
Procesador Programa LógicaPrograma
LógicaPrograma
Registrador MemoriaDisco
ContadorMemoriaDisco
ContadorMemoriaDisco
Analizador Programa Programa Programa
Tabla 2.1: Forma de realización de las funciones según el tipo de monitor
TEMA 2: Técnicas de medida y de presentación de los resultados
20
2.4.1 Monitores software
Son los más adecuados para monitorizar los sistemas operativos, las redes y las bases
de datos, así como las aplicaciones que las utilizan.
Cada activación del monitor implica la ejecución de varias instrucciones por parte de la
CPU del sistema que está analizando, lo que puede provocar una gran sobrecarga en el
sistema si la causa de la activación se produce con gran frecuencia.
La aportación de código que necesitan los monitores software se puede realizar de tres
formas distintas:
1) Por adición de un nuevo programa, es el más fácil de utilizar y de eliminar
cuando ya no se necesite. Además se garantiza la integridad del sistema
operativo y del propio programa que se va a medir.
2) Por modificación del software que se va a medir, se basa en la utilización
de sondas software, que son conjuntos de instrucciones insertadas en
puntos clave del programa que debe observarse. Cada sonda debe
detectar la llegada del flujo de control al punto crítico donde está situada,
con lo que se puede determinar el número de veces y los instantes que se
pasa por ese lugar, a la vez que el contenido de ciertas variables cuando se
está ejecutando esa zona de código.
3) Por modificación del sistema operativo, se utiliza cuando determinadas
variables que se deben medir sólo están disponibles para el sistema
operativo, como pueden ser relojes de tiempo real, estado de colas del
planificador, etc.
Puesto que el monitor software necesita recursos del sistema (consume tiempo de
CPU, ocupa memoria y realiza operaciones de E/S), se debe vigilar el cumplimiento de los
siguientes requerimientos:
• La extracción de datos del sistema debe realizarse de forma cualitativa y
cuantitativa.
• Las modificaciones del sistema operativo deben ser las mínimas posibles.
Diseño y evaluación de configuraciones
21
• La alteración de las características y de las prestaciones de la carga no
debe ser apreciable.
Se debe llegar a un compromiso entre la precisión de las medidas y la interferencia que
éstas pueden ocasionar en el sistema, ya que en general si se necesita una gran precisión
en los resultados, se tendrán que realizar un gran número de observaciones, lo que
provocará una sobrecarga del sistema que hará que las medidas obtenidas no sean fiables.
Por el contrario un número de medidas reducido pueden no llegar a ser fiables.
Una característica deseable en un monitor es la posibilidad de ser
habilitado/deshabilitado según convenga, de tal forma que se evite sobrecargar al sistema
cuando no se utilice.
En general la prioridad del monitor debe ser superior a la de los acontecimientos que
debe observar.
Puesto que para el funcionamiento de un monitor software se requiere la ejecución de
instrucciones del propio código del sistema analizado, el monitor no podrá detectar
acontecimientos que se produzcan por debajo del tiempo de ejecución de una instrucción ni
acceder a acontecimientos que no se reflejen en alguna posición de memoria del sistema
que sea accesible por la ejecución de una instrucción.
La mayoría de los monitores están escritos en lenguajes de programación de bajo nivel,
tales como ensamblador o C, para mantener al mínimo la sobrecarga. En general es
conveniente que el monitor software y el sistema operativo estén escritos en el mismo
lenguaje de programación.
2.4.1.1 Monitores software conducidos por acontecimientos
Existen dos tipos de instrumentación en los monitores conducidos por acontecimientos
o eventos:
• Por Traps o segmentos de código que se insertan en determinadas partes
del programa. Cuando el flujo de control llega a ellos, se ejecutan,
realizando determinadas acciones encaminadas a señalar la aparición de
ese evento y a extraer la información que lleva asociada.
• Por interceptación de las interrupciones, que desvían el tratamiento de la
interrupción, redireccionando dicho tratamiento a una zona de código donde
TEMA 2: Técnicas de medida y de presentación de los resultados
22
se halla el monitor, el cual contabiliza el tipo de interrupción y recopila la
información asociada al acontecimiento que ha provocado la interrupción.
2.4.1.2 Monitores software de muestreo
Un monitor de muestreo interfiere mucho menos en el funcionamiento del sistema que
un monitor conducido por eventos. En este tipo de monitores es posible variar la frecuencia
de muestreo y el número de variables que hay que medir en cada instante de muestreo.
El procedimiento de extracción de datos utiliza un reloj interno que provoca una
interrupción del sistema a intervalos regulares de tiempo para extraer los datos del estado del
mismo.
En ocasiones los datos se recogen a intervalos aleatorios aunque con una longitud
media fija. En general se debe evitar un sincronismo entre muestreo y eventos que impida al
monitor detectar todos los estados del sistema.
El programa de extracción de datos debe ser el de mayor prioridad y se debe ejecutar
con las interrupciones inhibidas. En consecuencia, dicho programa debe ser muy rápido
(poca demanda de CPU), con el fin de no interferir en las prestaciones del sistema.
Los datos que se deben tomar son de dos tipos:
• Acerca de las actividades suspendidas cuando se provocó el disparo del
temporizador.
• Acerca de las actividades en progreso, como el estado de los canales,
contenido de ciertas áreas de memoria, etc.
Los datos recolectados se deben almacenar de la forma más compacta posible,
generalmente se subdividen en grupos temporales, formando los que se denominan
registros lógicos, que son un conjunto de datos recogidos durante un determinado periodo de
tiempo.
♦ Ejemplo 2.1: Se desea conocer el estado de la CPU y del canal de un determinado sistema
informático cada 333 ms, suponiendo un periodo de extracción de 8 horas (un día), (a) ¿Cuál sería el
número de muestras recogidas durante el periodo de extracción?. (b) Por otra parte si se consideran
Diseño y evaluación de configuraciones
23
registros lógicos de 5 minutos ¿Cuantos registros se necesitarían para almacenar la información
recogida en el periodo de extracción y cuantas muestras tendría cada registro lógico?
Solución:
(a) El periodo de extracción es Te=8 horas= 8·60·60·1000 ms=2.88·105 ms. Puesto que el periodo de
muestreo es de T=333 ms, el número de muestras recogidas durante el periodo de extracción Ne sería:
86486333
10·88.2 5
===T
TN e
e muestras
(b) El número de registros lógicos R necesarios es:
96)(5
)/(60)·(8 ===minutos
horaminutoshorasTT
RR
e registros lógicos
El número de muestras NR de cada registro lógico es:
900)/(333
)(1000·60·5 ===muestrams
msTT
N RR muestras
♦
Un monitor software debe ser capaz de dar una duración de los fenómenos observados,
es decir, de dar medidas temporales. Esto lo puede realizar una herramienta software de dos
formas:
1) Por muestreo. Que da medidas estadísticas en cuanto a tiempos medios
de utilización de recursos, a partir de los cuales se pueden realizar
medidas indirectas de otro fenómenos.
2) Realizando medidas directas. Con este método se puede dar la duración
“exacta” de los fenómenos, así como la traza de acontecimientos del
sistema, presenta el inconveniente de ser más difícil de implantar.
Ambos tipos de monitores software necesitan de un reloj en el sistema. Una forma muy
usual de realizar este reloj es utilizar una posición de la memoria principal o un registro
interno del procesador como un contador binario que es incrementado (o decrementado) por
un dispositivo hardware capaz de generar pulsos a intervalos regulares (generalmente un
TEMA 2: Técnicas de medida y de presentación de los resultados
24
cristal de cuarzo). La frecuencia de este reloj da la resolución del sistema, es decir, la
mínima cantidad de tiempo medible por él.
Muchas veces existen relojes paralelos que se inicializan cuando se arranca un proceso,
salvando el estado de estos relojes cuando el proceso se suspende y recargándolo cuando
éste se carga de nuevo. Cuando el proceso concluye, en este reloj se tiene el tiempo de
ejecución del mismo. Lógicamente, el manejo de estos relojes corre a cargo del sistema
operativo. Existen algunas causas que hacen que este método no sea del todo exacto:
n Existe un retardo variable entre el comienzo y el final de la actividad y el
arranque y la parada del reloj lógico asociado.
n El sistema operativo puede no ser totalmente honesto en cuanto a la
adjudicación de los tiempos, y así el tiempo de tratamiento de determinadas
interrupciones es cargado al proceso que tiene la CPU en ese momento.
n El acceso al reloj es normalmente una tarea del supervisor, y el tiempo de
entrada de éste es aleatorio, cargando este tiempo al reloj lógico del
proceso.
Otro elemento importante en la precisión de las medidas directas es la resolución del
reloj. Si la resolución es demasiado pequeña (el tiempo entre dos ticks es demasiado
grande), es posible que el reloj no sea adecuado para la medida de la duración de
determinadas actividades, o bien que los resultados no tengan la precisión necesaria.
De manera general (ver Figura 2.2) se consulta el valor del reloj cuando comienza la
actividad (instante Ti), se supone que el valor en ese instante es Ta, y que T es la duración
del intervalo entre dos ticks del reloj. Si la actividad termina en Tf y se consulta el reloj en ese
momento, éste contendrá el valor Tb.
Ta
Ti Tf
Tb
Figura 2.2
Diseño y evaluación de configuraciones
25
La duración real de la actividad es:
Treal = Tf -Ti
Mientras que el valor medido es de:
Tmedido = Tb -Ta
El error en la medida se obtiene de la siguiente forma:
Error = Treal -Tmedido= (Tf -Ti)-(Tb -Ta)= (Tf - Tb) - (Ti - Ta)
Tanto (Tf - Tb) como (Ti - Ta) pueden variar entre 0 y T, por lo que el error podrá variar
entre -T y T, o lo que es lo mismo:
0 ≤ |Error|≤ T
Es decir, el error depende de T, por lo que la resolución debe ser grande para que el
error cometido en las medidas sea pequeño. Un aumento de la resolución producirá también
un aumento de la sobrecarga.
♦ Ejemplo 2.2: A partir del diagrama temporal que se muestra en la Figura 2.3 deducir el tiempo real y
el tiempo medido de duración de las tareas W1, W2 y W3. El tiempo transcurrido entre dos ticks de reloj
consecutivos es s.
t0 t1 t2 t3 t4
τ0 τ1 τ2 τ3
W1 W2 W3
Real
Relojs s s s
Figura 2.3
Solución:
W1, tiene una duración real de Tr1=τ1-τ0, mientras que su duración desde el punto de vista de la medida
que se realiza es Tm1=t1-t0=s.
TEMA 2: Técnicas de medida y de presentación de los resultados
26
W2, tiene una duración real de Tr2=τ2-τ1, mientras que su duración desde el punto de vista de la medida
que se realiza es Tm2=t1-t1=0.
W3, tiene una duración real de Tr3=τ3-τ2, mientras que su duración desde el punto de vista de la medida
que se realiza es Tm2=t3-t1=2s.
♦
2.4.2 Monitores hardware
Son dispositivos para medir las prestaciones de sistemas informáticos que se conectan
al hardware del sistema que se va a monitorizar por medio de sondas electrónicas, que son
elementos capaces de detectar eventos de tipo eléctrico.
Un monitor hardware podrá reconocer todos aquellos acontecimientos que se reflejen en
puntos fijos del sistema.
Su principal característica es que son externos al sistema que van a medir, lo que
implica:
n No utilizan recursos del sistema que van a monitorizar.
n No producen interferencias con éste.
n Son muy rápidos.
Sus principales desventajas:
• Son más difíciles de instalar.
• Existen magnitudes a las que no se puede acceder.
• Requieren para su operación y análisis de resultados de personal
especializado.
• Puede interactuar a nivel eléctrico con el sistema que se va a monitorizar,
provocando perturbaciones que resulten en un funcionamiento anómalo del
sistema monitorizado.
En la Figura 2.4 se representa el esquema más simple de un monitor hardware.
Diseño y evaluación de configuraciones
27
Contadores AlmacenamientoMódulo lógico
Reloj
Figura 2.4: Esquema simple de un monitor hardware
En este esquema, los módulos lógicos se encargan de filtrar las señales, de forma que
sólo se obtengan disparos cuando se produce una determinada combinación de las señales
de entrada, lo que es equivalente a decir que se está produciendo un determinado evento.
Los contadores se encargan de registrar el número de veces que se produce un
determinado fenómeno. Mientras que la parte de almacenamiento tiene la misión de
memorizar de forma permanente el valor de los contadores. Por otro lado el reloj se encarga
de dar la señal de sincronismo con la que se deben capturar los eventos.
♦ Ejemplo 2.3: Una realización muy simple del esquema anterior de un monitor hardware se puede ver
en la Figura 2.5. Con este monitor se pretende determinar el tiempo de utilización de un determinado
recurso.
Reloj
Biestable
Contador
Reloj
Biestable
Contador
Figura 2.5
TEMA 2: Técnicas de medida y de presentación de los resultados
28
Este tiempo de utilización de un determinado recurso se caracteriza por un nivel alto en la salida de un
biestable. La salida del biestable es interceptada por las sondas, las cuales llevan el nivel lógico de
salida al módulo lógico, que en este ejemplo es una puerta AND, cuya otra entrada está conectada a la
señal de reloj del monitor. De esta forma la salida del módulo lógico será un tren de pulsos si la entrada
está a un nivel alto.
La salida de la puerta AND se lleva a un contador para que registre el número de pulsos recibidos. En
otro contador se tiene directamente la señal de reloj.
La salida del monitor son las cuentas de los contadores, ya que la razón entre éstas da directamente el
tanto por ciento de ocupación del dispositivo, que es lo que se pretendía conocer
♦
Actualmente una tendencia muy extendida es sustituir la mayor parte de los módulos de
que consta un monitor hardware por un microprocesador, ya que se puede encargar de
realizar las operaciones de filtrado, cuenta y memorización. Los contadores son ahora
actualizados y almacenados por el propio microprocesador, que, además, puede interpretar
los resultados y visualizarlos. Por otra parte los contadores puede también ser sustituidos
por una memoria RAM.
La ventaja de utilizar un microprocesador es evidente ya que los módulos lógicos, que en
un principio eran cableados, pasan a ser programados. Su principal inconveniente es que la
frecuencia de muestreo se ralentiza, con lo que se está perdiendo una de las principales
ventajas de los monitores software, su rapidez.
2.4.3 Monitores híbridos
Los monitores híbridos (ver Figura 2.6) son una mezcla de los monitores software y
hardware que tratan de aunar las ventajas de ambos monitores y evitar sus inconvenientes.
Estos monitores añaden al sistema operativo una parte muy pequeña de código que envía
información al monitor hardware que está observando de forma continua la ejecución del
procesador principal.
La parte de código que se añade puede consistir en la ejecución de una instrucción de
entrada/salida a la que se añade una palabra de 16 ó 32 bits que hace referencia al suceso
que se desea monitorizar.
Diseño y evaluación de configuraciones
29
CPU Memoria E/S
Sistema
Captador de eventos
Base detiempos
CPU Memoria E/S
Figura 2.6: Monitor Híbrido
La parte de hardware de un monitor híbrido es un sistema con microprocesador con una
base de tiempos que cada vez que la parte software envía una información añade el tiempo
en que tiene lugar la captura. El tiempo y la información que se captura son almacenados y
procesados por el procesador del monitor. Finalmente toda la información monitorizada se
representa al final por pantalla en forma de tablas o gráficos, además de almacenarse en un
archivo.
Al reducirse generalmente la parte software a la ejecución de una instrucción de E/S, y al
procesarse y almacenarse en otro computador, se elimina una parte de la sobrecarga que
tenía un monitor software.
Los monitores híbridos son los más usados en el diseño de nuevas arquitecturas de
computadores, y vienen integrados en algunos computadores modernos. También son muy
usados en el estudio del comportamiento de prototipos de nuevas máquinas.
2.4.4 Comparación entre monitores
En general dado un problema de monitorización, la elección del tipo de monitor que se
debe utilizar no es difícil de resolver ya que normalmente sólo uno de ellos es el adecuado.
TEMA 2: Técnicas de medida y de presentación de los resultados
30
Las principales características de un monitor que se deben de considerar a la hora de
seleccionarlo son:
n Dominio de medición: El monitor hardware sólo es capaz de seguir el
comportamiento de acontecimientos que se reflejen en posiciones fijas de
memoria o provoquen transferencias de control a direcciones fijas o la
ejecución de instrucciones determinadas. Por otro lado, el monitor software
puede seguir los acontecimientos que se reflejen en posiciones de
memoria susceptibles de ser leídas por la ejecución de una instrucción.
n Resolución: Los monitores hardware tienen una capacidad para resolver
acontecimientos a frecuencias elevadas (de 10 a 50 MHz), se trata de una
magnitud absoluta determinada por la velocidad de las sondas y la lógica
del monitor. En el caso de un monitor software la máxima frecuencia de
entrada del monitor software viene fijada por la máxima frecuencia de
ejecución de instrucciones. Se trata por tanto de una magnitud relativa.
Ahora bien el monitor software es capaz de “parar” el sistema aunque ello
produzca una distorsión de las medidas.
n Anchura de entrada. Un monitor software sólo puede detectar los
acontecimientos secuencialmente. Sin embargo, es capaz de “parar” el
sistema hasta extraer toda la información necesaria. En este sentido la
anchura de entrada es, teóricamente ilimitada. El monitor hardware permite
la detección de acontecimientos en paralelo, pero su anchura está limitada
por el número de sondas disponibles.
n Interferencia, el monitor hardware prácticamente no introduce ninguna
perturbación en el sistema observado, mientras que el monitor software
provoca una perturbación que puede ser apreciable, ya que utiliza los
propios recursos del sistema.
n Facilidad de uso, un monitor hardware requiere un buen conocimiento del
hardware del sistema y, por tanto, un mayor grado de especialización que
el monitor software, que de hecho es una extensión del sistema operativo
utilizado.
Diseño y evaluación de configuraciones
31
n Coste. Los monitores hardware son más caros que los software tanto de
instalación como de funcionamiento.
n Cantidad de datos. En general si la cantidad de datos que se espera
obtener es muy elevada, lo apropiado es utilizar un monitor hardware que
incorpore almacenamiento secundario, para evitar la sobrecarga del
sistema.
n Consumo de recursos. Los monitores software consumen recursos del
sistema que deberían estar disponibles para los usuarios. Por contra los
monitores hardware consumen muy pocos recursos, siendo incluso
invisibles al sistema.
n Portabilidad. Los monitores hardware suelen diseñarse para realizar
medidas sobre diferentes sistemas, es decir son portables. Por el contrario,
los monitores software se desarrollan para un hardware y software
particular, luego no son portables.
n Mal funcionamiento. En caso de un mal funcionamiento del sistema, el
monitor hardware sigue tomando medidas del sistema, mientras que un
monitor software puede no funcionar correctamente.
En la Tabla 2.2 se muestra de forma resumida la comparación entre los diferentes tipos
de monitores.
Característica Monitor hardware Monitor Software Monitor HíbridoDominio Bajo nivel (Fijo) Lógico TodosResolución Alta (Fija) Baja (variable) AltaAnchura Finita Infinita InfinitaInterferencia Baja Alta MediaCoste Alto Bajo AltoReducción No Si No/SiPortabilidad Si No No
Tabla 2.2: Tabla resumen de las características de los diferentes tipos de monitores
TEMA 2: Técnicas de medida y de presentación de los resultados
32
2.4.5 Monitores de ejecución de programas
Estos monitores proporcionan información de un programa durante su ejecución y sirven
para saber:
• Donde pasa un programa su tiempo de ejecución.
• Cuántas veces se ejecuta una línea de código del programa.
• Cuántas veces se llama a un procedimiento y desde donde.
• A cuantos archivos accede un programa y durante cuanto tiempo.
En definitiva proporcionan Información de suma importancia para optimizar y mejorar el
comportamiento y tiempo de ejecución de un programa.
2.4.6 Monitor de contabilidad
El objetivo de un monitor de contabilidad es obtener el consumo de recursos del sistema
que realiza cada usuario. Este tipo de monitores permiten las siguientes operaciones:
• Monitorizar la utilización del espacio de disco para usuarios individuales,
como número de escrituras y lecturas, números de bytes escritos y leídos,
etc.
• Registrar datos de sesiones y su duración.
• Generar resúmenes de informes y archivos que pueden ser utilizados para
analizar el trabajo del sistema y el consumo de recursos de cada usuario.
Para realizar estas operaciones, el monitor de contabilidad proporciona una serie de
órdenes que permiten crear datos, borrarlos, visualizarlos, mezclarlos, resumirlos y crear
informes.
Los monitores de contabilidad también registran la información referente a condiciones
anormales, como violaciones de seguridad, terminación anormal de trabajos, errores en
dispositivos, rearranques del sistema, etc.
Diseño y evaluación de configuraciones
33
La unidad de trabajo de un monitor de contabilidad es el programa y la información
registrada se realiza para cada usuario y para programa ejecutado.
2.5 PRESENTACIÓN DE LOS RESULTADOS
2.5.1 Tipos de variables
Las variables pueden ser de dos tipos:
n Variables cualitativas o categóricas. Se definen como un conjunto de
subclases mutuamente exclusivas que se expresan normalmente con
palabras. Pueden ser de dos tipos:
• Ordenadas, como por ejemplo el tipo de computador
(supercomputador, minicomputador, microcomputador,...).
• No Ordenadas, como por ejemplo los tipos de carga (científica, de
ingeniería, de educación,...).
n Variables cuantitativas. Sus distintos niveles se expresan numéricamente.
Pueden ser de dos tipos:
• Discretas. Pueden adoptar un número finito o infinito de valores,
pero en todo caso será numerable. Por ejemplo: El número de
procesadores de un sistema informático, el tamaño del bloque de
datos.
• Continuas. Pueden adoptar un número infinito y no contable de
valores diferentes, como el tiempo de respuesta de un trabajo en un
sistema.
2.5.2 Diagramas de Gantt
Para una utilización adecuada de todos los recursos del sistema, la carga debe constar
de una mezcla de trabajos que haga uso de ellos y que exista solapamiento en su utilización.
Los diagramas de Gantt permiten representar este solapamiento en la utilización de los
recursos, Generalmente este tipo de diagramas se utiliza para mostrar la duración relativa de
cualquier condición booleana (que puede tomar los valores verdadero o falso). Ejemplos de
TEMA 2: Técnicas de medida y de presentación de los resultados
34
tales condiciones booleanas son la utilización de un recurso o el solapamiento en la
utilización de dos recursos (CPU y Canal).
Los diagramas de Gantt se suelen utilizar para observar como varían las utilizaciones de
los recursos a medida que evoluciona la carga en el sistema.
♦ Ejemplo 2.4: Discutir las características del sistema informático que presenta el diagrama de Gantt
de la Figura 2.7.
CPU
Canal E/S
Red
20 % 40 % 60 % 80 %0 % 100 %
10 10 5 15
Utilización
Figura 2.7
Solución:
A partir de este diagrama de Gantt se observa que la CPU estuvo ocupada durante el 60% del intervalo
de observación, el canal durante un 40% y la red durante un 60 %.
También se puede deducir el solapamiento en la actividad de los distintos recursos: la CPU y el canal
estuvieron ocupados simultáneamente durante un 20 % de la sesión. La CPU y la red durante un 40 % ;
el canal y la red durante un 15 %.
Además se observa que el sistema estuvo desocupado durante un 5%.
♦
♦ Ejemplo 2.5: Para un sistema con cuatro recursos: CPU, dos canales de E/S y un enlace de red,
etiquetados como A, B, C y D respectivamente se ha observado el % de tiempo de utilización de los
recursos. En la Tabla 2.3 se representa dicha utilización con un 1 y con un 0 la no utilización de los
mismos. Construir el diagrama de Gantt asociado al sistema.
Diseño y evaluación de configuraciones
35
A B C D Tiempo utilizado (%)0 0 0 0 5 i00 0 0 1 5 i10 0 1 0 0 i20 0 1 1 5 i30 1 0 0 10 i40 1 0 1 5 i50 1 1 0 10 i60 1 1 1 5 i71 0 0 0 10 i81 0 0 1 5 i91 0 1 0 0 i10
1 0 1 1 5 i11
1 1 0 0 10 i12
1 1 0 1 10 i13
1 1 1 0 5 i14
1 1 1 1 10 i15
Tabla 2.3
Solución
La forma de construir el diagrama de Gantt es la siguiente:
1) Se dedica una línea horizontal a cada uno de los cuatro recursos A, B, C y D.
2) La línea horizontal asociada al recurso A se divide en dos partes, una asignada a la utilización del
recurso A y otra a su no utilización A .
3) La línea horizontal asociada al recurso B se divide en cuatro partes: BBBB .
4) La línea horizontal asociada al recurso C se divide en ocho partes:
CCCCCCCC
5) La línea horizontal asociada al recurso D se divide en 16 partes:
DDDDDDDDDDDDDDDD
6) Para cada una de los recursos se asigna a cada parte en el diagrama de Gantt el porcentaje de
tiempo de utilización o de no utilización de acuerdo con lo indicado en la Tabla. (Ver Figura 2.8)
TEMA 2: Técnicas de medida y de presentación de los resultados
36
Par el recurso A, hay dos partes: AA la suma de los porcentajes de utilización y de no utilización es:
)()( 7654321015141312111098 iiiiiiiiAiiiiiiiiA ++++++++++++++
)5105105055()105101050510( ++++++++++++++ AA
)45()55( AA
En el caso del recurso B, hay cuatro partes: BBBB , la suma de los porcentajes para cada una de
las cuatro partes es:
)()()()( 3210765415141312111098 iiiiBiiiiBiiiiBiiiiB ++++++++++++
)5055()510510()1051010()50510( ++++++++++++ BBBB
)15()30()35()20( BBBB
En el caso del recurso C, hay ocho partes CCCCCCCC , la suma de los porcentajes para
cada una es:
)()()()()()()()( 1032765413121514111098 iiCiiCiiCiiCiiCiiCiiCiiC ++++++++
)55()50()510()510()1010()105()50()510( ++++++++ CCCCCCCC
)10()5()15()15()20()15()5()15( CCCCCCCC
Finalmente, en el caso del recurso D, hay 16 partes, la suma de los porcentajes para cada una es:
)()()()()()()()()()()()()()()()( 0132675412131514101198 iDiDiDiDiDiDiDiDiDiDiDiDiDiDiDiD
)5()5()5()0()10()5()5()10()10()10()10()5()0()5()5()10( DDDDDDDDDDDDDDDD
Diseño y evaluación de configuraciones
37
A
B
C
D
)55(A )45(A
)20(B )35(B )30(B )15(B
)15(C )5(C )15(C )20(C )15(C )15(C )5(C )10(C
)10(D )5(D )5(D)0(D )5(D )10(D )10(D
)10(D )10(D )5(D )5(D)10(D )0(D )5(D )5(D
)5(D)10(D )5(D )5(D)0(D )5(D )10(D )10(D
)10(D )10(D )5(D )5(D)10(D )0(D )5(D )5(D
)5(D
Figura 2.8
7) Con los resultados obtenidos se procede a unir en el diagrama de Gantt las partes de utilización de
cada recurso (Ver Figura 2.9).
A
B
C
20 % 40 % 60 % 80 %0 % 100 %
Utilización
D
55
35 30
15 5 5
5 5 5 5 5 10 10
15
5
Figura 2.9
♦
2.5.3 Gráficos de Kiviat
Se trata de un gráfico circular en cuyos ejes radiales se representan diferentes índices
de prestaciones. Las intersecciones entre los radios y la circunferencia representan los
valores máximos que pueden alcanzar las variables representadas en los mismos.
Aunque en principio, el número de ejes que puede tener un gráfico de este tipo es
arbitrario y depende de los datos que se van a representar, se suelen seguir unos convenios
TEMA 2: Técnicas de medida y de presentación de los resultados
38
de representación. El más popular de ellos es el conocido como la versión de Kent. Basado
en las siguientes convenciones:
1) Se selecciona un número par de variables que hay que estudiar,
frecuentemente ocho, la mitad de ellas deben ser buenos índices de
prestaciones (a mayor valor, mejores prestaciones) y la otra mitad malos
(mejores prestaciones a menor valor de los mismos).
2) Se divide el círculo en tantos sectores como variables hay que representar.
3) Se numeran los semiejes secuencialmente, normalmente en sentido
horario, comenzando por el semieje vertical superior.
4) Se asocian los buenos índices de prestaciones a los semiejes impares y
los malos a los pares.
De acuerdo con esta convención, en un sistema ideal todos los índices buenos tendrían
valores altos y los malos valores muy bajos, por lo que el gráfico de Kiviat tendría forma de
estrellla.
Los gráficos de Kiviat se utilizan para realizar un reconocimiento visual de un sistema.
♦ Ejemplo 2.6: Construcción de un gráfico de Kiviat, según la versión de Kent para una instalación
informática de gestión normal.
Se consideran la siguiente asignación de índices de prestaciones:
1) CPU ocupada o activa (CPU ). Este índice es bueno en el sentido de que se está utilizando el
recurso y no se desperdicia.
2) Sólo CPU ocupada ( CHCPU * ). Es preferible que estén simultáneamente ocupados cuantos más
recursos mejor para que exista un elevado paralelismo en la utilización de los mismos. Por ello este
índice no es bueno porque indica que no existe solapamiento con los canales y por lo tanto su valor
debe ser bajo.
3) Solapamiento de CPU y Canal.( CHCPU* ) Se trata de un índice bueno que interesa que tenga un
valor alto.
Diseño y evaluación de configuraciones
39
4) Sólo canal ocupado sin solape en la CPU. ( CHCPU * ) Indice malo interesa que su valor sea bajo.
5) Cualquier Canal ocupado.(CH ) Se trata de un índice bueno que interesa que tenga un valor alto.
6) CPU en estado de espera. (CPU ) Indice malo interesa que su valor sea bajo, ya que se está
malgastando el recurso.
7) CPU en estado usuario o atendiendo a programas de usuario.( usuarioCPU ) Se trata de un índice
bueno que interesa que tenga un valor alto.
8) CPU en estado supervisor. ( ervisorCPU sup ) Indice malo interesa que su valor sea bajo, ya que se
está ejecutando código del sistema operativo Este índice representa el overhead del sistema operativo.
El gráfico de Kiviat para una instalación de gestión normal se representa en la Figura 2.10
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
Figura 2.10
Con el conjunto de índices enunciado en el apartado anterior se han identificado una serie de formas
típicas correspondientes a determinadas situaciones (ver Tabla 2.4)
♦
TEMA 2: Técnicas de medida y de presentación de los resultados
40
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
(A) Estrella de Kiviat. Corresponde a una situaciónideal
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
(B) Vela de barco. Corresponde a sistemaslimitados por la CPU, es decir sistemas conmucha demanda de CPU y relativamente pocautilización de los canales.
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
(C) Cuña o iceberg, corresponde a sistemaslimitados (mal dimensionados) por la E/S. Poseenuna elevada utilización de los recursos de E/S ybaja de la CPU.
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
(D) Flecha de E/S. Sistemas limitados por laE/S que además tienen una elevada utilización dela CPU
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
CPUocupada
Sólo CPU
CPUy cualquier canal
Al menos un canalactivo sin solape
con la CPUAl menos uncanal activo
CPU en espera
CPUusuario
CPUsupervisor
(E) Thashing. Sistema saturado por la paginación.
Tabla 2.4
Diseño y evaluación de configuraciones
41
2.6 MONITORES DE REDES DE AREA LOCAL (LAN)
La organización OSI define cinco dominios de administración de una red de área local
(LAN):
1) Manejo de fallos. Hace referencia al esfuerzo para minimizar el tiempo
medio requerido para detectar y reparar un problema en la red.
2) Administración de cuentas. Se lleva a cabo mediante un tipo de monitor
conocido como monitor de contabilidad, que informa de los recursos
utilizados por los usuarios del sistema con el fin entre otras cosas, de
proceder a la facturación de estos consumos.
3) Manejo de configuraciones. Hace referencia al esfuerzo para definir y
monitorizar las configuraciones física y lógica de la red.
4) Manejo de las prestaciones. Hace referencia al esfuerzo para mejorar las
prestaciones de la red y detectar prestaciones degradadas por colección y
análisis de estadísticas de la red, y modificación de los parámetros
apropiados de la red.
5) Manejo del control de acceso.
2.6.1 Tipos de monitores de LAN
En general se pueden considerar tres tipos de monitores de LANs: centralizados,
distribuidos e híbridos.
2.6.1.1 Monitores centralizados
Los monitores centralizados (ver Figura 2.11) son simples, baratos y dan toda la
información deseada. Es el tipo de monitor más usual en las redes de difusión (broadcast).
Existen dos tipos:
n Monitor de prueba que inyecta paquetes a la red a intervalos específicos y
puede grabar parámetros de la red para cada paquete inyectado, tales
como retraso en la adquisición del canal y número de colisiones. Se trata
de un monitor activo que produce una sobrecarga en la red.
TEMA 2: Técnicas de medida y de presentación de los resultados
42
n Monitor espía, es un nodo especial dedicado a la monitorización de la red
de modo pasivo, por lo que no introduce ninguna sobrecarga. Este monitor
debe ser capaz de procesar los paquetes a medida que los ve pasar, por lo
que este monitor debe estar equipado con suficiente potencia de progreso y
espacio de almacenamiento.
NODO NODO NODO
MONITOR
Figura 2.11: Monitor Centralizado
2.6.1.2 Monitores Distribuidos
Con los monitores distribuidos (ver Figura 2.12) se tiene información de todos los nodos
de la red. Cada nodo captura datos y periódicamente transmite esta información al
analizador central. Dicho analizador central sólo analiza los datos recibidos desde los
monitores distribuidos, puesto que éste no monitoriza la red.
NODO NODO NODO
NODO
MONITOR MONITOR MONITOR
MONITOR
Figura 2.12: Monitor Distribuido
Diseño y evaluación de configuraciones
43
Los monitores distribuidos presentan ciertos inconvenientes:
• Existe una gran sobrecarga de comunicación cuando se envían grandes
cantidades de datos a la estación central, a no ser que se utilice un canal
dedicado para pasar la información recogida por los nodos.
• Cada nodo debe de enviar datos sobre la red al analizador central, lo que
introduce interferencias.
• El utilizar la red a medir como parte integral del sistema de monitorización
puede causar pérdidas de las funciones de monitorización si la red falla.
Se distinguen dos tipos de monitores distribuidos:
n Monitores hardware, requiere que cada nodo monitorice el tráfico. Este
método es más factible en los diseños de redes futuras, puesto que es
caro modificar los interfaces de los nodos actuales.
n Monitores software, son más flexibles que los monitores hardware al ser
modificable. Sin embargo se necesita distinto software para cada nodo.
Además pueden producir una sobrecarga en el procesador del nodo, así
como unos mayores requerimientos de memoria.
2.6.1.3 Monitores Híbridos
Los monitores híbridos (ver Figura 2.13) combinan las características esenciales de los
monitores centralizados y distribuidos. Este método permite medidas precisas y
compresivas mientras necesita menos modificaciones en las interfaces de los nodos y
reduce la información que hay que enviar al monitor central.
Ahora el monitor central directamente observa la red para recoger sus propios datos y
también recibe datos desde las interfaces de cada nodo. Así el monitor central analiza todos
los datos para calcular los parámetros de interés.
En los monitores híbridos también se introducen interferencias en la red si no se utiliza
un canal dedicado. Aunque las interferencias son menores que en el método distribuido
puesto que el monitor central recoge localmente algunos de los datos necesarios.
TEMA 2: Técnicas de medida y de presentación de los resultados
44
NODO NODO NODO
MONITOR
MONITOR MONITOR MONITOR
Figura 2.13: Monitor Híbrido
Tema 3
CARACTERIZACION DE LA CARGA
45
3.1 INTRODUCCION
Se denomina carga a todas las demandas que realizan los usuarios de un sistema
(programas, datos, órdenes, etc.) durante un intervalo de tiempo.
El resultado de las medidas de las prestaciones de un sistema es función de la carga
bajo la cual fue determinado. De esta forma, la comparación entre diferentes sistemas o
configuraciones sólo se puede realizar si las cargas procesadas para su comparación son
las mismas.
Aspectos importantes de la carga son:
n La carga varía con el tiempo, lo que va a dificultar su modelización.
n La carga interacciona con el sistema que la procesa, produciéndose dos
realimentaciones (ver Figura 3.1):
• Realimentación interna, debida a las variaciones que las
modificaciones de parámetros del sistema operativo inducen en la
carga.
• Realimentación externa, asociada a la incidencia que el
comportamiento del sistema tiene sobre los hábitos y
comportamientos de los usuarios que son los que provocan la
carga.
TEMA 3: Caracterización de la carga
46
Usuarios CargaSistema
InformáticoPrestaciones
Figura 3.1: Interacción de la carga con su entorno
Es por lo tanto necesario establecer un modelo de la carga, que permitan definir
cuantitativamente la carga del sistema. A la hora de elegir este modelo hay que considerar en
primer lugar el uso que se le va a dar, es decir, los objetivos que se pretenden conseguir. Y
en segundo lugar las herramientas (modelos analíticos, simulación, el sistema real, etc.) que
manipularán el modelo de la carga. Algunos de los parámetros que se utilizan en la
caracterización de la carga son:
• Tiempo total de CPU, tiempo medio de CPU entre dos E/S y sus
distribuciones.
• Número de operaciones de E/S.
• Características de operaciones de E/S y sus distribuciones.
• Espacio en memoria.
• Ficheros en disco.
• Líneas impresas.
• Cintas leídas.
• Número de usuarios.
• Tiempo de reflexión y su distribución.
• Frecuencia de llegada.
Diseño y evaluación de configuraciones
47
Se define la carga de prueba o de test (modelo de la carga) como la carga que debe
procesar un sistema mientras se está realizando un experimento de medición determinado.
Las características más importantes que debe poseer la carga de prueba son:
• Reproductibilidad de los experimentos.
• Compacidad, es decir, reducir sustancialmente la duración de cada sesión
de medición con respecto a los que se requeriría para ejecutar la carga real
total.
• Compatibilidad, obtener una representación de la carga consistente con su
uso.
• Representatividad, hace referencia a los aspectos de la carga real
retenidos en el modelo.
• Flexibilidad, que indica si es posible y poco costoso variar el modelo para
ajustarlo a las variaciones que se produzcan en la carga real.
• Independencia del sistema.
Se define sesión de medida como el intervalo de tiempo en que se realiza un
experimento. Una sesión de medida no tiene porque ser continua en el tiempo, sino que
puede estar compuesta de varias subsesiones que se realicen en distintos días y horas.
3.2 REPRESENTATIVIDAD DE UN MODELO DE CARGA
El criterio que se utiliza para evaluar la representatividad de un modelo de carga es
función del nivel de modelado adoptado: físico, virtual, funcional, de comportamiento.
3.2.1 Representatividad a nivel físico
A un nivel de modelado físico, se dice que un modelo de la carga W’ representa
perfectamente a la carga W si solicita los mismos recursos físicos (CPU, E/S, etc) en las
mismas proporciones que W.
Por ejemplo, cada componente básico de la carga puede caracterizarse por el tiempo de
CPU consumido o por el número de instrucciones máquinas ejecutadas, por los espacios
TEMA 3: Caracterización de la carga
48
requeridos de memoria principal y secundaria, por el tiempo total de E/S consumido, por el
número de archivos utilizados, por el número y duración de los accesos físicos de E/S a
canal y disco.
Un modelo W’ conforme a este criterio es muy fácil de construir utilizando un método de
proporcionalidad. Las características de estos modelos son:
• Orientación al consumo de recursos físicos.
• Gran dependencia del sistema.
• Relativamente fáciles de construir, ya que los datos que se necesitan para
construir estos modelos se pueden obtener fácilmente de los sistemas
operativos (rutinas de contabilidad) de los equipos o mediante el uso de
monitores.
Estos se aplican para:
• Sintonización del sistema, modificación del consumo de recursos para un
mejor funcionamiento del sistema.
• Planificación de la capacidad residual, es decir, cálculo del porcentaje de la
potencia del equipo que no está siendo utilizada.
• Diseño.
3.2.2 Representatividad a nivel virtual
A un nivel de modelado virtual, se dice que un modelo de la carga W’ representa
perfectamente a la carga W si solicita los mismos recursos físicos con la misma frecuencia
que W. Es decir, con este criterio de representatividad, el modelo de la carga deberá
provocar por unidad de tiempo el mismo número de ráfagas1 de CPU y de E/S de la misma
duración que el sistema real.
1 Por ráfaga se entiende un intervalo de tiempo de utilización del recurso.
Diseño y evaluación de configuraciones
49
Por ejemplo, cada componente básico de la carga puede caracterizarse por el número
de sentencias de cada tipo del lenguaje de alto nivel, el número de accesos lógicos a cada
archivo o base de datos, el número y tipo de órdenes interactivas, etc.
Las principales características de estos modelos son:
• Orientación a recursos lógicos.
• Menor dependencia del sistema que el modelo anterior.
• Mayor proximidad al punto de vista del usuario que el modelo anterior.
• Mayor dificultad para obtener los parámetros para la construcción del
modelo que en el modelo anterior.
Estos modelos son adecuados para:
• Estudios de ampliación del sistema.
3.2.3 Representatividad a nivel funcional
A un nivel de modelado funcional, se dice que un modelo de la carga W’ representa
perfectamente a la carga W si realiza las mismas funciones con las mismas proporciones
que W.
Por ejemplo, si un determinado sistema realiza 400 horas de compilaciones, 250 horas
de pruebas de trabajos, 700 horas de explotación de trabajos y 300 horas de cálculo
científico, un modelo funcional de la carga sería el que usara 40 minutos de compilaciones,
25 minutos de pruebas de trabajos, 70 minutos de explotación de trabajos y 30 minutos de
cálculo científico.
Las principales características de estos modelos son:
• Orientación a aplicaciones.
• Independencia del sistema.
• Dificultad de diseñar sistemáticamente.
TEMA 3: Caracterización de la carga
50
Estos modelos son adecuados para:
• Selección de un computador.
• Planificación de la capacidad.
3.2.4 Representatividad a nivel de comportamiento
A un nivel de modelado de comportamiento, se dice que un modelo de la carga W’
representa perfectamente a la carga W si produce los mismos valores de los índices de
comportamiento que W, cuando se ejecuta en el mismo sistema
La principales característica de estos modelos son su dependencia del sistema.
Estos modelos son adecuados para:
• Evaluar la validez del modelo por los efectos que produce en el sistema y
no solamente por sus posibles causas.
3.3 CARGAS DE TEST O DE PRUEBA
Durante una sesión de medida se puede utilizar o bien la carga real o bien un modelo de
dicha carga. En la Tabla 3.1 siguiente se resumen los principales tipos de cargas de test:
Real
Sintética o Reducida NaturalHíbrida
Cargas de prueba Artificial Ejecutable MixKernelPrograma sintéticoSecuencias transaccionalesSecuencias conversacionalesBenchmarks
No ejecutable Distribuciones estadísticasTrazas para simulación
Tabla 3.1
Diseño y evaluación de configuraciones
51
La Tabla 3.2 siguiente resume la comparación de las principales características de los
modelos de carga reales y artificiales.
Característica Carga real Carga artificial
Representatividad Potencialmente alta Usualmente baja
Coste de realización Bajo Alto
Coste de uso Bajo Alto
Flexibilidad Baja Alta
Reproductibilidad Baja Alta
Compacidad Baja Alta
Independencia del sistema Baja Alta
Coste de recoger y reducir datos Alto Bajo
Aplicaciones Sintonización Diseño
Sintonización
Adquisición
Tabla 3.2
3.3.1 Cargas de test reales
La carga de test que se utiliza durante una sesión de medición es la carga real del
sistema. Se trata de la carga más representativa y barata de implantar.
Una de las principales dificultades de usar cargas de test reales es la de reproducir
situaciones cuando se quiere repetir un experimento, debido a los imponderables
(especialmente humanos) que influyen en la dinámica del sistema.
Las principales razones que limitan el uso de cargas de test reales en experimentos que
deban repetirse en las mismas condiciones son:
• Falta de flexibilidad, debido a la imposibilidad de modificar los programas y sus
consumos de recursos.
• Necesidad de reutilizar los datos originales.
• Confidencialidad de ciertos programas y datos, que pueden llegar a prohibir su
duplicación.
TEMA 3: Caracterización de la carga
52
• Diferencias en la organización del hardware y el software de los distintos sistemas
3.3.2 Cargas de test sintéticas o reducidas
Se distinguen dos tipos de cargas sintéticas o reducidas: las naturales y las híbridas.
3.3.2.1 Cargas de prueba sintéticas naturales
Se dice que una carga de test es sintética natural, o un benchmark si consta de un
conjunto de programas extraídos de la carga real. El benchmark se suele aplicar en estudios
de selección y ampliación. Algunas dificultades que se encuentran en la práctica al utilizar
este tipo de cargas son:
n Prioridad de ejecución, cada sistema trata las prioridades de forma distinta,
además la prioridad asignada a un programa por el planificador se altera
según distintas políticas durante la ejecución.
n Máximo factor de multiprogramación, que varía de un sistema a otro.
n Rutinas de contabilidad, cada sistema tiene sus propias rutinas de
contabilidad y sucede con frecuencia que bajo un mismo nombre se
esconden conceptos y variables distintas, por lo que es conveniente
asegurar el significado de cada valor para poder darle el significado
correcto.
n Parámetros de generación del sistema operativo. Cada sistema operativo
tiene diversos parámetros de generación, que afectan al comportamiento
del sistema.
n Lenguajes de programación, es conveniente que los programas que
constituyen el benchmark estén escritos en forma tal que se respete la
definición estándar del lenguaje de programación.
Una forma razonablemente eficaz de plantear el benchmark consiste en confiar su
realización completamente a los fabricantes y solicitar una copia en soporte magnético de
los componentes del benchmark, para, una vez efectuada la selección y con el sistema
instalado, comprobar la veracidad de las pruebas realizadas.
Diseño y evaluación de configuraciones
53
3.3.2.2 Cargas de prueba sintéticas híbridas
En numerosas ocasiones, la carga que se pretende modelar no existe completamente
(incorporación de nuevas aplicaciones todavía no desarrolladas, crecimiento vegetativo de
las existentes, etc). Se dice que una carga de test es sintética híbrida, si representa la carga
conocida o real por un conjunto de programas extraídos de ella y la carga no existente
mediante elementos artificiales.
3.3.3 Cargas de test artificiales ejecutables
Una carga de test artificial no contiene ningún componente de la carga real. Sus
componentes están diseñados con el propósito de cargar un modelo matemático de la carga
real.
3.3.3.1 Instrucción de suma
Históricamente fue la primera carga de test utilizada. En un principio, el procesador era
la parte más importante y cara de un computador, ya que su velocidad determinaba las
prestaciones del sistema. En este contexto, la instrucción de suma era la más utilizada y
tenía sentido emplearla como carga de test para la evaluación de las prestaciones del
sistema.
3.3.3.2 Mix de instrucciones o de sentencias.
El análisis de las frecuencias de ejecución de las instrucciones máquina en una carga
real proporciona una información útil para su caracterización. Si un programa A tiene la
misma frecuencia de ejecución de instrucciones que otro programa B, entonces A puede
considerarse como un modelo preciso de B con respecto al consumo de CPU.
Un modelo de este tipo, un mix de instrucciones, puede constar de un único o de varios
programas cuyas frecuencias de ejecución de instrucciones coincidan con las de la carga
total que se está modelando.
TEMA 3: Caracterización de la carga
54
♦ Ejemplo 3.1: Calcular el tiempo medio de ejecución del mix de instrucciones de la Tabla 3.3.
Tipo de instrucción fi ti (u.t.) fi · ti
Rx ← Ry 0.15 15 2.25
Rx← M 0.11 10 1.10
/ , * 0.05 20 1.00
+ , - 0.09 18 1.62
salto condicional 0.30 15 4.50
salto incondicional 0.15 15 2.25
otras 0.15 25 3.75
Tabla 3.3
Solución:
La primera columna de la tabla (Tipo de instrucción) es función de la carga. La segunda columna es la
frecuencia de ejecución de cada tipo de instrucción, y es función del procesador (sistema) que se esté
estudiando. La tercera columna define una medida del tiempo que se emplea en realizar cada uno de los
diferentes tipos de instrucciones en ese sistema bajo esa carga.
El tiempo medio de ejecución t de este mix de instrucciones se calcula como:
∑ ⋅=i
ii tft
Luego t= 16.47 u.t.
El valor de t puede utilizarse para comparar el poder computacional de diferentes CPUs o la eficiencia de
diferentes compiladores.
♦
La simplicidad de los mix de instrucciones, es también su principal defecto, ya que,
aparte de modelar únicamente los aspectos de consumo de CPU, sólo puede usarse para
comparar sistemas con la misma arquitectura (juego de instrucciones), que usen el mismo
sistema operativo y los mismos compiladores, ya que de lo contrario se puede caer en
diferencias muy notables en la representación de la carga. Es decir, se trata de una
representación extraordinariamente ligada a un sistema.
Diseño y evaluación de configuraciones
55
Entre los más famosos mix de instrucciones destaca el Gibson-Mix. Todas ellas deben
considerarse como orientativas de la velocidad de la CPU de los distintos sistemas y nunca
deben tomarse como elemento decisivo en la selección de un equipo o en cualquier otra
comparación.
Los mix de sentencias son una extensión a lenguajes de alto nivel de los mix de
instrucciones, básicamente se construyen programas que tengan la misma frecuencia de
aparición de las distintas sentencias del lenguaje de alto nivel considerado que la carga que
se está modelando.
Los mix de sentencias son más independientes del sistema, su principal inconveniente
es que se hace más dependiente del compilador, ya que según lo optimizado que este el mix
de sentencias, cada sentencia generará un número distinto de instrucciones máquina y, por
tanto, tendrá un tiempo de ejecución distinto.
Tanto en un mix de instrucciones como en un mix de sentencias la frecuencia de
aparición puede medirse de dos formas:
• Estadísticamente, se mide la frecuencia de aparición de las sentencias en
los listados (fuente) de los programas que componen la carga.
• Dinámicamente, se calcula la frecuencia con que realmente se están
ejecutando las sentencias.
Evidentemente es más exacto el segundo método, aunque también es más difícil
obtener los datos acerca de las frecuencias de aparición.
3.3.3.3 Kernels
Un kernel es un programa o fragmento que representa lo más característico de la carga.
Sus principales características son:
• Se trata de programas cerrados.
• No se pueden realizar ajustes en dichos programas.
• Tienen un consumo de recursos conocido y no modificable.
• Son programas no paramétricos.
TEMA 3: Caracterización de la carga
56
• Son proporcionados por asociaciones de usuarios o agencias
gubernamentales.
Ejemplos de kernels son: la función de Ackerman, Sieve, programas de inversión de
matrices, programas de ordenación.
La selección de los kernels a utilizar debe realizarse en función de su similitud con los
programas que constituyen la carga del sistema. Se ha de tener en cuenta que estos
programas debido a que ocupan poco espacio de memoria pueden almacenarse en la
memoria caché, lo que provoca unos tiempos de ejecución muy pequeños, con lo cual los
resultados son poco significativos y pueden inducir a incorrectas interpretaciones.
3.3.3.4 Programas sintéticos
Los programas artificiales sintéticos no realizan ningún trabajo útil, sino que simplemente
se limitan a consumir recursos del sistema de acuerdo con los parámetros de control de
dicho programas configurados por el usuario. Normalmente estos parámetros determinan
necesidades de recursos tales como el tiempo total de CPU, el número de operaciones de
E/S, la cantidad de memoria requerida, etc.
Por medio de bucles anidados, se pueden simular los ciclos CPU-E/S de un programa
real especificando el número y tipo de instrucciones que debe ejecutar la CPU y controlando
el número de operaciones de E/S que se han de efectuar.
♦ Ejemplo 3.2: Ejemplo de programa sintético que permite modelar el consumo de CPU y de E/S:
for i :=1 to N1 do “ consumir CPU”
for i :=1 to N” do “ consumir E/S”
♦
Una de las principales características de los programas sintéticos es su flexibilidad, que
les permite simular un amplio espectro de programas reales desde el punto de vista del
consumo de recursos.
Los programas sintéticos, además de tener el conjunto inicial de parámetros de control
ya mencionado, tienen uno o dos conjuntos suplementarios de parámetros:
Diseño y evaluación de configuraciones
57
n Parámetros de corrección, son parámetros internos del programa sintético,
se usan para eliminar o reducir las distorsiones no deseadas de algunos
consumos de recursos debido a los cambios en los parámetros de control
que, idealmente, no deberían influir en otros consumos. La modificación de
estos parámetros es difícil.
n Parámetros de calibración, pueden usarse para un ajuste fino del programa
sintético durante la fase de calibración.
3.3.3.5 Secuencias transaccionales
Un entorno conversacional o transaccional era aquel donde un conjunto de usuarios
remotos creen tener, cada uno de ellos, el sistema informático a su exclusiva disposición.
Cuando se pretende construir un modelo de la carga para este tipo de entornos se plantean
varias dificultades. Quizás la más importante sea la de conseguir movilizar un conjunto
importante de personas, las cuales difícilmente actuarán de forma idéntica en cada uno de
los experimentos que se repitan.
Sistema operativo
Monitor decomunicaciones
Monitor detransacciones
Transacciones
Sistema operativo
Monitor decomunicaciones
Simulador de la red
Figura 3.2
Para evitar estos efectos resulta preferible disponer de un esquema como el que se
muestra en la Figura 3.2, en el que el sistema informático, cuyo comportamiento se quiere
evaluar contiene:
n El software del sistema (sistema operativo, monitor de comunicaciones,
etc.).
n El software de ayuda a la programación (monitor de transacciones o
conversacional, sistema de gestión de base de datos, etc.).
n El software de aplicación.
TEMA 3: Caracterización de la carga
58
El segundo sistema simula el comportamiento de la red y de los usuarios de las
terminales conectados a ella. La simulación de cada uno de estos usuarios puede hacerse
mediante un archivo que contenga los mensajes que enviaría sucesivamente el sistema de
proceso con los tiempos de reflexión asociados a cada uno de los mensajes.
La conexión entre ambos sistemas se efectúa con tantas líneas como las que tendría
realmente el sistema cuyo comportamiento se está evaluando.
El montaje de la Figura 3.2 puede considerarse como muy caro, y en ocasiones es
imposible de realizar por no disponerse del hardware suficiente. Por estos motivos se
recurre a la simplificación de la Figura 3.3.
Simulador de la red
Sistema operativo
Monitor detransacciones
Transacciones
Figura 3.3
Ahora el propio sistema se encarga de la generación y del tratamiento de los mensajes,
admitiendo, de forma gratuita, que el consumo de recursos en la simulación de los usuarios
de la red será equivalente al del monitor de comunicaciones. Este esquema de trabajo
resulta mucho más fácil de implantar.
Cuando el entorno de trabajo es de tipo transaccional. La simulación del comportamiento
de los usuarios puede hacerse conservando la traza de mensajes que se envía desde cada
canal con su temporización. Dicha traza sería la que inyecta el simulador de la red al sistema
para su tratamiento.
Una simplificación muy utilizada en el simulador es considerar que sólo existe un sólo
terminal que envía mensajes sin esperar respuesta, variando de forma proporcional los
intervalos entre mensajes se consigue simular con facilidad los aumentos de carga del
sistema.
Diseño y evaluación de configuraciones
59
El monitor de transacciones puede obtener la traza de lo que se envía desde cada
terminal con su tiempo asociado. Esta traza es la que puede utilizarse en el simulador de la
red.
3.3.3.6 Secuencias conversacionales
Cuando se trata de establecer el modelo de un entorno de trabajo, normalmente
orientado a la programación, no puede usarse el método de la traza que se acaba de
exponer para los sistemas transaccionales, puesto que los mensajes, que incluyen órdenes
de control dirigidas al sistema operativo, no son directamente transportables de un sistema
informático a otro.
Para evitar este problema, es preciso describir a nivel funcional el guión de trabajo de
cada uno de los usuarios, denominado secuencia o guión conversacional. Cada uno de ellos
debe adaptarse a cada uno de los entornos de trabajo ofrecidos por los distintos sistemas
operativos, determinado la secuencia de mensajes que deberán enviarse desde cada
terminal, con la temporización correspondiente.
3.3.3.7 Benckmarks
Se conoce con el nombre de benchmarks, a unos programas o conjuntos de
programas, construidos con alguno de los métodos anteriormente descritos, que simulan
una carga genérica.
3.3.4 Cargas de test artificiales no ejecutables
3.3.4.1 Distribuciones estadísticas
En una carga de test probabilística, los parámetros se consideran usualmente como
variables aleatorias independientes cuyas distribuciones pueden estimarse a partir de las
distribuciones medidas en la carga real o aproximadas mediante funciones analíticas
TEMA 3: Caracterización de la carga
60
3.3.4.2 Trazas para simulación
Una traza consiste en una secuencia cronológica, registrada en un soporte adecuado
que representa la información referente a determinados tipos de acontecimientos que han
sucedido en un sistema durante una sesión de medida.
Ejemplos de acontecimientos (cambio de estado) orientados a la conducción de una
simulación son los siguientes:
• La conexión de un usuario.
• La llegada de un programa.
• La iniciación de un programa.
• La asignación de un dispositivo.
• Las peticiones de operaciones de E/S.
Variando proporcionalmente los intervalos entre acontecimientos consecutivos puede
simularse fácilmente la variación de la carga.
La representatividad de la traza es bastante alta. Sin embargo, la recogida de datos para
una traza puede provocar un overhead importante que distorsione su calidad.
3.4 TECNICAS DE IMPLANTACION DE LOS MODELOS DE LA
CARGA
La implantación de modelos de la carga consta de tres fases:
• Formulación o especificación.
• Construcción
• Validación
Diseño y evaluación de configuraciones
61
3.4.1 Fase de especificación
Esta fase consiste básicamente en tomar toda una serie de decisiones en función de los
objetivos del estudio que se pretende realizar:
n Definición de los componentes básicos de la carga, es decir, la
identificación del menor nivel de detalle que debe modelarse (aplicaciones,
trabajos, programas, guiones, órdenes, instrucciones de alto nivel,
instrucciones maquina, etc.). Cuanto mayor sea el nivel del componente
básico, tanto menor es el detalle con el que se describirá la carga.
n Definición del conjunto de parámetros que debe usarse en la descripción de
la carga en función de su disponibilidad. Si el modelo de la carga se
construye a nivel de recursos físicos pueden usarse parámetros tales
como el tiempo de CPU, la memoria ocupada, el número de operaciones
de E/S, etc. Si por el contrario el modelo debe implantarse a un nivel
funcional, sus parámetros serán: el número de compilaciones, el número
de ejecuciones de programas de FORTRAN, de COBOL, de servicio del
sistema, de rutinas de clasificación, etc.
3.4.2 Fase de construcción
Esta fase consta de las cuatro operaciones básicas siguientes:
1) Análisis de los parámetros. Se realiza la operación de medida sobre el
sistema. El resultado de esta medida es un conjunto enorme de datos que
puede considerarse como un conjunto de vectores en un espacio con un
número de dimensiones igual al número de parámetros de la carga. El
objetivo de su análisis es identificar grupos de componentes con
características similares. Este análisis se lleva a cabo mediante técnicas
estadísticas para muestras multidimensionales.
2) Extracción de valores representativos. Para la extracción de valores
significativos de entre la gran cantidad de datos se utilizan técnicas
estadísticas, de entre las cabe destacar:
• Muestreo de las distribuciones de probabilidad de cada parámetro.
TEMA 3: Caracterización de la carga
62
• Muestreo de la distribución de probabilidad conjunta.
• Muestreo de las componentes de la carga.
• Análisis de los componentes principales.
• Algoritmos de agrupamiento.
• Modelos markovianos.
3) Asignación de los valores a los componentes del modelo. Consiste en
transformar los valores representativos en componentes ejecutables. El
número de componentes que constituirán el modelo influye directamente en
su representatividad e, indirectamente, en su compacidad. Si se van a
utilizar programas kernel, se tendrán que buscar aquéllos cuyos
parámetros sean próximos a los valores de los componentes
representativos. Si por el contrario se usan programas sintéticos, se
asignarán a sus parámetros de control los valores correspondientes de los
componentes representativos y se deberá calibrar el modelo modificando
los parámetros de calibración de los modelos sintéticos.
4) Reconstrucción de mezclas de los componentes significativos. El objetivo
consiste en reproducir en el modelo situaciones similares a las que se
producen en la carga real. Por ejemplo, si nuestro objetivo es reproducir el
comportamiento del sistema en las horas de mayor actividad, es preciso
lograr, mediante el modelo de la carga, mezclas de programas en
ejecución similares a las que se dan en esas horas.
3.4.3 Fase de validación
La fase de validación está destinada a establecer la validez del modelo implantado, para
lograrlo se procede a la evaluación del criterio de representatividad del modelo. También es
importante determinar el dominio de validez del modelo, lo cual no es nada sencillo.
La validación del modelo debe realizarse comparando su comportamiento con el de la
carga real en aquellos puntos en que se conozca por haberse efectuado algún tipo de
medición.
Diseño y evaluación de configuraciones
63
3.5 ESTIMACION DE LA CARGA DE NUEVAS APLICACIONES
Para realizar el análisis de la carga son necesarias dos actividades:
1) Caracterización de la carga.
2) Previsión de la carga producida por las nuevas aplicaciones.
Las nuevas aplicaciones a su vez pueden subdividirse en dos grupos:
• Aplicaciones similares a las que ya existen, y por tanto producen una carga
fácil de evaluar.
• Aplicaciones que realizan funciones completamente nuevas y que producen
una carga de características desconocidas.
En este último caso no hay datos históricos a los que referirse, ni puede probarse su
similitud con otras aplicaciones, ni pueden extrapolarse valores de la carga del sistema antes
de la introducción de la nueva aplicación. Una aproximación al problema consiste en
construir un modelo de la nueva aplicación. Normalmente este modelo es un grafo que puede
ser construido a partir del diseño y estructura de la nueva aplicación.
3.5.1 Modelo de grafos para nuevas aplicaciones
El modelo de grafos se construye de la siguiente forma:
n Aquellos puntos del organigrama en que se producen uniones o decisiones
pueden considerarse como nodos de un grafo cuyas aristas son las líneas
que conectan los nodos. Los nodos pueden estar conectados en serie, en
paralelo y en lazo.
n El grafo original puede ser reducido por eliminaciones iterativas de nodos.
n Las operaciones realizadas en una carga (o conjunto de instrucciones) son
reemplazadas por los valores de los parámetros o pesos, seleccionados de
acuerdo con los objetivos de estudio. Por ejemplo, si el objetivo de estudio
es evaluar el tiempo de ejecución de una aplicación, los pesos de las
aristas serán los tiempos medios de ejecución de las instrucciones que
representan.
TEMA 3: Caracterización de la carga
64
n Para cada nodo de decisión hay que asignar probabilidades de ejecución o
bifurcación a cada una de las aristas (o alternativas) que de él salen. Se
trata de uno de los aspectos más delicados de esta técnica. Hay tres tipos
de probabilidades de bifurcación:
1) Probabilidades que pueden evaluarse en base a aplicaciones
externas a la aplicación. Estas probabilidades son asignadas
después de examinar las características funcionales de la
aplicación.
2) Probabilidades cuyos valores dependen de la estructura de la
aplicación. Es el caso por ejemplo de determinar si un registro está
o no en un fichero, la validez de un dato de entrada.
3) Probabilidades cuyos valores son función de los datos de entrada.
Se pueden dividir en dos grupos:
a) Aquellas cuyos valores sólo dependen de los datos de
entrada.
b) Aquellas para los que no se encuentra cual pudo ser dicha
realización. En estos casos conviene modificar el grafo o
reducirlo a uno más simple.
3.5.2 Simplificación de grafos de carga
El grafo original puede ser reducido por eliminaciones iterativas de nodos. Los nodos, al
igual que las instrucciones en un lenguaje de alto nivel, pueden estar conectados con tres
tipos de estructuras: en serie o secuencia, en paralelo o mediante una selección, en lazos.
A continuación se muestra la reducción o cálculo de la carga equivalente de estos tres
tipos de estructuras. La reducción deberá realizarse de forma iterativa hasta que el modelo
de carga haya quedado reducido a un nodo de inicio y otro de final. La probabilidad de la
rama que los une deberá ser obviamente 1 y el valor importante es el peso total obtenido.
Puede suceder que una aplicación tenga varios puntos de inicio, y/o varios puntos de
finalización. En estos casos, la reducción final no podrá prescindir de ellos y el grafo reducido
Diseño y evaluación de configuraciones
65
tendrá tantos puntos de inicio y/o final como tuviese el grafo original. Obviamente las
probabilidades en estos casos pueden no ser 1.
En las figuras y ejemplos que vienen a continuación se muestran los nodos de los que
sale una única rama con lo que cabría pensar que la probabilidad de la misma es 1 y no es
necesario hacer el cálculo. Sin embargo debe tenerse en cuanta la probabilidad de que no
sea la única rama que abandona el nodo y por lo tanto hay que considerar una probabilidad
menor que 1. En las figuras, por sencillez, se ha eliminado esta posibilidad, pero hay que
tener en cuenta, que en cualquier caso, la suma de las probabilidades de todas las ramas
que salen de un mismo nodo debe ser, obviamente, 1.
Se definen las siguientes magnitudes:
• phk, es la probabilidad de que el flujo del programa pase por la rama que une
los nodos h y k.
• µhk, es el peso correspondiente a esa misma rama.
3.5.2.1 Eliminación de nodos en serie
Supóngase que se tiene un grafo de tres nodos h, k y m conectados en serie (ver Figura
3.4) en ese caso es posible reducir el grafo a uno de dos nodos.
h k mphk
µhk
pkm
µkmh m
phm
µhm
Figura 3.4
Al eliminar el nodo k la probabilidad entre los nodos h y m será el producto de las
probabilidades de las ramas anteriores y su contribución a la carga o peso, será la suma de
los pesos de ambas ramas:
kmhkhm
kmhkhm ppp
µµµ +== ·
Puede suceder que un mismo nodo esté en serie con varias ramas. En este caso
podemos eliminarlo dejando el resto de ramas en forma paralela. Supóngase el grafo de la
Figura 3.5, es posible eliminar el nodo k conectado en serie con los nodos h, i, j y m.
TEMA 3: Caracterización de la carga
66
j k ipik
µik
pik
µik
h
m
phk
pkmµkm
µhk
j i
m
h
phmµhm
pimµim
pjm
µjm
Figura 3.5
Donde
kmikimkmjkjmkmhkhm
kmikimkmjkjmkmhkhm ppppppppp
µµµµµµµµµ +=+=+=
=== ···
3.5.2.2 Eliminación de nodos en paralelo
Supóngase que se tiene un grafo de dos nodos h y k conectados en paralelo (ver Figura
3.6) por dos aristas en ese caso es posible reducir el grafo a dos nodos y una sola arista.
k
h
p’’hk
µ’’hk
p’hk
µ’hk
k
h
phk
µ hk
Figura 3.6
Se tienen las siguientes relaciones:
hkhk
hkhkhkhkhkhkhkhk pp
ppuppp
'''''''''
'''+
⋅+⋅=+=
µµ
Diseño y evaluación de configuraciones
67
3.5.2.3 Eliminación de nodos en lazo
Supóngase que se tiene un grafo de dos nodos h y k, el nodo h presenta inicialmente un
lazo, es posible eliminar dicho lazo de la forma indicada en la Figura 3.7.
h kphk
µhkh k
p’hk
µ’hk
phh
µhh
Figura 3.7
Se tienen las siguientes relaciones:
hh
hhhhhkhk
hh
hkhk p
pp
pp
−⋅
+=−
=1
'1
' µµµ
♦ Ejemplo 3.3: Calcular la carga de CPU del sistema representada en la siguiente figura mediante la
reducción del grafo adjunto.
Inicio
Fin
1
2
3
4
CPU=40 u.t
CPU=10 u.t
P=0.5CPU=10 u.t
CPU=10 u.tP=0.5CPU= 0 u.t
P=0.5CPU= 0 u.t
P=0.5CPU=10 u.t
Figura 3.8
TEMA 3: Caracterización de la carga
68
Solución:
Paso 1: Eliminación del nodo 3
Inicio
Fin
1
2
4
CPU=40 u.t
CPU=10 u.t
P=0.5CPU=20 u.t
P=0.5CPU= 10 u.t
P=0.5CPU= 0 u.t P=0.5
CPU=10 u.t
La eliminación del nodo 3 implica un doble
calculo:
201010
5.015.0·
342324
342324
=+=+====
µµµxppp
10100
5.015.0·
344344
344344
=+=+====
µµµxppp
Paso 2: Eliminación del bucle
Inicio
Fin
1
2
4
CPU=40 u.t
CPU=10 u.t
P=0.5CPU=20 u.t
P=0.5CPU= 0 u.t P=1
CPU=20 u.t
205.01
105.010
1'
15.01
5.01
'
44
44444141
44
4141
=−
+=−
⋅+=
=−
=−
=
xp
p
pp
p
µµµ
Diseño y evaluación de configuraciones
69
Paso 3: Eliminación del nodo 4
Inicio
Fin
1
2
CPU=40 u.t
CPU=10 u.t
P=0.5CPU= 0 u.t
P=0.5CPU=40 u.t
402020
5.015.0·
412421
412421
=+=+====
µµµxppp
Paso 4: Eliminación del nodo 1
Inicio
Fin 2
CPU=50 u.t
P=0.5CPU= 0 u.t P=0.5
CPU=50 u.t
501040
111·
1212
1212
=+=+====
µµµ ii
ii xppp
501040
5.015.0·
122122
122122
=+=+====
µµµxppp
Paso 5: Eliminación del bucle
Inicio
Fin 2
CPU=50 u.t
CPU= 50 u.t
505.01
505.00
1'
15.01
5.0
1
'
22
222222
22
22
=−
+=−
⋅+=
=−
=−
=
xp
p
p
pp
ff
ff
µµµ
TEMA 3: Caracterización de la carga
70
Paso 6: Eliminación del nodo 2
Inicio
Fin
CPU=100 u.t
1005050
111·
22
22
=+=+=
===
fiif
fiif xppp
µµµ
Tras la reducción del grafo, la carga de CPU es equivalente a 100 unidades de tiempo.
♦ ♦
Tema 4
INTRODUCCION A LAS TECNICAS
ANALITICAS: ANALISIS OPERACIONAL
71
4.1 INTRODUCCION
La teoría de colas permite determinar el tiempo que un trabajo pasa esperando en las
distintas colas de un sistema. Una red de colas es un conjunto de estaciones de servicio y
de clientes. Las estaciones de servicio representan los recursos del sistema y los clientes,
usualmente representan a los usuarios.
Una estación de servicio consta de un servidor más una cola de espera asociada. Se
establece por tanto la siguiente relación entre los modelos y los sistemas reales:
Servidor (modelo) <=> Recurso del sistema (hardware)
Cola (modelo) <=> Cola (software) asociada al recurso
Se denomina resolución o evaluación analítica a la obtención de los índices de
prestaciones del sistema a partir de un modelo de colas. Básicamente consiste en la
resolución de un conjunto de ecuaciones que se deducen a partir del modelo y de sus
parámetros.
El objetivo del análisis operacional es llegar a establecer relaciones entre las variables
que caracterizan la carga y las que miden el comportamiento. El término operacional implica
que el sistema es directamente medible. Por tanto, una suposición o hipótesis operacional
será aquella que puede ser comprobada o verificada mediante la medida
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
72
4.2 ESTACION DE SERVICIO: VARIABLES OPERACIONALES
En la Figura 4.1 se muestra un esquema de una estación de servicio.
Estación de servicio
Cola Servidor
Salidas (C)Llegadas (A)
Manantial
Figura 4.1: Esquema de una estación de servicio
Cuando un cliente llega a la estación de servicio, si el servidor esta ocupado atendiendo
a otro cliente, tendrá que esperar en la cola hasta que el servidor quede libre. Una vez que un
cliente recibe servicio abandona la estación.
El conjunto (Estación de servicio + clientes) constituye la versión más simple de un
modelo de red de colas. Básicamente este modelo tendrá dos parámetros:
• La intensidad de carga o tasa de llegada de los clientes se mide en
(peticiones/segundo).
• La demanda de servicio, que es el tiempo medio de servicio de un cliente,
se mide en (segundos)
Los clientes en una estación de cola compiten por el servidor. Por ello el tiempo de
residencia estará compuesto por un posible tiempo de espera y un tiempo de servicio. Se
utilizan para representar recursos del sistema en los cuales los clientes compiten por el
servicio (CPU, dispositivos de E/S,...)
Diseño y evaluación de configuraciones
73
4.2.1 Variables operacionales en una estación de servicio
4.2.1.1 Variables operacionales básicas
Las variables operacionales básicas son las que se pueden medir directamente sobre el
sistema durante un intervalo de observación finito.
• T (seg), intervalo de observación o de medida del sistema.
• A (peticiones o clientes), número de peticiones llegadas o clientes durante
el intervalo T.
• C (peticiones o clientes), número de peticiones completadas o servidas
durante el intervalo T.
• B (seg), tiempo durante el cual el recurso observado (la estación de
servicio) ha estado ocupado.
4.2.1.2 Variables operacionales deducidas
Las variables operacionales deducidas se deducen a partir de las básicas y son:
n Tasa de llegada λ (peticiones/segundo), mide las llegadas al sistema o a la
estación de los clientes o peticiones por unidad de tiempo.
TA=λ (4.1)
n Productividad X (peticiones/segundo), es el número de peticiones
completadas por unidad de tiempo.
TC
X = (4.2)
n Utilización U (adimensional), mide la proporción de tiempo durante el cual el
servidor ha estado ocupado.
TB
U = (4.3)
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
74
n Tiempo medio de servicio S (segundos/petición), mide el tiempo durante el
cual un cliente ocupa el servidor.
CB
S = (4.4)
4.2.1.3 Leyes y teoremas operacionales
La ley operacional de la utilización, dice que la utilización de la estación de servicio viene
definida por el producto de la productividad del sistema y el tiempo medio de servicio.
SXCB
TC
TB
U ⋅=⋅== (4.5)
El teorema del equilibrio del flujo de trabajos dice que el número de llegadas es igual al
número de salidas durante el intervalo de observación.
XCA =⇔= λ (4.6)
De acuerdo con la ecuación anterior la ley de utilización se puede reescribir como:
SU ⋅= λ (4.7)
4.3 REDES DE COLAS
Para representar o modelar un sistema o subsistema informático se suele utilizar un
conjunto de estaciones de servicio relacionadas entre sí, constituyendo lo que se denomina
una red de colas.
En la siguiente discusión se va a trabajar con valores medios, lo que es equivalente a
considerar que todos los trabajos son del mismo tipo, es decir, solicitan los mismos
recursos el mismo número de veces por trabajo y cada vez solicitan el mismo servicio del
recurso.
Otra hipótesis de trabajo es considerar que en un instante dado, un cliente puede estar
presente únicamente en una estación de servicio.
Diseño y evaluación de configuraciones
75
Se distinguen tres tipos de redes:
• Cerradas, se utilizan para representar sistemas batch y sistemas
interactivos.
• Abiertas, se utilizan para representar sistemas transaccionales.
• Mixtas
4.3.1 Redes cerradas
No tienen ni llegadas ni salidas externas, por lo que el número de trabajos o clientes en el
sistema permanece constante.
En el estudio de las redes cerradas se toma como dato el número de trabajos N y se
pretende determinar la productividad X a la cual se completan los trabajos.
4.3.1.1 Sistemas BATCH
Disco 1
Disco 2
Disco 3
Disco 4
Disco 5
Disco 6
CPU
Figura 4.2: Modelo de redes de colas para un sistema batch.
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
76
En un sistema batch cuando se termina un trabajo es inmediatamente reemplazado por
otro. Para especificar la intensidad de carga bastará con indicar el número medio de trabajos
activos N o, lo que es lo mismo, el factor de multiprogramación.
4.3.1.2 Sistemas Interactivos
Disco 1
Disco 2
Disco 3
Disco 4
Disco 5
Disco 6
CPU
Estaciónde retardo
Figura 4.3: Modelo de redes de colas para un sistema interactivo.
En los sistemas interactivos para especificar la intensidad de carga se tendrán que
especificar dos parámetros:
• N que es el número de terminales activos (clientes).
• Z que es el tiempo de reflexión, es decir, tiempo que por término medio, los
usuarios utilizan los terminales entre dos interacciones consecutivas.
Se puede decir que cada terminal está manejada por un usuario que alterna períodos de
reflexión y de espera. En un periodo de reflexión, el usuario contempla el resultado de la
interacción anterior y prepara la siguiente y, por tanto, el subsistema central (formado por la
CPU y las unidades de E/S) no efectúa ningún trabajo para él. Por otro lado cuando transmite
una petición, el usuario entra en un periodo de espera en el que permanece mientras el
subsistema central efectúa el trabajo solicitado
Para modelar las terminales, se introduce un tipo de estación de servicio denominada
estación de retardo.
Diseño y evaluación de configuraciones
77
4.3.2 Redes abiertas (Sistema transaccional)
Poseen llegadas y salidas externas. En consecuencia el número de trabajos en el
sistema varía a lo largo del tiempo.
Disco 1
Disco 2
Disco 3
Disco 4
Disco 5
Disco 6
CPU
Llegadas
Salidas
Figura 4.4: Modelo de redes de colas para un sistema transaccional.
Para el análisis de los sistemas representados por este tipo de redes se parte de una
productividad conocida, a partir de la cual se trata de obtener los índices de prestaciones
tales como el tiempo de respuesta.
El número de clientes en un sistema transaccional varia con el tiempo. Los clientes que
completan su servicio abandonan el sistema.
4.3.3 Redes mixtas
Se trata de modelos abiertos para unos tipos de cargas y cerrados para otros. En el
esquema de la Figura 4.5 el sistema es cerrado para trabajos interactivos y abierto para
trabajos de tipo transaccional.
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
78
Subsistemacentral
Transacciones concluidas
Trabajos transaccionales
Terminales
Trabajos interactivos
Figura 4.5
4.3.4 Resumen comparativo
Las cargas interactivas y batch tienen una población total fija (número de clientes en el
sistema). Una carga interactiva con un tiempo de reflexión Z=0 será totalmente equivalente a
una carga batch.
Tanto en los sistemas interactivos como en los transaccionales, la población en el
subsistema central (sistema sin terminales) varía, siempre que en el sistema interactivo se
cumpla Z ≠ 0. El número total de clientes en el subsistema central de un sistema interactivo
estará limitado por N, el número de terminales activos. En los sistemas transaccionales no
existe este límite superior.
4.3.5 Medidas operacionales en redes.
4.3.5.1 Variables operacionales básicas
Se supone una red de colas de K dispositivos o estaciones de servicio. Para un periodo
de observación T se obtienen las siguientes medidas para cada estación i, para i=1, 2,...,K:
• Ai número de llegadas a la estación i.
• Bi tiempo de ocupación de la estación i.
Diseño y evaluación de configuraciones
79
• Ci j número de veces que un trabajo requiere servicio del
dispositivo/estación j inmediatamente después de terminar el servicio en el
dispositivo/estación i.
Considerando el mundo exterior como estación o servicio 0 se pueden definir:
• A0j número de trabajos cuya primera petición de servicio se produce en la
estación j.
• Ci0 número de trabajos cuya última petición de servicio se produce en la
estación i. Se supone que C00=0.
El número de trabajos terminados en un dispositivo o estación i será:
KiCCK
jiji ...,,2,1
1
== ∑=
(4.8)
El números de llegadas al sistema es:
∑=
=K
jjAA
100 (4.9)
Mientras que el número de salidas del sistema es:
∑=
=K
iiCC
100 (4.10)
En un sistema cerrado se cumple que A0 = C0.
4.3.5.2 Variables operacionales deducidas
La utilización del dispositivo i viene dada por:
TB
U ii = (4.11)
El tiempo medio de servicio del dispositivo i viene dado por:
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
80
i
ii C
BS = (4.12)
La productividad o tasa de salida del dispositivo i viene dada por:
TC
X ii = (4.13)
Finalmente, la frecuencia de encaminamiento qi j se define como la fracción de trabajos
que se dirigen al dispositivo j al terminar el servicio en el dispositivo i
=
==
0
...,,2,1
0
0 iA
A
KiC
C
qj
i
ij
ij (4.14)
Se cumple que
10
=∑=
K
jijq (4.15)
4.4 LEYES OPERACIONALES
4.4.1 Ley del flujo de salida
La productividad o frecuencia de salida del sistema viene dada por la siguiente
expresión:
TC
X 00 = (4.16)
Por la ecuación (4.14)
iiii
ii CqC
CC
q ⋅=⇒= 000
0 (4.17)
Diseño y evaluación de configuraciones
81
Por otro lado sustituyendo (4.17) en la ecuación (4.10)
∑=
⋅=K
iii CqC
100 (4.18)
Así finalmente sustituyendo (4.18) en (4.16) se obtiene:
∑∑==
⋅=⋅=K
iii
K
i
ii Xq
TC
qX1
01
00 (4.19)
4.4.2 Ley de la utilización
Dado el número de terminaciones Ci y el tiempo de ocupación Bi de una estación o
dispositivo i durante un periodo de observación T. La utilización Ui de dicha estación o
dispositivo i se puede expresar de la siguiente forma:
i
iiii C
BTC
TB
U ⋅== (4.20)
Luego:
iii SXU ⋅= (4.21)
La utilización de un dispositivo es igual al producto de su productividad por el tiempo
medio de servicio.
♦ Ejemplo 4.1: Un disco sirve 40 accesos/seg, y cada acceso requiere un servicio medio de 0.0225 s.
Calcular la utilización del disco
El enunciado dice que XD=40 accesos/ seg y SD=0.0225 seg. Luego aplicando la ley de utilización (4.21)
se obtiene UD=40 x 0.0225=0.9 →90%.
♦
4.4.3 Ley del equilibrio del flujo de trabajos
La hipótesis de flujo de trabajos equilibrados, consiste en suponer que para cada
estación todo lo que entra en ella debe salir, es decir:
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
82
KjCACK
iijjj ,...,1,0
0
=== ∑=
(4.22)
Por la ecuación (4.14)
iijiji
ijij CqC
C
Cq ⋅=⇒= (4.23)
Realizando la siguiente suma:
∑∑==
⋅=K
iiij
K
iij CqC
00
y dividiendo ambos miembros de la ecuación por el periodo de observación T se obtiene:
T
Cq
T
Ci
K
iij
j ∑=
⋅=0
(4.24)
Que es equivalente a:
∑=
=⋅=K
iijij KjqXX
0
...,,2,1 (4.25)
Que son las ecuaciones que describen el equilibrio del flujo de trabajos.
Se pueden presentar dos casos:
• Si la red es abierta, el valor de X0 se especifica externamente y las
ecuaciones tienen una solución única para las incógnitas Xi.
• Si la red es cerrada, X0 es inexistente y las ecuaciones no tienen una
solución única, puesto que puede comprobarse que hay K ecuaciones
independientes con K+1 incógnitas.
4.4.4 Ley de Little
La ley de Little dice que el número medio de peticiones Ni en el sistema es igual a la
productividad del sistema Xi por el tiempo medio de residencia Ri
Diseño y evaluación de configuraciones
83
iii RXN ⋅= (4.26)
En un sistema informático esta ley puede aplicarse a distintos niveles (ver Figura 4.6):
1) A un solo recurso (sin incluir su cola).
2) A un solo recurso (incluyendo su cola).
3) A un subsistema.
4) A todo el sistema en conjunto.
Disco 1
Disco 2
Disco 3
Disco 4
Disco 5
Disco 6
CPU
Estaciónde retardo
1234
Figura 4.6
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
84
4.4.4.1 Nivel 1: Aplicación de la ley de Little a un único recurso sin incluir la cola
del mismo.
En este nivel, el recurso es utilizado siempre que haya una petición presente. Por ello la
utilización es la proporción de tiempo durante la cual está presente una petición. Por ello en
este nivel la aplicación de la ley de Little constituye una derivación alternativa de la ley de
utilización.
• Población Ni, utilización del recurso.
• Productividad Xi (peticiones/seg).
• Tiempo de residencia Ri (seg), es el tiempo medio de servicio requerido
por una petición en el recurso.
4.4.4.2 Nivel 2: Aplicación de la ley de Little a un único recurso incluyendo su
cola de espera
A este nivel corresponde la aplicación típica de la ley de Little a un dispositivo.
• Población Ni (peticiones), número total de peticiones en la cola o en
servicio.
• Productividad Xi(peticiones/seg), tasa de terminación de servicios o
peticiones.
• Tiempo de residencia Ri (seg), es el tiempo medio que una petición pasa en
el recurso (tiempo medio de espera en cola + tiempo de servicio)
4.4.4.3 Nivel 3: Aplicación de la ley de Little al subsistema central (el sistema sin
los terminales)
A este nivel ya no se habla de peticiones sino de interacciones
• Población N(usuarios), número de usuarios en el subsistema central
(aquellos que no están pensando).
• Productividad X(interacciones/seg), tasa a las que la interacciones fluyen
entre los terminales y el subsistema central.
Diseño y evaluación de configuraciones
85
• Tiempo de residencia R(seg), es el tiempo de respuesta, es decir, el
periodo de tiempo desde que un usuario envía una petición hasta que la
respuesta es devuelta al usuario
4.4.4.4 Nivel 4:Aplicación de la ley de Little a todo el sistema (incluyendo los
terminales)
A este nivel ya no se habla de peticiones sino de interacciones entre sistema y
terminales.
• Población N(usuarios), número total de usuarios interactivos.
• Productividad X(interacciones/seg), tasa a la que las interacciones fluyen
entre los terminales y el sistema.
• Tiempo de residencia [R+Z] (seg), suma del tiempo de respuesta R más el
tiempo de reflexión Z de los usuarios
Luego a este nivel la ley de Little se suele expresar de la siguiente forma:
)( ZRXN +⋅= (4.27)
A partir de la cual se suele expresar la ley del tiempo de respuesta de un sistema
interactivo:
ZXN
R −= (4.28)
♦ Ejemplo 4.2: En un entorno interactivo como el de la Figura 4.6 se dispone de las siguientes
medidas:
n Hay 10 terminales activos.
n Por término medio hay 7.5 trabajando
n La productividad del sistema es igual 0.5 interacciones/seg
n Datos del disco 6(A): Sirve 40 peticiones/seg y cada petición requiere una media de
0.0225 s de servicio. Además el número de peticiones presentes es 4.
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
86
Calcular:
a) La utilización en el disco A (número de peticiones recibiendo servicio).
b) Tiempo medio de residencia de una petición al disco A.
c) Tiempo medio de espera en la cola de una petición al disco A.
d) Número medio de peticiones en la cola de espera del disco A.
e) Tiempo de reflexión.
Solución:
a) De los datos del enunciado se conoce que la productividad del disco A es XA=40 peticiones/seg.
Además el tiempo medio de servicio es SA=0.0225 seg. Aplicando la ley de utilización se obtiene la
utilización del disco A
%909.00225.040 ⇒=⋅=⋅= AAA SXU
b) Despejando RA de la ley de Little aplicada al disco A, y puesto que se conoce del enunciado que
XA=40 peticiones/seg y que el número medio de peticiones presentes en el disco A es NA=4 se obtiene:
segXN
RA
AA 1.0
404 ===
c) El tiempo medio de residencia de una petición al disco A es igual a la suma del tiempo medio de
servicio más el tiempo de espera en la cola. Puesto que se conoce del enunciado que SA=0.0225 seg y
se ha calculado en el apartado anterior que RA=0.1 seg, entonces el tiempo medio de espera en la cola
es:
segSRt AACA 0775.00225.01.0 =−=−=
d) En el apartado A se ha calculado la utilización del disco A, UA=90%, es decir 0.9 peticiones están en
servicio. Por otro lado del enunciado se sabe que el número de peticiones presentes (cola+servicio) en A
es 4. Luego el número de trabajos en la cola de A es:
peticionesNNN SAACA 1.39.04 =−=−=
e) Despejando R de la ley de Little aplicada al subsistema central, y conocido del enunciado que X=0.5
interacciones/seg y que N=7.5 interacciones.
Diseño y evaluación de configuraciones
87
segXN
R 155.05.7 ===
Despejando Z de la ley de Little aplicada al sistema incluyendo los terminales, y conocido del enunciado
que X=0.5 interacciones/seg, que N=10 terminales, además R se ha obtenido en el apartado anterior.
Luego:
segRXN
Z 5155.0
10 =−=−=
♦
4.4.5 Ley del flujo forzado
Esta ley relaciona la productividad del sistema con las productividades individuales de
los dispositivos que lo componen. Es decir, establece que los flujos (productividades) tienen
que ser proporcionales unos respectos a otros en todas las partes del sistema
En un modelo abierto, el número de trabajos que abandonan el sistema por unidad de
tiempo define la productividad del mismo.
En un modelo cerrado, ningún trabajo abandona el sistema. No obstante, se puede
considerar que atravesar el enlace exterior equivale a abandonar el sistema e
inmediatamente volver a entrar en el mismo. Por lo tanto, la productividad se define entonces
como el número de trabajos que atraviesan ese enlace por unidad de tiempo.
Se define la tasa de visita a un recurso k, Vk como la relación entre el número de
terminaciones en ese recurso y las que ha habido en el sistema en el mismo periodo de
tiempo.
CC
V kk = (4.29)
Es decir, la tasa de visitas Vk es el número medio de peticiones que una interacción a
nivel de sistema hace a ese recurso.
Despejando Ck de la ecuación (4.29) y dividiendo ambos términos por el periodo de
observación se obtiene la denominada ley del flujo forzado.
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
88
kkkk VXXV
TC
TC
⋅=→= · (4.30)
La ley del equilibrio del flujo de trabajos viene definida por la ecuación (4.25),
sustituyendo en ella la ley del flujo forzado, se obtienen las ecuaciones que permiten
determinar las tasas de visita a partir del conocimiento del comportamiento del sistema.
∑=
=⋅+=
=K
iijij KjqVVV
V
10
0
...,,2,1
1
(4.31)
Se trata de K ecuaciones con K incógnitas de las que siempre se puede obtener una
solución única y en las que siempre se puede considerar que V0=1, ya que en el punto donde
se mide el flujo de trabajos se tendrá forzosamente una visita por trabajo.
Por otra parte, se define la demanda de servicio de un recurso k, Dk, como el producto
de la tasa de servicio del recurso por el tiempo medio de utilización del mismo.
kkk SVD ⋅= (4.32)
En definitiva la demanda de servicio Dk expresa la cantidad total de tiempo de servicio
del recurso k que requiere por termino medio una interacción. Las unidades de Dk son por
tanto (seg/ interacción).
Por otra parte, la demanda de servicio D de un trabajo en todos los recursos del sistema
se define
∑=
=N
KkDD
1
(4.33)
Combinando la ley de utilización y la ley del flujo forzado se deduce la siguiente ley:
)()( kkkkkkk SVXSVXSXU ⋅⋅=⋅⋅=⋅= (4.34)
kk DXU ⋅= (4.35)
♦ Ejemplo 4.3: En un sistema batch, cada trabajo requiere una media de 6 accesos a un disco
especifico, y el disco atiende 12 peticiones de los trabajos batch por segundo, entonces:
Diseño y evaluación de configuraciones
89
a) ¿Cual será la productividad de trabajos batch del sistema?.
b) Otro disco sirve 18 peticiones de trabajo batch por segundo. ¿Cuantos accesos requiere un
trabajo batch, por término medio, a ese segundo disco?
Solución:
a) El enunciado está dando los siguientes datos VD1=6 accesos/trabajo y XD1=12 peticiones/seg. Luego
aplicando la ley del flujo forzado definida en la ecuación (4.30), es inmediato calcular la productividad X
del sistema.
segtrabajosVX
XD
D /2612 ===
b) Ahora se pide calcular VD2, dando como dato XD2=18 peticiones/seg. Puesto que la productividad X del
sistema se ha calculado en el apartado anterior, nuevamente aplicando la ley del flujo forzado es posible
obtener VD2.
trabajopeticionesX
XV D
D /92
1822 ===
♦
♦ Ejemplo 4.4: Determinar el tiempo medio de respuesta para un sistema interactivo con las
siguientes características:
n N=25 terminales
n Tiempo medio de reflexión Z=18 seg.
n Se realizan VD=20 peticiones a un disco especifico por interacción.
n El disco presenta una utilización UD=30 %.
n El tiempo medio de servicio por petición a ese disco es de SD=0.025
Solución:
El tiempo medio de servicio R del sistema se obtendrá a partir de la ley de Little.
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
90
ZXN
R −=
Para poder aplicarla es necesario calcular primeramente la productividad X del sistema. Para ello, de la
ley de utilización es posible obtener la productividad XD del disco
)/(12025.03.0
segpeticionesSU
XD
DD ===
Por otra parte, de la ley del flujo forzado es posible obtener la productividad del sistema.
6.02012 ===
D
D
VX
X interacciones/seg
Con lo que finalmente se obtiene:
7.23186.0
25 =−=R seg
♦
♦ Ejemplo 4.5: Si un trabajo hace una media de 20 peticiones a disco y requiere una media de 0.025
seg de servicio en cada visita. ¿Cuál es la demanda se servicio de dicho disco?
El enunciado dice que VD=20 peticiones/trabajo y SD=0.025 seg/petición. Luego aplicando la definición
de demanda de servicio se obtiene DD=0.5 seg.
♦
♦ Ejemplo 4.6: En el sistema en tiempo compartido (Figura 4.7) se han realizado diferentes medidas,
que han permitido determinar que cada programa requiere una media de 5 seg de tiempo de CPU y hace
80 peticiones de E/S al disco A y 100 peticiones al disco B. Por otra parte el tiempo medio de reflexión
de los usuarios es de 18 seg. De las especificaciones de los dispositivos se sabe que el disco A
requiere 50 ms para satisfacer un acceso de E/S y el disco B 30ms por acceso. Además con 17
terminales activos, la productividad del disco A es de 15.7 accesos de E/S por segundo. Calcular la
productividad del sistema y la utilización de los distintos dispositivos..
Diseño y evaluación de configuraciones
91
Disco A
Disco BCPU
Terminales
Figura 4.7
Solución:
El enunciado proporciona los siguientes datos:
DCPU=5 seg/trabajo
VA= 80 peticiones/trabajo
VB= 100 peticiones/trabajo
Z= 18 seg
SA=50 ms/acceso
SB=30 ms/acceso
N=17 →XA=15.7 peticiones/seg
Según el esquema hay tres recursos la CPU, el disco A y el disco B. Los trabajos deben visitar la CPU,
antes de ir a uno de los discos o volver al terminal. Por ello, la tasa de visita a la CPU es:
1811100801 =++=++= BACPU VVV peticiones/trabajo
El primer paso en el análisis operacional suele ser calcular la demanda de servicio de cada uno de los
dispositivos que constituyen el sistema (CPU, disco A y disco B), la demanda de la CPU es un dato del
problema DCPU= 5 s/trabajo. Mientras que DA y DB se pueden calcular a partir de la definición de
demanda de servicio:
405.080 =⋅=⋅= AAA SVD s/trabajo
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
92
303.0100 =⋅=⋅= BBB SVD s/trabajo
Aplicando la ley del flujo forzado al disco A es posible obtener la productividad del sistema ya que se
conocen XA y VA.
1963.080
7.15 ===A
A
VX
X trabajos/s
Con lo que la utilización de cada dispositivo se puede calcular a partir de la ley de utilización UK=X·DK.
%9898.051963.0 ⇒=⋅=⋅= CPUCPU DXU
%5.78785.041963.0 ⇒=⋅=⋅= AA DXU
%9.58589.031963.0 ⇒=⋅=⋅= BB DXU
♦
♦ Ejemplo 4.7: En la Figura 4.8 se representa un sistema en tiempo compartido con una restricción de
memoria, es decir, se puede dar una acción de swapping entre dos interacciones. Así una petición
puede ser forzada a estar en cola para conseguir una partición de memoria antes de competir por los
recursos del subsistema central. Se obtuvieron los siguientes datos medidos observando la carga de
tiempo compartido de un sistema con diferentes cargas:
Discos
CPU
Terminales
Cola de lamemoria
1
23
4
Figura 4.8
Diseño y evaluación de configuraciones
93
n Número medio de usuarios de tiempo compartido N=23.
n Tiempo medio de respuesta percibido por el usuario R=30 s.
n Productividad de los usuarios de tiempo compartido X=0.45 interacciones/s.
n Número medio de peticiones de tiempo compartido ocupando memoria NenM=1.9
n Tiempo medio de servicio de CPU requerido por interacción DCPU=0.63 s.
Contestar las siguientes preguntas
a) ¿Cuál fue el tiempo medio de reflexión de un usuario de tiempo compartido?.
b) ¿Cuantos usuarios como media, estuvieron intentando obtener servicio?, es decir, ¿Cuantos
usuarios no estaban “pensando” en sus terminales?
c) ¿Cuanto tiempo, como media, pasaba entre la adquisición de memoria y la terminación de la
interacción?
d) ¿Cual es la contribución a la utilización de la CPU de la carga en tiempo compartido?
Solución:
a) Despejando el tiempo de reflexión Z de la ley de Little aplicada al sistema completo (Nivel 4) se
obtiene:
1.213045.023 =−=−= R
XN
Z s
b) Aplicando la ley de Little al Nivel 3, se obtiene:
5.133045.0 =⋅=⋅= RXNquierenM usuarios
El número de usuarios en memoria es NenM=1.9, luego en promedio el número de usuarios que debían
estar en la cola es Ncola=NquierenM -NenM=13.5-1.9=11.6 usuarios
c) Se pide calcular el tiempo de residencia en memoria RenM, aplicando la ley de Little al nivel 2 se
obtiene:
2.445.09.1 ===
XN
R enMenM s
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
94
Es decir, de los 30 s de tiempo de respuesta percibidos por el usuario, cerca de 26 s transcurren en
espera de acceder a la memoria.
d) Aplicando la ley de utilización a la CPU se obtiene:
%3.28283.063.045.0 ⇒=⋅=⋅= CPUCPU DXU
♦
♦ Ejemplo 4.8: El modelo de colas del sistema transaccional de la figura tiene 3 dispositivos (una
CPU y dos discos) y 3 clases de transacciones con las características indicadas en la siguiente tabla.
¿Cuál será la utilización de la CPU de este sistema?
Tipo de transacción Frecuencia dellegada (trans/h)
DCPU (s/trans) D disco A(s/trans) Ddisco B (s/trans)
Compilación 480 2.0 0.75 0.25Ejecución 120 11.9 5.00 5.70Sesión de edición 600 0.5 0.20 0.60
Tabla 4.1
Disco A
Disco BCPUEntradas:
-Compilaciones-Ejecuciones-Sistemas de edición
Salidas:
-Compilaciones-Ejecuciones-Sistemas de edición
Figura 4.9
Diseño y evaluación de configuraciones
95
Solución:
La Tabla 4.1 da la frecuencia de llegada y las utilizaciones de los dispositivos distinguiendo el tipo de
transacción así para calcular la utilización de la CPU, hay que aplicar la ley de utilización sobre la CPU
para cada tipo de interacción y posteriormente sumar los porcentajes resultantes:
%6.26266.00.23600480 ⇒=⋅=⋅⋅= comp
CPUcompcomp
CPU DU λ s
%6.39396.09.113600120 ⇒=⋅=⋅⋅= ejec
CPUejecejec
CPU DU λ
%3.8083.05.03600600 ⇒=⋅=⋅⋅= ses
CPUsesses
CPU DU λ
Luego UCPU=26.6+39.6+8.3= 74.5 %
♦
TEMA 4: Introducción a las técnicas analíticas: Análisis operacional
96
Tema 5
ANALISIS DE LOS CUELLOS DE BOTELLA
97
5.1 INTRODUCCION
Un cuello de botella es una limitación de las prestaciones del sistema provocada por
diversas causas: un componente hardware, un componente software o la organización del
sistema.
Un cuello de botella produce una relantización considerable del tráfico de los procesos
en un área del sistema. Así, cuando la demanda de servicio de un determinado componente
excede en frecuencia e intensidad a la capacidad de servicio de ese componente, se dan las
condiciones para la aparición de un cuello de botella.
El término cuello de botella sólo es apropiado cuando el problema en las prestaciones
puede ser atribuido a uno o dos recursos del sistema, ya que en un sistema donde todos o
casi todos los componentes están sobrecargados no se pueden encontrar cuellos de botella
concretos y se habla de un sistema sobrecargado o saturado.
En ocasiones, la eliminación de un cuello de botella hace que aparezca otro distinto, se
dice en ese caso que un cuello de botella esconde otro. Se deben eliminar todos los cuellos
de botella hasta conseguir que el sistema se encuentre equilibrado (balanced).
Por otra parte, los cuellos de botella no están directamente ligados a una configuración
dada, sino que son función, en gran medida, de la carga. Además como la carga en los
sistemas suele variar con el tiempo, pueden aparecer cuellos de botella temporales, que son
aquellos que aparecen por un espacio de medida relativamente corto respecto a la sesión de
medida. Por ello para su detección se suele utilizar un método de interpretación de las
medidas en tiempo real (on line).
TEMA 5: Análisis de los cuellos de botella
98
5.2 DETECCION Y ELIMINACION DE CUELLOS DE BOTELLA
Existen diversas aproximaciones para la detección de los cuellos de botella,
conceptualmente todas ellas son bastante similares, aunque están basados en técnicas
diferentes (simulación, modelos analíticos, medidas sobre el sistema, ...). El método más
común es el basado en la interpretación a posteriori (off-line) de las medidas realizadas
sobre el sistema. El procedimiento que sigue cualquiera de estos métodos es el siguiente:
1) Debido a síntomas de ineficiencia o algunos de los estudios de evaluación
que se realizan al sistema se sospecha de la existencia de un cuello de
botella. Se debe formular una hipótesis acerca de la localización y causa de
dicho cuello de botella.
2) Se procede a la validación de la hipótesis acerca de la causa del cuello de
botella, para ello se recurre a los datos medidos sobre el sistema, o si
éstos son insuficientes a la recogida de más datos y a su análisis.
3) Una vez confirmada la hipótesis se plantea el problema de eliminar el cuello
de botella o de reducir sus efectos al menos. Para ello hay que determinar
el método más eficaz para eliminarlo. En general se pueden distinguir dos
tipos de modificaciones del sistema para la eliminación de cuellos de
botella:
n Terapias de reposición (upgradding), hacen referencia a
modificaciones del hardware: añadir, reemplazar o incluso eliminar
en ocasiones uno o más componentes hardware.
n Terapias de sintonización (tunning), se trata de modificaciones que
no alteran la configuración pero de alguna manera tienen efecto
sobre la organización del sistema. Como por ejemplo, cambiar
ficheros de un disco a otro, cambiar un disco de canal, etc. Este tipo
de terapias son, en general, más económicas y menos radicales
que las terapias de reposición.
4) Se procede a la modificación del sistema de acuerdo con el método
seleccionado.
Diseño y evaluación de configuraciones
99
5.3 ANALISIS DE LOS CUELLOS DE BOTELLA
La técnica analítica del análisis de límites asintóticos permite obtener, con muy poco
cálculo, los límites superior e inferior de la productividad y del tiempo de respuesta del
sistema como funciones de la intensidad de carga (número o frecuencia de llegada de
clientes al sistema). Se trata por tanto, de una aproximación de gran utilidad para el análisis
de sistemas informáticos mediante modelos de redes de colas.
Esta técnica se utiliza sobre todo en estudios preliminares que conllevan la
consideración de un gran número de configuraciones candidatas.
Las gráficas de límites proporcionan una idea de que reducción de la demanda de
servicio en la estación cuello de botella es necesaria para alcanzar unos determinados
objetivos de prestaciones. La demanda de servicio en una estación puede reducirse bien
desplazando algún trabajo de estación o sustituyendo el servidor por uno más rápido.
Los modelos que se van a considerar se pueden describir según los siguientes
parámetros:
• K, número de estaciones de servicio.
• Dmax, la mayor de las demandas de servicio en las estaciones del sistema.
• D, la suma de las demandas de servicio en las estaciones.
• El tipo de clientes (batch, conversacional o transaccional)
• Z, el tiempo medio de reflexión (tipo conversacional).
Para modelos con carga transaccional, los límites de la productividad indican la
frecuencia de llegada máxima que puede procesar el sistema, mientras que los límites del
tiempo de respuesta reflejan el tiempo máximo y mínimo posible que esos clientes pueden
experimentar como función de la tasa de llegada al sistema.
Para modelos con un tipo de carga batch o conversacional, los límites indican la
productividad y el tiempo de respuesta máximos y mínimos posibles como función del
número de clientes en el sistema.
TEMA 5: Análisis de los cuellos de botella
100
Se denominan límites optimistas a los límites superior de la productividad e inferior del
tiempo de respuesta, ya que son los que indican las mejores prestaciones posibles.
Se denominan límites pesimistas a los límites inferior de la productividad y superior del
tiempo de respuesta, ya que son los que indican las peores prestaciones posibles.
La validez de los límites depende de un supuesto: que la demanda de servicio de un
cliente en una estación no dependa de cuantos clientes haya concurrentemente en el
sistema, o en que estaciones estén localizados.
5.3.1 Carga transaccional
En este tipo de cargas, el límite de la productividad indica la frecuencia máxima de
llegadas de clientes que el sistema puede procesar con éxito. Si la tasa de llegada excede
este límite, los clientes sin procesar se irán acumulando cada vez en mayor cantidad. En
este caso se dice que el sistema está saturado.
Se indicará la estación cuello de botella como estación max.
El límite superior de la productividad en función de la frecuencia de llegada λ es:
maxDX
1)( ≤λ (5.1)
Mientras que el límite inferior del tiempo de respuesta en función de la frecuencia de
llegada λ es:
)(λRD ≤ (5.2)
◊ Demostración:
La utilización de la estación k viene dada mediante la ley de utilización:
kkk SXU ⋅= (5.3)
Si se denomina mediante λ a la frecuencia de llegada, entonces por la ley del flujo forzado (X= λ mientras
el sistema pueda):
kk VX ⋅= λ (5.4)
Diseño y evaluación de configuraciones
101
Es posible reescribir la ley de utilización de la siguiente forma:
kk DU ⋅= λ (5.5)
Siendo Dk la demanda de servicio de la estación k.
Para obtener el límite de la frecuencia de llegada λ, hay que darse cuenta que mientras que a todas las
estaciones les quede capacidad sin utilizar (que su utilización sea menor que 1), se puede permitir una
frecuencia de llegada mayor. Por el contrario, si cualquiera de las estaciones se satura (su utilización
llega a 1), se satura todo el sistema, ya que no se puede atender con éxito un incremento en la
frecuencia de llegada. En consecuencia el límite de λ, es la menor frecuencia λsat que satura algunas de
las estaciones.
La estación que satura a la frecuencia λsat se denomina estación cuello de botella, que es la estación
con la mayor demanda de servicio. Se indicará a la estación cuello de botella como la estación max.
Entonces:
1)( ≤⋅= maxmax DU λλ (5.6)
y
maxsat D
1=λ (5.7)
Así se verifica que si λ>λsat, el sistema estará saturado, mientras que si λ<λsat el sistema es capaz de
atenderla.
En el caso del tiempo de respuesta, supuesto que la frecuencia de llegada λ <λsat, se pueden considerar
dos situaciones extremas:
1) El mejor de los casos, es que ningún cliente interfiera nunca con otro, de manera
que no haya retardos de espera. En este caso, el tiempo de respuesta del sistema
para cada cliente es simplemente la suma de sus demandas de servicio, D.
2) En el peor de los casos, n clientes llegan juntos cada n/λ unidades de tiempo. Los
clientes al final del lote tendrán que esperar en cola, experimentando grandes
tiempos de respuesta. A medida que se incrementa el tamaño del lote, más y más
clientes estarán esperando cada vez mayor cantidad de tiempo. En consiguiente, por
muy baja que sea la frecuencia de llegada, no existe límite pesimista para el tiempo
de respuesta.
TEMA 5: Análisis de los cuellos de botella
102
5.3.2 Carga batch o conversacional
Se puede demostrar que los límites asintóticos de la productividad del sistema X(N) son:
+
≤≤+ ZD
ND
minNXZND
N
max
,1
)( (5.8)
Se observa que el límite optimista consta de dos componentes: 1/Dmax que se aplica
bajo carga pesada (mucha carga en el sistema) y N/(D+Z) que se aplica bajo carga ligera
(poca carga en el sistema).
Existe un valor particular de población, denominado N*, tal que para toda N>N* se
aplicará el límite de carga pesada y si N<N* se aplicara el límite de carga ligera. Dicho valor
N* se obtiene igualando ambos límites:
ZDN
Dmax +=
*1(5.9)
Despejando N* se obtiene:
maxDZD
N+=* (5.10)
N* se denomina punto de saturación del sistema y representa:
• Para cargas batch, N* indica el número teórico de trabajos que pueden
procesarse sin colas. Cuando N supera ese valor se formarán colas de
espera al menos en la estación cuello de botella.
• Para cargas conversacionales, N* indica el número de terminales a partir
del cual al menos un recurso o estación estará saturado.
En las Figura 5.1a y 5.1b se muestra en gris la zonas delimitada por los límites
asintóticos de la productividad en un sistema batch y en un sistema conversacional
respectivamente.
Diseño y evaluación de configuraciones
103
X(N)
NN*1
1/D
1/Dmax
N/D
(a)
X(N)
NN*1
1/(D+Z)
1/Dmax
N/(D+Z)
N/(ND+Z)
(b)
Figura 5.1: Zonas de productividad definidas por los límites asintóticos en: (a) Un sistema batch.
(b) Un sistema conversacional.
◊ Demostración:
Se considera en primer lugar una situación con mucha carga en el sistema, lo que se denomina como
carga pesada. A medida que aumenta el número de clientes (N) en el sistema, la utilización de todas
las estaciones irá aumentando. No obstante existe un límite a ese incremento, ya que ninguna
utilización puede ser mayor que 1. Por lo tanto de la ley de utilización se establece que para cada
estación k:
1)()( == kk DNXNU (5.11)
Es decir, cada estación limitará la productividad máxima que puede conseguir el sistema. Y como la
estación cuello de botella, aquella para la cual Dk es máxima, será la primera en saturarse, será
también la que restrinja la productividad del sistema de manera más severa. En consecuencia, se puede
concluir que:
maxDNX
1)( ≤ (5.12)
Supóngase ahora una situación de carga ligera. Como caso extremo, un único cliente en el sistema
obtendrá, de acuerdo a la ley de Little, una productividad de ZD +
1 , ya que cada interacción consta de
un periodo de servicio cuya duración media es
∑=
=N
KKDD
1
TEMA 5: Análisis de los cuellos de botella
104
y de un tiempo de reflexión Z. A medida que se añadan más clientes al sistema se pueden dar dos
situaciones límite:
n La productividad mínima se dará cuando cada cliente adicional sea colocado en cola
tras todos los clientes ya presentes en el sistema. En este caso, con N clientes en
el sistema, consumirá (N-1)D unidades de tiempo hasta que los clientes por delante
de él hayan sido servidos, D unidades de tiempo en su propio servicio, y Z de
reflexión, de manera que la productividad de cada cliente será 1/(ND+Z), y la del
sistema N/(ND+Z).
n La productividad máxima posible se dará cuando cada cliente adicional no sea
retrasado por ningún otro cliente del sistema. En ese caso, no se consumirá tiempo
alguno en cola, se empleará D unidades de tiempo en servicio y Z en reflexión. Así la
productividad de cada cliente será 1/(D+Z), y la del sistema N/(D+Z).
◊
Por otra parte, los límites asintóticos del tiempo de respuesta R(N) son:
( ) NDNRDZNDmax max ≤≤− )(, (5.13)
En las Figura 5.2a y 5.2b se muestra en gris la zonas delimitada por los límites
asintóticos del tiempo de respuesta en un sistema batch y en un sistema conversacional
respectivamente.
R(N)
NN*1
D
N ·D
N ·Dmax
(a)
R(N)
NN*1
D
N ·DN ·Dmax -Z
(b)
Figura 5.2: Zonas de tiempo de respuesta definidas por los límites asintóticos en: (a) Un sistema
batch. (b) Un sistema conversacional.
Diseño y evaluación de configuraciones
105
♦ Ejemplo 5.1: Utilizar la técnica de los límites asintóticos para calcular las prestaciones más
optimistas de los sistemas IBM 3790, IBM 8130 e IBM 8140, de acuerdo con la demandas de servicio
(en segundos) medidas y estimadas que se muestran en la Tabla 5.1.
Sistema DCPU (s/trans) D disco A(s/trans)IBM 3790 4.6 4.0IBM 8130 5.1 1.9IBM 8140 3.1 1.90
Tabla 5.1
Los tres sistemas informáticos se pueden modelar por el modelo de colas de la Figura 5.3, con los
siguientes parámetros:
• Número de estaciones de servicio K=2.
• La mayor demanda de servicio es: Dmax1=4.6 seg (en el 3790), Dmax2=5.1 seg (en el
8130) y Dmax3=3.1 seg (en el 8140).
• La suma de las demandas de servicio es D1=8.6 seg, D2=7.0 seg, D3=5.0 seg.
• El tipo de clientes es conversacional.
• El tiempo medio de reflexión es Z=60 seg.
Solución:
El límite optimista de la productividad de un sistema de tipo conversacional viene dado por la siguiente
expresión:
+
≤ZD
ND
minNXmax
,1
)(
Sustituyendo los valores de los parámetros conocidos, se obtienen las expresiones de las curvas del
límite optimista de la productividad asociado a cada sistema y el valor del punto de saturación
91.146.68
,6.4
1)( *
11 =⇒
≤ N
NminNX
Disco A
CPU
Terminales
Figura 5.3
TEMA 5: Análisis de los cuellos de botella
106
14.130.67
,1.5
1)( *
22 =⇒
≤ N
NminNX
97.200.65
,1.3
1)( *
33 =⇒
≤ N
NminNX
0 5 1 0 1 5 2 0 2 5 3 00
0 . 0 5
0 . 1
0 . 1 5
0 . 2
0 . 2 5
0 . 3
0 . 3 5
N
X(N
)
3 7 9 0
8 1 3 0
8 1 4 0
Figura 5.4: Límites optimistas de la productividad para los sistemas 3790, 8130 y 8140.
Por otra parte, el límite optimista del tiempo de respuesta de un sistema de tipo conversacional viene
dado por la siguiente expresión:
( ) )(, NRDZNDmax max ≤−
Sustituyendo los valores de los parámetros conocidos, se obtienen las expresiones de las curvas del
límite optimista del tiempo de respuesta asociado a cada sistema.
( ) )(6.8,606.4max 1 NRN ≤−⋅
( ) )(0.7,601.5max 2 NRN ≤−⋅
( ) )(0.5,601.3max 3 NRN ≤−⋅
Diseño y evaluación de configuraciones
107
0 5 1 0 1 5 2 0 2 5 3 00
5
1 0
1 5
2 0
2 5
3 0
N
R(N
)
3 7 9 0
8 1 3 0
8 1 4 0
Figura 5.5: Límites optimistas del tiempo de respuesta para los sistemas 3790, 8130 y 8140.
Las Figuras 5.4 y 5.5 revelan que con carga pesada las prestaciones del 8130 son inferiores a las del
3790. Esto es consecuencias del hecho de que el 8130 tiene una CPU más lenta, estación que es
precisamente el cuello de botella del sistema. Por lo tanto el reemplazar los 3790 por 8130 conllevaría
una degradación de las prestaciones en cuento el número de terminales activos sobrepasará N*2=13.
♦
♦ Ejemplo 5.2: Se considera un sistema informático de tipo conversacional, modelado mediante un
modelo de colas con tres estaciones de servicio (K=3). Se conocen los siguientes datos del sistema: el
tiempo de reflexión es Z=15, y las demandas de servicio de cada estación son D1=5 seg, D2=4 seg y
D3= 3 seg. a) Obtener los límites asintóticos optimistas, realizar un estudio de los mismos considerando
que Dmax toma los valores 5, 4 y 3 seg. b) Si se duplica la velocidad, reduciendo la demanda de servicio
de la estación cuello de botella primaria, obtener los límites asintóticos optimistas de la productividad y
del tiempo de respuesta del sistema. c) Si se duplica la velocidad, reduciendo la demanda de servicio
de la estación cuello de botella secundaria, obtener los límites asintóticos optimistas. d) Dibujar en una
misma gráfica los límites obtenidos en los tres apartados anteriores.
TEMA 5: Análisis de los cuellos de botella
108
Solución:
a) De los datos proporcionados en el enunciado se deduce que la estación cuello de botella es la
estación 1, Dmax=D1= 5 seg. Además la demanda total es D=D1+ D2+ D3=5+4+3= 12 seg. Sustituyendo
los valores de los parámetros conocidos, se obtienen las expresiones de las curvas del límite optimista
de la productividad y del tiempo de respuesta del sistema.
=
+≤
27,
51
1512,
51
)(N
minN
minNX
( ) )(12,15·5 NRNmax ≤−
Si se supone, como dice el enunciado, que Dmax=D2=4 seg, las expresiones de las curvas del límite
optimista de la productividad y del tiempo de respuesta del sistema serían:
=
+≤
27,
41
min1512
,41
min)(NN
NX
( ) )(12,15·4max NRN ≤−
Y si se supone la posibilidad, como dice el enunciado, que Dmax=D3=3 seg, las expresiones de las
curvas del límite optimista de la productividad y del tiempo de respuesta del sistema serían:
=
+≤
27,
31
min1512
,31
min)(NN
NX
( ) )(12,15·3max NRN ≤−
Se han representado en la Figura 5.6, los límites asintóticos optimistas de productividad y tiempo de
respuesta para los casos de Dmax=5, 4 y 3 seg. Estos gráficos proporcionan una visión de la mejora de
prestaciones que reportaría la eliminación del cuello de botella primario. Se observa como cuando se
reduce la carga en la estación cuello de botella, se desplaza hacia arriba el límite optimista para carga
pesada de la productividad y hacia abajo el tiempo de respuesta. Los límites para carga ligera, aunque
también sufren una modificación, son menos sensibles a la demanda de servicio en las estaciones que
los de carga pesada.
Diseño y evaluación de configuraciones
109
0 5 1 0 1 50
0 . 0 5
0 . 1
0 . 1 5
0 . 2
0 . 2 5
0 . 3
0 . 3 5
N
X(N
)
D m a x = 5
D m a x = 4
D m a x = 3
(a)
0 2 4 6 8 1 0 1 2 1 4 1 6 1 8 2 00
5
1 0
1 5
2 0
2 5
3 0
N
R(N
)
D m a x = 5
D m a x = 4
D m a x = 3
(b)
Figura 5.6: Para diferentes valores de Dmax los límites optimistas de: (a)Productividad. (b)Tiempo de
respuesta
TEMA 5: Análisis de los cuellos de botella
110
Una conclusión muy importante que se puede obtener de este estudio es que cualquier mejora que no
afecte al cuello de botella no producirá ninguna mejora en las prestaciones del sistema. Ya que la
reducción de las demandas de servicio en las estaciones que no sean cuello de botella solo mejora las
asíntotas de carga ligera, y esta mejora suele ser insignificante.
b) Es decir, ahora se considera que D1 pasa de ser 5 seg a 2.5 seg, y Dmax=D2=4 seg con lo que
5.9345.2 =++=D seg
Con lo que los límites asintóticos son:
=
+≤
5.24,
41
155.9,
41
)(N
minN
minNX
( ) )(5.9,15·4 NRNmax ≤−
c) Es decir, ahora se considera que D2 pasa de ser 4 seg a 2 seg, y Dmax=D1=5 seg con lo que
10325 =++=D seg
Con lo que los límites asintóticos son:
=
+≤
25,
51
1510,
51
)(N
minN
minNX
( ) )(10,15·5 NRNmax ≤−
d) En la Figura 5.7 se muestran los límites optimistas de la productividad y del tiempo de respuesta
obtenidos en los tres apartados anteriores.
Diseño y evaluación de configuraciones
111
0 5 1 0 1 50
0 . 0 5
0 . 1
0 . 1 5
0 . 2
0 . 2 5
0 . 3
N
X(N
)
o r i g i n a l
m o d i f i c a n d o D 1
m o d i f i c a n d o D 2
(a)
0 5 1 0 1 50
5
1 0
1 5
2 0
2 5
3 0
N
R(N
)
o r i g i n a l
m o d i f i c a n d o D 1
m o d i f i c a n d o D 2
(b)
Figura 5.7: Límites optimistas: (a)Productividad. (b)Tiempo de respuesta
♦
TEMA 5: Análisis de los cuellos de botella
112
♦ Ejemplo 5.3: Se considera el sistema interactivo simplificado de la Figura con K=3 estaciones de
servicio, para el cual se han obtenido las siguientes medidas:
2
Discos
3
Discos1
Terminales
CPU
Figura 5.8
n La longitud del intervalo de medida, T=900 seg.
n Ocupación de la CPU, B1=400 seg.
n Ocupación del disco “lento”, B2=100 seg.
n Ocupación del disco “rápido”, B3=600 seg.
n Trabajos completados o terminados, C0=200 trabajos.
n Operaciones en el disco “lento”, C2=2000 peticiones.
n Operaciones en el disco “rápido”, C3=20000 peticiones.
n Tiempo de reflexión, Z=15 seg.
Obtener las expresiones analíticas de los límites asintóticos de la productividad y del tiempo de
respuesta en los siguientes casos:
a) Considerando los datos proporcionados en el enunciado.
b) Reemplazando en el sistema inicial la CPU por una dos veces más rápida.
c) Equilibrando las demandas en los discos en el sistema inicial, desplazando algunos ficheros
del disco rápido al lento. Se considerará sólo el efecto primario, el cambio en la velocidad del
disco, y se ignorarán los posibles efectos secundarios tales como el hecho que el tamaño
medio de bloque puede ser diferente en los dos discos.
d) Añadiendo en el sistema inicial un segundo disco rápido (estación 4) para tratar la mitad de
la carga del disco que esté más ocupado de los dos existentes. De nuevo se considerarán
únicamente los efectos primarios del cambio.
Diseño y evaluación de configuraciones
113
e) Aplicando los tres cambios de manera conjunta: la CPU más rápida, la carga equilibrada
entre los dos discos rápidos y el disco lento.
f) Representar gráficamente los límites optimistas obtenidos en los apartados anteriores y
comentarlos
Solución:
a) Para poder calcular los límites asintóticos en primer lugar es necesario obtener la demanda total D y
la demanda máxima Dmax. En primer lugar, con los datos del enunciado se va a calcular la demanda
asociada a cada una de las tres estaciones de servicio del sistema.
Es conocido que Dk=VK SK, por ello en primer lugar se va a calcular la tasa de visita de cada estación de
servicio:
102002000
0
22 ===
CC
V peticiones/ trabajo (disco “ lento”)
100200
20000
0
33 ===
CC
V peticiones/ trabajo (disco “rápido”)
1111100101321 =++=++= VVV peticiones/ trabajo. (CPU)
En segundo lugar, hay que calcular los tiempos de servicio de cada estación de servicio:
018.0111·200
400· 10
1
1
11 ====
VCB
CB
S segundos/ petición (CPU)
05.02000100
2
22 ===
CB
S segundos/ petición (disco “lento”)
03.020000600
3
33 ===
CB
S segundos/ petición (disco “rápido”)
Luego, la demanda de servicio de cada estación es:
0.2018.0111111 =⋅=⋅= SVD segundos/ trabajo
5.005.010222 =⋅=⋅= SVD segundos/ trabajo
TEMA 5: Análisis de los cuellos de botella
114
303.0100333 =⋅=⋅= SVD segundos/ trabajo
La estación cuello de botella es aquella que cumpla Dmax = max{D1, D2, D3}, luego en este caso
Dmax=D3=3 seg/trabajo, es el disco “rápido”.
Por otro lado, la demanda total es:
5.50.35.00.23
1
=++== ∑=k
kDD segundos/ trabajo
Luego los límites asintóticos de la productividad y del tiempo de respuesta son:
≤≤
+ 5.20,
31
)(155.5
NminNX
NN
( ) NNRNmax 5.5)(5.5,15·3 ≤≤−
b) Reemplazando la CPU por una dos veces más rápida, es equivalente a reducir a la mitad su
demanda luego ahora D1= 1 seg/trabajo. La estación cuello de botella sigue siendo el disco “rápido”
Dmax=D3= 3 seg/trab. Y la demanda total ahora es D= 1+0.5+3.0=4.5. Luego:
≤≤
+ 5.19,
31
)(155.4
NminNX
NN
( ) NNRNmax 5.4)(5.4,15·3 ≤≤−
c) Se desea hacer que D2=D3 manteniendo la suma de sus tasas de visita:
11032 =+VV
Desarrollando se obtiene lo siguiente:
+
=⇒=
+⇒=+
32
2
32
2
3
3
2
2
11
110110
11110
SS
DSS
DSD
SD
Puesto que los tiempos de servicio son conocidos, sustituyendo se obtiene:
Diseño y evaluación de configuraciones
115
06.2
03.01
05.01
11032 =
+
== DD seg/trabajo
La estación cuello de botella serían tanto el disco rápido como el lento con una demanda
Dmax=D2=D3=2.06 seg/trabajo. Y la demanda total ahora es D= 2+2.06+2.06= 6.12, luego:
≤≤
+ 12.21,
06.21
)(1512.6
NminNX
NN
( ) NNRNmax 12.6)(12.6,15·06.2 ≤≤−
d) Es decir, ahora K=4, y el segundo disco rápido D4=D3/2=3/2=1.5 seg/trabajo, con lo que ahora
D3=1.5 seg/ trabajo.
La estación cuello de botella serían Dmax= max{ D1, D2, D3, D4}= max{ 2, 0.5, 1.5, 1.5}=2 seg la “CPU”. Y
la demanda total ahora es D= 2+0.5+1.5+1.5= 5.5, luego:
≤≤
+ 5.20,
21
)(155.5
NminNX
NN
( ) NNRNmax 5.5)(5.5,15·2 ≤≤−
e) Es decir:
• Por una CPU el doble de rápida D1=1.0 seg.
• Añadiendo un segundo disco rápido S3= S4.
• La carga equilibrada entre los dos discos rápidos y el disco lento. Es decir D2=D3=D4,
además se debe cumplir la siguiente relación:
110432 =++ VVV
Desarrollando se obtiene lo siguiente:
++
=⇒=
++⇒=++
432
2
432
2
4
4
3
3
2
2
111
110110
111110
SSS
DSSS
DSD
SD
SD
Puesto que los tiempos de servicio son conocidos, y S4 es el asociado a un disco rápido, sustituyendo
se obtiene:
TEMA 5: Análisis de los cuellos de botella
116
27.1
03.01
03.01
05.01
110432 =
++
=== DDD seg/trabajo
Ahora Dmax= max{ D1, D2, D3, D4}= max{1, 1.27}=1.27 seg. Y la demanda total ahora es D= 1+3*1.27=
4.81, luego:
≤≤
+ 81.19,
27.11
min)(1581.4
NNX
NN
( ) NNRN 81.4)(81.4,15·27.1max ≤≤−
f) Aunque pueda parecer que el cambio (b) debe ser el más significativo, las gráficas demuestran que
no es así. Como el disco “rápido” es originalmente el cuello de botella, los cambios (c) y (d) tienen una
mayor influencia. El cambio (c) proporciona casi tanta mejora como el (d) a pesar de no requerir de
ningún hardware adicional. La combinación de las tres modificaciones, en el cambio (e) es la que
produce los resultados más significativos.
0 5 1 0 1 5 2 0 2 50
0 . 1
0 . 2
0 . 3
0 . 4
0 . 5
0 . 6
0 . 7
0 . 8
N
X(N
)
a
b
c
d
e
Figura 5.9: Comparación de los limites optimistas de la productividad obtenidos en los apartados
anteriores.
Diseño y evaluación de configuraciones
117
0 5 1 0 1 5 2 0 2 50
5
1 0
1 5
2 0
2 5
3 0
N
R(N
)
a
b
c
d
e
Figura 5.10: Comparación de los limites optimistas del tiempo de respuesta obtenidos en los apartados
anteriores.
♦
TEMA 5: Análisis de los cuellos de botella
118
TEMA 6
SELECCION Y CONFIGURACIÓN DE
COMPUTADORES: BENCHMARKING
119
6.1 INTRODUCCION
En general se puede decir que los benchmarks son programas utilizados para medir el
rendimiento de un sistema informático o de alguna de sus partes. La finalidad de sus estudio
puede ser muy variada: comparación de sistemas, su sintonización, la planificación de su
capacidad, la comparación de compiladores en la generación de código eficiente, el diseño
de sistemas o procesadores, etc.
Como programa benckmark se puede usar prácticamente cualquier programa
ejecutable, escrito en cualquier lenguaje de programación, incluso en lenguaje máquina.
Se denomina benchmarking al proceso de comparar dos o más sistemas mediante la
obtención de medidas.
Para conseguir un buen paquete de programas benchmark se debe de seguir una serie
de pasos, siendo los principales:
1) Determinar los objetivos de utilización del benchmark.
2) Escoger los mejores programas de benchmark según los objetivos
determinados en el paso anterior. Por ejemplo, si se desea estudiar el
rendimiento de E/S de un sistema, se eligirán programas con un consumo
importante de E/S y no programas con consumo intensivo de CPU.
3) Se deben comprobar los aspectos del sistema bajo estudio que influyen en
el rendimiento, como pueden ser el sistema operativo, los compiladores y
TEMA 6: Selección y configuración de computadores: Benchmarking
120
su nivel de optimización, el uso de memorias caché, etc. Además se deben
comprobar que los programas, versiones y datos usados como benchmark
sean los mismos en todas las pruebas.
4) Finalmente, obtenidos los resultados y entendiendo perfectamente qué
hace cada programa benchmark, se debe intentar estudiar la causa de las
diferencias obtenidas en los distintos sistemas evaluados.
6.2 DEFINICIONES Y NECESIDAD DE LOS BENCHMARKS
La palabra benchmark se puede definir de dos formas:
• Definición 1: Los benchmarks son una forma de evaluar las prestaciones
de un sistema informático, bien en su conjunto o de alguna de sus partes.
Además si el benchmark está estandarizado, se puede utilizar para
comparar diferentes sistemas.
• Definición 2: Los benchmarks se pueden definir como conjuntos de
programas completos escritos en lenguaje de alto nivel extraídos de la
carga real y que se consideran representativos de la carga real.
Una vez dadas las diferentes definiciones de benchmark, conviene conocer las
principales aplicaciones de este tipo de programas:
n En la comparación del rendimiento de diferentes sistemas informáticos con
vistas a la adquisición de equipos. Se debe remarcar que estas
comparaciones serán tanto más importantes cuanto mayores y más
complejos sean el sistema y las aplicaciones que debe soportar. De esta
forma será más importantes en máquinas de tipo UNIX (multitarea y
multiusuario) trabajando sobre arquitecturas diversas que en máquinas MS-
DOS (monopuesto y monotarea) trabajando sobre la base de una misma
familia de chips.
Con vistas a la consecución de este objetivo interesa que los benchmarks
estén formados por programas extraídos de la carga real, programas
estándar o una mezcla de ambos, y servirán para comparar el rendimiento
de sistemas informáticos.
Diseño y evaluación de configuraciones
121
n En la sintonización de sistemas, es decir, cuando se quiere mejorar el
rendimiento de un sistema informático que ya está en funcionamiento. En
este sentido, interesa que los benchmark permitan detectar que partes del
sistema deben mejorarse, o una vez introducidas las modificaciones
comprobar que efectivamente se ha aumentado el rendimiento del sistema.
Suelen ser programas extraídos de la carga real
n En la planificación de la capacidad de un sistema informático, es decir
conocer la capacidad que le queda disponible en previsión de posibles
ampliaciones. Interesa que los benchmarks usados lleven el rendimiento
del sistema hasta el límite, para así poder prever las carencias que
presentará el sistema en el futuro. Para este fin se utilizan programas
artificiales que disponen de parámetros regulables que permiten modificar
la cantidad de consumo de recursos en el sistema.
n En la comparación de compiladores desde el punto de vista de la
generación de código. Los programas elegidos para la comparación de
compiladores pueden ser estándar o extraídos de la carga real. Además
conviene indicar sobre qué arquitectura y sistema operativo se realizan las
pruebas.
n En el diseño de sistemas informáticos o de procesadores. En este caso se
parte de un sistema general inicial, y mediante simulaciones, tomando
como entrada los benchmarks elegidos, se obtiene unos resultados, a partir
de los cuales se intentará ir mejorando paulatinamente el diseño del
sistema.
En el diseño se debe tener en cuenta el tipo de compilador que se emplea,
ya que deben ser tan independientes como sea posible de la arquitectura.
También se pueden estudiar las interrelaciones existentes entre las
distintas arquitecturas, sus implantaciones, los lenguajes de programación
y los algoritmos que ejecutan.
6.3 FACTORES QUE INFLUYEN EN EL BENCHMARKING
Los aspectos más importantes que se deben tener en cuenta cuando se usa cualquier
modelo de la carga para evaluar el rendimiento de un sistema son:
TEMA 6: Selección y configuración de computadores: Benchmarking
122
n El rendimiento puede depender del tipo y versión del sistema operativo que
tenga instalado el sistema estudiado. Por ello se recomienda que las
comparaciones se realicen sobre el mismo sistema operativo o en caso de
no ser posible se aconseja que las características y parámetros de los
sistemas operativos sean lo más parecidos posible.
n El compilador usado en la prueba es realmente un elemento determinante
del rendimiento obtenido en el sistema, ya que, según la facilidad que tenga
el compilador en generar código eficiente, el modelo de carga se ejecutará
más o menos rápidamente.
n Los lenguajes de programación también influyen sobre los test realizados
con benchmarks, ya que tienen facilidades diferentes en secuencias de
llamadas, punteros, manejo de cadenas de caracteres, etc., lo que
repercutirá directamente sobre los tiempos de ejecución.
n También se debe tener en cuenta el sistema de librerías de ejecución, ya
que, según sean éstas, las funciones que implantan serán más eficientes,
disminuyendo el tiempo de ejecución.
n El tamaño de la memoria caché es un factor muy importante en los
resultados de pruebas de medición del rendimiento, sobre todo cuando se
usan programas de pequeño tamaño. Los tiempos de ejecución varían
notablemente dependiendo de si el programa cabe entero en la caché o si
no cabe y debe acceder a la memoria principal.
n Es conveniente que los programas usados como modelo de carga realicen
una verificación de los resultados obtenidos, para que el usuario sepa que
el benchmark se ha ejecutado correctamente.
6.4 ERRORES COMUNES EN EL BENCHMARKING
Algunos errores que cometen los analistas muy frecuentemente en la comparación de
las prestaciones de sistemas son:
n Representar en la carga de test sólo los comportamientos medios. Las
cargas de test o de prueba se diseñan para que sean representativas de la
carga real, pero se suele representar sólo el comportamiento medio
Diseño y evaluación de configuraciones
123
ignorando la varianza. Sin embargo, en ciertas ocasiones, será necesario
introducir la varianza o ir a un representación más detallada de las
demandas de recurso.
n Controlar de manera inadecuada el nivel de carga. La carga de test dispone
de varios parámetros que se pueden modificar para incrementar el nivel de
carga en el sistema:
1) Incrementar el número de usuarios, se trata de la opción más
ajustada a la realidad, pero esto representaría emplear más
recursos, por lo que no se suele modificar.
2) Decrementar el tiempo de reflexión de los usuarios, se trata de una
de las opciones más sencillas de implementar, pero esta
modificación no es equivalente a incrementar los usuarios, ya que
no se modifica el orden de las peticiones a los dispositivos, por lo
que la probabilidad de fallo de caché será inferior a la que se
obtendría en un sistema con más usuarios.
3) Aumentar la demanda de servicio por usuario, cambia
considerablemente la carga por lo que ya no resultaría
representativa de la real.
n Ignorar los efectos de la caché. Las memorias caché son muy sensibles al
orden de las peticiones, por ello cada vez es más necesario modelar de
manera precisa el orden de las llegadas.
n Ignorar el overhead del monitor.
n No validar las medidas. Es necesario hacer comprobaciones de las
medidas y cualquier valor que no pueda ser explicado debe ser investigado.
Se deben incluir en las medidas comprobaciones o test automáticos. Por
ejemplo, comprobar que el número total de paquetes enviados por todos los
nodos de una red sea próximo al número total de paquetes recibido.
n No asegurar las mismas condiciones iniciales. Cada ejecución del
benchmark altera el estado del sistema, así por ejemplo, el espacio en
disco se ve reducido y los registros de datos pueden ver modificado su
TEMA 6: Selección y configuración de computadores: Benchmarking
124
contenido, por ello el experimento puede no ser repetible si se vuelve a
ejecutar el benchmark sobre el sistema modificado.
n No medir las prestaciones del transitorio. La mayoría de los experimentos
de medida, simulaciones y modelos analíticos se diseñan para predecir las
prestaciones en condiciones estacionarias. Esta aproximación es válida en
la mayoría de las ocasiones, aunque si al sistema le cuesta un largo
periodo de tiempo alcanzar el estado estacionario puede ocurrir que el
sistema esté más tiempo en estado transitorio que en estado estacionario.
En esos casos es más realista estudiar las prestaciones en el transitorio.
n Usar las utilizaciones de los dispositivos para comparar las prestaciones.
Las utilizaciones de los dispositivos son índices de prestaciones en el
sentido que dada la misma carga, es preferible tener una utilización de los
recursos menor. Sin embargo, emplearlas para comparar dos sistemas
puede no resultar adecuado, lo correcto es utilizar la productividad del
sistema como índice de comparación.
n Recoger muchos datos pero no analizarlos adecuadamente
Estos errores se suelen cometer de manera involuntaria debido a la inexperiencia. Ahora
bien, también se puede dar el caso de analistas experimentados que comentan estos errores
a propósito para demostrar así las superioridad de sus sistemas.
6.5 BENCHMARKING GAMES
A continuación se proponen algunos ejemplos que pueden llevar a que el resultado de un
estudio de benchmarking sea erróneo:
• Utilizar configuraciones diferentes para ejecutar la misma carga en dos
sistemas. Las configuraciones pueden tener distinta cantidad de memoria,
discos diferentes o número de discos.
• Los compiladores pueden estar diseñados para optimizar la carga.
• Escoger la carga de manera arbitraria, sin verificar su representatividad de
las aplicaciones reales del sistema.
Diseño y evaluación de configuraciones
125
• Utilizar benchmarks muy pequeños, que dan un 100% de aciertos de
caché, ignorando las posibles ineficiencias de memoria y de organización
de caché.
• Realizar una traducción manual de los benchmarks para optimizar las
prestaciones. A menudo es necesario traducir los benchmarks de manera
manual para que sean ejecutables en los distintos sistemas. Las
prestaciones pueden entonces depender más de la habilidad del traductor
que del sistema bajo prueba.
6.6 DESCRIPCION DE ALGUNOS BENCHMARKS
Se distinguen dos grandes grupos de benchmarks:
1) Programas generales que son programas pensados y diseñados para
estudios de evaluación de prestaciones. Por ejemplo: LINPACK,
DRYSTONE, WHETSTONE.
2) Programas de aplicación que son programas extraídos de las cargas reales
de sistemas o programas tomados como benchmarks pero que se pueden
encontrar como aplicaciones en los sistemas. Por ejemplo: QNAP2, SMPL,
MCNP, GCC, TEX, SPICE
Por otra parte tres paquetes de benchmark muy utilizados en la actualidad son:
• SPEC (Systems Performance Evaluation Cooperative)
• TPC (Transactions Processing Performance Council)
• The perfect benchmark club
6.6.1 Programas LINPACK
El benchmark LINPACK fue desarrollado por Jack Dongarra en 1976 en el Argone
National Laboratory. Es uno de los benchmarks más utilizados en estudios sobre sistemas
científicos y de ingeniería. Estos programas sirven funcionalmente para resolver sistemas
TEMA 6: Selección y configuración de computadores: Benchmarking
126
densos de ecuaciones lineales, y los resultados de este benchmark deben interpretarse de
acuerdo con la función que desarrollan. Sus principales características son:
1) Estos benchmarks ponen particular énfasis en el cálculo en coma flotante
y, por ello son muy sensibles a la capacidad que tiene el hardware para
realizar este tipo de operaciones.
2) Se trata de programas fácilmente vectorizables.
3) Dependen mucho de las librerías en tiempo de ejecución porque están gran
parte del tiempo ejecutando unas rutinas llamadas BLAS (Basic Linear
Algebra Subroutines) de las que hay dos tipos, las codificadas en
ensamblador y las que lo están en FORTRAN; los sistemas resueltos por
estos programas son:
• Dos sistemas de orden 100, uno de simple precisión y otro de doble
precisión.
• Dos sistemas de orden 1000, uno de simple precisión y otro de
doble precisión. Aunque se reduce en algunos casos el tamaño del
problema a orden 500 debido al elevado tiempo de ejecución.
6.6.2 DHRYSTONE
Es un programa sintético publicado en 1984 por Reinkold P. Weicker de Siemens-
Nixford Information System. El programa fue escrito inicialmente en ADA y posteriormente
fue traducido a C y PASCAL. Se trata de uno de los programas más usados como
benchmark y existen varias versiones de Dhrystone. Sus principales características son:
1) Dhrystone se basa en aspectos no numéricos de la distribución de
características de lenguajes fuente como sistema operativo, compiladores,
editores, etc.
2) El programa no tiene instrucciones en coma flotante en su bucle de
medición, y tampoco realiza llamadas al sistema.
Diseño y evaluación de configuraciones
127
3) Gran parte del tiempo de ejecución del programa se gasta en funciones de
manejo de cadenas de caracteres. En algunos casos puede llegar al 40%
del tiempo de ejecución.
4) El Dhrystone tiene pocos bucles, por lo que el tiempo de ejecución depende
mucho del tamaño de la caché; si es pequeña, hay muchos fallos de
acceso a instrucción, pero si es grande, el programa puede caber entero,
con lo que se accede rápidamente a todas las instrucciones.
5) Dispone de pocos datos globales, y su tamaño no puede variar como
ocurre en el Linpack.
6) No tiene mecanismos para frustrar la optimización de los compiladores,
con lo que, al comparar resultados, es importante tener en cuenta el nivel
de optimización usado en las distintas pruebas.
7) El programa se compone de 12 procedimientos incluidos en un bucle de
medida con 94 sentencias. Durante un bucle se ejecutan 103 sentencias y
los resultados, normalmente, se dan en dhrystones/segundo (DIPS).
6.6.3 WHETSTONE
Fue el primer programa diseñado como benchmark en 1976 y sus autores fueron H. J.
Curnow y B. A. Wichmann del National Physical Laboratory de Gran Bretaña. Inicialmente
estaba escrito en ALGOL 60, aunque actualmente sólo se usa la versión FORTRAN, tanto de
simple como de doble precisión.
Uno de los problemas que tiene el Whetstone es que no se dispone de una versión
oficialmente controlada, por lo que se debe cuidar al comparar resultados de este programa,
que se esté ejecutando la misma versión y, además, con el mismo número de iteraciones.
Sus principales características son:
1) El programa está compuesto por una serie de módulos, cada uno de los
cuales contiene sentencias de un tipo determinado.
2) El programa tiene un alto uso de operaciones y datos en coma flotante, ya
que representa programas numéricos.
TEMA 6: Selección y configuración de computadores: Benchmarking
128
3) Gasta mucho tiempo en funciones de librerías matemáticas y, por tanto,
influye mucho en su rendimiento si las librerías son compiladas
previamente.
4) Whestone usa pocas variables locales, por lo que es conveniente que el
compilador ponga las variables globales más usadas en registros para
aumentar el rendimiento del programa.
5) Debido a su pequeño tamaño, Whestone habitualmente cabe en la
memoria caché, por lo que general no se producen fallos en la búsqueda de
las instrucciones.
6) Los resultados normalmente se expresan en MegaWhestones/segundo
(MWIPS).
6.7 UNIDADES UTILIZADAS EN BENCHMARKING
A continuación se listan algunas de las unidades en las que se expresan los resultados
de las pruebas de evaluación del rendimiento:
• MIPS (millones de instrucciones por segundo). Se trata de una de las
unidades más usadas. Se utiliza para comparar sistemas que usan la
misma familia de procesadores, ya que las instrucciones no son las
mismas entre procesadores de familias distintas.
• MFLOPS (millones de operaciones en coma flotante por segundo). Esta
unidad se ve influida por aspectos tales como la variabilidad del tamaño del
problema, además de no contemplar debidamente otras operaciones que
no sean de coma flotante.
• MWIPS (MegaWhestone Instrucciones por segundo) o los DIPS
(Dhrystones por segundo). Es una forma de hacer la medida
independientemente de la máquina ya que lo que hace es fijar el número de
veces que se ha ejecutado el programa y el resultado es el tiempo que ha
tardado en su ejecución.
Diseño y evaluación de configuraciones
129
• Otra opción consiste en comparar los resultados de la ejecución de un
modelo de carga usando como unidades los milisegundos, segundos,
minutos, etc.
6.8 UN EJEMPLO DE BENCHMARK: PCW
En 1986 la revista PCW propuso un benchmark, que presenta las siguientes
características:
n Los criterios de diseño se especifican de manera independiente a cualquier
lenguaje de programación. Sirve para comparar diferentes versiones de un
mismo lenguaje en una misma máquina, diferentes lenguajes o bien
diferentes máquinas ejecutando el mismo lenguaje. Es por ello, que al
analizar los resultados, habrá que considerar los tiempos, la máquina, el
lenguaje y el compilador utilizados.
n Se trata de un benchmark de pocas líneas, con lo que se trata de no limitar
así el número de usuarios que pudieran ejecutarlo en sus máquinas.
n Consta de los siguientes test:
1) Dos test separados:
• Aritmética entera (IntMath), que proporciona una buena
indicación de la velocidad general del procesador.
• Aritmética real (RealMath), que dependerá de la calidad de
los algoritmos del software o bien del chip de coma flotante.
2) Un test para las funciones logarítmicas y trigonométricas (TrigLog),
de interés sobre todo para los usuarios científicos.
3) Dos test separados para comprobar la velocidad de E/S de las
pantallas de texto y gráficas (TextScrn y GrafScrn). El texto gráfico
no debería utilizar funciones más complejas que plot(x,y) para
permitir así que se pueda ejecutar en muchas máquinas.
4) Un test de la velocidad de los discos (Store). Era el más difícil de
diseñar ya que se ve afectado por muchos factores.
TEMA 6: Selección y configuración de computadores: Benchmarking
130
La descripción en lenguaje natural del benchmark de PCW es el siguiente:
intmath:
declarar tres variables enteras X, Y y Z
asignar 0 a la variable X y 9 a la Y
escribir ‘Start’ en pantalla
repetir 1000 veces utilizando I como índice del bucle:
asignar a X el valor de X+(Y*Y-Y)/Y
escribir ‘Finish’ y el valor de X en pantalla
realmath:
declarar dos variables reales X e Y
declarar una variable entera I
asignar 0 a X y 9.9 a la Y
escribir ‘Start’ en pantalla
repetir 1000 veces utilizando I como índice del bucle:
asignar a X el valor de X+(Y*Y-Y)/Y
escribir ‘Finish’ y el valor de X en pantalla
triglog:
declarar dos variables reales X e Y
declarar una variable entera I
asignar 0 a X y 9.9 a la Y
escribir ‘Start’ en pantalla
repetir 1000 veces utilizando I como índice del bucle:
asignar a X el valor de X+ sin(arctan(cos(log(y))))
escribir ‘Finish’ y el valor de X en pantalla
textscrn:
Diseño y evaluación de configuraciones
131
declarar una variable entera I
escribir ‘Start’ en pantalla
repetir 1000 veces utilizando I como índice del bucle:
escribir ‘1234567890qwertyuiop’en pantalla
escribir el valor de I en pantalla
escribir ‘Finish’ en pantalla
grafscrn:
declarar dos variables enteras X e Y
escribir ‘Start’ en pantalla
repetir 100 veces utilizando X como índice del bucle:
repetir 100 veces utilizando Y como índice del bucle:
Trazar el pixel de la posición de pantalla (X,Y)
escribir ‘Finish’ en la pantalla
store:
declarar una variable entera I
escribir ‘Start’ en pantalla
crear un fichero de disco ‘Test’
abrir el fichero ‘test’ para entrada
repetir 1000 veces utilizando I como índice del bucle:
escribir el registro ‘1234567890qwertyuiop’en ‘Test’
cerrar ‘Test’
borrar ‘Test’
escribir ‘Finish’ en la pantalla
TEMA 6: Selección y configuración de computadores: Benchmarking
132
Una serie de recomendaciones a tener en cuenta son las siguientes:
• Intmath: Utilizar si es posible la división entera. El resultado final de X debe
ser 8000.
• Realmath: A ser posible, utilizar una precisión de seis dígitos. Especificar si
la precisión está muy por encima o muy por debajo de este valor. El valor
final de X debe ser 8899.96.
• Triglog: Los mismos comentarios que en realmath acerca de los números
en coma flotante. Hay que asegurarse, además, que los cálculos se
realizan en radianes y que el logaritmo es natural (en base e). El valor final
de X debe ser -551.242.
• Textscrn: Utilizar un modo de pantalla de 80 columnas por 25 líneas. Si
esto no es posible , utilizar el modo mayor posible, indicando el número de
filas y de columnas del mismo. Si la pantalla no dispone de scroll por
defecto, habrá que hacerlo sin utilizar ningún truco especial que aumente la
velocidad del scroll.
• Grafscrn: Utilizar la pantalla de menor resolución posible que permita alojar
un cuadrado de 100 x100 pixels.
• Store: Especificar las unidades de disco y el sistema operativo si no son
estándares. Utilizar la manipulación de los registros por defecto. No realizar
una declaración previa del tamaño del registro o del fichero de una
declaración previa del tamaño del registro o del fichero. Para manipular el
fichero, utilizar las órdenes más obvias. No utilizar llamadas directas al
sistema operativo.
TEMA 7
MEJORA DE LAS PRESTACIONES DE UN
SISTEMA: SINTONIZACION
133
7.1 INTRODUCCION
Para mejorar las prestaciones y la eficiencia de un sistema informático es necesario
llevar a cabo un estudio de evaluación de las prestaciones de dicho sistema. Las
operaciones que hay que llevar a cabo en un método de mejora de prestaciones se pueden
agrupar en las siguientes fases (ver Figura 7.1):
Definición de los objetivos
Caracterizaciónde la carga
Selección de laInstrumentación
Diseño del experimento
Validación
Fin del estudio
Objetivos noalcanzados
Objetivos noalcanzables
Figura 7.1: Etapas de un método de mejora de prestaciones.
En las siguientes secciones se describe en detalle cada una de estas etapas.
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
134
7.2 DEFINICION DE OBJETIVOS
La definición de los objetivos del estudio es una fase fundamental, ya que en función de
los mismos se determinará el método que se utilizará para analizar las prestaciones del
sistema, la cantidad de recursos que es preciso emplear y la forma de justificar la inversión
necesaria.
Básicamente, la definición de objetivos consta de las etapas que se muestran en la
Figura 7.2.
Análisis de los requerimientos
Definición del entorno(carga, hardware, software)
Identificación del conjuntode variables a analizar
Figura 7.2: Etapas de la definición de objetivos.
Inicialmente los objetivos iniciales deben ser modestos y estar basados en el análisis de
los datos proporcionados por las rutinas de contabilidad, que proporcionan los datos de
partida del estudio y pueden revelar la existencia de problemas no detectados. Estos
problemas se pueden agrupar en las siguientes clases:
n Análisis de los dispositivos de hardware.
n Eficiencia de los programas.
n Problemas de la carga.
n Localización de los cuellos de botella.
Cada una de estas clases o áreas de estudio requerirá unas herramientas y unas
técnicas especificas.
Diseño y evaluación de configuraciones
135
Por otra parte, también es conveniente fijar el ámbito de estudio, es decir, si se va a
tratar un problema concreto o un problema global.
Ejemplos de objetivos de estudio a nivel global del sistema son:
1) Verificar la posibilidad de evitar o de, al menos, posponer por algún tiempo
la adquisición de nuevo hardware (memoria, periféricos, CPU,...).
2) Reducir el overhead del sistema y en general todas las actividades que no
sean productivas.
3) Reducir la carga actual.
La consecución del segundo y tercer objetivo aumentará la capacidad residual del
sistema y resultará de interés si lo que se pretende es encontrar espacio para nuevas
aplicaciones sin tener que expandir la configuración del sistema.
Por otro lado, el primero, y especialmente, el segundo de los objetivos suelen requerir la
localización de posibles cuellos de botella del sistema.
Ejemplos de objetivos específicos son:
1) Reducir el tiempo medio de respuesta en un porcentaje dado.
2) Determinar si la tasa de paginación es tan elevada que pueda ser necesaria
algún tipo de intervención (ej: la ampliación de la memoria principal).
3) Determinar la mejor distribución de los archivos en los discos conectados a
los diversos canales.
4) Determinar la relación existente entre las utilizaciones de memoria y de
CPU y el número de usuarios conectados.
5) Equilibrar y optimizar la actividad de los canales.
En ocasiones para lograr un determinado objetivo es necesario analizar y resolver
previamente otros problemas.
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
136
7.3 CARACTERIZACION DE LA CARGA
En el Tema 3, se trató la caracterización de la carga en detalle. En la Figura 7.3 se
muestran las principales actividades en esta fase.
Análisis de la informacióndisponible
Selección de la cargade test
Construcción del modelode carga
Figura 7.3: Actividades a realizar en la fase de caracterización de la carga
Para caracterizar la carga se suele intentar fragmentar el tiempo total transcurrido en los
tiempos que pasa el sistema ocupado en las distintas actividades. A partir de este análisis
inicial de la carga se podrán determinar sus principales características (su tendencia a
cargar el subsistema de E/S más que la CPU, el tamaño medio de los programas, las tasas
de llegada, ...) y buscar similitudes.
7.4 SELECCION DE LA INSTRUMENTACION
Una vez definidos los objetivos de estudio y caracterizada la carga el siguiente pasó será
medir todas las variables del sistema que se necesitan para dicho estudio, para ello hay que
escoger la instrumentación adecuada.
En la Figura 7.4 se recoge el esquema de las actividades de esta fase
Diseño y evaluación de configuraciones
137
Análisis de las variablesdisponibles
identificación de lasvariables a medir
Determinación y adquisiciónde la instrumentación que falta
Diseño del experimento
¿Medida posible?
¿La instrumentaciónactual es suficiente?
SI
NO
NO
SI
Figura 7.4: Actividades de la selección de la instrumentación
Se deben conocer los criterios para la selección de la instrumentación de medida y la
capacidad de las diferentes variables que tienen esas herramientas. Se distinguirán tres
áreas:
• Los componentes hardware del sistema.
• El software del sistema (sistema operativo y los programas de sistema y de
usuario).
• La carga, es decir, el conjunto de programas que el sistema tiene que
procesar durante un periodo dado.
7.4.1 Hardware
Es importante detectar los componentes hardware que causan los cuellos de botella,
pero también aquellos que están prácticamente inactivos o infrautilizados. Por otro lado la
determinación de los porcentajes de utilización de cada componente hardware también es
importante para saber qué porción de la capacidad del sistema queda sin utilizar.
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
138
A continuación, se presenta una lista en la que se indica, para cada componente
hardware, las variables más útiles que conviene medir así como las herramientas necesarias
para su obtención:
a) CPU
• CPU ocupada o utilización de la CPU. Para medir esta variable se emplean
tanto monitores software como hardware. También se pueden utilizar rutinas de
contabilidad, pero el grado de fiabilidad de las mismas es mucho menor.
• Sólo CPU. Esta variable permite cuantificar el grado de solapamiento entre la
actividad de la CPU y otras actividades. Para medir esta variable se utiliza un
monitor software o un monitor hardware.
• CPU ocupada en estado supervisor, es decir se trata de una medida del
overhead del sistema. Para medir esta variable se utiliza un monitor software y
en algunos casos un monitor hardware.
• CPU ocupada en estado usuario, indica cuanto tiempo pasa la CPU ejecutando
programas de usuario. Para medir esta variable se utiliza un monitor software y
en algunos casos un monitor hardware.
• Ocupación de la CPU para cada usuario. Representa la contribución de cada
usuario a la ocupación de la CPU. Para medir esta variable se utiliza un monitor
software o rutinas de contabilidad.
b) Canales
• Canal ocupado. Indica la utilización de cada canal. Para medir esta variable se
utiliza un monitor software o un monitor hardware.
• Equilibrio de los canales, indica la demanda relativa de los canales y si las
actividades de E/S están equilibradas entre ellos; se deriva de la utilización de
todos los canales. Para medir esta variable se utiliza un monitor software o un
monitor hardware.
• Solapamiento de canal, indica el grado de solapamiento de los canales entre si,
y entre los canales y la CPU. Para medir esta variable se utiliza un monitor
software o un monitor hardware.
Diseño y evaluación de configuraciones
139
• Longitud de cola en el canal, indica la cantidad de contención en cada canal, o
lo que es lo mismo, hasta que punto es responsable de la existencia de un
cuello de botella. Se suelen obtener la longitud media y máxima de las colas, así
como la cantidad de tiempo durante la cual las colas no están vacías. Para
medir esta variable se utiliza exclusivamente un monitor software.
c) Unidades de control
• Unidad de control ocupada, siempre será superior al tiempo de ocupación de
canal o canales que acceden a la unidad, ya que el controlador estará ocupado
durante el tiempo de la transferencia de datos y además durante la transmisión
de órdenes a los dispositivos y a los canales; si no dispone de memoria caché
local, la diferencia será generalmente muy pequeña, pero si la tiene, puede
llegar a ser bastante apreciable.
• Una elevada utilización de un controlador puede indicar la existencia de una cola
de espera de peticiones de E/S para una de las unidades conectadas al mismo.
Si un controlador atiende a canales conectados a diferentes CPUs, puede haber
competencia también por el controlador. La utilización de un controlador sólo se
puede obtener a partir de una herramienta hardware, mientras que la contención
provocada por él si es medible mediante herramientas software.
d) Dispositivos de acceso directo (discos).
• Ocupación del dispositivo, indica cuánto tiempo necesita el disco para las
operaciones de E/S, que incluyen los tiempos de movimiento del brazo, de
latencia, de transferencia y de resolución de los conflictos en el camino hacia la
memoria central. Se utiliza un monitor software si sólo se necesita el tiempo
total, y un monitor hardware si además se quiere la descomposición del tiempo
total en sus componentes.
• Frecuencia de acceso al dispositivo, indica la frecuencia de las operaciones de
posicionamiento del brazo del disco. Se utiliza monitor software o hardware.
• Tiempo de movimiento del brazo, indica la duración de las operaciones de
posicionamiento del brazo del disco. También proporciona información acerca
de si la posición relativa de los archivos en el disco es la adecuada.
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
140
• Cola de espera en el dispositivo, indica el tiempo durante el cual la cola de
espera no está vacía y la longitud media de la misma. Estos índices sólo se
pueden medir a partir de monitores software.
e) Dispositivos de acceso secuencial (cintas)
• Ocupación del dispositivo, mide los tiempos de lectura-escritura,
posicionamiento y rebobinado de cada unidad de cinta. Se utiliza un monitor
software o hardware.
• Solapamiento en la actividad de las cintas, se refiere al solapamiento con la
actividad de otras unidades de cinta. Este índice proporciona una idea de si el
número de unidades de cinta es el adecuado, para medirlo se utiliza un monitor
software o rutinas de contabilidad.
f) Impresoras de línea
• Disponibilidad, hace referencia al tiempo durante el cual la impresora está
disponible y tiene una notable influencia en la productividad del sistema. Se
utiliza en su medida un monitor software o un monitor hardware.
• Ocupación del dispositivo, se expresa normalmente como el número de líneas
impresas en un periodo determinado. Se utiliza en su medida un monitor
software o un monitor hardware o rutinas de contabilidad.
7.4.2 Software
7.4.2.1 Sistema operativo
El overhead del sistema influye tanto en sus prestaciones como en su capacidad, y
puede variar considerablemente en función de las características de la configuración, sobre
todo por la cantidad de memoria disponible y por la propia configuración del sistema
operativo.
El conocimiento de la utilización de cada uno de los módulos del sistema operativo
puede ser útil a la hora de seleccionar los parámetros de generación.
Diseño y evaluación de configuraciones
141
Mediante la utilización de herramientas hardware se pueden obtener medidas bastante
ajustadas acerca de la utilización de la CPU por parte del sistema operativo, pero si se quiere
conocer también la utilización de la CPU por parte de cada módulo individual del sistema
operativo, así como la longitud media de las colas de espera en los recursos, se tendrá que
recurrir al uso de herramientas software.
7.4.2.2 Programas de sistema y de usuario
Un programa de usuario o de sistema puede modificarse cuando se comprueba su falta
de ineficiencia. Es importante conocer la utilización de la CPU y el número de operaciones de
E/S de cada uno de los programas, de manera global y de cada uno de sus segmentos.
Para obtener esta información se pueden utilizar en ciertas ocasiones las rutinas de
contabilidad, pero suelen proporcionar una información más completa las herramientas
software.
Por ejemplo, un monitor software permite determinar la frecuencia de ejecución de las
distintas sentencias de un programa, así como el número de llamadas al sistema que
genera.
7.4.3 Carga
La información de la carga de programas se obtienen normalmente mediante rutinas de
contabilidad. Los datos recopilados por éstas son procesados por programas de la siguiente
forma:
1) Inicialmente se validan los datos, ya que pueden existir inconsistencias
debido a anomalías en el funcionamiento del sistema.
2) Se adaptan a un formato adecuado para el programa que los procesará.
3) Procesamiento periódico detallado, que abarca periodos de tiempo
variables (unas horas, un día, etc) seleccionados por el usuario para
analizar situaciones específicas de la carga.
4) Procesamiento periódico global, que basándose en los contenidos de una
base de datos de prestaciones, produce informes acerca de la carga
medida y de las actividades del sistema a lo largo de periodos de tiempo de
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
142
longitud fija (un mes, un cuatrimestre, un semestre, etc.). Esta base de
datos es actualizada durante el procesamiento periódico detallado.
Los informes se elaboran a menudo indicando utilizaciones de CPU y de los demás
dispositivos para cada usuario o grupos de ellos. La utilización de estas herramientas
permite obtener gran cantidad de información acerca de la carga del sistema, por ejemplo:
• La actividad de cada componente del sistema durante un periodo de tiempo
determinado.
• La existencia de picos de carga durante uno o más días o en horas
determinadas de cada día.
• Número total de operaciones de E/S llevadas a cabo por cada programa en
los distintos dispositivos.
• La contribución a la actividad de la CPU y de los dispositivos de E/S de los
trabajos batch e interactivos.
• La paginación debida a cada usuario en entornos de memoria virtual.
7.5 DISEÑO Y PLANIFICACIÓN DE LA SESIÓN DE MEDIDA
Las operaciones a realizar en le fase de diseño y planificación de la sesión de medida se
muestran en la Figura 7.5
Selección delos parámetros
Planificación del experimento.Control del escenario y del
overhead de la instrumentación
Validación
¿Experimentoválido?
SI
NO
SI
Realización del experimentode medida
Figura 7.5
Diseño y evaluación de configuraciones
143
Para poder planificar una sesión de medida debe conocerse, al menos someramente, la
carga y su evolución en el tiempo. Las medidas deben llevarse a cabo en un entorno
controlado con carga conocida y no deben hacerse modificaciones en el hardware ni
cambios en los procedimientos habituales de operación durante su realización.
Por otra parte el problema del overhead que causa un monitor software cuando está
activo es un problema más delicado. Si se selecciona de forma adecuada el período de
muestreo, se podrá mantener prácticamente constante el consumo de tiempo de CPU por
parte de la herramienta. Por lo tanto, habrá que seleccionar la longitud de la sesión de
medida (frecuencia de muestreo) de manera que dado un nivel de confianza, la interferencia
con el sistema sea lo más pequeña posible.
Cuando se utiliza una herramienta hardware, hay que tener en cuenta los siguientes
problemas:
• Conexión incorrecta de los sensores.
• Longitud de los cables, pueden aparecer señales retardadas debido a la
diferente longitud de los cables de las mismas.
• La selección de las señales. A menudo se dispone de más de una señal
para detectar el mismo evento o medir la misma cantidad.
7.6 VALIDACION
El esquema global de las operaciones implicadas en esta fase aparece en la Figura 7.6.
Interpretaciónde los resultados
Acciones desintonización
Fin del estudio
¿se pueden lograr los objetivos?
¿Se han logradolos objetivos?
SI
NO
NO
SI
Caracterizaciónde la carga
Diseño del experimento
Figura 7.6
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
144
7.7 ESTUDIOS DE SINTONIZACION
En general a la hora de resolver un problema de sintonización de un sistema hay que
seguir los siguientes pasos:
1) Planteamiento del problema, se plantean los síntomas externos de
ineficiencia que han motivado el estudio, así como los objetivos que se
pretenden alcanzar.
2) Medidas e interpretaciones.
3) Acciones emprendidas y verificación de sus efectos.
En las siguientes subsecciones se plantean dos problemas de sintonización:
• Equilibrar un sistema multiprogramado.
• Sintonización de un sistema interactivo.
7.7.1 Equilibrar un sistema multiprogramado
Para mejorar las prestaciones de un sistema multiprogramado es necesaria determinar
la existencia y localización de cuellos de botella. Una vez detectado hay que proceder a la
eliminación o reducción de dicho cuello de botella.
A menudo se revela la existencia de un cuello de botella por los desequilibrios en la
actividad de los componentes del sistema. Pero esto no siempre es cierto, ya que un
sistema puede estar relativamente bien equilibrado y presentar aún cuellos de botella.
Además se ha demostrado que un sistema perfectamente equilibrado no tiene porque
presentar las mejores prestaciones posibles.
En general, se obtienen mejores prestaciones si los componentes más rápidos (a
excepción de la CPU) están más cargados que los lentos. El estado de equilibrio del sistema
puede dar una idea de la posible existencia de cuellos de botella pero no de su ausencia, ya
que no puede ser considerado como un indicador preciso de su “proximidad” al punto de
máximas prestaciones.
Diseño y evaluación de configuraciones
145
♦ Ejemplo 7.1: Considérese un sistema con dos unidades de disco (disco 1 y disco 2) con unos
tiempos medios de servicio de S1=10 ms y S2=20 ms, respectivamente. Si la tasa total de peticiones
para los dos discos es λ = 45 peticiones/segundo y si se desea que las utilizaciones de los dos discos
sean idénticas. a)Calcular cuales deben ser las tasas de peticiones de cada disco λ 1 y λ 2. b)Calcular
los tiempos medios de respuesta R1 y R2, conocido que los tiempos entre llegadas y los tiempos de
servicio se distribuyen exponencialmente, es decir ii
ii S
SR
·1 λ−= . c) Calcular el tiempo medio del
subsistema formado por los dos discos. d) Proponer alguna forma de mejorar el tiempo medio de
respuesta.
Solución:
a) Puesto que las utilizaciones de los dos discos se desean que sean idénticas, aplicando la ley de
utilización se obtiene:
02.001.0 212211 λλλλ =⇒= SS
Por otro lado, del enunciado se sabe que:
4521 =+= λλλ peticiones/seg
Luego, despejando λ1 y λ2 de ambas ecuaciones se obtiene:
3021
21 =
+⋅
=SS
Sλλ peticiones/seg
15304512 =−=−= λλλ peticiones/seg
Luego la utilización de ambos discos es
%303.001.0·301112 ⇒==== SUU λ
b) Puesto que se conocen tanto la tasa de petición como el tiempo de servicio de cada disco es posible
aplicar la formula para calcular el tiempo de respuesta que se proporciona en el enunciado.
3.141 11
11 =
⋅−=
SS
Rλ
mseg
6.281 22
22 =
⋅−=
SS
Rλ
mseg
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
146
c) El tiempo medio de respuesta del subsistema formado por los dos discos es:
190286.04515
0143.04530
22
11 =+=+ RR
λλ
λλ
mseg
d) Una posible forma de mejorar el tiempo medio de respuesta sería envíar λ1=38 peticiones/seg al disco
rápido y λ2=7 peticiones/seg al disco lento. Ahora la utilización de cada disco es:
%1414.002.0·7
%3838.001.0·38
2
1
⇒==⇒==
U
U
El tiempo de respuesta de cada dispositivo sería
13.1601.0381
01.01 11
11 =
⋅−=
⋅−=
SS
Rλ
mseg
25.2302.071
02.01 22
22 =
⋅−=
⋅−=
SS
Rλ
mseg
Luego el tiempo medio de respuesta del subsistema formado por los dos discos es:
=+=+ 02325.0457
01613.04538
22
11 RR
λλ
λλ
17.2 mseg
Es decir se ha mejorado el tiempo de respuesta en un 10% con respecto a la situación de carga
equilibrada
♦
♦ Ejemplo 7.2: Cuellos de botella en discos y canales
PLANTEAMIENTO DEL PROBLEMA
Se considera un sistema multiusuario batch como el que se muestra en la Figura 7.7. La memoria del
sistema M está dividida en siete particiones; cinco de ellas se dedican a la ejecución de los programas
que se van a evaluar, una la utiliza el sistema y otra se reserva para programas de elevada prioridad. El
80% de la carga lo constituyen programas administrativos y el 20% restante programas de aplicación
científica.
Diseño y evaluación de configuraciones
147
Las unidades de disco conectadas al canal C 1 contienen áreas de trabajo, librerías y archivos de
usuario. Los discos del canal C2 se dedican al sistema operativo y contienen el sistema, sus librerías y
sus espacios de trabajo.
El objetivo general del estudio es ver si los parámetros de generación del sistema son adecuados y
obtener información acerca de la utilización de los componentes para plantear posibles reposiciones.
CPU
Memoria
C1
C2
C3 C4
C0
CU
CU
CUCU
D1 D2 D3
D4 D5 D6
Sistema
Usuario
LP
C
Figura 7.7
LAS MEDIDAS Y SU INTERPRETACION
Las medidas se tomaron con un monitor software de muestreo, y las sesiones de medida, de una
duración media de tres horas tuvieron lugar de la siguiente forma:
• Durante periodos en los cuales se había observado una disminución apreciable de la
productividad.
• Durante periodos de elevada carga del sistema.
• Durante periodos de cada modificación de la configuración del sistema y de los
parámetros de generación del mismo.
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
148
Las medidas iniciales llevaron a la obtención de los diagramas de Gantt y Kiviat-Kent que se muestran
en las Figuras 7.8 y 7.9 respectivamente.
0 10 20 30 40 50 60 70 80 90 100
CPU
C4
C3
C2
C1
70 %
25 %
15 %
15 %
14 %
% Utilización
CHCPU ^ 42 % CHCPU ^ 12 %
Figura 7.8: Diagrama de Gantt
CPU (70 %)
CHCPU^(42 %)
CHCPU^(28 %)
CHCPU^(28 %)
CH
(46 %)
CPU(30 %)
CPU usuario(40 %)
CPU supervisor(30 %)
Figura 7.9: Diagrama de Kiviat-Kent
La utilización media de la CPU es del 70 %, con oscilaciones a lo largo del día entre el 95 % y el 60 %.
Un 30 % se dedica a funciones de supervisor.
El análisis de actividad de los canales muestra que mientras la carga en los canales C1 y C2 (canales a
los que están conectados los discos) está equilibrada, la carga en C3 y C4 (canales responsables de las
unidades de cinta) no lo está.
Diseño y evaluación de configuraciones
149
De todos los discos el que presenta una mayor utilización es D4, atendido por C2 y que almacena las
librerías del sistema. Un estudio más detallado de la utilización de los contenidos muestra que la librería
de los módulos de supervisor es la más solicitada. Además, algunos de los módulos de supervisor más
utilizados se cargan en disco cada vez que se requieren, en vez de mantenerlos en memoria principal.
Por lo tanto sería conveniente revisar la lista de los módulos residentes.
ACCIONES QUE HAY QUE EMPRENDER
Basándose en los datos medidos sobre el sistema, se plantearon las siguientes acciones para lograr
una mayor disponibilidad de la CPU para los programas de usuario:
1) La reducción de la carga en D4, optimizando, por una parte, la lista de módulos de supervisor
residentes en memoria y por otra parte la ubicación de los archivos en el disco.
2) Equilibrar las cargas en C3 y C4.
EFECTOS
La revisión de la lista de módulos de supervisor residentes a partir de la frecuencia de acceso produce
una reducción considerable de la carga en el disco. La tasa de acceso a la librería correspondiente se
vio reducida en un 70%.
La mejora en la ubicación de los archivos en el disco D4 se consigue a partir de los datos acerca del
movimiento del cabezal, los cuales permiten interferir la secuencia de acceso. A partir de esta
secuencia se intentará minimizar la distancia entre los archivos más utilizados. Además una reducción
en el movimiento del cabezal reduce también el tiempo de CPU desocupada.
Como consecuencia de las acciones emprendidas, la utilización de la CPU debida a programas de
usuario se vio incrementada en un 17%. Un 8% de este incremento se debió a la reducción de la
frecuencia de acceso a la librería y un 9% a la reducción de los tiempos de espera en D4 y al equilibrio
de carga en C3 y en C4.
La utilización global de la CPU se incrementó en un 8% y la variable cualquier canal ocupado (CH) se
redujo a un 40% (de un 46%). Este aumento de la utilización de la CPU por parte de los programas de
usuario mejoró la productividad del sistema en un 10% aproximadamente.
La Figura 7.10 muestra el gráfico de Kiviat del sistema después de las acciones de sintonización.
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
150
CPU (78 %)
CHCPU^(52 %)
CHCPU^(27 %)
CHCPU^(13 %)
CH
(40 %)
CPU(22 %)
CPU usuario(57 %)
CPU supervisor(21 %)
Figura 7.10
♦
♦ Ejemplo 7.3: Memoria insuficiente
PLANTEAMIENTO DEL PROBLEMA
CPU
Memoria
C2
C3
C4
C0CU
CU
CU
LP
C
C1CU
Figura 7.11
Diseño y evaluación de configuraciones
151
Se dispone del sistema de la Figura 7.11, que posee dispositivos de almacenamiento de diferentes
velocidad: un disco rápido en el canal C1, discos más lentos en los canales C2 y C3 y unidades de cinta
en C4.
La productividad del sistema resultaba ineficiente y había muchos trabajos en espera de conseguir
espacio en memoria. A menudo el sistema se mostraba incapaz de procesar su carga diaria en un
mismo día y programas largos solían procesarse incluso a lo largo de varios días.
Por otra parte, la capacidad del sistema era tal que era muy improbables una saturación del mismo con
el nivel de carga actual. Por tanto, el propósito del estudio consiste en determinar la posible existencia
de un cuello de botella a por si se debe rediseñar la configuración del sistema para adaptarlo a la carga
actual.
LAS MEDIDAS Y SU INTERPRETACION
En este estudio se utilizaron las medidas recogidas por las rutinas de contabilidad. Estas rutinas, que
forman parte del sistema, funcionan como un monitor software conducido por eventos con un coste
prácticamente imposible de suprimir en el funcionamiento normal de cualquier sistema. Se utilizó una
carga test para que así se pudieran comparar de una manera más sencilla los resultados obtenidos
después de las acciones de sintonización.
La carga de test estaba constituida por programas de la carga real escogidos según un criterio de
representatividad, se trataba de una carga de test sintética natural con características similares a las de
la carga real.
De las medidas tomadas durante la ejecución de la carga de test se obtuvieron las utilizaciones de la
CPU y de los canales. Las rutinas de contabilidad son un tipo de herramienta de medida que raramente
suele proporcionar información acerca del grado de solapamiento entre los dispositivos. En la Tabla 7.1
se han resumido los resultados antes y después de la sintonización.
Componente Utilización antes (%) Utilización después (%)
CPU 58 76
Canal 1 27 40
Canal 2 25 37
Canal 3 45 62
Canal 4 25 35
Tabla 7.1
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
152
No se puede deducir de estas medidas que exista un dispositivo causante de un cuello de botella, ya
que todas las utilizaciones son bastante bajas. Basándose en estos datos se formularon las siguientes
hipótesis:
1) La carga no es lo suficientemente grande para poder cargar de forma apreciable los
componentes del sistema.
2) La planificación de los recursos o de las colas de entrada no es eficiente (cuello de
botella causado por el planificador).
3) No hay suficiente memoria (el factor de multiprogramación es demasiado bajo para la
capacidad del sistema)
La primera hipótesis quedaba descartada tanto por la carga de test como por la carga real porque
ambas suponían un nivel de carga considerable. La segunda hipótesis también se podía descartar
porque en el mismo tipo de sistema y en instalaciones muy similares se habían observado niveles de
utilización muy superiores. Por tanto, sólo quedaba profundizar en el estudio de la tercera hipótesis.
ACCIONES QUE HAY QUE EMPRENDER Y SUS EFECTOS
Se dobló el espacio de memoria disponible para los usuarios, obteniéndose los niveles de utilización que
se muestran en la tercera columna de la Tabla 7.1. Estos datos demuestran la corrección de la tercera
hipótesis, el cuello de botella era causado por un espacio de memoria insuficiente.
Con un nivel de multiprogramación mayor, se redujo el tiempo de ejecución de la carga de test a un 75
% con respecto al obtenido antes de incrementar el tamaño de la memoria. La productividad, que es
proporcional a la inversa de este tiempo, se incrementó en un 33%.
♦
7.7.2 Sintonización de un sistema interactivo
En un sistema interactivo junto con la carga generada por los usuarios en línea, locales o
remotos, suele haber también carga batch, por lo que más que un sistema interactivo, se
trata de un sistema mixto o híbrido.
Los usuarios en línea, a su vez, pueden dividirse en dos categorías:
Diseño y evaluación de configuraciones
153
1) Usuarios atendidos siguiendo una técnica de tiempo compartido (time-
sharing). La aplicación principal de este clase de usuarios es el desarrollo y
ejecución interactivo de programas. El usuario puede verificar
interactivamente la existencia de errores sintácticos en su programa, y
analizar en su terminal los resultados de su ejecución, evitando así
abundantes listados y reduciendo de manera apreciable los tiempos de
espera. El tiempo medio de residencia se reduce considerablemente y la
productividad de los programadores aumenta con respecto a las que se
obtenía en un entorno batch.
Por otra parte, las órdenes utilizadas por este tipo de usuario suelen ser
generalmente de tipo “ligero” (inserción y borrado de texto, sustitución de
caracteres, impresión de listados de programas,etc). Por lo tanto este tipo
de carga puede caracterizarse por un considerable consumo de E/S junto
con una escasa demanda de CPU.
2) Usuarios que interaccionan con el sistema para ejecutar uno o más
programas durante su ejecución. La carga que genera este tipo de usuario
es muy variable. Estas aplicaciones suelen requerir la introducción de datos
por parte del usuario, desde un terminal local o remoto, para procesarlos
posteriormente. Este tipo de carga suele estar caracterizado por un gran
número de operaciones de E/S y una demanda variable de CPU en función
de la complejidad de los cálculos.
Para poder atender la demanda de los diferentes tipos de usuarios, en ocasiones se
suele acudir, especialmente en grandes instalaciones, a sistemas “dobles” (twins) en los que
se cuenta con un sistema dedicado a los usuarios interactivos y con otro para ejecutar
programas batch.
También es posible emplear para los tipos de carga descritos, un único sistema, con
una o más CPU’s. En este caso es más difícil equilibrar el sistema ya que, además de un
elevado número de componentes, se tiene el factor añadido de la coexistencia de diferentes
tipos de carga.
De esta forma, por ejemplo, un incremento de la carga batch puede degradar los
tiempos de respuesta interactivos hasta límites no tolerables, mientras que, por otra parte, si
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
154
se incrementan el número de usuarios conectados, puede empeorar de manera
considerable el tiempo de presencia en el sistema de los trabajos batch.
♦ Ejemplo 7.4: Canales sobrecargados
PLANTEAMIENTO DEL PROBLEMA
Se dispone de un sistema multiprocesador con dos CPU’s que comparten los periféricos de
almacenamiento secundario. El sistema operativo reside en los discos conectados al canal C2. En el
canal C1 están conectados dos tipos de discos, unos comparativamente más rápidos que otros. La
carga esta compuesta por programas procedentes de usuarios interactivos, que se ejecutan, en tiempo
compartido, y por programas batch.
En un determinado instante de tiempo, los principales índices de prestaciones del sistema, tiempos de
respuesta y de presencia, experimentaron un empeoramiento progresivo hasta alcanzar límites no
tolerables. De tal forma, que durante periodos de mucha carga, un usuario interactivo podía estar de 1 a
2 minutos esperando por una orden “ligera”, y un usuario batch, con un programa de tamaño mediano de
tiempo de ejecución inferior a 5 minutos, podía llegar a esperar de 3 a 4 horas para obtener un listado de
su ejecución.
Por todo ello, se decidió proceder a un análisis del sistema para establecer si se podía mejorar la
eficiencia del mismo eliminando cuellos de botella, o si por el contrario era imprescindible acudir a
terapias de reposición. En este último caso habría que indicar también qué componentes debían
añadirse o sustituirse en el sistema.
LAS MEDIDAS Y SU INTERPRETACION
Se observó la actividad del sistema durante periodos de elevada carga en los cuales el tiempo de
respuesta era particularmente largo. El intervalo de medida fue de 1 h y 11 minutos (4260 seg). Se
empleó para la obtención de las medidas un monitor software conducido por eventos, que presentó un
overhead de sólo 104 seg, es decir de un 2.1 % de la duración de la sesión de medida.
Mientras que la utilización del canal C2 parecía normal, no ocurría lo mismo con los canales C’1 y C’’1.
Por ello se midió la utilización de las unidades conectadas a C’1 y C’’1 (ver Figura 7.12).
T1, T2 y T3 son los discos más rápidos y es donde el sistema aloja los archivos temporales (para el
programa en ejecución, para el compilador, para swapping, etc.), las librerías de los programas, los
compiladores más utilizados, los archivos de programas de utilidades y otros archivos que el sistema
necesita para tratar los usuarios interactivos.
Diseño y evaluación de configuraciones
155
Los discos más lentos D1, D2, D3, D4 y D5, se dedican a los usuarios y contienen bases de datos, áreas
de trabajo privadas, etc.
CU
CU
T1
C1 T2 T3 D1 D2 D3 D4 D5
C1’
C1’’
Figura 7.12
El sistema envía sus peticiones de E/S a los periféricos prioritariamente a través del canal C’1 (que es el
canal principal). Si está ocupado, es decir, si ya está transfiriendo datos, la CPU envia las peticiones al
canal C’’1, que se considera secundario.
A partir de las medidas se observó una utilización elevada del canal C’1, cercana al 70% (una media de
un 69%; 2942 s), límite de utililización que se ha demostrado con la experiencia que no es
recomendable superar. El canal C’’1, por el contrario presentaba una utilización baja (una media de un
33%; unos 1390 s).
Un estudio de mayor profundidad de las operaciones de E/S en los dos canales antes mencionados
reveló la existencia de un cuello de botella debido a la competencia de las peticiones de acceso a T1, T2
y T3. De hecho, de 28 peticiones/seg, 25.9 (un 92 %) eran peticiones de las unidades T1, T2 y T3 y sólo
un 2.1 % eran peticiones a D1, D2, D3, D4 y D5. La Tabla 7.2 muestra las utilizaciones de cada unidad.
UNIDAD Accesos/seg Peticiones en cola
T1 15.3 85%
T2 3.4 89%
T3 6.9 90%
D1 0.5 -
D2 0.1 -
D3 0.4 -
D4 0.7 -
D5 0.4 -
Tabla 7.2
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
156
De la Tabla 7.2 se deduce que el número total de accesos/seg a los discos T es Ttot=25.6 accesos/seg.
Mientras que el número total de accesos/seg a los discos Dtot es Dtot=2.1 accesos/seg. Por lo que en
total se tiene 27.7 accesos/seg a ambos tipos de disco.
Por otra parte se puede observar que los porcentajes de peticiones a las unidades T1, T2 y T3 que tienen
que esperar eran muy elevados, un 85%, 89% y 90% respectivamente. El 28% de las peticiones que
tienen que esperar son, a su vez, colocadas en colas que ya contienen tres peticiones.
Una petición se pone en cola por una de las siguientes razones:
• Canales ocupados y unidades libres: 16%
• Canales y unidades ocupadas: 43%.
• Canales libres y unidades ocupadas: 41%.
El 84% de las peticiones eran puestas en cola porque la unidad estaba ocupada.
La espera en cola de las peticiones produce un incremento del tiempo de respuesta y de presencia, ya
que incrementa el tiempo medio de acceso a T1, T2 y T3. Además, el manejo de esas cola de espera
causa un overhead del sistema que añade un retardo aún mayor.
Un análisis de las causas de tal cantidad de actividad de E/S en C’1 y C’’1 reveló que el sistema tenía un
nivel de multiprogramación demasiado alto. En la Tabla 7.3 se puede ver el número medio de programas
en ejecución, de programas cargados en memoria y de programas en espera de ejecución.
Batch Interactivo Total
Programas en ejecución 15.1 29.8 44.9
Programas en memoria principal 6.5 15.6 22.1
Programas en espera de ejecución 48.2 - 48.2
Tabla 7.3
Se puede observar en la Tabla 7.3, que sólo la mitad de los programas en ejecución están también
cargados en memoria. Esto produce un elevado tráfico entre memoria principal y secundaria (en este
caso el disco T1), lo que se denomina swapping.
Por otra parte el número medio de programas interactivos en ejecución (30) es demasiado elevado.
Como los programas interactivos tienen una prioridad de ejecución mayor que los batch, las
prestaciones para éstos se ven muy degradadas al ser este tipo de programas frecuentemente
Diseño y evaluación de configuraciones
157
interrumpidos en su ejecución. Por otra parte, la longitud de la cola de programas en espera de
ejecución demuestra que el sistema no es adecuado para la carga que tiene que procesar.
ACCIONES QUE HAY QUE EMPRENDER Y SUS EFECTOS
Una acción posible para reducir la actividad de swapping consiste en incrementar el tamaño de la
memoria principal. Como el nivel de utilización de la CPU puede incrementarse, se podría tener así un
mayor número de programas simultáneamente en memoria principal, reduciendo el tráfico entre dicha
memoria y la memoria secundaria. Esta solución reduciría la carga en el disco T1 (disco de swapping),
pero no eliminaría el cuello de botella debido a T2 y T3. Es probable incluso que empeore el problema.
Por lo tanto se debe examinar la posibilidad de reducir las cargas en las unidades con las mayores
colas de espera. Después de analizar cada uno de los archivos en T1, T2 y T3, se decidió expandir el
subsistema C1 como se muestra en la Figura 7.13, contando ahora con cuatro discos rápidos y ocho
más lentos disponibles para los usuarios.
CU
CU
T1
C1
T2 D1 D2 D3 D4
C1’
C1’’
CU
CU
T3 T4 D5 D6 D7 D8
C2’
C2’’
Figura 7.13
A continuación se investigó la causa de la elevada utilización de los terminales. Se vio que
aproximadamente un 10% de los usuarios interactivos utilizaban estos dispositivos únicamente para
ejecutar sus programas con una prioridad mayor que los usuarios batch. Por todo ello, se decidió reducir
el número de terminales.
TEMA 7: Mejora de las prestaciones de un sistema: Sintonización
158
Como consecuencia de estas acciones, las prestaciones del sistema mejoraron considerablemente. El
tiempo de respuesta máximo para órdenes ligeras pasó a 30 seg y el tiempo de presencia se redujo en
promedio un 25 %.
Recommended