Pruebas de rendimiento LAMP-Cluster: ¿Cómo encontrar el cuello de botella?

Pruebas de rendimiento LAMP-Cluster: ¿Cómo encontrar el cuello de botella?

He configurado un grupo de 3 nodos que ejecutan una aplicación LAMP con HAProxy haciendo el equilibrio de carga. Ahora me gustaría optimizar y probar la carga del sistema. Por lo tanto, estoy anulando jmeter-ec2, que genera 15 instancias AWS-t1.micro de la región de Irlanda y ejecuta una prueba de jmeter en el clúster ubicado en un centro de datos dedicado en Alemania.

El problema es que los servidores apenas funcionan con una carga de 0,5, mientras que jmeter solo informa alrededor de 70 tps. Ahora me pregunto dónde está el cuello de botella y por qué el sistema no sirve más tps.

Estoy buscando ayuda sobre cómo abordar este problema para poder ajustar un servicio tras otro. Hay MySQL Galera, Apache, NginX y Solr ejecutándose para servir la aplicación, todos con ajustes de configuración predeterminados. El clúster consta de 3 nuevos nodos metálicos con 32 GB de RAM y cuatro CPU XEON interconectadas a través de una LAN gigabit.

Gracias de antemano por cualquier aporte útil sobre cómo ajustar/configurar sistemáticamente el sistema.

Respuesta1

Intente quitar partes del sistema para encontrar el cuello de la botella. ¡15 servidores de prueba suena muchísimo! Debería poder obtener miles de TPS de una sola unidad de prueba. No le estás pidiendo a HAProxy que espere una respuesta, ¿verdad? es decir, ¿utilizar la funcionalidad maxconns y la funcionalidad de cola? Como dije, intente simplificar, pero si cree que es HAProxy, publique la configuración.

Respuesta2

Creo que los clientes de prueba son obviamente un problema para mí.

  1. Estás usando t1.micro. Son básicamente gratuitos y gratuitos por una razón. Cambie a utilizar al menos un m3.medium, large o xlarge para realizar pruebas. Puede apagarlos cuando haya terminado.

Comentarios de la documentación de Amazon.Microinstancias T1lo resume bien.

"Rendimiento puntiagudo",

"Diseñado para soportar decenas de solicitudes por minuto"

Pero como punto de referencia, querrás intentar sobrecargar tu servidor. Quieres cientos de solicitudes por segundo. Eso es un poco más de lo que estos pueden ofrecer.

  1. El clúster de prueba no es local para el cliente de prueba, lo que introduce una latencia adicional. Su grupo está a 1600 km de distancia en otro país. Eso tampoco va a ayudar. Así que asegúrese de tener en cuenta el punto 3.

  2. Asegúrese de que sus clientes de prueba estén ejecutando subprocesos múltiples.

  3. Utilice EU (Irlanda): eu-west-1, que es una mejor opción para probar el punto final.

información relacionada