Desempeño de Sistemas de
Tecnologías de la Información
INTRODUCCIÓN
El desempeño de los componentes de un sistema de tecnologías
de información debe ser una parte importante en el diseño y desarrollo de estos
sistemas. El propósito es obtener el más alto desempeño de acuerdo al
presupuesto que se tiene.
Para lo anterior, es necesario que los ingenieros
responsables del desarrollo de sistemas de tecnologías de información conozcan
las técnicas de análisis y evaluación del desempeño de sistemas computacionales;
para lo cual es necesario reconocer
1.- ¿QUÉ ES EL DESEMPEÑO DE
UN SISTEMA?
El desempeño se refiere al uso eficiente de los recursos que
componen un sistema. Y esto puede definirse de diferentes maneras. Por ejemplo,
podemos considerar el desempeño de un sistema como una medida de la velocidad
de respuesta de servicio y en otras ocasiones podemos referirnos a la capacidad
de un sistema de almacenar información.
Por lo anterior, el profesional de las tecnologías de
información debe ser capaz de identificar y exponer los requisitos de desempeño
de sus sistemas, además de poder comparar las diferentes alternativas que puede
usar para cumplir dichos requerimientos.
Para analizar el desempeño de un sistema es importante
definir la carga y la métrica, así como tener en cuenta cuales son las metas de
dicho análisis.
2.-CARGA DEL SISTEMA
La carga de un sistema caracteriza la cantidad y la
naturaleza de las peticiones de usuario al sistema. El desempeño de un sistema
depende de la carga a la que es sometido. En general, el desempeño de un
sistema se deteriora conforme aumenta la intensidad de la carga.
3.-MÉTRICAS
La métrica de desempeño es la cantidad medible de la
característica que queremos evaluar, y puede tomar distintas formas, es decir,
no existe una métrica general si no que depende del sistema. Ejemplos incluyen:
Tiempo de respuesta:
el tiempo que pasa desde que inicia un evento, hasta que termina. Por ejemplo,
el tiempo que pasa desde que el usuario hace una petición y el sistema responde
a ésta.
Throughput:
Número de tareas completadas por unidad de tiempo. Por ejemplo, la velocidad en
que las peticiones pueden ser respondidas por el sistema.
Utilización: se
refiere al uso de recursos y se mide como la fracción de tiempo en la que el
recurso se ocupa para proporcionar un servicio. El tiempo en el que no se está
usando un recurso se le conoce como tiempo muerto (“idle time”).
Confiabilidad: se
mide en razón de la probabilidad de errores o el tiempo promedio entre errores.
Disponibilidad:
se define como la fracción de tiempo que el sistema esta a disposición y puede
ser usado por los usuarios. El tiempo en el que el sistema no se encuentra
disponible se le conoce como “downtime”.
Existen varias métricas y es importante que el ingeniero
sepa identificar cuáles son importantes en el análisis del sistema específico
que se requiere evaluar.
4.-PROPÓSITO DEL ANÁLISIS DE
SISTEMA.
Algunas metas comunes del análisis del desempeño de un
sistema son:
Comparación de
alternativas: en estos casos, el análisis de desempeño de un sistema provee
información cuantitativa de qué configuraciones son mejores según condiciones
específicas. Por ejemplo, cuando se quiere comprar un equipo de cómputo, se
tienen diferentes opciones, cantidad de memoria, velocidad de procesador,
interfaces de red, etc. Entonces evaluamos las diferentes opciones para escoger
qué computadora nos conviene comprar.
Determinar el impacto
de una característica: Al actualizar o diseñar sistemas, hay ocasiones en
las que se necesita determinar cuál sería el impacto de agregar (o quitar) una
característica específica del sistema. Como sólo un componente del sistema es
cambiado, este tipo de análisis se conoce como comparación de antes y después.
Afinación de sistema:
aquí el propósito es encontrar un conjunto de parámetros que al ser ajustados
producen un mejor desempeño del sistema.
Debugging: Una
vez que se hacen modificaciones a un sistema para que funcione correctamente,
se tiene que analizar de nuevo el desempeño, ya que queda la posibilidad de que
el sistema produzca el resultado esperado, pero el desempeño no sea óptimo. El
propósito en estos casos es usar técnicas y herramientas de análisis que
permitan determinar por qué el sistema no tiene el desempeño esperado.
5.-TÉCNICAS Y ANÁLISIS DE
DESEMPEÑO
Existen 3 técnicas fundamentales que nos permiten analizar y
evaluar un sistema para encontrar una solución: mediciones, simulación y
modelado analítico.
Medición de
desempeño.
Aquí se trata de analizar el sistema real y ver su
comportamiento en diferentes escenarios. Existen casos en los que mediciones
del sistema no son posibles. Por ejemplo, cuando un sistema no existe todavía.
Para hacer mediciones de un sistema se necesitan por lo
menos dos componentes:
Generador de carga: esta es una herramienta que envía tareas
o carga el sistema.
Monitor: herramienta que permite ver qué pasa con el sistema
y mide los resultados que la carga genera en el sistema.
Simulación.
Otra herramienta que nos permite analizar el desempeño de un
sistema es la simulación. Ésta es una implementación en software de un modelo
simplificado del sistema y su carga. Éste es el método más usado en el análisis
y evaluación de desempeño de sistemas.
Una simulación es un experimento en una computadora donde el
ambiente real es remplazado por la ejecución de un programa. Tipos de
simulación:
Determinística / Estocástica.- se utiliza cuando se quiere
verificar un sistema donde el ambiente se conoce en su totalidad.
Terminación / No-terminación.- se usa cuando se evalúa un
sistema y la simulación termina cuando se cumplen ciertas condiciones.
Asintomática estacionaria / no-estacionaria.- comúnmente
basada en la teoría de Harkov, esta simulación llegará a la convergencia de un
comportamiento estacionario o divergencia.
Modelado Analítico.
Es un modelo matemático, del sistema, que se analiza
numéricamente. Algunos lo consideran una forma especial de simulación. En
general es un método más rápido que la simulación y es comúnmente usado en la
fase de desarrollo o para conocer patrones importantes del sistema.
Para el análisis del desempeño de sistemas computacionales
la principal técnica de modelado que se utiliza es la Teoría de Colas (queueing
theory). Esto es porque muchas tareas de un sistema comparten recursos del
mismo (procesador, disco, y algunos otros dispositivos). En estos casos, sólo
una tarea puede utilizar el recurso a la vez, y las demás tareas tienen que
esperar en colas para poder usar el recurso.
La teoría de colas permite determinar el tiempo que las
tareas pasan en las diferentes colas del sistema, posteriormente se combinan
estos tiempos para predecir el tiempo de respuesta por ejemplo. Para utilizar
este tipo de modelado es necesario conocer la notación de colas, además del
análisis operacional, análisis de valor promedio y convolución.
6.-ERRORES COMUNES DEL
ANÁLISIS Y EVALUACIÓN DEL DESEMPEÑO
Cuando se hace el análisis de un sistema, hay que tener
cuidado de evitar errores que pueden resultar en resultados incorrectos.
Errores comunes:
No se tiene un propósito.
No se usa un método sistemático.
Se trata de analizar sin entender el problema primero.
Se usan métricas incorrectas para el sistema específico.
Se usa carga no representativa.
No se usa la técnica adecuada.
Pasar por alto parámetros importantes.
Ignorar factores importantes.
Diseño experimental inapropiado.
Nivel de detalle incorrecto.
No análisis, o incorrecto.
Presentación inapropiada de resultados.
7.-MÉTODO DE ANÁLISIS /
EVALUACIÓN DE DESEMPEÑO
1. Definir el propósito del sistema.
2. Enlistar los servicios y resultados esperados.
3. Selección de métrica.
4. Enlistar parámetros.
5. Seleccionar factores a estudiar.
6. Seleccionar la técnica de evaluación.
7. Seleccionar el tipo de carga.
8. Diseño de experimentos.
9. Análisis e interpretación de datos.
10. Presentación de resultados.
REFERENCIAS
Raj Jain, Art of Computer Systems Performance Análisis Techniques for Experimental Design Measurements Simulation and Modeling., Wiley Computing Publishing, 1991. ISBN: 0471503363.
David J. Lilja, Comparing Instructional Delivery Methods for Teaching Computer Systems Performance Analysis, IEEE TRANSACTIONS ON EDUCATION, VOL. 44, NO. 1, FEBRUARY 2001
David J. Lilja, Measuring computer performance: a practitioner’s guide, Cambrige University Press 2001, ISBN: 0 521 64105 5
Jean-Yves Le Boudec, Performance Evaluation of Computer and Comunication Systems, EPFL Press, Switzerland 2001. ISBN: 978-2-940222-40-7
J.P Buzen, Fundamental Laws of Computer System Performance, Center for Research in Computer Technology, Cambridge Mass