2012-03-14 14 views
8

He utilizado jMeter para probar el rendimiento de mi aplicación appengine.Prueba de rendimiento de la aplicación App Engine

He creado un grupo de hilos de

  • 500 usuarios,
  • rampa hasta período: 0 segundos
  • y bucle a 1

y corrió la prueba.

Creó 4 instancias en el motor de aplicaciones. Pero lo interesante es que > 450 solicitudes fueron procesadas por una sola instancia.

He realizado la prueba nuevamente con estas instancias arriba, todavía la mayoría de las solicitudes (> 90%) iban a la misma instancia.

  • tipo de instancia: F1 Clase
  • Max Idle instancias: (automático)
  • Min Pendiente Latencia: (automático)

Estoy recibiendo mucho más alta latencia.
¿Qué está mal aquí? Generando carga desde 1 IP, ¿hay algún problema?

Respuesta

0

Cuando dices "Tengo una latencia mucho más alta" ¿qué es exactamente lo que obtienes? ¿Lo consideras demasiado lento?

Si la latencia es un problema, puede reducir la latencia máxima pendiente en la configuración de la aplicación. Si prueba esto, imagino que verá más extendidas sus solicitudes en las instancias.

Mi suposición es simplemente que las 2-3 instancias inactivas se han disparado en previsión de una mayor carga, pero en realidad no son necesarias para su prueba.

+0

para esa prueba en particular que me dieron la latencia media de aprox. 10 segundos. En casos normales (sin usar la prueba de esfuerzo de jmeter) el promedio es de alrededor de 50 ms. Si esas solicitudes se extendieron a través de varias instancias, puedo obtener resultados mucho mejores. Voy a probar tu solución. Y dejarte saber. Gracias. – Dipin

+0

Todavía tengo una duda en mente, ¿por qué la segunda prueba también tomó la misma instancia para ejecutar, y me dio latencias más altas! solo unos pocos usaban otros. – Dipin

+0

número de instancias aumentadas, cambio leve en la distribución, valores de latencia aún altos.! – Dipin

3

Tu problema es que no estás usando un valor de aceleración realista. App Engine, como la mayoría de las soluciones de escalado automático, requiere una cantidad de tiempo razonable para hacer girar el hardware nuevo. Durante este proceso mientras está creando las nuevas instancias, la latencia puede aumentar si hubo un aumento grande y repentino en el tráfico.

Elija un valor de incremento que sea representativo del tipo de picos/sobretensiones que usted realmente espera ver en Producción y luego ejecute la prueba. Utilice los valores de esta prueba para decidir cuántas instancias de AppEngine le gustaría tener "siempre activadas", cuanto mayor sea este valor, menor será el impacto de un aumento, pero, obviamente, mayores serán sus costos.

+0

Especifiqué que, volví a ejecutar la prueba con estas instancias (4 instancias), aún la mayoría de las solicitudes (> 90%) iban a la misma instancia. y dándome errores y valores de alta latencia – Dipin

+1

Es posible que desee llegar a esto desde otra dirección: si trabaja en el pico más alto que espera obtener después de implementar esta aplicación, puede configurar su prueba para representar eso. Básicamente, es un hecho (desde mi experiencia) que appEngine no es una buena solución para aplicaciones de gran volumen y muy intensas, y no está diseñada (en absoluto) para funcionar bien con pruebas de carga agresivas y sintéticas. Nota. Las posibilidades son que Google esté usando algún tipo de comprobación de estado para decidir cómo equilibrar la carga, esto es _probablemente_ basado en un intervalo, de ahí la razón por la que necesita aumentar lentamente ... –