¿Por qué el servidor de mi región central de EE. UU. tiene problemas (CPU máxima) detrás de mi balanceador de carga de Google Cloud?

¿Por qué el servidor de mi región central de EE. UU. tiene problemas (CPU máxima) detrás de mi balanceador de carga de Google Cloud?

Tengo un entorno de carga equilibrada configurado en Google Cloud Platform. Detrás del equilibrador de carga hay dos servidores, cuya configuración es casi idéntica. Un servidor se encuentra en la región este de EE. UU. y otro en la región central de EE. UU. El servidor de la región este de EE. UU. maneja fácilmente toda la carga por sí solo, con un uso promedio de CPU de alrededor del 45 %. Cada vez que agrego el servidor en la región central al balanceador de carga, su CPU aumenta repentinamente y se mantiene en un 99% de uso siempre que esté conectado al balanceador de carga.

Antecedentes adicionales: Los servidores son servidores Windows que ejecutan un sitio web ASP.NET Umbraco 7. También tengo dos servidores de bases de datos que ejecutan MariaDB, uno como maestro y otro como esclavo de replicación. El servidor oriental se conecta al maestro (también en la región oriental). El servidor central se conecta al esclavo (también en la región central).

¿Alguien puede ofrecer una explicación de por qué el servidor central tiene problemas?

Cosas que he probado:

  • Modifiqué los parámetros de equilibrio para intentar que más solicitudes fueran al servidor oriental, pensando que eso podría aliviar parte del estrés en el servidor central.
  • Intenté conectar el servidor central a la base de datos maestra en la región oriental.
  • Subí una copia nueva de los archivos del sitio en caso de que hubiera algún daño en algún lugar que causara un problema.
  • Seguí los consejos (automatizados) de Google y aumenté la RAM (que para empezar no estaba realmente estresada; nunca superó el 50% de uso).
  • Intenté poner en marcha un servidor totalmente nuevo, también en la región central, configurándolo desde cero. Los mismos problemas de rendimiento.

Lo mejor que puedo imaginar en este momento es que el servidor tiene dificultades para mantenerse al día con los pings del Comprobador de estado, pero entonces ¿por qué el otro servidor no tiene problemas? ¿Hay algo en el hecho de estar en una región diferente que esté causando el problema?

Cosas que todavía tengo que probar. Siéntase libre de sugerir una prioridad sobre estos:

  • Mover el servidor central a otra región.
  • Mover el servidor central a la región este junto con el otro servidor.
  • Agregar una CPU

Estoy tratando de evitar este último porque parece tratar los síntomas en lugar de encontrar el problema subyacente.

Respuesta1

Para empezar, los balanceadores de carga L7 de Google intentarán enrutar el tráfico al servidor más cercano al solicitante. En su caso, cualquier solicitud proveniente de la costa este irá al backend de EE. UU. Este, mientras que todas las demás solicitudes de América del Norte irá al servidor central de EE. UU. Este es el comportamiento esperado.

Puede comprobar la distribución del tráfico L7LB yendo a Management Console > Servicios de red > Equilibrio de carga y haciendo clic en "menú avanzado". Desde aquí, vaya a "Servicios de backend" y haga clic en su backend de LB. Ahora puede ver el RPS por instancia dentro del backend. Si está utilizando 2 backends separados, puede verificar cada uno individualmente.

Si el servidor central de EE. UU. tiene un volumen mucho mayor, el uso de la CPU será mayor.

En cuanto a las comprobaciones de estado, usted tiene control total sobre la frecuencia de las comprobaciones (lo ideal es que coincida con la del servidor us-east). Puedes revisar tus comprobaciones de estado en Compute Engine > Comprobaciones de estado o desde la pantalla de detalles del balanceador de carga.

Siempre puedes aumentar la CPU sin aumentar la memoria, ya que ese es tu problema por el momento. Sin embargo, eso sólo aborda el síntoma, no el problema.

Lo anterior aborda qué buscar en el lado de Google Cloud Platform. Si el tráfico a ambas instancias es aproximadamente equivalente, comience a monitorear el rendimiento de su servidor para verificar qué está maximizando el uso de la CPU y asegurarse de que en realidad sea IIS y no otra aplicación.

información relacionada