2011-01-04 12 views
14

Como desarrollador web, me han preguntado (un par de veces en mi carrera) sobre el rendimiento de los sitios que hemos creado. Algunas veces obtendrá preguntas semi-vagas como "¿continuará el sitio funcionando bien, incluso durante la semana de lanzamiento del producto?", "¿Puede el sitio manejar un millones de usuarios de?" E incluso "¿cómo le va al sitio? "Mejores prácticas y literatura para la prueba de carga de aplicaciones web

Por supuesto, estas preguntas son muy legítima, y ​​siempre me han tratado de responder a estas preguntas en la medida de mi capacidad, utilizando una combinación de

  • datos históricos (google analytics/registros de IIS)
  • herramientas de prueba de carga web
  • contadores de rendimiento del servidor
  • experiencia
  • presentimiento
  • sentido común
  • un poco de ayuda de nuestros administradores de sistemas
  • mi comprensión personal de la arquitectura de software en cuestión

he estado general capaz de encontrar respuestas razonables a estas preguntas. Sin embargo, el rendimiento de la aplicación web puede verse influido por muchas cosas (dependencias de bases de datos, estrategias de almacenamiento en caché, problemas de concurrencia, etcétera, comportamiento del usuario).

Soy un programador y no un estadista, y mi enfoque a este problema siempre ha sentido profundamente no científico. Así que hice un poco más de investigación ... y todos mis resultados de google parecen enfocarse en herramientas y características y métricas (y MÁS métricas) cuando realmente estoy buscando un camino para dar sentido a estas cosas.

La pregunta: ¿Cuáles son algunos buenos recursos (libros?) Para leer sobre las mejores prácticas para un desarrollador para leer sobre el tema de las pruebas de carga web, que le ayudará a contestar este tipo de preguntas?

Respuesta

9

Primero su pregunta demuestra que no comprende el problema. A veces puede ser bastante complicado crear las herramientas, secuencias de comandos, etc. para generar la carga, pero el verdadero desafío radica en evaluar los resultados y qué supervisar.

Una respuesta muy fácil a su pregunta podría ser Generar carga en un entorno similar a la producción que es similar al uso actual o esperado. Si funciona bien sin fallas o bajo rendimiento, generalmente es lo suficientemente bueno. Después de eso, aumente la carga para ver dónde están sus límites.

Cuando llegas al límite, mi experiencia es que esto es solo una cuestión presupuestaria del proyecto. ¿Vamos a invertir más tiempo/dinero/recursos, etc. para evaluar la causa?

Trabajo como un profesional de pruebas y recomiendo respetar las pruebas de carga como una parte vital del proceso de desarrollo, pero desafortunadamente eso no siempre está en línea con lo que la administración decide.

Así que la respuesta a su pregunta es que casi todos deben participar en este proceso: desarrolladores para monitorear su código; los administradores del sistema necesitan monitorear la CPU, el uso de memoria, etc .; DBA; chicos de redes; y así. Probablemente todos necesiten su propia fuente de conocimiento para poder registrar y analizar toda esta información.

Consejos libro:

El arte de la Prueba de rendimiento de aplicaciones: ayuda para los programadores y garantía de calidad http://www.amazon.com/exec/obidos/ASIN/0596520662/

El arte de la planificación de capacidad: La ampliación de recursos Web http://www.amazon.com/exec/obidos/ASIN/0596518579/

Pruebas de rendimiento de orientación para aplicaciones web http://www.amazon.com/exec/obidos/ASIN/0735625700/

+0

¡Increíble! Comenzaré recogiendo The Art of Application Performance Testing. Estoy de acuerdo en que involucra a todas las disciplinas y mucho de eso se debe a la experiencia. Este libro suena como un buen comienzo. Gracias. – Stephan

1

Puede emular el comportamiento típico del usuario y utilizar uno de los servicios en la nube para simular una gran cantidad de usuarios en el sitio web para ver qué tan bien maneja su sitio web con un gran número de usuarios. Oí el servicio de Amazon es decente

+0

Gracias, servicios basados ​​en la nube son definitivamente útil. Sin embargo, son sólo herramientas, y como cualquier herramienta es tan útil como la persona que la maneja. Estoy específicamente buscando * guías * y * mejores prácticas *. Amazon parece interesante, lo voy a ver. – Stephan

1

Puedo volver recomendar dos libros publicados en 2010:

El primero es "ASP.NET SITE PERFORMANCE SECRETS" por Matt Perdeck, se publicó a finales de otoño de 2010. Está escrito más desde el punto de vista de la optimización del rendimiento, pero también tiene material detallado sobre la prueba de carga. Es un libro electrónico de pdf gratuito.

El segundo libro es ".NET Performance Testing and Optimization - The Complete Guide", por Paul Glavich, Chris Farrell". Es de código bastante completa sobre pruebas de funcionamiento/carga

Cuestiones relacionadas