Lista de comprobación: Procedimientos recomendados de SQL Server en máquinas virtuales de Azure
SE APLICA A:
SQL Server en máquina virtual de Azure
En este artículo se proporciona una lista de comprobación rápida como una serie de procedimientos recomendados e instrucciones para optimizar el rendimiento de SQL Server en máquinas virtuales (VM) de Azure.
Para obtener detalles completos, consulte otros artículos de esta serie: Lista de comprobación, Tamaño de máquina virtual, Almacenamiento, Seguridad, Configuración de HADR y Recopilación de la base de referencia.
Habilite SQL Assessment para SQL Server en máquinas virtuales de Azure y SQL Server se evaluará con los procedimientos recomendados y los resultados conocidos que se muestran en la página de administración de máquinas virtuales de SQL de Azure Portal.
Información general
Al ejecutar SQL Server en Azure Virtual Machines, siga usando las mismas opciones de ajuste de rendimiento de bases de datos aplicables a SQL Server en los entornos de servidor locales. Sin embargo, el rendimiento de una base de datos relacional en una nube pública depende de muchos factores, como el tamaño de una máquina virtual y la configuración de los discos de datos.
Por lo general, existe un equilibrio entre la optimización de los costos y la optimización del rendimiento. Esta serie de procedimientos recomendados de rendimiento se centra en cómo obtener el mejor rendimiento de SQL Server en las máquinas virtuales de Azure. Si su carga de trabajo es menos exigente, podría no necesitar todas las optimizaciones recomendadas. Tenga en cuenta sus necesidades de rendimiento, costos y patrones de carga de trabajo a medida que evalúa estas recomendaciones.
Tamaño de VM
La siguiente es una lista de comprobación rápida de los procedimientos recomendados de tamaño de máquinas virtuales para ejecutar la instancia de SQL Server en la máquina virtual de Azure:
- Use tamaños de VM con 4 vCPU o más, como Standard_M8-4ms, E4ds_v4 o DS12_v2 o superior.
- Use tamaños de máquinas virtuales optimizados para memoria para obtener el mejor rendimiento de las cargas de trabajo de SQL Server.
- Las series DSv2 11-15, Edsv4, M- y Mv2- ofrecen la proporción óptima de memoria por núcleo virtual necesaria para las cargas de trabajo de OLTP. Las máquinas virtuales de las series M ofrecen la mayor proporción de memoria por núcleo virtual necesaria para las cargas de trabajo críticas y, además, son ideales para cargas de trabajo de almacenamiento de datos.
- Considere una mayor proporción de memoria por núcleo virtual para cargas de trabajo críticas y de almacenamiento de datos.
- Use las imágenes de Marketplace de máquinas virtuales de Azure, ya que la configuración de SQL Server y las opciones de almacenamiento están configuradas para un rendimiento óptimo de SQL Server.
- Recopile las características de rendimiento de la carga de trabajo de destino y úselas para determinar el tamaño de VM adecuado para el negocio.
- Use la herramienta de recomendación de SKU de Data Migration Assistant para encontrar el tamaño de máquina virtual adecuado para la carga de trabajo de SQL Server existente.
Para obtener más información, vea los procedimientos recomendados de tamaño de máquinas virtuales generales.
Storage
La siguiente es una lista de comprobación rápida de los procedimientos recomendados de configuración del almacenamiento para ejecutar la instancia de SQL Server en la máquina virtual de Azure:
- Supervise la aplicación y determine los requisitos de ancho de banda y latencia de almacenamiento para los archivos de registros, de datos y de tipo tempdb de SQL Server antes de elegir el tipo de disco.
- Para optimizar el rendimiento del almacenamiento, planee el uso más alto de IOPS disponible sin almacenamiento en caché, y use el almacenamiento en caché de datos como característica de rendimiento para realizar lecturas de datos al tiempo que evita el límite de máquinas virtuales y discos.
- Coloque los archivos de datos, de registros y de tipo tempdb en unidades independientes.
- Para la unidad de datos, use solo discos prémium de P30 y P40 para garantizar la disponibilidad del soporte técnico de la caché.
- En cuanto a la unidad de registro, planee la capacidad y el rendimiento de prueba frente al costo al evaluar los discos prémium P30-P80.
- Si se requiere latencia de almacenamiento de submilisegundos, use los discos Ultra de Azure para el registro de transacciones.
- En el caso de las implementaciones de máquinas virtuales de la serie M, considere la posibilidad de usar el Acelerador de escritura en lugar de discos Ultra de Azure.
- Coloque el archivo tempdb en la unidad SSD local efímera (
D:\, de forma predeterminada) para la mayoría de las cargas de trabajo de SQL Server después de elegir el tamaño óptimo de máquina virtual.- Si la capacidad de la unidad local no es suficiente para tempdb, considere la posibilidad de cambiar el tamaño de la VM. Consulte las directivas de almacenamiento en caché de los archivos de datos para obtener más información.
- Divida varios discos de datos de Azure mediante los espacios de almacenamiento para aumentar el ancho de banda de E/S hasta los límites de rendimiento e IOPS de la máquina virtual de destino.
- Establezca el almacenamiento en caché del host en Solo lectura para los discos de archivos de datos.
- Establezca el almacenamiento en caché del host en Ninguno para los discos de archivos de datos.
- No habilite el almacenamiento en caché de lectura y escritura en discos que contengan archivos de SQL Server.
- Detenga siempre el servicio de SQL Server antes de cambiar la configuración de la memoria caché del disco.
- En las cargas de trabajo de desarrollo y pruebas, considere la posibilidad de usar almacenamiento estándar. No se recomienda usar HDD o SDD estándar para las cargas de trabajo de producción.
- La expansión de disco basada en crédito (P1-P20) solo se debe tener en cuenta para cargas de trabajo de desarrollo y pruebas más pequeñas y sistemas departamentales.
- Aprovisione la cuenta de almacenamiento en la misma región que la VM de SQL Server.
- Deshabilite el almacenamiento con redundancia geográfica de Azure (replicación geográfica) y use LRS (almacenamiento con redundancia local) en la cuenta de almacenamiento.
- Formatee el disco de datos para que use un tamaño de unidad de asignación de 64 KB para todos los archivos de datos ubicados en una unidad que no sea la unidad temporal
D:\(que tiene un valor predeterminado de 4 KB). Las VM de SQL Server implementadas a través de Azure Marketplace se ofrecen con discos de datos formateados con el tamaño de la unidad de asignación y la intercalación para el bloque de almacenamiento establecido en 64 KB.
Para obtener más información, vea los procedimientos recomendados de almacenamiento generales.
características de SQL Server
A continuación se muestra una lista de comprobación rápida de los procedimientos recomendados para las opciones de configuración de SQL Server al ejecutar las instancias de SQL Server en una máquina virtual de Azure en producción:
- Habilite la compresión de páginas de base de datos cuando corresponda.
- Habilite la compresión de copias de seguridad.
- Habilite la inicialización instantánea de archivos para archivos de datos.
- Limite el crecimiento automático de la base de datos.
- Deshabilite la reducción automática de la base de datos.
- Deshabilite el cierre automático de la base de datos.
- Mueva todas las bases de datos a discos de datos, incluidas las bases de datos del sistema.
- Mueva los directorios de archivos de seguimiento y registros de errores de SQL Server a discos de datos.
- Configure ubicaciones predeterminadas para los archivos de base de datos y copia de seguridad.
- Establezca el límite máximo de memoria de SQL Server para dejar memoria suficiente para el sistema operativo. (Aproveche Memoria: Bytes disponibles para supervisar el estado de la memoria del sistema operativo).
- Habilite el bloqueo de las páginas en la memoria.
- Habilite la optimización para cargas de trabajo ad hoc para entornos pesados de OLTP.
- Evalúe y aplique las actualizaciones acumulativas más recientes para las versiones instaladas de SQL Server.
- Habilite Almacén de consultas en todas las bases de datos de SQL Server de producción siguiendo los procedimientos recomendados.
- Habilite el ajuste automático en bases de datos de aplicaciones críticas.
- Asegúrese de que se sigan todos los procedimientos recomendados de tempdb.
- Coloque tempdb en la unidad efímera D:/.
- Use el número recomendado de archivos, mediante varios archivos de datos tempdb, empezando por 1 archivo por núcleo, hasta 8 archivos.
- Programe trabajos del Agente SQL Server para ejecutar DBCC CHECKDB, reorganizar índices, recompilar índices y actualizar estadísticas.
- Supervise y administre el estado y el tamaño del archivo de registro de transacciones de SQL Server.
- Aproveche las ventajas de las nuevas características de SQL Server disponibles para la versión que se va a usar.
- Tenga en cuenta las diferencias en las características admitidas entre las ediciones que está considerando implementar.
de Windows Azure
La siguiente es una lista de comprobación rápida de los procedimientos recomendados para una guía específica de Azure al ejecutar la instancia de SQL Server en una máquina virtual de Azure:
- Regístrese con la extensión Agente de IaaS de SQL para desbloquear una serie de ventajas de las características.
- Aproveche la mejor estrategia de copia de seguridad y restauración para la carga de trabajo de SQL Server.
- Asegúrese de que la opción Redes aceleradas esté habilitada en la máquina virtual.
- Aproveche Microsoft Defender for Cloud para mejorar la posición de seguridad general de la implementación de la máquina virtual.
- Aproveche Microsoft Defender for Cloud, integrado en Microsoft Defender for Cloud, para una cobertura de VM de SQL Server específica, incluidas las valoraciones de vulnerabilidades y el acceso Just-In-Time, lo que reduce el servicio de ataques y permite a los usuarios legítimos acceder a las máquinas virtuales cuando sea necesario. Para más información, consulte evaluaciones de vulnerabilidades, habilite evaluaciones de vulnerabilidades para VM de SQL Server y acceso Just-In-Time.
- Aproveche Azure Advisor para abordar las recomendaciones de rendimiento, costo, confiabilidad, excelencia operativa y seguridad.
- Aproveche Azure Monitor para recopilar, analizar y actuar sobre los datos de telemetría del entorno de SQL Server. Esto incluye la detección de problemas de infraestructura con VM Insights y la supervisión de datos con Log Analytics para un diagnóstico más profundo.
- Habilite el apagado automático para entornos de desarrollo y pruebas.
- Implemente una solución de alta disponibilidad y recuperación ante desastres (HADR) que cumpla los SLA de continuidad empresarial. Consulte las opciones de HADR disponibles para SQL Server en VM de Azure.
- Use Azure Portal (soporte técnico y solución de problemas) para evaluar el historial y el estado de los recursos, y enviar nuevas solicitudes de soporte técnico cuando sea necesario.
Configuración de alta disponibilidad y recuperación ante desastres
Las características de alta disponibilidad y recuperación ante desastres (HADR) como, por ejemplo, el grupo de disponibilidad Always On y la instancia de clúster de conmutación por error, se basan en la tecnología subyacente de clúster de conmutación por error de Windows Server. Revise los procedimientos recomendados para modificar la configuración de HADR para admitir mejor el entorno en la nube.
Para el clúster de Windows, tenga en cuenta estos procedimientos recomendados:
- Implemente las máquinas virtuales con SQL Server en varias subredes siempre que sea posible para evitar la dependencia de un nombre de red distribuida (DNN) o una instancia de Azure Load Balancer para enrutar el tráfico a la solución de alta disponibilidad y recuperación ante desastres.
- Cambie el clúster a parámetros menos agresivos para evitar interrupciones inesperadas de errores de red transitorios o mantenimiento de la plataforma de Azure. Para más información, consulte la configuración de latidos y umbrales. Para Windows Server 2012 y versiones posteriores, utilice los siguientes valores recomendados:
- SameSubnetDelay: 1 segundo
- SameSubnetThreshold: 40 latidos
- CrossSubnetDelay: 1 segundo
- CrossSubnetThreshold: 40 latidos
- Coloque las máquinas virtuales en un conjunto de disponibilidad o en distintas zonas de disponibilidad. Para más información, consulte Configuración de disponibilidad de máquinas virtuales.
- Use una sola NIC por nodo de clúster y una sola subred.
- Configure la votación de cuórum de clúster para usar 3 o más números de votos impares. No asigne votos a las regiones de recuperación ante desastres.
- Supervise detenidamente los límites de recursos para evitar reinicios inesperados o conmutaciones por error debido a restricciones de recursos.
- Asegúrese de que el sistema operativo, controladores y SQL Server disponen de las versiones más recientes.
- Optimice el rendimiento de SQL Server en las máquinas virtuales de Azure. Revise las demás secciones de este artículo para obtener más información.
- Reduzca o extienda la carga de trabajo para evitar límites de recursos.
- Cambie a una máquina virtual o disco cuyos límites sean más altos para evitar restricciones.
Para el grupo de disponibilidad SQL Server o la instancia de clúster de conmutación por error, tenga en cuenta estos procedimientos recomendados:
- Si experimenta errores inesperados con frecuencia, siga los procedimientos recomendados de rendimiento descritos en este artículo.
- Si la optimización del rendimiento de las máquinas virtuales SQL Server no resuelve las conmutaciones por error inesperadas, considere la posibilidad de relajar la supervisión para el grupo de disponibilidad o la instancia de clúster de conmutación por error. Sin embargo, es posible que no se pueda solucionar el origen subyacente de la incidencia y podría enmascarar los síntomas al reducir la probabilidad de error. Es posible que tenga que investigar y abordar la causa principal subyacente. Para Windows Server 2012 y versiones posteriores, utilice los siguientes valores recomendados:
- Tiempo de espera de concesión: use esta ecuación para calcular el valor máximo de tiempo de espera de concesión:
Lease timeout < (2 * SameSubnetThreshold * SameSubnetDelay).
Comience con 40 segundos. Si usa los valoresSameSubnetThresholdySameSubnetDelayflexibles recomendados anteriormente, no supere los 80 segundos para el valor de tiempo de espera de concesión. - Número máximo de errores en un período especificado: puede establecer este valor en 6.
- Tiempo de espera de comprobación de estado: puede establecer este valor en 60000 inicialmente y luego ajustarlo según sea necesario.
- Tiempo de espera de concesión: use esta ecuación para calcular el valor máximo de tiempo de espera de concesión:
- Cuando use el nombre de red virtual (VNN) y Azure Load Balancer para conectarse a una solución de alta disponibilidad y recuperación ante desastres, especifique
MultiSubnetFailover = trueen la cadena de conexión, incluso si el clúster solo abarca una subred.- Si el cliente no admite
MultiSubnetFailover = True, es posible que deba establecerRegisterAllProvidersIP = 0yHostRecordTTL = 300para copiar en caché las credenciales de cliente durante períodos más cortos. Sin embargo, esto puede provocar consultas adicionales en el servidor DNS.
- Si el cliente no admite
- Para conectarse a la solución HADR mediante el nombre de red distribuida (DNN), tenga en cuenta lo siguiente:
- Debe usar un controlador cliente que admita
MultiSubnetFailover = Truey este parámetro debe estar en la cadena de conexión. - Use un puerto DNN único en la cadena de conexión al conectarse al cliente de escucha de DNN para un grupo de disponibilidad.
- Debe usar un controlador cliente que admita
- Use una cadena de conexión de creación de reflejo de la base de datos para que un grupo de disponibilidad básico omita la necesidad de un equilibrador de carga o DNN.
- Valide el tamaño del sector de los discos duros virtuales antes de implementar la solución de alta disponibilidad para evitar tener E/S mal alineadas. Consulte KB3009974 para más información.
Para obtener más información, consulte los procedimientos recomendados de HADR.
Pasos siguientes
Para obtener más información, vea los demás artículos de esta serie:
Para ver los procedimientos recomendados de seguridad, consulte Consideraciones de seguridad para SQL Server en Azure Virtual Machines.
Considere la posibilidad de habilitar SQL Assessment para SQL Server en máquinas virtuales de Azure
Revise otros artículos sobre la máquina virtual de SQL Server en Introducción a SQL Server en Azure Virtual Machines. Si tiene alguna pregunta sobre las máquinas virtuales de SQL Server, consulte las Preguntas más frecuentes.