Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Automated Performance Analysis of Load Tests - En.es
Automated Performance Analysis of Load Tests - En.es
com
CITAS LEE
96 1,382
4 autores, incluido:
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
Todo el contenido que sigue a esta página fue subido porAhmed E Hassanel 10 de abril de 2014.
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
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
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.
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
comprobaciones de rendimiento de alto nivel. Los siguientes dos escenario. Cada evento se abrevia utilizando su ID de evento abstracto (
Evento
E1→E2→E3→E4
Rendimiento Desviación Desviación promedio
Secuencias 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
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
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
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:
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
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
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
8. Conclusiones
7 Trabajo relacionado Es difícil realizar un análisis de rendimiento de los resultados de las