Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Adsi PDF
Adsi PDF
TEMA 1 INTRODUCCIN
Dificultades
- La carga no es esttica.
- Los ndices que se utilizan para medir las prestaciones son diferentes segn el tipo de
estudio o sistema informtico.
- Siempre se intenta mejorar las prestaciones. Se debe negociar un nivel de servicio.
Las prestaciones son fundamentales en el diseo, seleccin, compra y utilizacin del sistema
informtico.
1
Magnitudes a medir
- Tanto el usuario como el responsable de un sistema tienen su idea sobre las prestaciones o
rendimiento.
- Esta idea se basa en magnitudes o parmetros los cuales pueden tener relacin con:
. consumo de tiempos
. utilizacin de recursos
. trabajo realizado por el sistema o por partes del mismo
Por ejemplo para los usuarios una cosa determinante suele ser el tiempo de respuesta ante un
comando interactivo ligero. Para el responsable del sistema podra ser la velocidad con la que
se procesan grandes trabajos batch.
Hay tres tipos de medidas a partir de las cuales se calculan ndices de rendimiento:
1.- Caractersticas fsicas del sistema.
2.- Condiciones operativas del sistema durante el tiempo que se est haciendo el estudio.
3.- Indices de prestaciones del sistema.
- Productividad (throughput). Para una carga dada es el trabajo til por unidad de tiempo
- Capacidad: mxima cantidad de trabajo til por unidad de tiempo (mxima productividad
que puede obtenerse).
- Tiempo de respuesta: tiempo en procesar un trabajo. Trabajo puede significar cosas
diferentes: transacciones, procesos, instrucciones...
2
se comprometa a nadie.
- Performabilidad: en sistemas que siguen funcionando con fallos, probabilidad de mantener
un nivel de prestaciones.
- Facilidad para el mantenimiento.
Carga de prueba
- Para evaluar el sistema hay que hacerlo funcionar bajo una carga.
- Esta carga debe representar la carga real (el problema que tiene es que es muy variable,
quieres hacer unas modificaciones y la carga real que tienes en un momento no la tienes en
otro).
- Carga de prueba: la utilizada para tomar las medidas. Debe ser representativa y
reproducible, puede ser real o sinttica.
- La carga de prueba o de test suele formarse por componentes de carga.
En realidad se suele usar carga sinttica porque permite poder experimentar y reproducir
situaciones a nuestro gusto y sin tener que modificar el sistema real. En cambio en muchos
casos hay que preocuparse de justificar si esa carga sinttica es representativa de la situacin o
carga que queremos reproducir.
Para comprobar esto ltimo habr que medir unas magnitudes para que podamos compararlas
con las obtenidas bajo carga sinttica.
Proposicin de soluciones
3
tiempo.
- Modificacin o sustitucin de componentes hardware. Debe perseguir el recurso ms
cargado.
- Modificacin de programas. A efectuar por los usuarios, normalmente escapa al
responsable del sistema.
De lo que se trata es de mejorar el funcionamiento. Para ello habr que determinar dnde est
el problema. Luego habr que evaluar si se puede solucionar sin cambiar componentes
hardware o si hay que adquirir nuevo software.
Si se puede solucionar sin nuevas adquisiciones, intentar modificar la carga desde el punto de
vista de la explotacin para intentar quitar trabajo a los elementos ms solicitados.
Los mtodos analticos se basan en leyes que relacionan distintas partes del modelo. Se llega a
crear un modelo matemtico. En cambio estos modelos normalmente estn limitados para
modelar comportamientos extraos.
En los modelos de simulacin en principio se puede modelar cualquier cosa, pero suelen
exigir mucho tiempo de desarrollo y ejecucin. Adems son muy difciles de validar.
Las tcnicas de benchmarking suelen ser las ms sencillas y unas de las utilizadas, aunque
muchas veces los resultados obtenidos no dependen nicamente del benchmark, o el
benchmark puede no ser representativo de una carga real.
4
TEMA 2 HERRAMIENTAS DE MEDIDA
Utilidad:
La sobrecarga hace que el monitor consuma recursos de lo que est midiendo. Esto hace que
modifique los resultados de lo que est midiendo. Ej. el programa top suele aparecer el mismo
como gran consumidor entre los procesos que ensea.
Clasificacin
Segn su implantacin:
- Monitores software, que son programas o ampliaciones del sistema operativo que acceden al
estado del sistema, informando al usuario sobre dicho estado.
- Monitores hardware, que son dispositivos electrnicos que se conectan a determinados
puntos del sistema.
5
- Monitores hbridos, que son una combinacin de las dos tcnicas anteriores.
Esquema conceptual
Sistema a medir
Interface instrumentacin
Filtro
Procesador
Registrador
Interpretador
La interfaz de instrumentacin es lo que conecta al monitor con lo que est observando. Por
ejemplo si al S.O. se aaden interrupciones software para detectar determinadas acciones, esas
interrupciones seran la interfaz.
El selector permite hacer un registro selectivo de las muestras o variables que nos interesan.
El procesador trata las muestras seleccionadas para poderlas registrar en el formato y con la
informacin adecuada que necesitar la memoria a que se destine y para que se pueda
interpretar o analizar.
En algunos casos el analizador trabaja al mismo tiempo que el resto de elementos (on line) y en
otros trabaja en diferido.
Monitores software
La activacin del monitor implica la ejecucin de instrucciones. Pueden ser guiados por
sucesos, por muestreo o una mezcla de ambas tcnicas.
Son programas que se ejecutan junto con los programas y en el sistema que miden.
6
Las sondas software son conjuntos de instrucciones que se insertan en puntos clave de un
programa.
La prioridad de los monitores software deber ser mayor que la de los elementos que deba
medir. Suelen escribirse en el mismo lenguaje que el sistema operativo.
Monitores hardware
reloj
7
Los monitores pueden hacerse ms complejos, con procesadores y memorias RAM para
procesar y grabar los datos. A su vez estos procesadores pueden tener unidades de E/S como
pantallas, teclado, etc.
El caso ms sencillo es una seal de reloj y una variable a medir conectadas a una puerta and, y
la salida enviada a un contador. Se medir la cantidad de pulsos que la seal est activada.
Un ejemplo de un monitor hardware puede ser una analizador lgico.
Monitores hbridos
Suelen ser software que captan acontecimientos en el sistema operativo y los enva a un
mdulo hardware que est conectado al bus del sistema. El envo puede ser una instruccin de
E/S.
El mdulo hw puede ser un procesador que graba el suceso recibido con una marca de tiempo.
La informacin se va procesando y se puede ir representando en una pantalla conectada al
procesador del monitor.
As se disminuye la sobrecarga ya que el tratamiento del monitor se hace en otro sistema y se
aumenta la rapidez gracias a tener un hw dedicado.
Se suelen usar en el diseo de nuevas arquitecturas. Algunas arquitecturas paralelas los llevan
incorporados.
Comparacin
Tipos de variables
Cuantitativas: sus distintos niveles se expresan numricamente. Pueden ser de dos tipos:
. Discretas: toman valores contables (ej. nmero de procesadores en un sistema).
. Continuas: toman valores no contables (ej. tiempo de respuesta de una operacin).
Si en el eje de abcisas (x) tenemos variables cualitativas o cuantitativas discretas, conviene usar
grficos de barras.
No se deben poner curvas de diferentes unidades y con diferentes escalas en un mismo grfico.
La informacin debe evitar explicaciones.
Diagramas de Gantt
CPU 60
9
E/S 20 20
Red 30 10 5 15
Grficos de Kiviat
Normalmente el funcionamiento ideal tiene una forma determinada. De forma que al ver el
grfico se identifica rpidamente lo bien o mal que est funcionando el sistema y cuales son las
partes causantes.
Normalmente se diferencian ndices beneficiosos (que es bueno que tengan valores altos) de
valores perniciosos como puede ser el ndice de paginacin el desaprovechamiento de algn
recurso.
1) Seleccionar un nmero par de variables a estudiar la mitad buenos ndices (a mayor valor,
mejores prestaciones) y la otra mitad malos ndices (mejores prestaciones a menor valor).
2) Se subdivide el crculo en tantos sectores como variables hay que representar.
3) Se numeran los radios en sentido horario.
4) Se asocian los buenos ndices a los radios impares y los malos a los pares.
CPU ocupada
CPU supervisor Solo CPU
En un sistema ideal, todos los ndices buenos tendran valores altos y los malos, valores muy
bajos. El grfico de Kiviat de ese sistema, tendra forma de estrella.
10
Introduccin
Caracterizacin de la carga
- tiempo de CPU.
- operaciones de E/S.
- espacio en memoria requerido
- ficheros en disco.
- mezcla de instrucciones.
- tiempo medido de CPU entre operaciones de E/S.
- nmero de usuarios
Carga de prueba
- Repetible o reproducible.
- Compacto, para reducir el tiempo de ejecucin.
- Compatible con el tipo de estudio y con mquinas diferentes si es un modelo de carga
ejecutable.
- Permite evitar problemas de privacidad o seguridad.
- Si no es carga real, deben ser representativos.
- Flexible, fcil de modificar para ajustarlo a variaciones de la carga a la que representa.
11
- Independiente del sistema; que la representatividad del modelo no vare al cambiarlo de
sistema.
Sesin de medida
Intervalo de tiempo en el que se forman las medidas. No tiene porque ser continuo.
Normalmente habr varias sesiones de medida. En general unas medidas estarn destinadas a
datos para ajustar la carga de prueba y otras sern las medidas realmente aplicando la carga de
prueba.
Utilizando varias sesiones de medida se intenta evitar que particularidades en una medida se
tomen como un comportamiento general.
Es la precisin con que un modelo representa una carga. La carga puede representarse a
distintos niveles: nivel fsico, nivel virtual, nivel funcional.
El modelo deber ser representativo atendiendo al nivel al que est asignado.
- Se trata de modelos que realizan las mismas aplicaciones que la carga a la que representan.
- Son bastante independientes del sistema.
- Es difcil disearlo de forma sistemtica. A veces son bastante subjetivos.
- Aplicaciones: seleccin de equipos, planificacin de la capacidad.
Cargas de test
12
- Real
- Sinttica: utilizan extractos de carga real. Natural o hbrida.
- Artificial: no utilizan extractos de carga real
Ejecutables: Mix, Kernels, Programas sintticos, Benchmarks
No ejecutables: Distribuciones, Modelos de colas
- Barata
- Representativa
- Las sesiones de medida se deben seleccionar para que sean representativas del
funcionamiento normal o de la situacin de estudio.
- La situacin que se quiere reproducir puede no darse en el instante deseado.
- Poco reproducible porque es difcil que volvamos a crear la misma situacin a voluntad.
- Poco flexible. (No se puede modificar la carga).
- Puede haber problemas de confidencialidad.
- No se puede usar en problemas de seleccin.
Se trata de la carga que realmente se est ejecutando en un sistema con todos sus usuarios y
sus aplicaciones. Lo nico que se tiene que seleccionar es durante cunto tiempo se est
midiendo.
Tambin se les llama benchmarks, aunque normalmente se llama benchmark a cualquier carga
de test. Son programas extrados de la carga real pero no es carga real porque los usuarios no
los estn utilizando para realizar trabajo til.
Un ejemplo de esta situacin puede ser que se estudia la adquisicin de un nuevo software
pero se quiere preveer cmo responder el sistema, el cual ya se est utilizando para una serie
de tareas.
Cargas artificiales
13
Se les llaman artificiales porque estn construidas para ser modelos de carga. No son
extracciones de la carga real. Hay carga artificial que es ejecutable, es decir que son
programas.
MIX de instrucciones
MIX de sentencias
En caso de utilizarlos habra que controlar dos cosas: el grado de optimizacin del compilador
y el tipo de libreras que se utilizan.
El problema de la medicin esttica es que puede haber partes de un software que sean
importantes en talla pero que se ejecuten pocas veces.
La medicin dinmica es ms complicada porque hay que conocer las partes del programa que
ms se utilizan utilizando el software con diferentes datos para no representar un
comportamiento muy particular.
Kernels (ncleo)
14
Hay que tener una precaucin al utilizarlos. Como son una parte de una aplicacin, puede que
quepan enteros en una cache, con lo que los resultados pueden ser muy buenos, pero si se
probase la aplicacin entera seran completamente diferentes.
Programas sintticos
Secuencias conversacionales
Tendramos dos sistemas conectados. Uno generara las peticiones como si fuesen los usuarios.
El otro sera el sistema bajo estudio y que se estara monitorizando para tomar las medidas.
Benchmarks
- Son programas construidos con alguna de las tcnicas anteriores que producen una carga
genrica.
- Se utilizan para la comparacin entre ordenadores.
- No representan una carga especfica.
La ventaja de estas cargas de prueba es que se suele tomar como una carga de prueba estandar.
Los fabricantes y vendedores suelen apoyar su producto con resultados al aplicar alguno de
estos benchmarks.
El gran inconveniente es que estas cargas de prueba pueden ser muy poco representativas de
nuestra carga.
15
Por ejemplo en un modelo de redes de colas, la carga se caracterizar con datos como las tasas
de llegadas, tiempos de utilizacin de cada recurso, qu recursos necesita cada cliente y
cuntas veces lo visita, ....
Implementacin
Fase de especificaciones
Construccin
Esta es una forma sencilla de decidir los componentes que estarn en el modelo de carga de
prueba. Para que sea representativo debe haber bastantes muestras.
Los componentes del modelo se pueden construir con mtodos artificiales.
Mtodos de agrupamiento
- Agrupar las muestras segn criterios de similitud para formar los componentes bsicos de la
carga.
- Se basan en las distancias entre los elementos.
- Una nube de puntos la convertimos en un nmero de puntos donde cada uno de ellos
representa un grupo de muestras.
- Un paso previo a estos algoritmos consiste en normalizar los parmetros que caracterizan
cada punto de la nube:
A partir de la media y la desviacin tpica:
pik = (pik - mk)/k i = 1...m (nmero de valores), k = 1...n (nmero de parmetros).
x ik x 2
ik x 2
ik
m k
=
n
i =1
k = im= 1 mi(=m 1)
1 1
Normalizacin entre 0 y 1, se realiza para que con la misma escala se vean las
distancias en cada uno de los parmetros.
pik = (pik - min(pk)) / (max(pk) - min(pk))
A partir de una ponderacin:
pik = pik * wk
- Permite destacar un parmetro. Se puede combinar con las anteriores.
- En cada paso agrupan los dos componentes que estn ms cerca entre s.
- Se calcula la distancia de cada punto a todos los dems.
- Un problema es que al fundir dos puntos, uno de ellos puede representar un gran nmero de
ellos y debera tener ms peso en la fusin.
Fusin de puntos
2
- Encadenamiento simple
dc,(a,b) = min (dc,a, dc,b)
- Encadenamiento completo
dc,(a,b) = max (dc,a, dc,b)
(algoritmo jerrquico):
17
1- Obtener la matriz de distancias.
2- Determinar la distancia mnima.
3- Fundir los elementos de distancia mnima, calcular la nueva distancia al resto de puntos.
4- Generar la nueva matriz de distancias.
5- Volver hasta 2 hasta que:
- Slo haya un grupo.
- Haya un nmero de grupos determinado.
- La distancia de agrupamientos sea superior a un valor.
(a ik y ck ) x X
2
ic
c =1 i =1 k =1
a
1
yck es el centro de masas de un grupo: yck =
m c i c
ik
Esquema global
Fase de especificacin
Fase de construccin
Fase de validacin
18
Fase de especificacin
Fase de construccin
Fase de validacin
Introduccin
- Mediante la teora de colas se intenta determinar el tiempo que los trabajos pasan en las
colas de los recursos.
- Red de colas: servidores y clientes:
Los servidores son los recursos
Los clientes son los usuarios o los trabajos
- El anlisis operacional intenta deducir los ndices de prestaciones a partir de parmetros
cuantificables en el sistema y de relaciones entres esos parmetros.
- Las relaciones entre ellos son las leyes operacionales (verificables mediante mediciones).
Estacin de servicio
Cola Servidor
Una red de colas de espera ser un conjunto de estaciones como sta donde las salidas de
unas estaciones estn conectadas a las entradas de otras.
19
Cuando llega un cliente, pasar a servirse en la estacin si est desocupada o se aadir a la
cola en caso contrario.
En el caso ms simple esta estacin la podramos caracterizar con dos parmetros: la tasa de
llegadas de clientes y el tiempo que cada cliente necesita para servirse.
Definiciones
Supongamos el ejemplo anterior con una tasa de llegadas S=05 clientes/sg y una demanda de
servicio D=125.
La utilizacin sera U=B/T = (C*S)/T, como A=C por la ley del equilibrio de flujo y
05 = A/T, U = (05*T*125)/T = 0625
Son las que se pueden medir directamente sobre el sistema durante un tiempo de observacin
finito.
- T (time), intervalo de observacin.
- A (arrivals), peticiones durante T.
- C (completions), peticiones servidas durante T.
- B (busy), tiempo en el que el servidor est ocupado durante T.
Redes de colas
- Con algunos parmetros como llegada de demandas y demanda de servicio de cada cliente a
cada estacin podremos deducir el funcionamiento (tiempo de respuesta, utilizaciones, ...).
- Las redes de colas pueden ser abiertas o cerradas, pero como las tasas de llegada y de salida
son iguales, se pueden tratar de la misma forma.
Supuestos
20
- El tiempo que una peticin est en una estacin no depende del tamao de las colas en otras
estaciones. (Supuesto del tiempo de servicio homogneo).
- El nmero de peticiones que llegan a una estacin es independiente del tamao de las colas
en otras estaciones. (Supuesto de llegadas homogneo).
- Las redes que cumplen estos supuestos se llaman redes de colas separadas u homogneas.
Durante un periodo de medida T se han obtenido las siguientes medidas para cada estacin i:
- Ai
- Bi
- Cik trabajos que piden servicio en la estacin k inmediatamente despus de servirse en i.
- A0k trabajos cuya primera peticin es a estacin i.
- Ci0 trabajos cuya ltima peticin es a estacin i.
- Ci suma de todos los Cik
0 significar el exterior del modelo, es decir, en los sistemas abiertos ser la fuente de clientes y
donde van a parar los clientes que han terminado trabajos.
- Ui = Bi / T
- Si = Bi / Ci
- Xi = Ci / T
- qik = Cik / Ci representa los trabajos que despus de servirse en el recurso i piden el
servidor j (representa una probabilidad o una frecuencia de encaminamiento).
Leyes operacionales
a) Ley de la utilizacin:
Bi / T = (Ci / T)*(Bi / Ci) Ui = Xi * Si
La utilizacin es igual al flujo de clientes por el servicio medio que pide cada uno.
b) Ley de Little:
W, tiempo acumulado en el sistema. Peticiones * unidad de tiempo.
N = W / T, nmero medio de peticiones en el sistema.
R = W / C, tiempo medio de residencia en el sistema por peticin.
W / T = (C / T)*(W / C) N = X * R, el nmero medio de peticiones en el sistema
es la productividad por el tiempo medio de residencia de cada peticin en ese sistema.
- La ley de Little se aplica a diferentes niveles. Cada nivel tendr sus parmetros.
Ejemplo
- 10 terminales.
- 7.5 terminales trabajando por trmino medio.
- Productividad del sistema 0.5 interacciones/sg.
- Disco del nivel 1:
Sirve 40 peticiones/Sg.
Tiempo de servicio por peticin 0.0225Sg.
Nmero medio de peticiones presentes 4.
a) Nmero medio de peticiones recibiendo servicio en el disco 1:
U = S * X 40 * 0.025 = 0.9, que tambin ser el nmero medio de peticiones sirvindose.
21
b) Tiempo medio de residencia de una peticin en el disco 1:
R = N / X 4 / 40 = 0.1 Sg.
c) Tiempo medio de espera en cola de una peticin en el disco 1:
0.1 = t. cola + 0.0225 t. cola = 0.1 - 0.0225 = 0.0775 Sg.
d) Nmero medio de peticiones en cola de espera del disco 1:
Peticiones en cola + peticiones en servicio = 4 Hay una media de 0.9 peticiones en servicio
Numero medio de peticiones en cola = 4 - 0.9 = 3.1
e) Tiempo medio de respuesta percibido por el usuario:
R = N / X = 7.5 / 0.5 = 15 Sg. En este caso N = 7.5 representa la media de usuarios trabajando.
f) Tiempo de reflexin de los usuarios (Z):
Aplicamos Little a todo el sistema. La poblacin ser el nmero total de usuarios (10 terminales).
R = (N / X)-Z Z = (N / X)-R = (10 / 0.5) - 15 = 5 Sg.
Leyes operacionales
La ley del flujo forzado relaciona los parmetros de todas las partes del sistema.
- Xk = Ck / T = (Ck / C)*(C / T) = X * Vk
- Xk = X * Vk, es una relacin entre la productividad total y la de un recurso.
Ejemplo:
- En un sistema batch cada trabajo requiere una media de 6 accesos a un disco especfico.
- Ese disco atiende 12 peticiones/sg.
- La productividad del sistema?
X = Xk / Vk = 12 / 6 = 2 trabajo / sg.
- Si otro disco sirve 18 peticiones/Sg. Cuntos accesos requiere un trabajo a ese disco?
Vk = Xk / X = 18 / 2 = 9 accesos
- Para que un sistema funcione las llegadas deben ser igual a las salidas: A = C
- Por tanto podemos decir que las tasas de llegada y salida tambin son iguales: = X
Introduccin
Cuellos de botella
- Al tratar un CB pueden aparecer otros. Habr que ir tratndolos hasta que el sistema quede
equilibrado.
- Los CB no dependen nicamente de la configuracin. Son funcin tambin de la carga.
- Hay CB temporales que aparecen un corto periodo de tiempo respecto a la sesin de medida.
- Los CB temporales es difcil eliminarlos analizando, en diferido, los datos registrados
anteriormente.
- Para los CB temporales se recomiendan mtodos de monitorizacin y toma de decisiones en
tiempo real (on-line).
Terapias
- Al detectar un CB hay que evaluar las consecuencias y coste de las posibles terapias.
- Modificaciones HW. Reemplazar o ampliar componentes HW. Terapias de reposicin
(upgrading).
- Modificaciones que tienen efecto en la organizacin del sistema. Terapias de sintonizacin
(tuning).
- Las sintonizaciones suelen ser ms baratas.
- En las reposiciones deberamos tener alguna garanta sobre el resultado utilizacin de
modelos simulados o analticos.
Los modelos analticos permiten por un lado detectar los Cbs y por otro predecir las mejoras
que se obtendran con diferentes soluciones.
Lmites asintticos
- Mtodo analtico que permite ver los lmites de productividad y tiempo de respuesta del
sistema en funcin de la intensidad de la carga.
- Recomendable para evaluar diferentes configuraciones o posibles reposiciones.
- Se basan en la teora de redes de colas.
- Nos limitaremos a una sola clase de clientes.
- Suponemos que la demanda de servicio de un cliente a una estacin no depende de las
demandas a esa estacin ni a otras.
Se busca un lmite superior e inferior de las prestaciones que obtendr el sistema. Al aplicar
una terapia veremos como se modifican estos lmites y por tanto qu impacto pueden tener las
mejoras que vamos a aplicar.
Parmetros
23
Lmites asintticos en cargas transaccionales
a) Productividad:
- El lmite de la productividad indica la tasa mxima de llegada de clientes que el
sistema puede procesar satisfactoriamente. A partir de ese punto el sistema est
saturado.
- Para la estacin k, Uk = XkSk (Ley de la utilizacin).
- Xk = Dk
- Si una Uk = 1 no podremos procesar una carga mayor.
- La estacin k, con Uk = 1 ser el CB.
- X se limita a la que satura alguna estacin.
- Umax() = Dmax 1, si Umax() = 1 sat = 1 / Dmax
Los parmetros que utilizaremos para evaluar las prestaciones sern la productividad y el
tiempo de respuesta.
La tasa de llegadas que satura el sistema es 1 / Dmax
Esta tasa de llegadas dar la productividad mxima alcanzable con una determinada carga,
recursos y configuracin.
b) Tiempo de respuesta:
- El caso ms favorable, slo hay un trabajo en el sistema. El tiempo de respuesta es la
suma de las demandas de servicio D.
- Pero caso (cuando se sobrepasa la saturacin), a partir de este momento no hay
lmite en el tiempo de respuesta.
a) Productividad:
- Uk(N) = X(N) Dk 1, los recursos dan una utilizacin para un nmero de clientes.
- X(N) 1 / Dmax, (lmite para carga pesada).
- Si slo hay un cliente. La productividad ser 1 /(D+Z) donde D es la suma de las
demandas de servicio en las diferentes estaciones. Con N clientes, N / (D+Z).
- Los siguientes clientes que van llegando esperan (N-1) D unidades en las colas.
- La productividad ser N / (ND+Z), se procesan N clientes con tiempo (ND+Z).
- (N / (ND+Z)) X(N) min(1/Dmax, N / (D+Z)).
- N * /(D+Z) = 1 / Dmax N* = (D+Z) / Dmax, N* punto de saturacin.
(N/(ND+Z) X(N) Caso en el que todos los clientes piden el mismo recurso a la vez.
X(N) N/(D+Z) Es el caso ms ptimo en el que todas las peticiones a los recursos se
solapan completamente. No se hace ninguna cola.
X(N) 1/Dmax Un recurso se ha saturado. La productividad no podr crecer ms. A partir
de esta carga empiezan a producirse colas (al menos en el recurso saturado).
b) Tiempo de respuesta:
- Ley de Little N = XR:
(N/(ND+Z) (N/(R(N)+Z)) min(1/Dmax, N/(D+Z))
- max (Dmax, (D+Z)/N) ((R(N)+Z)/N) ((ND+Z)/N)
- max (D, NDmax-Z) R(N) ND
- Con Z=0 tenemos los lmites para cargas Batch.
- D R(N) Si no hubiese colas.
- (NDmax-Z) R(N) Si solamente limitase la velocidad el recurso cuello de botella
- R(N) ND Se sirven con anterioridad todos los dems clientes.
24
TEMA 7 SELECCION Y CONFIGURACION DE
COMPUTADORES. BENCHMARKING
Benchmark
- Se utiliza como sinnimo de carga de test (kernels, carga sinttica, carga sinttica natural...)
- Programas utilizados para cargar el sistema y medir el rendimiento del sistema o de partes
de ste.
- Benchmarking: comparar sistemas mediante la obtencin de medidas.
- Aplicaciones muy variadas:
- Comparar sistemas.
- Problemas de sintonizacin.
- Planificacin de capacidad.
- Comparacin de compiladores.
Pasos en el benchmarking
- Para la adquisicin de equipos. El benchmark deber reflejar las necesidades del comprador.
- Sintonizacin. Se deben conocer muy bien los bench. para conocer las causas de los
diferentes resultados.
- Planificacin de la capacidad. Se va aumentado la carga para conocer la capacidad que
queda disponible.
- Comparacin de compiladores.
- Diseo de sistemas informticos o procesadores. Los bench. se suelen tomar como entrada
para simuladores.
25
Errores comunes
Benchmarking games
- Linpack. Argone National Laboratory. Jack Dongarra 1976. Usados para sistemas
cientficos y de ingeniera. Resuelven sistemas densos de ecuaciones lineales. Muy
vectorizable y dependiente de las operaciones en coma flotante y de las libreras de lgebra.
- BYTE, PCW, EDN. Propuestos por estas publicaciones. Suelen ser pequeos. Las
operaciones que realizan suelen ser variadas:
- Funcin de Ackermann: programa recursivo. Sirve para evaluar la facilidad de los lenguajes en las
llamadas a subprogramas.
- Sieve: calcula nmeros primos. Se usa para comparar procesadores, pc y lenguajes de alto nivel.
- Dhrystone: R.P. Weicker Siemens-Nixdorf Information System. No tiene instrucciones en
coma flotante ni llamadas al sistema, gran cantidad de instrucciones de manejo de tiras,
pocos bucles (tamao de cach muy importante). Unidades en Dhrystone/Sg.
- Whetstone: H.J. Curnow, B.A. Wichmann National Physical Laboratory (G.B.) 1979.
Actualmente en Fortran. Compuesto por mdulos con diferentes tipos de consumos. El peso
de los mdulos se puede ajustar fijando los lmites de los bucles. Resultados en
MegaWhetstones/Sg. Usa muchas operaciones en coma flotante, muy dependiente de
libreras matemticas, pequeo tamao, pocas variables locales.
- SSBA1.21E: paquete para la evaluacin de sistemas UNIX. Diseado por la asociacin
francesa de usuarios de UNIX. Compuesto por 12 programas. Testean los siguientes
aspectos:
26
- Potencia CPU.
- Implementacin del sistema en general y del sistema de ficheros.
- Compiladores de C y Fortran.
- Manejo de memoria y rendimiento de las cachs.
- E/S de disco y rendimiento del controlador.
- Rendimiento multiusuario frente a tareas significativas.
- SPEC (Systems Performance Evaluation Cooperative). Hecho por un grupo de marcas
comerciales, intenta ser representativo de la carga actual. Compuesto por 10 programas:
- gcc (compilador).
- Espresso (herramienta de automatizacin de diseo electrnico).
- Spice 2g6 (herramienta EDA).
- Docuc (programa extrado de un simulador Monte Carlo de reactores nucleares).
- NASA7 (operaciones matriciales en coma flotante).
- LI (programa de las ocho reinas usando LISP).
- Eqntott (representar ecuaciones lgicas en tablas de verdad).
- Matrix300 (operaciones con matrices usando rutinas de Linpack en coma flotante) muy vectorizable.
- Fpppp (benchmark de qumica) poco vectorizable.
- Tomcatv (programa de generacin de red vectorizada) muy vectorizable.
- Uno detrs de otro. Para ver cuanto tarda un ordenador en ejecutar una coleccin de
programas.
- Como los ladrillo en un muro. Para comprobar el comportamiento en multitarea.
- Lanzando peticiones desde otro equipo. Comprobar el funcionamiento en carga interactiva.
MIPS
MFLOPS
27
En algunas ocasiones se habla de picos de megaflops mayores que la frecuencia del
procesador. En cambio ojo con estos valores pico ya que se obtienen bajo cargas muy
apropiadas a las caractersticas.
Creando benchmarks
- Tiempo de ejecucin.
- Memoria.
- Utilizacin de kernels.
- Forma de aplicar los benchmarks.
- Portabilidad.
TEMA 8 COMPILADORES
Qu hace un compilador
Lenguaje intermedio
Bloques bsicos
- Esto facilita el anlisis del cdigo. Sabemos que todas las instrucciones en un bloque se
ejecutan una detrs de otra.
- Las flechas entre bloques forman un diagrama de flujo.
- Podemos saber las variables que se usan en cada bloque y las que se modifican.
- Nos permite concentrarnos en las interacciones entre bloques.
28
Identificar bloques bsicos
B: t4 :=k
t5 :=j 2 j,t5,t8,t10 k,t4 1
t6 :=t5*2
t7 :=t4+t6
k :=t7
t8 :=j
t9 :=t8*2 t6,t9,m *
m :=t9
t10 :=j
t11 :=t10+1
j :=t11
jmp (A) TRUE t7,k t11,j
- Si ahora queremos optimizar el funcionamiento entre bloques, hay que mirar las variables
29
que cada bloque utiliza y/o modifica.
- En el bloque anterior las variables que se modifican son k,j y m. Las que toma como entrada
son k y j.
- Con esto el compilador detectar las variables que se usan con fines diferentes, las que no se
utilizan en otros bloques, y se podr asignar de forma ms eficiente los registros a las
variables.
- Otras cosas que se pueden detectar es la repeticin de clculos en diferentes bloques o
asignar clculos a bloques ms apropiados.
Bucles
- En el diagrama de flujo de datos se puede identificar bucles (incluso si en el fuente que las
genera no aparece).
- Si llegamos a identificarlos podemos encontrar expresiones que no se modifican con las
iteraciones del bucle o expresiones que evolucionan de manera previsible con las
iteraciones.
- Cmo se detecta un bucle:
- Encontrar un nodo por el que es imprescindible pasar para llegar a los otros nodos en el bucle. (Nodo
dominante).
- Debe haber un camino de vuelta desde los nodos del bucle al nodo dominante
Optimizaciones
31
TEMA 9 MEJORA DE LAS PRESTACIONES DE UN SISTEMA
Con los objetivos se deducen parmetros que interesa medir. Deberemos seleccionar
instrumentacin y comprobar que podemos acceder a esas variables.
Mediciones sobre el hardware: interesa conocer su utilizacin (cuellos de botella, recursos
infrautilizados, capacidad sin utilizar).
Mediciones sobre el hardware.
Mediciones de la carga.
- Sistema operativo. Puede influir mucho en las prestaciones. La forma en que tenga
configurada la memoria es importante. Sus parmetros ajustables tambin son de
importancia.
- Programas de sistema y de usuario. Estos programas se suelen poder modificar si se detectan
problemas. Interesar la utilizacin de CPU, E/S, llamadas al sistema. Se puede analizar por
mdulos. HW, SW, rutinas de contabilidad.
32
Paginacin causada por los usuarios.
Introduccin
Direccionamiento de memoria
Microcdigo
33
Las partes de control hardware se sustituyeron por conjuntos de microinstrucciones y
secuenciadores.
Microcdigo es la forma que se encontr para desarrollar instrucciones complejas. Codifica las
secuencias de control que permiten ejecutar la instruccin.
Pipelines
- Si los conductos estn siempre ocupados obtendremos una instruccin mquina por ciclo.
- Hay procesadores que pueden terminar ms de una instruccin por ciclo.
- Una forma de hacer esto es tener varios conductos y enviar operaciones (que sean
independientes) a travs de ellos.
- La posibilidad de explotar estas caractersticas depender de los programas que se ejecuten.
- Principalmente hay tres tipos de procesadores RISC:
Superescalares.
Superpipelined.
Long Instruction Word.
Sacar una instruccin por ciclo ya es un logro cuando cada instruccin necesita al menos 5
ciclos. Los procesadores que pueden ejecutar ms de una instruccin por ciclo deben utilizar
varias tuberas para ello. En cambio deben tener mecanismos que resuelvan posibles
dependencias entre las operaciones que se ejecutan a la vez. Es decir que una instruccin
necesite algo que se deba haber producido en instrucciones anteriores.
35
INTRODUCCION A LA TEORIA DE COLAS
Introduccin
Tcnicas de evaluacin:
- Basadas en la monitorizacin
- Basadas en el modelado:
simular el comportamiento del sistema implementarlo de forma virtual
tcnicas analticas relaciones matemticas
El sistema se ve como una red de recursos que son visitados por una poblacin de clientes.
Se pueden resolver:
- anlisis operacional
- teora de colas
- markov
Estacin de servicio
Proceso de llegada
Distribucin de tiempos de servicio
Nmero de servidores
Capacidad del sistema
Tamao de la poblacin
Polticas de servicio
36
Trabajo con prioridades
Notacin de Kendall
A/S/m/B/K/DS
- [A] distribucin del tiempo entre llegadas
- [S] distribucin del tiempo de servicio
- [m] nmero de servidores
- [B] capacidad del sistema (valor por defecto )
- [K] tamao de la poblacin (valor por defecto )
- [DS] poltica de servicio (valor por defecto: FCFS)
Distribucin de probabilidad
M exponencial (o markoviana)
Ek erlang con parmetro k
Hk hiperexponencial con parmetro k
D determinista
G general
Se supone:
- que las llegadas se producen individualmente
- que cada servidor atiende un solo cliente en cada instante
Proceso estocstico
El proceso de Poisson
Procesos de Nacimiento-Muerte
38
- Anlisis general para calcular el comportamiento en funcin del tiempo (Rgimen
transitorio).
- Anlisis en rgimen permanente (Cuando t )
Sirven para modelar parte de un sistema donde los clientes llegan de uno en uno.
Hay dos tipos de anlisis: el comportamiento desde el arranque del sistema y el
comportamiento en la estabilizacin.
En la estabilizacin tendremos una probabilidad de estar en cada estado.
Con el anlisis operacional slo podemos estudiar el sistema cuando se ha estabilizado.
A partir del estudio de los procesos de nacimiento y muerte podremos estudiar las colas
M/M/m/B/k para cualquier valor de m, B y k.
39
Practica 1
Time
Saca como resultado el tiempo de ejecucin de otro comando. Este tiempo se da en tres cifras:
tiempo total desde que se lanz la ejecucin hasta que la termin, tiempo de CPU en estado
usuario y tiempo de CPU en estado sistema. Estado usuario es el estado normal de un
programa que ejecutemos. Estado sistema se trata de llamadas que el programa puede hacer al
S.O., rutinas del S.O. para servir fallos de pgina, excepciones, ...
Lo normal es que el tiempo en estado usuario sea mayor que en sistema. Lo contrario puede
indicar problemas del programa en los accesos a memoria o repetidas condiciones de
excepcin.
Times
Se trata de una funcin que se puede utilizar desde programas en C. Devuelve una estructura
con tiempos sobre la ejecucin. #include <sys/times.h>
Prof
Sirve para analizar el tiempo que los programas pasan en sus diferentes subprogramas.
Funciona muestreando peridicamente el contador del programa. Para utilizarlo hay que
compilar el programa con una opcin adicional -p. Luego al ejecutarse el programa se va
generando un fichero con datos de la ejecucin.
Los datos que se muestran en pantalla son:
- % Time: porcentaje de tiempo de CPU consumido por la rutina.
- Seconds: tiempo de CPU consumido por esta rutina.
- Cumsecs: tiempo de ejecucin total consumido por esta y todas las rutinas anteriores.
- Calls: nmero de veces que la rutina ha sido llamada.
- msec/call: segundos dividido por el nmero de llamadas. Da la media del tiempo
empleado en cada llamada (en ms.)
- Name: nombre de la rutina.
Gprof
Adems de la informacin que proporciona prof, gprof nos indica como se llaman los
subprogramas entre s (grafo de llamadas).Tambin aporta las veces que un subprograma llama
a otro y las que lo llaman sus padres.
Tambin necesita un compilado especial, la opcin -G.
La salida de gprof est dividida en tres secciones:
- Grafo de llamadas
- Tiempos, da una lista de las funciones, porcentaje de tiempo empleado por cada una,
nmero de llamadas, ... (similar a prof).
- Indice, es una mezcla de referencias para poder localizar funciones por nmero en
lugar de por nombre.
Practica 3
40
AWK
- Es un lenguaje interpretado, por lo que no es muy eficiente pero suele ser suficiente para el
tipo de tareas que suele resolver.
- Est orientado al procesamiento de informes con un formato fijo.
- El lenguaje tiene una sinstaxis parecida a C.
- No es necesario la declaracin de variables. Reserva espacio y las inicializa en el momento
de utilizarlas.
Ejemplo
Patrones y acciones
Programa.awk
41
- Tiene la forma siguiente:
BEGIN {accin 1
accin 2
accin n}
patrn 1 {accin 1
accin n}
patrn n {accin 1; accin n}
END {accin1; accin n}
Patrones predefinidos
Formato de salida
Patrones
- $2 >= 5
- $2*$3 > 5
- $1 == Pepe
- Expresiones regulares.
- Combinacin lgica de los anteriores (&&,||, !).
- (($2 >= 5) && ($2*$3 > 5)) || !($1==Pepe)
Variables
Funciones pedefinidas
- Aritmticas:
- Races, potencias, logaritmos, nmeros aleatorios, ...
- Funciones sobre tiras de caracteres:
- Longitud, concatenar, sustituir, ...
42
- Funciones definidas por el usuario:
function max(m,n) {
return m > n ? m : n
}
Instrucciones de control
- Igual que en C.
- if - else
- while
- for
- Admite argumentos (argc y argv).
- Se pueden ejecutar comandos de UNIX a travs de la funcin syntax.
Parmetros de entrada
43