-
PratikLad 1,125 Puntos de reputación Personal externo de Microsoft Moderator
2025-04-30T11:38:33.5133333+00:00 Hola Ramiro Larenas
Hay múltiples razones por las que el rendimiento puede degradarse después de la migración a Azure Database for MySQL:
- Latencia de red: Como se ha cambiado de una arquitectura monolítica a una distribuida, las consultas que antes se ejecutaban de manera local ahora deben viajar a través de la red, lo que puede causar latencia. Para solucionarlo, asegúrate de que tanto la aplicación como la base de datos estén en la misma región de Azure y en la misma Red Virtual (VNet) para minimizar la latencia.
- Conexiones SSL obligatorias: Azure Database for MySQL requiere conexiones SSL por defecto, lo que conlleva una sobrecarga con cada conexión. Puedes usar un mecanismo de agrupación de conexiones que solo requiera el protocolo SSL inicial para optimizar y reducir la sobrecarga de creación de conexiones SSL.
Las consultas que no están optimizadas pueden tener un impacto significativo en el rendimiento cuando se ejecutan en un entorno distribuido. Además, los índices podrían faltar después de la migración, lo que puede causar exploraciones completas de tablas, provocando tiempos de respuesta degradados. Usa la herramienta
EXPLAIN
para analizar las consultas y sus planes de ejecución y optimizarlas según sea necesario. También verifica si es necesario agregar nuevos índices en consultas que se ejecuten frecuentemente para que tengan un rendimiento óptimo.Asegúrate de que la configuración actual del servidor pueda manejar la carga de trabajo, especialmente si provienes de un entorno con recursos dedicados.
Pasos para configurar la máquina para conectarse mediante IP privada al servicio Azure Database for MySQL Flexible Server (Private Access y métodos similares):
Como el servidor está en una red virtual, solo puedes conectarte desde otros servicios de Azure que estén en la misma red virtual que el servidor. Para conectarte y administrar el servidor, la máquina virtual debe estar creada en la misma región y la misma suscripción. Se puede utilizar una máquina virtual Linux como túnel SSH para administrar tu servidor de base de datos.
Conectarse a la máquina virtual mediante SSH
Abre un terminal Bash o PowerShell y ejecuta el siguiente comando para conectarte a tu VM. Asegúrate de reemplazar:
-
10.111.12.123
con la dirección IP pública de tu máquina virtual. -
.\Downloads\myKey1.pem
con la ruta correcta al archivo.pem
de tu clave.
ssh -i .\Downloads\myKey1.pem azureuser@10.111.12.123
Instalar el cliente MySQL en la máquina virtual
Para interactuar con tu servidor MySQL en Azure, instala el cliente MySQL en tu máquina virtual:
sudo apt-get update sudo apt-get install mysql-client
Descargar el certificado SSL
Azure exige SSL para conexiones MySQL. Descarga el certificado raíz de DigiCert:
wget --no-check-certificate https://dl.cacerts.digicert.com/DigiCertGlobalRootCA.crt.pem
Conectarse al servidor MySQL de Azure
Una vez que el cliente y el certificado estén listos, conéctate de forma segura usando:
mysql -h mydemoserver.mysql.database.azure.com -u mydemouser -p \ --ssl-mode=REQUIRED \ --ssl-ca=DigiCertGlobalRootCA.crt.pem
Para más información, consulta: Conexión a Azure Database for MySQL - Flexible Server con el método de acceso privado.
Hola Adithya,
Primero que todo, muchas gracias por tu detallada respuesta. La información que me proporcionaste ha sido de gran ayuda para entender mejor los factores que podrían estar afectando el rendimiento.
Como próximo paso, para poder descartar que la degradación del rendimiento esté relacionada a la red pública o a temas de latencia/seguridad (por ejemplo SSL overhead), nos gustaría realizar un laboratorio de conexión directa desde una máquina virtual (VM) en Azure, conectada a la misma red virtual (VNet) que el servidor de base de datos Azure MySQL Flexible Server (usando Private Endpoint o VNet Integration).
Por favor, ¿podrían apoyarnos o guiarnos paso a paso en el siguiente escenario?:
Crear una máquina virtual (Linux) en Azure en la misma VNet o en una VNet emparejada correctamente configurada. (Nota: La máquiba ya está creada y funcionando)
Nos indiques los próximos pasos para configurar la máquina para conectarse vía IP privada al servicio Azure Database for MySQL Flexible Server (Private Access y/o similar).
Validar la conectividad de bajo nivel (ping, telnet, etc.) hacia el puerto de MySQL (3306).
Realizar algunas pruebas de ejecución de queries para comparar latencias y tiempos de respuesta contra la conexión pública.
Muchas gracias nuevamente por su apoyo.
Saludos,
Ramiro Larenas