Está en la página 1de 11

Traducido del inglés al español - www.onlinedoctranslator.

com

Vea discusiones, estadísticas y perfiles de autor para esta publicación en:https://www.researchgate.net/publication/221307754

Análisis de rendimiento automatizado de pruebas de carga

Documento de sesión· Septiembre 2009


DOI: 10.1109/ICSM.2009.5306331 · Fuente: DBLP

CITAS LEE
96 1,382

4 autores, incluido:

Ahmed E Hassan gilberto hamann


universidad de la reina Mora
467PUBLICACIONES19,918CITAS 14PUBLICACIONES 440CITAS

VER EL PERFIL VER EL PERFIL

Algunos de los autores de esta publicación también están trabajando en estos proyectos relacionados:

Recompensas en sitios de preguntas y respuestas técnicas: un estudio de caso de recompensas por desbordamiento de pilaVer Proyecto

Ecosistemas de softwareVer Proyecto

Todo el contenido que sigue a esta página fue subido porAhmed E Hassanel 10 de abril de 2014.

El usuario ha solicitado la mejora del archivo descargado.


Análisis de rendimiento automatizado de pruebas de carga

Zhen Ming Jiang, Ahmed E. Hassan Laboratorio Gilbert Hamann y Parminder Flora
de inteligencia y análisis de software (SAIL) Investigación de ingeniería de
universidad de la reina rendimiento en movimiento (RIM)
Kingston, ON, Canadá Waterloo, ON, Canadá
{zmjiang, ahmed}@cs.queensu.ca

Abstracto tores que imitan a los clientes que envían miles o millones de solicitudes
simultáneas a la aplicación bajo prueba. Durante el transcurso de una prueba
El objetivo de una prueba de carga es descubrir problemas
de carga, se supervisa la aplicación y se registran los datos de rendimiento
funcionales y de rendimiento de un sistema bajo carga. Los problemas
junto con los registros de ejecución. Los datos de rendimiento almacenan
de rendimiento se refieren a las situaciones en las que un sistema sufre
información sobre el uso de los recursos, como la utilización de la CPU, la
un tiempo de respuesta inesperadamente alto o un bajo rendimiento.
memoria, la E/S del disco y el tráfico de la red. Los registros de ejecución
Es difícil detectar problemas de rendimiento en una prueba de carga
almacenan el comportamiento en tiempo de ejecución de la aplicación bajo
debido a la ausencia de objetivos de rendimiento definidos
prueba.
formalmente y la gran cantidad de datos que deben examinarse.
El objetivo de una prueba de carga es descubrir problemas
En este documento, presentamos un enfoque que analiza
funcionales y de rendimiento bajo carga. Los problemas funcionales a
automáticamente los registros de ejecución de una prueba de carga para
menudo son errores que no surgen durante el proceso de prueba
detectar problemas de rendimiento. Primero derivamos la línea base de
funcional. Interbloqueos y errores de administración de memoria son
rendimiento del sistema a partir de ejecuciones anteriores. Luego realizamos
ejemplos de problemas funcionales bajo carga. Los problemas de
una comparación de rendimiento en profundidad con la referencia de
rendimiento a menudo se refieren a problemas de rendimiento como
rendimiento derivada. Los estudios de casos muestran que nuestro enfoque
un tiempo de respuesta alto o un rendimiento bajo bajo carga.
produce pocas falsas alarmas (con una precisión de77%) y se adapta bien a
La investigación existente sobre pruebas de carga se centra en la
grandes sistemas industriales.
generación automática de conjuntos de pruebas de carga [13, 14, 15, 17, 20,
25, 35]. Existe un trabajo limitado, que propone el análisis sistemático de los
1. Introducción resultados de una prueba de carga para descubrir problemas potenciales.

Muchos sistemas, desde sitios web de comercio electrónico hasta Desafortunadamente, buscar problemas en una prueba de carga es una

infraestructuras de telecomunicaciones, deben admitir el acceso simultáneo tarea difícil y que requiere mucho tiempo. Nuestro trabajo anterior [28]

de cientos o miles de usuarios. Muchos de los problemas de campo están señala posibles problemas funcionales al extraer los registros de ejecución de

relacionados con sistemas que no se adaptan a las cargas de trabajo de una prueba de carga para descubrir patrones de ejecución dominantes y

campo en lugar de errores de funciones [9, 34]. Para garantizar la calidad de marcar automáticamente las desviaciones funcionales de este patrón dentro

estos sistemas, la prueba de carga es un procedimiento de prueba de una prueba.

obligatorio además de los procedimientos de prueba funcionales En este documento, presentamos un enfoque que marca

convencionales, como las pruebas unitarias y de integración. automáticamente posibles problemas de rendimiento en una prueba de

Las pruebas de carga, en general, se refieren a la práctica de evaluar el carga. No podemos derivar el comportamiento de rendimiento dominante de

comportamiento de un sistema bajocarga[18]. Una carga generalmente se una sola prueba de carga como hicimos en nuestro trabajo anterior, ya que la

basa en un perfil operativo, que describe la carga de trabajo esperada del carga no es constante. Una carga de trabajo típica suele constar de períodos

sistema una vez que esté operativo en el campo [13, 15]. Una carga consta de que simulan un uso máximo y períodos que simulan un uso fuera del horario

los tipos de escenarios ejecutados y la tasa de estos escenarios. Por ejemplo, laboral. Por lo general, se aplica la misma carga de trabajo en las pruebas de

la carga de un sitio web de comercio electrónico contendría información carga, de modo que los resultados de las pruebas de carga anteriores se

como: navegación (40 %) con una tasa mínima/promedio/máxima de 5/10/20 usan como referencia informal y se comparan con la ejecución actual. Si la

solicitudes/seg, y compras (40 %) con una tasa mínima/promedio/máxima de ejecución actual tiene escenarios que siguen una distribución de tiempo de

5/10/20 solicitudes/seg. tasa promedio/máxima de 2/3/5 solicitudes/seg. respuesta diferente a la de la línea de base, esta ejecución probablemente
sea problemática y valga la pena investigarla. Las principales contribuciones
de nuestro trabajo son las siguientes:
Una prueba de carga suele durar varias horas o incluso algunos
días. La prueba de carga requiere uno o más generadores de carga. 1. Hasta donde sabemos, nuestro enfoque es el primero
trabajar para detectar automáticamente problemas de rendimiento en los Creemos que esta práctica actual no es eficiente ya que
resultados de las pruebas de carga. requiere horas de análisis manual, ni es suficiente ya que podría
2. Nuestro enfoque hace uso de registros de ejecución fácilmente pasar por alto problemas que aparecen en otros escenarios.
disponibles, lo que evita la necesidad de instrumentación que
afecte el rendimiento [16, 22] .
3 Informe de análisis de rendimiento
3. Nuestro enfoque informa automáticamente escenarios con problemas
de rendimiento y señala los cuellos de botella de rendimiento dentro La sección anterior discutió los desafíos y limitaciones de las
de estos escenarios. Los estudios de casos muestran que nuestro prácticas actuales de análisis de desempeño. En respuesta, hemos
enfoque se adapta bien a sistemas grandes y produce pocas falsas desarrollado un informe generado automáticamente, que puede
alarmas (con una precisión de77%). descubrir posibles problemas de rendimiento. El informe extrae
información de los registros de ejecución fácilmente disponibles y
Organización del Papel utiliza una ejecución anterior como referencia de rendimiento

El documento está organizado de la siguiente manera: la Sección 2 informal para comparar.

describe la práctica actual del análisis del desempeño y sus limitaciones. La Considere el siguiente ejemplo. A Jack, un probador de carga, se le pide

sección 3 muestra un ejemplo de cómo un probador de carga puede usar que pruebe la carga de una nueva versión de una aplicación en línea.

nuestro informe de análisis de rendimiento para analizar el rendimiento de Necesita determinar si la aplicación puede escalar a cientos de solicitudes de

una prueba de carga. La Sección 4 describe nuestro enfoque de análisis de clientes simultáneas, tal como lo hizo la versión anterior. La aplicación es una

desempeño. La Sección 5 presenta tres casos de estudio sobre nuestro tienda de mascotas en línea que admite operaciones como iniciar/cerrar

enfoque de análisis de rendimiento: dos sobre aplicaciones de código abierto sesión, navegar, comprar y registrarse para nuevos usuarios. Ahora

y uno sobre una aplicación empresarial grande. La Sección 6 presenta demostramos cómo Jack puede usar nuestro informe de análisis de

algunas discusiones y trabajos futuros. La Sección 7 describe el trabajo rendimiento para descubrir problemas de rendimiento en función de la

relacionado. La sección 8 concluye el documento. ejecución que realizó en una versión anterior.

Resumen de rendimiento general


2 Práctica actual de análisis de desempeño
Dado que la instrumentación adicional o la creación de perfiles de la
La mayoría de las aplicaciones empresariales grandes deben someterse a
aplicación pueden ralentizarla y afectar la medición del rendimiento,
pruebas de carga para garantizar un rendimiento satisfactorio bajo carga.
Jack tiene que trabajar con registros de ejecución y métricas de
Desafortunadamente, buscar problemas de rendimiento en una prueba de carga es
rendimiento fácilmente disponibles.
una tarea difícil y que requiere mucho tiempo debido a muchos de los siguientes
Como se muestra en la Figura 1(a), de millones de líneas de registro
desafíos:
en los registros de ejecución, nuestro informe marca 3 escenarios cuyo
Falta de referencias de rendimiento documentadas:Los requisitos
rendimiento es estadísticamente diferente al de la ejecución anterior.
del sistema correctos y actualizados rara vez existen [32].
Cada fila de la tabla corresponde a un escenario de desempeño
La presión del tiempo:La prueba de carga suele ser el último paso en un
desviado. Entre estos tres escenarios, hay dos escenarios que son
programa de lanzamiento ya retrasado que los gerentes deben acelerar. Por
peores que la ejecución anterior (mostrado en rojo) y un escenario que
lo tanto, el tiempo asignado para realizar una prueba, que podría ser de días,
es mejor (mostrado en azul). Los escenarios se ordenan por el grado de
y analizar los resultados suele ser limitado.
desviación del rendimiento con respecto a la ejecución anterior para
Supervisión de gastos generales:Los enfoques que monitorean o
que Jack pueda aprovechar al máximo su tiempo trabajando desde
perfilan una aplicación afectan la validez de las mediciones de
arriba.
rendimiento y no son prácticos para las pruebas de carga.
Gran volumen de datos:Una prueba de carga, que se ejecuta durante Mirando la primera fila, Jack descubre que el primer escenario tiene

algunas horas, genera datos de rendimiento y registros de varios aproximadamente el mismo rendimiento (5,000versus5,002 solicitudes

cientos de megabytes de tamaño. Estos datos deben analizarse para por segundo) de ambas ejecuciones. Sin embargo, se da cuenta de que

descubrir cualquier problema en la prueba de carga. el rendimiento del escenario actual es peor que el de la ejecución

Debido a los desafíos anteriores, un probador de carga a menudo utiliza los


anterior, indicado por el color rojo debajo del valor de desviación 0,8.

resultados de una prueba de carga anterior como referencia informal y realiza


También se muestra la secuencia de eventos desencadenada por este

comprobaciones de rendimiento de alto nivel. Los siguientes dos escenario. Cada evento se abrevia utilizando su ID de evento abstracto (

Los cheques se utilizan comúnmente en la práctica:


mi 1 ,mi2,mi 3,ymi4).
Comprobación de métricas:Un probador de carga examina las métricas de
Comparación de rendimiento visual
rendimiento en busca de grandes fluctuaciones. Por ejemplo, una tendencia al alza
en el uso de la memoria durante una prueba de carga es un buen indicador de una Después de obtener una impresión general sobre el rendimiento del
fuga de memoria. sistema, Jack hace clic en el hipervínculo debajo del valor de desviación
Comprobación del tiempo de respuesta:Usando el conocimiento del dominio, para profundizar en el rendimiento del primer escenario. Como se
un probador de carga verifica el tiempo de respuesta de algunos escenarios muestra en la Figura 1(b), el informe se expande y muestra una
clave y los compara con una línea de base informal. comparación visual del desempeño de este escenario.
Rendimiento Desviación Secuencias de eventos

Evento
E1→E2→E3→E4
Rendimiento Desviación Desviación promedio
Secuencias Secuencias de eventos

5,000 E1→E2→ E1:sessionId = 2, tiempo = 1, usuario = Tom, inicie sesión correctamente


0.8
5,002 E3→E4 5,000 1.0 E2:sessionId=2, time=1, user=Tom, navegar por el catálogo,
0.8 0.1
4500 E1→E3→ 5,002 1.1 catálogo = pájaro
0.5 0.5
4,498 E5→E7 0.9
E3:ID de sesión = 2, tiempo = 2, usuario = Tom, agregar elemento,

E1→E3→ 1.8 item=loro, cantidad=1


4,000 0.5
0.3 E5→E7→ 0.1
E4:sessionId = 2, tiempo = 3, usuario = Tom, pago de usuario
4,010 0.5 exitosamente
E2 →E4
4500
(a) Resumen de desempeño general 0.5 E1→E3→E5→E7
4,498
4,000
0.3 E1→E3→E5→E7→E2 →E4
4,010
(c) Diagnóstico de desempeño paso a paso
Rendimiento Desviación Secuencias de eventos

0.8

5,000 E1→E2→
5,002 E3→E4

4500
0.5 E1→E3→E5→E7
4,498
4,000 E1→E3→E5→
0.3
4,010 E7 → E2 → E4
(b) Comparación de rendimiento visual

Figura 1. Ejemplo de informe de análisis de rendimiento

entre las dos carreras. Examina los dos gráficos buscando más de una instancia de este escenario se activa en el mismo
responder a las siguientes dos preguntas: momento, se utiliza el tiempo de respuesta promedio de estas
instancias.
1. ¿Cómo difiere el rendimiento del escenario? Para el primer escenario, no hay degradación del rendimiento
El gráfico superior de la Figura 1(b) es un diagrama de frijol [29], que aunque el tiempo de respuesta fluctúe con el tiempo. La mayor parte
visualiza las distribuciones de tiempo de respuesta del mismo escenario del tiempo, la ejecución actual (en rojo) está por encima de la ejecución
en las ejecuciones anterior y actual, una al lado de la otra. El lado anterior (en negro), lo que nuevamente indica que la ejecución actual es
izquierdo muestra la distribución del tiempo de respuesta de la peor (es decir, más lenta).
ejecución anterior y el lado derecho muestra la ejecución actual. El
Diagnóstico de rendimiento paso a paso
ancho de la gráfica indica la frecuencia. Por ejemplo, la mayoría de las
instancias en la ejecución actual toman aproximadamente1segundo y Una vez que Jack obtiene una comparación visual de las diferencias
alrededor 0.5segundo en la carrera anterior. de rendimiento para el primer escenario, Jack hace clic en el enlace
Después de examinar el diagrama de frijoles, Jack ahora tiene una debajo de las secuencias de eventos para averiguar la causa exacta de
mejor idea de por qué se marca este escenario: Primero, la mayoría de las desviaciones de rendimiento (Figura 1(c)). Las líneas de registro de
los casos de la ejecución actual son más lentos que la ejecución muestra de los registros de ejecución se muestran junto con las
anterior. (1segundo contra0.5segundo). En segundo lugar, el tiempo duraciones promedio entre los pasos adyacentes. Además, también se
máximo de respuesta de la ejecución actual es5segundos en muestran las desviaciones de los pares de eventos adyacentes entre las
comparación con4segundos de la ejecución anterior. ejecuciones anterior y actual.
Para el escenario investigado, Jack concluye que la degradación
2. ¿Cómo evoluciona el rendimiento con el tiempo? del rendimiento del escenario se debe principalmente a una
El gráfico inferior de la Figura 1(b) muestra si el rendimiento del ralentización entre la navegación (mi )y compras (mi3)
2

sistema se ha degradado durante el transcurso de la prueba de eventos. La duración promedio de este par de eventos salta de 0,5
carga. El eje horizontal indica la hora de inicio de una instancia de segundos en la ejecución anterior a 1,8 segundos en la ejecución
escenario. El eje vertical indica el tiempo de respuesta de las actual. La desviación entre estos dos eventos, marcada (en rojo), es
instancias del escenario desencadenadas en ese momento. si mas la desviación más alta (0.9)entre todas las parejas de eventos
en este escenario. Luego, Jack hace clic en el hipervínculo debajo de la La información dinámica, específica de la ocurrencia particular de un
desviación de 0,9 para obtener una comparación visual de las evento, hace que el mismo evento de ejecución resulte en diferentes

2 en elmi→mi
diferencias de rendimiento 3 par. El informe se expande líneas de registro.
nuevamente para mostrar gráficos similares a los de la Figura 1(b), pero Las líneas de registro en la Tabla 1(a) se resumen en6eventos de
para pares de eventos específicos. ejecución que se muestran en la Tabla 1(b). El signo “$v” indica un valor
dinámico.
Informes
Fase 2. Recuperación del rendimiento de la secuencia
Según el análisis del primer escenario, Jack concluye que existe
un problema de rendimiento entre los eventos de navegación y A medida que el sistema maneja solicitudes de clientes simultáneas, las

compra. Luego realiza un análisis similar en los otros dos líneas de registro de diferentes escenarios se entremezclan entre sí en los

escenarios. Jack ahora puede redactar un correo electrónico, que registros de ejecución. Como se muestra en la Tabla 1(a), los escenarios

explica los problemas de rendimiento. El correo electrónico se relacionados con los usuarios Tom, John y Mike se mezclan. Además, algunas

envía a los desarrolladores correspondientes con el informe de líneas de registro (p. ej., la octava línea de registro), que solo emiten la

análisis de rendimiento adjunto. información de estado del sistema, no están relacionadas con ningún
escenario de cliente. Estas líneas de registro deben filtrarse de nuestro
análisis de rendimiento.
4. Nuestro enfoque para crear el informe de análisis
Para recuperar el rendimiento de todos los escenarios de clientes,
de rendimiento
primero debemos recuperar las secuencias de eventos. Recuperamos
Ahora presentamos nuestro enfoque para generar el informe de las secuencias vinculando los valores de los parámetros apropiados.
análisis de rendimiento discutido en la Sección 3. Como se muestra en
la Figura 2, nuestro enfoque consta de cinco fases. Para ambas pruebas, La primera fase abstrae cada línea de registro en un evento de
realizamos abstracción de registros, recuperación de rendimiento de ejecución. Aquí, usamos los valores dinámicos ($v) así como sus
secuencias y resumen de rendimiento. Luego marcamos los escenarios nombres de parámetros en el evento de ejecución. Los pares de
de desviación del rendimiento analizando estadísticamente los datos de nombre-valor de parámetro se utilizan para vincular las líneas de
rendimiento recuperados. Finalmente, se genera un informe de análisis registro relacionadas en secuencias. Por ejemplo, la primera línea
de desempeño, clasificado por el grado de desviación del desempeño. contiene3pares de nombre-valor de parámetro: sessionId con valor1,
tiempo con valor1,y usuario con valorJohn.
Explicamos nuestro enfoque utilizando el ejemplo de ejecución que se La Tabla 1(c) muestra los resultados después de extraer y vincular la
muestra en la Tabla 1. información de las líneas de registro utilizando los valores de ID de sesión de
las líneas de registro en la Tabla 1(a). Por ejemplo, el segundo (mi1), tercero (
Fase 1. Abstracción de registros
mi ),cuatro (mi3),y sexto (mi
2 4 )todas las líneas de registro comparten

Dado que la instrumentación adicional o la creación de perfiles del el mismo ID de sesión (2),así que los agrupamos. La octava línea de
sistema ralentizan su ejecución, estas técnicas no son viables para el registro en la Tabla 1(a) corresponde a un evento de verificación de
análisis de pruebas de carga. Como resultado, nuestro enfoque analiza estado periódico, que no tiene ID de sesión y se usa para determinar si
los registros de ejecución fácilmente disponibles. Estos registros suelen el sistema está activo. Esta línea de registro se filtra.
estar disponibles para habilitar el soporte remoto o para hacer frente a El rendimiento de la secuencia recuperada se calcula tomando
actos legales como la "Ley Sarbanes-Oxley de 2002" [5]. Dichos registros la diferencia de tiempo entre el primero y el último evento. En
registran actividades de software (p. ej., "Autenticación de usuario nuestro ejemplo de ejecución, el tiempo de respuesta general de la
exitosa") y errores (p. ej., "No se pudo recuperar el perfil del cliente"). secuencia (mi→mi→mi→mi
1 2)conID de
3 sesión
4 =2 es2segundos. Dado
que solo hay una línea de registro con sessionId
La Tabla 1(a) muestra la primera8líneas de registro de un archivo de 3,no hay información de duración para esta sesión. También se calculan
registro de ejecución. Estos registros son difíciles de analizar y analizar las duraciones entre cada par de eventos adyacentes. La
automáticamente, ya que están en forma libre sin un formato estricto y información de duración por pares se usa más tarde para el diagnóstico
utilizan un amplio vocabulario de palabras. Los registros contienen una gran de rendimiento por pasos. El tiempo de duración entre los dos primeros
cantidad de redundancia. Por ejemplo, aunque la primera y la segunda línea eventos (mide la segunda línea de registro ymi de la tercera línea de
1 2
de registro se desencadenan por el mismo evento en el código, son registro) es0segundos, y así sucesivamente.
diferentes pero tienen una estructura similar entre sí. Nuestro objetivo es
eliminar la redundancia en los registros abstrayendo las líneas de registro en
Fase 3. Resumen del desempeño
eventos de ejecución. Hemos desarrollado una técnica [27] que explota la La fase anterior ha recuperado la actuación de las secuencias
estructura común entre las líneas de registro: cada línea de registro es una individuales. Secuencias de eventos idénticas corresponden al
mezcla de información estática y dinámica. La información estática describe mismo escenario. Como una prueba de carga ejecuta
el evento de ejecución (es decir, el contexto), mientras que las partes repetidamente escenarios una y otra vez, la secuencia1mi→mi→2
variables (es decir, dinámicas) son valores de parámetros generados en mi→mi
3 4 puede aparecer varias veces. En la tercera fase, nos
tiempo de ejecución. resumir el rendimiento de cada escenario.
Secuencia
pasado Ejecución Actuación
Actuación
Registro

Correr
Registros
Abstracción resumen Actuación
Recuperación
Estadístico Informe Análisis
Secuencia Análisis Generación
Actual Ejecución Actuación
Informe
Actuación
Registro

Correr Registros
Abstracción resumen
Recuperación

Figura 2. Nuestro enfoque para generar el informe de análisis de rendimiento

Las tablas 1(a), 1(b) y 1(c) solo procesan las primeras 8 líneas de Clasificamos cada escenario según el grado de desviación del
registro de los registros. Los registros de ejecución suelen rendimiento entre las ejecuciones anterior y actual.
contener millones de líneas. La Tabla 1(d) muestra un ejemplo del La distancia del coseno, que mide el grado de similitud
rendimiento del escenario resumido utilizando los registros de entre dos distribuciones, arroja un valor entre 0 y 1. Si las dos
ejecución completos. En total, tenemos2escenarios. El primer distribuciones son muy similares, la distancia del coseno es
escenario (mi1→mi2→mi3→mi4)ocurre 300 veces. Entre ellos, 100 cercana a 1. Si son muy diferentes, la distancia del coseno es
veces ocurre con una duración de 2 segundos y 200 veces con 3 cercana a 0 Como la desviación es lo opuesto a la similitud,
segundos. También se resume el rendimiento de los pares de usamos la siguiente fórmula para calcular la desviación:
eventos adyacentes de cada escenario. Por ejemplo, el par de
eventosmi→mi2desde el3 primer escenario tarda en promedio 1,7
segundos. Entre las 300 ocurrencias totales de este par de eventos desviación(pag, c) = 1−coseno(pag, c) (1)

en este escenario, toma 1 segundo en 100 veces y 2 segundos en XPAG(X)C(X)
las otras 200 veces.
coseno(pag, c) =√∑ √∑ (2)
XPAG(X)2 XC(X)2

Fase 4. Análisis Estadístico


Tenga en cuenta que P(x) y C(x) corresponden al número de
La frase 3 descubre el rendimiento de todos los escenarios de instancias en las ejecuciones anterior y actual que tienen un tiempo
las ejecuciones anteriores y actuales. La cuarta fase evalúa el de respuesta x para un escenario particular. Por ejemplo, si la
rendimiento general de cada escenario y señala los pares de distancia del coseno del primer escenario en la Tabla 1(d) es0.2,su
eventos que se desvían del rendimiento. valor de desviación es0.8.
Comparamos el rendimiento de cada escenario en las ejecuciones
anteriores y actuales mediante una prueba estadística. Usamos la
5. Estudios de casos
prueba t de Student no apareada para comparar las distribuciones de
tiempo de respuesta del escenario de la ejecución anterior con la Realizamos3estudios de casos sobre3diferentes sistemas (2

ejecución actual. Además, utilizamos una prueba t de Student aplicaciones de código abierto y1aplicación de gran empresa).

modificada [26], que genera un intervalo de confianza. En comparación Buscamos verificar si nuestro informe de análisis de rendimiento puede

con la prueba de hipótesis, cuyo resultado solo responde si las dos ayudar a los probadores de carga en sus tareas habituales. Como

distribuciones son estadísticamente iguales, un intervalo de confianza nuestro enfoque solo señala los escenarios de rendimiento desviado,

también proporciona rangos posibles. Dependiendo de la posición depende de su conocimiento decidir si el rendimiento desviado conduce

relativa del intervalo de confianza a cero, podemos saber qué ejecución a problemas de rendimiento.

tiene mejor rendimiento (es decir, sincronización) para este escenario. Utilizamos la precisión para evaluar el rendimiento de nuestro

Solo mostramos los escenarios, cuyo rendimiento es estadísticamente enfoque. La precisión se define de la siguiente manera:

diferente entre las dos ejecuciones, en nuestro informe.


Una vez que se marcan los escenarios con rendimiento # de escenarios de falsa alarma
desviado, debemos identificar los pares de eventos que causan precisión(%) = (1− ) ×100%
T otal#de escenarios marcados
las desviaciones de rendimiento. Logramos esto aplicando la
misma prueba estadística en todos los pares de eventos Múltiples escenarios con rendimiento desviado pueden ser
adyacentes. Por ejemplo, para el escenario
1 marcado
2 (3mi→mi→
4
causados por el mismo problema de rendimiento, lo que puede
mi→mi), comparamos el rendimiento1demi→mi 2 ,mi→mi
2 ,y 3 ser una indicación del impacto de este problema. Si un escenario
mi→mi
3 4 entre la ejecución anterior y la actual. marcado no genera un problema de rendimiento, este escenario se
considera una falsa alarma.
Fase 5. Generación de informes
Un probador de carga realiza y analiza una prueba de carga de un
Como el probador de carga tiene un tiempo limitado, clasificamos los sistema en evolución que busca realizar muchas de las siguientes
escenarios potencialmente problemáticos para ayudarlo a priorizar su tiempo. tareas: recomendar configuraciones óptimas del sistema, certificar
# Líneas de registro

1. sessionId=1, time=1, user=John, iniciar sesión correctamente sessionId=2, time=1, user=Tom, Identificador de evento Plantilla de evento #
2. iniciar sesión correctamente sessionId=2, time=1, user=Tom, navegar por el catálogo, E1 sessionId=$v, time=$v, usuario=$v, inicio de sesión correctamente sessionId=$v, 1, 2
3. catalog=bird sessionId=2, tiempo=2, usuario=Tom, añadir artículo, artículo=loro, cantidad=1 E2 time=$v, user=$v, examinar catálogo, catalog=$v sessionId=$v, time=$v, usuario =$v, 3, 5
4. ID de sesión=1, tiempo=3, usuario=Juan, examinar catálogo, catálogo=perro ID de sesión=2, E3 agregar artículo, artículo=$v, cantidad=$v sessionId=$v, tiempo=$v, usuario=$v, pago del 4
5. tiempo=3, usuario=Tom, pago de usuario con éxito sessionId=3, tiempo=4, usuario=Mike, E4 usuario con éxito sessionId=$v, tiempo=$v, usuario=$v, usuario elemento de búsqueda, 6
6. elemento de búsqueda de usuario, elemento=tiempo de serpiente de cascabel=4, E5 elemento = $ v tiempo = $ v, verificación de estado 7
7. verificación de estado E6 8
8. (b) Eventos de ejecución abstraídos y líneas de registro correspondientes

(a) Ejemplos de líneas de registro de ejecución


Secuencias de eventos Duraciones
E1→E2→E3→E4 2 (100), 3 (200)
ID de sesión Secuencias de eventos Duraciones - E1→E2 (0) 0 (300)
1 E1→E2 2 - E2→E3 (1.7) 1 (100), 2 (200)
-
E1→E2 2 - E3→E4 (1) 0 (100), 1 (100), 2 (100)
2 E1→E2→E3→E4 2 E1→E3→E5→E7→E4 3 (200)
- E1→E2 0 - E1→E3 (0.5) 0 (100), 1 (100)
- E2→E3 1 - E3→E5 (1) 1 (200)
- E3→E4 1 - E5→E7 (1) 1 (200)
3 E5 - E7→E9 (0.5) 0 (100), 1 (100)
(c) Secuencias recuperadas con duraciones calculadas (d) Tiempo de respuesta resumido para cada escenario

Tabla 1. El ejemplo de ejecución

plataformas de software/hardware, y para estudiar el impacto de los cambios de parámetros de configuración para especificar la carga de trabajo. En esta
de diseño. Usamos esto para estructurar nuestro estudio de caso. Para cada tarea, usamos MySQL como base de datos back-end y Apache Tomcat como
estudio, primero damos una breve descripción del sistema estudiado y una nuestro motor de servidor web.
descripción general de la tarea que debe completar el probador de carga.
Luego explicamos los pasos para realizar los experimentos y el Objetivo: recomendar la configuración óptima de MySQL
procedimiento de recolección de datos. Finalmente, presentamos nuestros Buscamos evaluar el impacto en el rendimiento debido a las siguientes
resultados y conclusiones. dos opciones de configuración de software para la base de datos
Nuestro prototipo de análisis de rendimiento está escrito en MySQL:
Perl y utiliza R [7] para generar los gráficos. Almacenamiento en caché:Si almacenar en caché los resultados de la consulta o no;
Motores de almacenamiento:Ya sea para usar MyISAM o InnoDB como
Tarea 1: Recomendar configuraciones
óptimas el motor de almacenamiento.

Los sistemas empresariales interactúan a menudo con otros Experimentos y colecciones de datos
componentes de software, como bases de datos o servidores de correo. DS2 no tiene registros, por lo que instrumentamos manualmente sus
Las configuraciones subóptimas de estos componentes pueden afectar cuatro páginas JSP. Realizamos 4 pruebas de carga de una hora: InnoDB
el rendimiento del sistema. Un probador de carga necesita explorar con y sin almacenamiento en caché de consultas, y MyISAM con y sin
estas configuraciones y brindar recomendaciones para la almacenamiento en caché. Las 4 ejecuciones se realizan bajo la misma
implementación. En esta tarea, usamos Dell DVD Store (DS2) como carga de trabajo y se realizan en una máquina con CPU de un solo
nuestro sistema de estudio de caso. núcleo con 1 GB de RAM y un5,400disco duro rpm. Cada prueba
generada durante120,000líneas de registro.
Sistema estudiado: la tienda de DVD de Dell

La aplicación Dell DVD Store (DS2) es una aplicación en línea de código Análisis de resultados y conclusiones
abierto que se utiliza para comparar el hardware de Dell. [6]. DS2 proporciona Realizamos los análisis de rendimiento sobre los resultados de estos 4
funciones básicas de comercio electrónico, que incluyen: registro de usuarios, carreras.
inicio de sesión de usuarios, búsqueda de productos y compra de artículos. Para determinar el impacto en el rendimiento del almacenamiento en caché,
realizamos dos comparaciones. Primero, comparamos los resultados de InnoDB
DS2 contiene una base de datos, un generador de carga y una con/sin almacenamiento en caché, luego MyISAM con/sin almacenamiento en
aplicación web. Viene en diferentes paquetes de distribución que caché. Usamos los identificadores de sesión para recuperar las secuencias. Nuestros
admiten varias plataformas web (por ejemplo, Apache Tomcat o dos informes de análisis de rendimiento han marcado18 escenarios de rendimiento
JBoss) y proveedores de bases de datos (MySQL, Microsoft SQL desviado. Al examinar las subtablas de diagnóstico de rendimiento paso a paso en
Server y Oracle). La aplicación web consta de cuatro páginas JSP todos los pares de eventos, encontramos que los eventos, que invocan operaciones
que interactúan con la base de datos y muestran contenidos de base de datos, funcionan mejor con el almacenamiento en caché habilitado.
dinámicos. El generador de carga DS2 admite una gama
Para determinar el impacto en el rendimiento de diferentes motores de con 1G de memoria y una5,400rpm disco duro. La segunda
almacenamiento, comparamos los resultados de MySQL configurado con el ejecución usa otra máquina que tiene una CPU Quad-Core con 8G
motor MyISAM con los del motor InnoDB. Dado que nuestro análisis anterior de memoria y una7,200rpm disco duro. Ambas ejecuciones
muestra que habilitar el almacenamiento en caché produce un mejor generan más770,000líneas de registro.
rendimiento, solo comparamos las dos ejecuciones con el almacenamiento
en caché habilitado. De nuevo,18los escenarios están marcados. Al investigar
Análisis de resultados y conclusiones
las subtablas de diagnóstico de rendimiento paso a paso, encontramos que
La figura 3 muestra el informe de análisis de rendimiento de JPet-Store.
los eventos relacionados con la base de datos funcionan mejor con el motor
El informe ha marcado nuestro único escenario. El color de la desviación
InnoDB. Nuestro hallazgo está de acuerdo con estudios de referencia previos
(azul) muestra que la ejecución en la máquina de cuatro núcleos supera
[4].
estadísticamente a la ejecución en la máquina con una sola CPU. Sin
Utilizando nuestros informes de análisis de rendimiento, concluimos
embargo, la comparación visual de las dos carreras revela que:
que DS2 debe implementarse con las siguientes configuraciones de
MySQL para lograr un rendimiento óptimo: InnoDB como motor de
almacenamiento y caché habilitado. la precisión es 100%entre los tres 1. El contraste del tiempo de respuesta máximo y mínimo de ambas
informes de análisis de rendimiento. ejecuciones es muy grande, especialmente para la ejecución en el
servidor multinúcleo. Como se muestra en el diagrama de frijoles de la
Tarea 2. Certificación de software/hardware
Figura 3, el tiempo de respuesta mínimo para la máquina Quadcore es
Plataformas
de alrededor de 30 segundos y el máximo es de alrededor de 200
Hoy en día, los sistemas soportan varias plataformas de software segundos.
(por ejemplo, sistemas operativos) así como plataformas de hardware. 2. Como se muestra en el gráfico inferior de la Figura 3, ambas ejecuciones
Un probador de carga necesita verificar si un sistema bajo prueba se ralentizan a medida que avanza la prueba de carga debido al
puede hacer un uso óptimo de los servicios y recursos disponibles. En aumento constante de la carga de trabajo. Sin embargo, el tiempo de
esta tarea, usamos JPetStore como nuestro sistema de estudio de caso. respuesta en la máquina de cuatro núcleos durante los últimos
segundos es de aproximadamente3veces más que la máquina de un
Sistema estudiado: JPetStore solo núcleo durante la carga pesada (alrededor de200segundos en la

JPetStore [2] es una aplicación web de código abierto más máquina Quadcore versus alrededor80segundos en la máquina de un

grande y compleja en relación con DS2. A diferencia de la solo núcleo).

versión original de Pet Store de Sun, que se enfoca más en


Repetimos ambas ejecuciones y seguimos obteniendo los mismos patrones. A
demostrar la capacidad de la plataforma J2EE, JPetStore es una
través de un examen minucioso de la subtabla de diagnóstico de rendimiento paso
reimplementación con un diseño más eficiente [3] y tiene como
a paso en nuestro informe, revelamos un error de rendimiento de MySQL. El motor
objetivo comparar la plataforma J2EE con otras plataformas
de almacenamiento MySQL InnoDB tiene problemas para escalar a máquinas de
web como.Neto. A diferencia de DS2, que incorpora toda la
varios núcleos. Nuestro hallazgo está confirmado por las publicaciones de los
lógica de la aplicación en el código JSP, JPetStore utiliza el
desarrolladores de MySQL [1].
marco "Modelo-Vista-Controlador" y archivos XML para
Utilizando nuestro enfoque de análisis de rendimiento,
asignaciones de objetos/relaciones. En esta tarea,
concluimos que el rendimiento de JPetStore mejora en una
implementamos la aplicación JPetStore en Apache Tomcat y
máquina más potente. Sin embargo, existe un error de
usamos MySQL como base de datos.
rendimiento de MySQL que prohíbe el uso eficiente de la
arquitectura de hardware multinúcleo bajo una carga pesada. La
Objetivo: certificar un servidor multinúcleo
precisión de este informe es100%.
En este estudio de caso, buscamos certificar la plataforma de
hardware verificando si hay una ganancia de rendimiento al migrar Tarea 3. Estudiar el impacto de los cambios en el
JPetStore de una máquina de un solo núcleo a un servidor sistema
multinúcleo más potente.
Los sistemas se someten constantemente a cambios de mantenimiento para

Experimentos y recopilación de datos corregir errores y hacer frente a nuevos estándares o nuevas interfaces. Los
cambios pueden causar un rendimiento del sistema subóptimo. En esta tarea,
Como JPetStore no viene con un generador de carga, usamos Webload [8],
utilizamos una aplicación empresarial grande como nuestro sistema de estudio de
una herramienta de prueba de carga web de código abierto, para probar la
caso.
carga de la aplicación. Usando Webload, hemos registrado un solo escenario
de cliente para reproducirlo durante las pruebas de carga. Además,
configuramos Webload para que aumente gradualmente la carga de trabajo Sistema estudiado: una aplicación empresarial grande
a medida que avanza la prueba de carga. El sistema que estudiamos es una gran aplicación empresarial
En cada plataforma de hardware, realizamos una ejecución de una distribuida. Esta aplicación admite una gran cantidad de
hora. La primera ejecución utiliza una máquina que tiene una sola CPU escenarios que utilizan miles de usuarios simultáneamente.
Evento
Rendimiento Desviación
Secuencias
0.9

E1→E3→E4
5,463
→ E2→E4
6,193
→ E5→E6

Figura 3. El informe de análisis de rendimiento en JPetStore

Objetivo: evaluar diferentes diseños de software 6. Discusión y Trabajo Futuro


Hay una nueva compilación de software que utiliza un mecanismo
En esta sección, discutimos nuestros resultados y el trabajo futuro.
de comunicación diferente. Queremos determinar el impacto en el
rendimiento del nuevo diseño.
Comparaciones de rendimiento
Experimentos y recopilación de datos
Nuestro enfoque utiliza los resultados de una ejecución anterior como
Un probador de carga ha realizado los experimentos. Se ejecutan dos pruebas de
referencia de rendimiento informal. La línea base de rendimiento
carga de 8 horas en diferentes compilaciones de software bajo la misma carga.
también se puede derivar de los datos en una o más ejecuciones. Por
Ambas ejecuciones generan más2millones de líneas de registro.
ejemplo, podemos formar la línea base de rendimiento al combinar los
resultados de 10 ejecuciones realizadas el año pasado. Los grandes
Análisis de resultados y conclusiones datos resultantes son más deseables para inferir el comportamiento de
Esta es una gran aplicación empresarial con registros de ejecución fácilmente rendimiento común pasado.
disponibles. Después de revisar brevemente las líneas de registro, encontramos tres Creemos que vale la pena investigar los escenarios de mejora y
parámetros principales que se pueden usar para vincular las líneas de registro para degradación del rendimiento por dos motivos. Primero, un probador de
formar escenarios. carga necesita verificar las correcciones de errores de rendimiento
Nuestro informe señala alrededor30escenarios de desviación del comparando la ejecución actual con una prueba que sufre de
rendimiento. La mayoría de los escenarios se ejecutan más de4,000 problemas de rendimiento. En este caso, los casos de mejora del
veces. Nuestro informe revela que la compilación actual funciona peor rendimiento también le interesan. En segundo lugar, no queremos
que la compilación anterior. Al examinar las subtablas de diagnóstico de perdernos posibles problemas de rendimiento. Tome nuestro caso de
rendimiento paso a paso, este probador de carga puede identificar los estudio de JPetStore, por ejemplo. El rendimiento en un servidor
pasos que se desvían del rendimiento y, posteriormente, identificar los potente es generalmente mejor, pero sufre una ralentización severa en
problemas de rendimiento del nuevo diseño. condiciones de estrés.
Nuestro informe de análisis de rendimiento tiene una precisión de77%.
Algunas secuencias marcadas no son escenarios. Por lo tanto, las falsas
Recuperación de escenario
alarmas son provocadas por los intervalos de tiempo aleatorios entre los
pares de eventos adyacentes. Nuestro enfoque requiere algo de trabajo manual al principio, ya que
Llegamos a la conclusión de que nuestro informe de análisis de necesitamos encontrar cuáles son los parámetros de identificación en
rendimiento ha ayudado al probador de carga a evaluar el impacto en el los registros. Este es un esfuerzo de una sola vez y requiere un esfuerzo
rendimiento de diferentes diseños. La precisión de nuestro informe de mínimo. Estos parámetros se pueden obtener preguntando a un
análisis de rendimiento es77%. experto en el dominio o hojeando los registros.
Análisis estadístico nuestro enfoque es más detallado, ya que analizamos el rendimiento de
los escenarios, así como los pasos individuales en cada escenario. En
Nuestro enfoque utiliza una prueba t de Student para comparar las
tercer lugar, nuestro enfoque minimiza la cantidad de procesamiento
distribuciones de tiempo de respuesta. Una prueba t de Student es una
manual. En cuarto lugar, los problemas informados en nuestro informe
prueba estadística paramétrica que supone que el tiempo de respuesta se
de análisis de rendimiento se clasifican para que un probador de carga
distribuye normalmente. Las pruebas estadísticas no paramétricas, como la
pueda priorizar sus esfuerzos y hacer un uso óptimo de su tiempo.
prueba de Kolmogorov-Smirnov [19], también se pueden utilizar en nuestro
análisis. Estas pruebas no tienen suposiciones sobre la distribución de los
Supervisión y análisis automatizados del rendimiento de los
datos. Las pruebas paramétricas son menos estrictas que las pruebas no
sistemas de producción
paramétricas. En otras palabras, las pruebas no paramétricas tienden a decir
que no hay diferencias estadísticas entre dos conjuntos de datos, mientras La supervisión y el análisis automatizados del rendimiento de los
que las pruebas paramétricas indicarían una diferencia estadísticamente sistemas de producción se pueden dividir en dos subcategorías: analizar
significativa. Elegimos usar la prueba t de Student menos estricta, ya que las métricas de rendimiento y analizar los registros.
queremos encontrar todos los posibles problemas de rendimiento. Además, El siguiente trabajo analiza las métricas de rendimiento: Avritzer et
también hemos intentado usar la prueba de Kolmogorov-Smirnov para al. [12, 11] proponen varios algoritmos para detectar la necesidad de
verificar los hallazgos en nuestros estudios de casos. Encontramos que los rejuvenecimiento del software al monitorear los valores cambiantes de
resultados de la prueba de Kolmogorov-Smirnov concuerdan con la prueba varias métricas del sistema. Mi et al. [23, 31] y Cohen et al. [24, 36]
de la t de Student. Este hallazgo se confirma con los resultados informados desarrollan firmas de aplicaciones basadas en las diversas métricas del
por Bulej et al. [21]. sistema (como CPU, memoria). Las métricas de la aplicación se utilizan
además para la planificación eficiente de la capacidad y la detección de
anomalías. La principal diferencia entre estos enfoques y el nuestro es
Análisis del rendimiento del sistema mediante registros de ejecución
que usamos registros de ejecución para nuestro análisis. En
Nuestro enfoque utiliza registros de ejecución fácilmente disponibles e infiere
comparación con las métricas del sistema, los registros de ejecución
el rendimiento del sistema en función de las diferencias de tiempo entre las
proporcionan información específica de dominio más detallada.
líneas de registro. Por lo tanto, nuestro enfoque está limitado por la
El siguiente trabajo analiza los registros fácilmente sin
granularidad de las líneas de registro. Además, asumimos que los registros
instrumentación adicional: Aguilera et al. [10, 33] desarrollaron varios
son relativamente estables en el tiempo. Esta suposición es válida para
algoritmos para realizar una depuración de rendimiento de caja negra
muchos sistemas industriales. Dado que los registros ya están procesados
en sistemas distribuidos. Utilizan la información del encabezado en los
por muchas otras herramientas, los cambios de registro generalmente se
rastros de paquetes TCP (fuente, destino y tiempo) para inferir las rutas
minimizan. En el futuro, planeamos aplicar coincidencias aproximadas en
causales dominantes a través de un sistema distribuido.
diferentes secuencias entre ejecuciones.
Desafortunadamente, la precisión de las rutas causales inferidas
disminuye a medida que aumenta el grado de paralelismo. Esto no es
Nuevos escenarios ideal para el análisis de pruebas de carga, ya que hay muchos
Dado que no hay objetivos de rendimiento formales ni datos de intercambios de mensajes que ocurren simultáneamente. Marwede et
ejecuciones anteriores para nuevos escenarios, nuestro enfoque actual al. [30] utilizan la anomalía de sincronización para descubrir
no los analizará. En el futuro, planeamos inferir el desempeño esperado automáticamente problemas funcionales.
del escenario en base a los escenarios existentes.

8. Conclusiones
7 Trabajo relacionado Es difícil realizar un análisis de rendimiento de los resultados de las

Discutimos dos áreas de trabajo relacionadas.


pruebas de carga debido a la ausencia de una línea de base de
rendimiento documentada, la presión del tiempo, la sobrecarga de
monitoreo y el gran volumen de datos. En este documento,
Prueba de carga
proponemos un enfoque que marca automáticamente los posibles
La mayoría de las investigaciones existentes sobre pruebas de carga se
problemas al adoptar una ejecución anterior como referencia de
centran en la generación automática de conjuntos de pruebas de carga [13,
rendimiento y compararla con ella. Nuestro enfoque es fácil de adoptar
14, 15, 17, 20, 25, 35]. Nuestro trabajo anterior [28] se enfoca en descubrir
y escala bien a grandes sistemas con alta precisión (77%).
automáticamente problemas funcionales en una prueba de carga. Bulej et al.
[21] proponen el concepto de evaluación comparativa de regresión como una
variante de las pruebas de regresión para la regresión de rendimiento. La
Reconocimiento
evaluación comparativa de regresión compara el rendimiento en diferentes Agradecemos a Research In Motion (RIM) por proporcionar
versiones de los sistemas que utilizan el mismo conjunto de evaluación acceso a la aplicación empresarial utilizada en nuestro estudio de
comparativa. Nuestro trabajo es una mejora sobre la evaluación comparativa caso. Los hallazgos y opiniones expresados en este documento
de regresión en cuatro aspectos. Primero, nuestro enfoque recupera los pertenecen a los autores y no necesariamente representan o
escenarios automáticamente sin especificación. Segundo, reflejan los de RIM y/o sus subsidiarias y afiliadas.
Además, nuestros resultados no reflejan de ninguna manera la calidad de los [21] L. Bulej, T. Kalibera y P. Tůma. Análisis de resultados repetidos para la
productos de software de RIM. evaluación comparativa de regresión de middleware.Llevar a cabo. Eval.,
60(1-4):345–358, 2005.
[22] MY Chen, A. Accardi, E. Kiciman, J. Lloyd, D. Patter-
Referencias hijo, A. Fox y E. Brewer. Gestión de fallos y evolución basada
en rutas. Enla 1ra conferencia sobre Symposium on Net-
[1] Respuestas de Heikki Tuuri Innodb - Parte I.http://tiny.cc/ diseño e implementación de sistemas trabajados, 2004.
N8qVq. [23] L. Cherkasova, K. Ozonat, N. Mi, J. Symons y E. Smirni.
[2] iBATIS JPetStore. http://sourceforge.net/ ¿Anomalía? cambio de aplicacion? o cambio de carga de trabajo? hacia
proyectos/ibatisjpetstore/. la detección automatizada de anomalías y cambios en el rendimiento
[3] Implementación de Microsoft .NET Pet Shop us- de la aplicación. EnConferencia internacional IEEE sobre
ing Java. http://www.clintonbegin.com/ Sistemas y redes confiables, 2008.
JPetStore-1-2-0.pdf. [24] I. Cohen, S. Zhang, M. Goldszmidt, J. Symons, T. Kelly y
[4] Puntos de referencia de InnoDB vs MyISAM vs Falcon.http:// Un zorro. Captura, indexación, agrupamiento y recuperación del
tiny.cc/lPDFp. historial del sistema. EnActas del vigésimo simposio de la ACM
[5] Ley Sarbanes-Oxley de 2002.http://www.soxlaw. sobre los principios de los sistemas operativos, 2005.
com/. [25] V. Garousi, LC Briand e Y. Labiche. Consciente del tráfico
[6] La tienda de DVD de Dell. http://linux.dell.com/ Pruebas de estrés de sistemas distribuidos basados en modelos
tienda de dvd/. uml. EnActas de la 28ª conferencia internacional sobre Soft-
[7] El Proyecto R para Computación Estadística.http://www.
ingeniería de mercancías, 2006.
r-proyecto.org/. [26] R. Jain.El arte del análisis del rendimiento de los sistemas informáticos:
[8] Carga web.http://www.webload.org/. Técnicas de Diseño Experimental, Medición, Simulación
[9] Encuesta de Gestión del Desempeño Aplicado, octubre de 2007.
[10] MK Aguilera, JC Mogul, JL Wiener, P. Reynolds y ción y modelado. Wiley-Interscience, 1991.
[27] ZM Jiang, AE Hassan, G. Hamann y P. Flora. un au-
A. Muthitacharoen. Depuración de rendimiento para sistemas
enfoque automatizado para abstraer los registros de ejecución de los
distribuidos de cajas negras. EnActas del decimonoveno
eventos de ejecución.Revista de Mantenimiento y Evolución del Software:
Simposio ACM sobre principios de sistemas operativos, 2003.
[11] A. Avritzer, A. Bondi, M. Grottke, KS Trivedi y EJ Investigación y Práctica, 20(4), 2008.
[28] ZM Jiang, AE Hassan, G. Hamann y P. Flora. Auto-
Weyuker. Aseguramiento del desempeño a través del rejuvenecimiento del
Identificación automática de problemas de pruebas de carga. EnEn
software: Monitoreo, estadísticas y algoritmos. Enel internacional
Actas de la 24.ª Conferencia Internacional IEEE sobre Software
Conferencia sobre Sistemas y Redes Confiables, 2006.
[12] A. Avritzer, A. Bondi y EJ Weyuker. Garantizar estable Mantenimiento (ICSM), 2008.
[29] P. Kampstra. Beanplot: una alternativa de diagrama de caja para visualización
rendimiento para sistemas que se degradan. Enel 5to interna-
comparación de distribuciones.revista de software estadístico,
taller nacional de software y rendimiento, 2005.
Fragmentos de código, 28(1), 2008.
[13] A. Avritzer y B. Larson. Software de prueba de carga usando de-
[30] N. Marwede, M. Rohr, A. van Hoorn y W. Hasselbring.
prueba de estado terminista. EnActas del simposio internacional
Diagnóstico automático de fallas en sistemas de software distribuidos a gran
ACM SIGSOFT de 1993 sobre pruebas de software y
escala basado en la correlación de anomalías de comportamiento de tiempo.
análisis, 1993.
Enla 13ª Conferencia Europea sobre Mantenimiento de Software
[14] A. Avritzer y EJ Weyuker. Generación de suites de prueba para
pruebas de carga de software. EnActas del simposio internacional
y Reingeniería, 2009.
[31] N. Mi, L. Cherkasova, KM Ozonat, J. Symons y
ACM SIGSOFT de 1994 sobre pruebas de software y
E. Smirni. Análisis del rendimiento de la aplicación y su cambio a
análisis, 1994.
través de firmas de aplicaciones representativas. EnRed
[15] A. Avritzer y EJ Weyuker. La generación automática de
cargar conjuntos de pruebas y la evaluación del software resultante.
Simposio de Operaciones y Gestión, 2008.
[32] DL Parnas. Envejecimiento del software. EnCISE '94: Actas de
Trans. IEEE. suave Ing., 21(9), 1995.
[16] P. Barham, A. Donnelly, R. Isaacs y R. Mortier. Usando la 16ª conferencia internacional sobre ingeniería de software,
urraca para extracción de solicitudes y modelado de cargas Los Alamitos, CA, EE. UU., 1994.
[33] P. Reynolds, JL Wiener, JC Mogul, MK Aguilera y
de trabajo. En OSDI'04: Actas de las VI Jornadas de Simposio
A. Vahdat. Wap5: depuración de rendimiento de caja negra
sobre diseño e implementación de sistemas operativos, 2004.
[17] MS Bayan y JW Cangussu. Estrés y carga automáticos para sistemas de área amplia. EnWWW '06: Actas del 15
conferencia internacional sobre la world wide web, 2006.
Pruebas para sistemas embebidos. En30º Anual Internacional
[34] EJ Weyuker y FI Vokolos. Experiencia con desempeño
Congreso de Software y Aplicaciones Informáticas, 2006.
pruebas de manejo de sistemas de software: problemas, un enfoque y
[18] B. Beizer.Pruebas de sistemas de software y control de calidad.
caso de estudio.Trans. IEEE. suave Ing., 26(12), 2000.
Van Nostrand Reinhold, marzo de 1984.
[35] J. Zhang y SC Cheung. Generación automatizada de casos de prueba
[19] S. Boslaugh y DPA Watters.Estadísticas en pocas palabras A
para la prueba de estrés de los sistemas multimedia. suave Practica
Referencia rápida de escritorio. O´Reilly, 2008.
[20] LC Briand, Y. Labiche y M. Shousha. usando genetica Exp., 32(15), 2002.
algoritmos para análisis temprano de programabilidad y pruebas de
[36] S. Zhang, I. Cohen, J. Symons y A. Fox. Conjuntos
de modelos para el diagnóstico automatizado de problemas de
estrés en sistemas en tiempo real.Programación genética y máquinas
rendimiento del sistema. EnActas de la Conferencia Internacional
evolutivas, 7(2), 2006.
de 2005 sobre Sistemas y Redes Confiables, 2005.

Ver estadísticas de publicación

También podría gustarte