Pregunta

Tengo algunas preguntas básicas sobre cómo comprender los fundamentos de las pruebas de rendimiento.Sé que en varias circunstancias podríamos querer hacer (pruebas de estrés - pruebas de resistencia, etc.Pero mi objetivo principal aquí es garantizar que el tiempo de respuesta sea decente desde la aplicación bajo un conjunto de carga que esté hacia un extremo superior o al menos por encima de la carga promedio.

Mis preguntas son las siguientes:

  1. Cuando comience a planificar el tiempo de respuesta esperado de su solicitud;Qué piensas.Si ese es el primer paso.Quiero decir, ahora tengo una aplicación web.¿Simplemente saco una figura del aire y digo "Esperaría que la aplicación tarde 3 segundos en responder a cada solicitud"?y luego averiguar qué le falta a mi aplicación para obtener ese tiempo de respuesta.

  2. O es al revés, y comienzas la prueba de rendimiento con un conjunto determinado de hardware y dices, veamos qué tiempo de respuesta obtengo ahora, y luego miras los resultados y dices, bueno, ahora son 8 segundos, me gustaría. será de 3 segundos como máximo, así que veamos cómo podemos optimizarlo para que sea de 3 segundos.Pero, de nuevo, ¿se quedan 3 segundos sin aire?Estoy seguro de que ampliar las máquinas únicamente no aumentará el tiempo de respuesta.¿El tiempo de respuesta aumentará solo cuando una sola máquina/servidor esté bajo carga y comience a agruparse?

  3. Ahora, para un solo usuario, tengo un tiempo de respuesta de 3 segundos, pero a medida que aumenta la carga, disminuye exponencialmente;Entonces, ¿dónde trazo la línea entre "Necesito optimizar aún más el código" (que tiene un límite superior) y "Necesito ampliar mis servidores" (que también tiene un límite)?

  4. ¿Cuáles son las mejores herramientas gratuitas para realizar pruebas de carga y rendimiento?He usado Jmeter un poco.Pero, ¿hay algo más que sea bueno y de código abierto?

  5. Si tengo que optimizar el código, ¿empiezo a perfilar los flujos específicos que tomaron mucho tiempo respondiendo a las solicitudes?

Básicamente, me gustaría ver cómo uno va de un extremo a otro realizando pruebas de rendimiento para su aplicación.Cualquier enlace o artículo sería de gran ayuda.

Gracias.

¿Fue útil?

Solución

El href="http://www.performancetest.org/" rel="nofollow noreferrer"> Consejo Pruebas de rendimiento es su entrada a intercambiar libremente las experiencias, conocimientos y práctica de pruebas de rendimiento.

Microsoft Patterns & Practices para las pruebas de rendimiento. Esta guía le muestra un enfoque de extremo a extremo para la aplicación de las pruebas de rendimiento.

mencionó las herramientas de código abierto.

Otros consejos

Este enlace y esta muestran un ejemplo y el método de funcionamiento de una puesta a punto aplicación cuando la aplicación no tiene ningún "cuellos de botella" obvias. Funciona más intuitiva de hilos individuales. No tengo ninguna experiencia en el uso en aplicaciones web, a pesar de que otras personas hacen. Estoy de acuerdo en que el perfil no es fácil, pero yo siempre he confiado en esta técnica, y creo que es bastante fácil / efectiva.

En primer lugar, el diseño de su aplicación correctamente.

Usar un generador de perfiles, ver dónde están los cuellos de botella de la aplicación sean, y se los llevan a ser posible. Medir el desempeño antes de mejorarla.

Intentaré proporcionar una guía básica paso a paso, que puede usarse para implementar pruebas de rendimiento en su proyecto.

1 - Antes de comenzar a probar debes saber la cantidad de memoria física y la cantidad de memoria asignada para JVM, o lo que sea.El tamaño de la base de datos recopila tantas métricas como sea posible para su entorno actual. Conoce tu entorno

2 - El siguiente paso sería identificar el tamaño de producción común de DB y el crecimiento anual esperado.Querrá probar cómo se comportará su aplicación después de un año, dos, cinco, etc.

3 - Automatice la configuración del entorno. Esto le ayudará mucho en el futuro para las pruebas de regresión y la validación de corrección de defectos.Por lo tanto, necesita tener volcados de bases de datos para sus pruebas.Con volumen actual (de referencia), de un año y de cinco años.

4 - Una vez que haya terminado, si recopila información básica - Piense en monitorear sus servidores bajo carga, tal vez ya tenga alguna solución de monitoreo como http://newrelic.com/ esto le ayudará a identificar la causa de la degradación del rendimiento (CPU/Mem/Cantidad de subprocesos, etc.) Algunas herramientas de prueba de rendimiento tienen sistemas de monitoreo integrados.

En este punto, ya está listo para comenzar con la selección de herramientas y cargas. Ya hay materiales proporcionados sobre cómo hacerlo, así que omitiré la parte con la selección de cargas de trabajo.

5 - Herramienta de selección Creo que JMeter + http://blazemeter.com/ es lo que necesita en este punto, ambos tienen muchos artículos y materiales educativos interesantes; para la grabación de su guión, recomendaría usar la extensión Chrom de blazemeters en lugar de la solución JMeters incorporada.Si todavía crees que te falta conocimiento sobre cómo se hacen las cosas en JMeter, te recomiendo que obtengas este libro: Pruebas de rendimiento con JMeter 2.9 por Bayo Erinle

6 - Analizar resultados, revisar plan de pruebas y tomar las acciones correspondientes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top