Aumento de TTFB en el equilibrio de carga HTTP

Aumento de TTFB en el equilibrio de carga HTTP

Tenemos nuestro propio rack en Amsterdam, Leaseweb.

Realizamos equilibrio de carga HTTP (a través de Cloudflare) con 3 servidores IIS de Windows 2019:

  • Servidor 1: servidor supermicro básico. Ejecuta IIS, MySQL8 y Redis.
  • Servidor 2: VM en el servidor Dell. Ejecuta IIS.
  • Servidor 3: VM en el servidor Dell (copia exacta del servidor 2). Ejecuta IIS.

Los archivos se sirven localmente en todas las causas (mediante replicación)

Ahora el problema es que el TTFB, comomedido localmente en el servidores mayor en el servidor 2 y el servidor 3 (VM).

Ejecutar (múltiples) pruebas LOCALMENTE con Chrome:

Servidor 1:

  • Espera (TTFB): 269 ms
  • Espera (TTFB): 255 ms
  • Espera (TTFB): 253 ms

Servidor 2:

  • Espera (TTFB): 379 ms
  • Espera (TTFB): 376 ms
  • Esperando (TTFB): 369ms

Servidor 3:

  • Espera (TTFB): 374 ms
  • Espera (TTFB): 381 ms
  • Espera (TTFB): 378 ms

Como puede ver, el servidor uno tiene un TTFB significativamente menor. En términos de CPU, los servidores 2 y 3 son en realidad más rápidos:

GUIÓN DE REFERENCIA PHP

Servidor1 Tiempo total: : 4.022 seg.

Servidor2 Tiempo total: : 2.866 seg.

Servidor3 Tiempo total: : 2.936 seg.

La E/S es aproximadamente la misma para todos los servidores. Todos tienen nuevos SSD con controladores raid de hardware.

Probé mover Redis a una de las máquinas virtuales para poder determinar si la latencia adicional proviene de Redis, pero no hace la menor diferencia.

Mi suposición es que la latencia adicional en TTFB proviene de MySQL que se ejecuta en el servidor 1. La ejecución de MySQL en el mismo servidor produce TTFB significativamente más pequeños aunque la CPU sea más lenta.

¿Hay alguna solución para esto?

En realidad, la pregunta adecuada es: ¿cómo puedo identificar cuál es la causa de la latencia adicional?

información relacionada