Professional Documents
Culture Documents
L os sistemas multiprocesador han sido usados principales características del simulador. Tras
tradicionalmente en campos de aplicación familiarizarnos con la herramienta evaluaremos el
eminentemente científicos: estudio y modelado del rendimiento de un servidor web biprocesador,
clima, modelado del universo, algoritmos moleculares, comparándolo con un monoprocesador.
etc. Este tipo de problemas pueden ser reproducidos y El resto del artículo está organizado como sigue. En la
estudiados muy fácilmente mediante el uso de siguiente sección comentaremos una serie de
simuladores como RSIM [8] y bechmarks como los antecedentes relacionados con la evaluación de
contenidos en la suite SPLASH-2 [14]. aplicaciones comerciales mediante Simics. En la sección
Sin embargo, hoy en día los sistemas multiprocesador III presentaremos las características más importantes del
también están siendo usados para ejecutar otro tipo de simulador. En la sección IV describiremos la carga
aplicaciones, que podemos denominar comerciales, entre comercial usada: un servidor de contenido web estático,
las que se encuentran por ejemplo los servidores web. siendo el servidor web usado Apache y la herramienta
Bien es sabido que en los últimos años la importancia de que sitúa la carga de trabajo en el mismo httperf. La
la red Internet ha ido creciendo casi exponencialmente, sección V contiene los resultados de las pruebas
hasta el punto de convertirse en un integrante más de realizadas. Finalmente, presentaremos en la sección VI
nuestras vidas. Actualmente, todas las medianas y las conclusiones de nuestro trabajo.
grandes empresas, e incluso las pequeñas, disponen de
un portal web que sirve de escaparate hacia sus clientes. II. ANTECEDENTES
Esta situación es extensible a todo tipo de Hasta hace poco tiempo la metodología usada para
organizaciones: gubernamentales, instituciones académi- evaluar cargas comerciales consistía en generar trazas de
cas, etc. Las grandes organizaciones, que esperan recibir las aplicaciones, usando dichas trazas para alimentar un
un gran número de conexiones de usuarios diariamente, simulador de nivel de usuario. Por ejemplo, en [12] se
necesitan disponer de un equipo servidor potente, que en realiza un estudio del rendimiento de sistemas OLTP y
ocasiones es un multiprocesador. Otras aplicaciones para de ayuda a la decisión usando esta metodología.
Con la aparición de simuladores de sistemas completos
Francisco J. Villa es becario del Departamento de Ingeniería y como Simics, la evaluación de cargas comerciales se
Tecnología de Computadores de la Universidad de Murcia. Manuel E. simplifica, como podemos ver en algunos trabajos
Acacio y José M. García son profesores de dicho departamento. E- publicados recientemente. En [2] los autores realizan un
mail: {fjvilla, meacacio, jmgarcia}@ditec.um.es.
2 F. J. VILLA Y OTROS: EVALUACIÓN DE UN SERVIDOR WEB MULTIPROCESADOR MEDIANTE SIMICS
estudio del benchmark TPC-C utilizando este simulador, complicado porque cada procesador puede tener su
a la vez que describen uno de los problemas propios de propia noción del tiempo. En Simics, se ha optado por
la simulación de aplicaciones comerciales: la serializar la ejecución en multiprocesadores por
variabilidad exhibida por las mismas. Un análisis más cuestiones de rendimiento. Lo que se hace es asignar un
profundo de dicho problema aparece en [4], donde se quantum de ejecución a cada procesador, pasado el cual
argumenta que la variabilidad viene dada en gran la ejecución se traslada al siguiente procesador. Este
medida por las siguientes razones: quantum viene expresado en ciclos y es configurable por
• El sistema operativo puede tomar diferentes el usuario. Como consecuencia de la serialización que
decisiones de planificación. realiza Simics, se mantendrá la consistencia secuencial
• Los cerrojos pueden ser adquiridos en distinto [7] como modelo de consistencia de memoria.
orden, lo cual puede llevar a que en una El simulador proporciona dos modos de ejecución:
ejecución se produzca una contención ejecución en orden, que está disponible para todos los
significativa por un recurso y en otra no. procesadores, y ejecución fuera de orden, que está
• Puede ser que en una ejecución una transacción disponible sólo en los procesadores SPARC. En el modo
finalice durante un intervalo de medida, pero en de ejecución en orden cada instrucción se convierte en
otra no. un único evento y las instrucciones son planificadas
Alameldeen y otros [3] estudian el comportamiento de siguiendo el orden del programa. Por tanto, si una
cinco aplicaciones comerciales diferentes, entre las que instrucción se detiene un número determinado de ciclos
se encuentra un servidor web con contenidos estáticos, (por ejemplo por un fallo de caché), las instrucciones
incidiendo de nuevo en el indeterminismo de las cargas que hay a continuación deberán esperar a que se
comerciales. complete la ejecución de la instrucción detenida. Una
instrucción puede detenerse en la fase de búsqueda o en
III. EL SIMULADOR SIMICS la de acceso a datos. Si estamos simulando un
multiprocesador, es posible que una instrucción esté
Simics es una plataforma que permite el desarrollo parada cuando se acaba el quantum asignado al
tanto de hardware como de software, proporcionando los procesador. En este caso es posible que otro procesador
elementos necesarios para la simulación de ambos pueda manipular la instrucción que está por completar.
componentes dentro de un mismo contexto. En el modo de ejecución fuera de orden la instrucción
Esta herramienta permite simular varias arquitecturas es dividida en varias fases, que pueden pertenecer a
(tanto monoprocesador como SMP), así como ejecutar estas categorías: el evento de inicio, el evento de
sobre ellas sistemas operativos y aplicaciones finalización, y cualquier otra fase entre estos dos
comerciales, que pueden variar desde benchmarks tales eventos. El evento de inicio toma el valor del PC y
como SPEC CPU2000 o TPC-C, hasta aplicaciones de busca la instrucción correspondiente. El evento de fin
escritorio o juegos. Es esta precisamente una de la ocurre cuando todas las instrucciones previas han
características más interesantes del simulador, ya que concluido y la ejecución de la instrucción ha terminado.
podemos usar cargas de trabajo comerciales, algo que no El resto de eventos no son visibles por el usuario y se
es posible en otros simuladores como RSIM [8]. completan tan pronto como las dependencias han sido
resueltas.
A. Arquitecturas simuladas Estrechamente ligadas a los modos de ejecución
Simics simula en total nueve arquitecturas de tenemos las interfaces de modelado del tiempo,
procesadores: UltraSparc II, UltraSparc III, x86, AMD mediante las cuales podemos especificar cómo se
x86-64, Alpha, PowerPC, IA-64, ARM y MIPS. Usando determinan las latencias de los eventos antes descritos.
la arquitectura UltraSparc III podemos alcanzar un Por defecto, Simics proporciona dos abstracciones
límite teórico de 384 procesadores. Las pruebas genéricas que relacionan el tiempo simulado con el
realizadas en este trabajo se basan en la arquitectura número de instrucciones ejecutadas. Cuando usamos el
x86, en la que el límite teórico está en 15 procesadores. modo de ejecución en orden cada instrucción toma
exactamente un ciclo de reloj por defecto. En el caso de
B. Modos de ejecución e interfaces de modelado del un multiprocesador esto significa que en un momento
tiempo determinado todos los procesadores habrán ejecutado el
Simics es un simulador dirigido por eventos, con una mismo número de instrucciones. En el modo de
resolución de tiempo de un ciclo de reloj, siendo la ejecución fuera de orden no hay correspondencia
longitud de dicho ciclo definible por el usuario. Un definida entre el número de ciclos transcurridos y el
evento es una interrupción de un dispositivo o la número de instrucciones ejecutadas. En este modo de
ejecución de una instrucción, por ejemplo. Podemos ejecución se usa un controlador de consistencia para
planificar que suceda un evento después de que se hayan observar las dependencias de memoria. Este controlador
ejecutado cierto número de pasos (o steps). Un paso o fuerza un modelo al menos tan conservador como el
step es una instrucción que se completa, una instrucción Total Store Ordering (TSO1) [7].
que genera un excepción o una interrupción externa. Por defecto no hay modelos de medición del tiempo
Una definición importante es la de tiempo de ejecución del sistema de memoria, lo cual motiva que los accesos a
de una instrucción. En el caso de un monoprocesador memoria sean detenidos cero ciclos, y cada instrucción
este tiempo viene determinado por el modo de ejecución consuma un ciclo. El simulador ofrece la posibilidad de
y las interfaces de medición del tiempo que estemos crear una jerarquía de memoria, gracias a la cual esta
usando. El caso de los multiprocesadores es más limitación puede ser salvada.
XIV JORNADAS DE PARALELISMO—LEGANÉS, SEPTIEMBRE 2003 3
las que el tamaño de la caché L2 será de 512 KB y 1024 automáticamente un control del mismo. En general, se
KB respectivamente y una arquitectura biprocesador en recomienda un valor de timeout entre 5 y 15 segundos
la que cada procesador cuenta con una caché L2 de 512 [11], siendo el valor usado en estas pruebas de 10.
KB. En la tabla I podemos ver los parámetros básicos Se han realizado ocho pruebas para cada arquitectura
del sistema. servidor, en las que el número de peticiones por segundo
lanzadas sobre Apache ha sido 25, 50, 75, 100, 125,
TABLA I 150, 175 y 200 respectivamente. En la figura 1 podemos
PARÁMETROS BÁSICOS DE LOS SERVIDORES SIMULADOS ver la evolución del número de peticiones atendidas en
Microprocesador función del número de peticiones lanzadas para cada
Frecuencia de reloj 500 Mhz prueba y arquitectura. Dicha métrica es proporcionada
Modelo Pentium 3 por el propio servidor Apache.
Caché L1 De la figura 1 podemos extraer que el biprocesador es
Tamaño línea 64 bytes capaz de procesar entre un 7% y un 30% de peticiones
Tamaño caché 32 KB más que el servidor monoprocesador con una L2 de
Política de escritura WB
Asociatividad Mapeo directo 1024 KB, dependiendo de la prueba. La diferencia es de
Tiempo de acierto 2 ciclos entre un 25% y un 39% en el caso del monoprocesador
Penalización por fallo 10 ciclos con una L2 de 512 KB. Además, a partir de 175
Caché L2 peticiones por segundo vemos como el número de
Tamaño línea 64 bytes peticiones atendidas por segundo decrece. Dado que esto
Tamaño caché 512 KB/1024 KB
Política de escritura WB ocurre para las tres configuraciones, es muy probable
Asociatividad 4 que este fenómeno suceda porque la red está saturada, lo
Tiempo de acierto 10 ciclos que provoca que la tasa de peticiones por segundo que
Penalización por fallo 50 ciclos llega al servidor decrezca aunque aumentemos la tasa de
Memoria principal
peticiones por segundo que emite httperf.
Tamaño 512 MB
Sistema operativo
Sistema operativo Red Hat 7.3
Versión núcleo 2.4.18-3
Red
Modelo Ethernet 10 Mb/s
V. ESTUDIO DEL RENDIMIENTO Fig. 1. Peticiones atendidas por segundo en función del número del
número de peticiones recibidas por segundo.
TABLA IV
ESTADÍSTICAS DE LA CPU PARA LA ARQUITECTURA BIPROCESADOR
Instrucciones ejecutadas
Nº pet/s Modo Usuario CPU1 Modo Supervisor CPU1 Modo Usuario CPU2 Modo Supervisor CPU2
25 36.390.337 24.691.231.835 25.184.939 24.702.438.061
50 39.683.545 14.999.605.554 24.870.596 15.014.419.404
75 39.895.103 11.753.254.897 25.331.670 11.767.818.330
100 27.013.742 11.184.858.132 37.279.986 11.174.592.014
125 38.362.852 10.414.023.825 25.219.142 10.427.167.858
150 39.533.435 11.003.628.789 24.228.880 11.018.934.120
175 38.612.952 11.003.658.048 24.098.889 11.618.172.111
200 38.702.460 12.257.364.894 24.062.891 12.272.005.109
TABLA V TABLA VI
ESTADÍSTICAS DE LAS CACHÉS PARA EL MONOPROCESADOR CON L2 ESTADÍSTICAS DE LAS CACHÉS PARA EL MONOPROCESADOR CON L2
DE 1024 KB DE 512 KB
TABLA VII
ESTADÍSTICAS DE LAS CACHÉS PARA EL SERVIDOR BIPROCESADOR
Caché L1 CPU1 Caché L2 CPU1 Caché L1 CPU2 Caché L2 CPU2
Nº Accesos Total 519.494.022 35.505.482 435.295.180 30.508.935
Lecturas 111.218.129 8.355.003 97.576.046 7.167.021
Escrituras 81.950.556 10.293.278 71.646.618 8.896.988
Búsquedas instr. 326.265.992 10.574.259 266.012.222 8.897.637
Fallos lect. (%) 7.838.970 (7'05%) 3.015.892 (36'1%) 6.923.002 (7'09%) 2.649.747 (36'97%)
Fallos escr. (%) 3.721.658 (4'54%) 1.858.609 (18'06%) 3.154.694 (4'4%) 1.529.095 (17'19%)
Fallos bús. instr. (%) 10.574.259 (3'24%) 1.499.542 (14'18%) 8.897.637 (3'34%) 1.203.213 (13'52%)
Tasa de fallos 4'26% 17'95% 4'36% 17'64%
Reemplazos 22.100.601 6.325.123 18.946.037 5.339.169
Copy backs 6.223.927 2.512.316 5.486.995 2.117.483
Invalidaciones 33.774 0 28.784 0
6 F.J. VILLA, M.E. ACACIO, J.M. GARCÍA: EVALUANDO APLICACIONES COMERCIALES MEDIANTE SIMICS