sql >> Base de Datos >  >> RDS >> Sqlserver

¿Qué es DTU en Azure SQL Database y cómo averiguar cuánto necesitamos?

Microsoft Azure proporciona un motor de base de datos de plataforma como servicio (PaaS) a través de la plataforma de base de datos SQL de Azure, de modo que podamos usar esta base de datos para las aplicaciones basadas en la nube. La principal ventaja de Azure SQL Database es que permite escalar fácilmente sin tiempo de inactividad y no requiere ningún proceso de actualización o aplicación de parches. Además, no tenemos que preocuparnos por problemas de hardware.

Sin embargo, la consideración importante de Azure SQL Database es cumplir con el requisito de rendimiento de la base de datos implementada con el costo mínimo. Sin duda, nadie quiere pagar dinero por los recursos o características redundantes que no usa o planea usar.

En este punto, Microsoft Azure ofrece dos modelos de compra diferentes para brindar rentabilidad:

  • Modelo de compra basado en la unidad de transacción de base de datos (DTU).
  • Modelo de compra basado en núcleo virtual (vCore)

Una decisión de modelo de compra afecta directamente el rendimiento de la base de datos y el monto total de las facturas. En mi opinión, si la base de datos implementada no consumirá demasiados recursos, el modelo de compra basado en DTU será más adecuado.

Ahora, discutiremos los detalles sobre estos dos modelos de compra en las siguientes secciones.

Modelo de compra basado en unidades de transacción de base de datos (DTU)

Para comprender más claramente el modelo de compra basado en DTU, debemos aclarar qué tiene sentido DTU en Azure SQL Database. DTU es una abreviatura de "Unidad de transacción de base de datos" y describe una métrica de unidad de rendimiento para Azure SQL Database. Podemos igualar la DTU a los caballos de fuerza en un automóvil porque afecta directamente el rendimiento de la base de datos. DTU representa una combinación de las siguientes métricas de rendimiento como una única unidad de rendimiento para Azure SQL Database:

  • CPU
  • Memoria
  • E/S de datos y E/S de registro

La idea principal del concepto DTU es ofrecer una configuración de recursos preconfigurada a los clientes para que simplifique la escala del rendimiento sobre una sola métrica. Por ejemplo, si necesitamos más rendimiento, podemos deslizar la barra y aumentar la cantidad de DTU en Azure SQL Database.

El modelo de compra basado en DTU contiene tres niveles de servicio diferentes y estos niveles de servicio ofrecen diferentes DTU y opciones de funciones. La siguiente tabla ilustra los niveles de servicio que han tomado parte en el modelo de compra basado en DTU.

Básico

Estándar

Premium

Carga de trabajo objetivo

Desarrollo y producción

Desarrollo y producción

Desarrollo y producción

SLA de tiempo de actividad

99,99 %

99,99 %

99,99 %

Retención máxima de copias de seguridad

7 días

35 días

35 días

CPU

Bajo

Bajo, Medio, Alto

Medio, Alto

Rendimiento de E/S (aproximado)

1-5 IOPS por DTU

1-5 IOPS por DTU

25 IOPS por DTU

Latencia de E/S (aproximada)

5 ms (lectura), 10 ms (escritura)

5 ms (lectura), 10 ms (escritura)

2 ms (lectura/escritura)

Indización de almacén de columnas

N/D

S3 y superior

Compatible

OLTP en memoria

N/D

N/D

Compatible

DTU máximo

5

3000 (S12)

4000 (P15)

Tamaño máximo de almacenamiento

2GB

250GB

1TB

Como podemos ver, las DTU máximas y las funciones varían según su nivel de servicio. Además, el modelo de precios se cambiará en relación con el nivel de servicio. Por ejemplo, la siguiente configuración para una sola base de datos en el modelo de compra basado en DTU será de $584,00 por mes.

Piscina Elástica

En resumen, Elastic Pool nos ayuda a administrar y escalar automáticamente las múltiples bases de datos que tienen demandas de recursos variables e impredecibles en un grupo de recursos compartidos. A través de Elastic Pool, no necesitamos escalar las bases de datos continuamente contra la fluctuación de la demanda de recursos. Las bases de datos que forman parte del grupo consumen los recursos del grupo elástico cuando se necesitan, pero no pueden exceder las limitaciones de recursos del grupo elástico para que proporcione una solución rentable.

Estimación adecuada de la DTU para Azure SQL Database

Después de decidir usar el modelo de compra basado en DTU, tenemos que encontrar la siguiente pregunta-respuesta con razones lógicas:

  • ¿Qué nivel de servicio y cuántas DTU se requieren para mi carga de trabajo al migrar a Azure SQL?

DTU Calculator será la solución principal para estimar los requisitos de DTU cuando migremos bases de datos locales a Azure SQL Database. La idea principal de esta herramienta es capturar la utilización de diversas métricas del servidor SQL existente que afecta a las DTU y luego intenta estimar aproximadamente las DTU y el nivel de servicio a la luz de las utilizaciones de rendimiento recopiladas. La calculadora de DTU recopila las siguientes métricas a través de la utilidad de línea de comandos o el script de PowerShell y las guarda en un archivo CSV.

  • Procesador:% de tiempo de procesador
  • Disco lógico:lecturas de disco/seg
  • Disco lógico:escrituras en disco/seg
  • Base de datos - Bytes de registro vaciados/seg

En este artículo, aprenderemos el uso de la utilidad de línea de comandos porque este es un proyecto de código abierto y los códigos están alojados en GitHub. Por lo tanto, podemos hacer cambios fácilmente si lo necesitamos. Después de descargar y descomprimir la utilidad de línea de comandos, dos archivos vendrán frente a nosotros.

SqlDtuPerfmon.exe.config nos ayuda a determinar algunos parámetros de la utilidad de línea de comandos:

CsvPath especifica la ruta del archivo CSV donde se almacenarán las métricas recopiladas.

SampleInterval especifica en cuántos segundos se recopilarán las muestras

MaxSamples especifica el número máximo de muestras que se recopilarán.

Llegados a este punto, tenemos que tener en cuenta algunas consideraciones sobre la Calculadora DTU. DTU Calculator recopila la utilización total de las métricas en la computadora. Por esta razón, los demás procesos que afectan el consumo de CPU, memoria y disco deben detenerse; de ​​lo contrario, será difícil realizar una estimación precisa de las DTU. Otro problema es que, en la medida de lo posible, debemos recopilar la utilización de las métricas que cubren los intervalos de tiempo de carga de trabajo máxima. De esta forma, la Calculadora de DTU ofrece las mejores recomendaciones y averiguamos el requerimiento máximo de DTU con una estimación más aproximada. Ahora, ejecutaremos SqlDtuPerfmon.exe y comenzará directamente a recopilar la utilización de recursos y guardará el archivo CSV especificado.

Después de completar la recopilación de la utilización de recursos, ingresaremos el número de núcleos y cargaremos el archivo CSV en el sitio web de la Calculadora de DTU.

Cuando hacemos clic en el botón Calcular, en primer lugar, el gráfico circular Nivel de servicio/Nivel de rendimiento aparece en la pantalla y muestra las sugerencias de nivel de servicio estimadas divididas en porciones con los detalles porcentuales. Según la calculadora de DTU, el nivel Estándar - S6 proporcionará un rendimiento satisfactorio para esta carga de trabajo.

Justo debajo de este gráfico, se muestra el gráfico de DTU a lo largo del tiempo y este gráfico representa el cambio de DTU con respecto al período de tiempo. Antes de evaluar este cuadro, podemos agregar algunos datos adicionales para interpretarlo más fácilmente.

Como puede ver, el gráfico de líneas representa una carga de trabajo inestable, pero tuvo más sentido cuando agregamos notas de información. En mi opinión, este gráfico es muy útil para comprender la interacción entre los cambios de carga de trabajo y las DTU. Por lo tanto, podemos hacer una estimación más adecuada de las DTU requeridas. Como mencionamos al principio del artículo, nuestro principal objetivo debe ser encontrar una solución rentable para la carga de trabajo.

Sin embargo, estas sugerencias no expresan los requisitos precisos de la DTU en Azure SQL. Por este motivo, es posible que debamos cambiar el nivel de servicio o el modelo de compra después de la implementación de la base de datos en Azure SQL.

Cuando hacemos clic en Ver más detalles, se mostrarán algunos informes adicionales y estos informes representan las recomendaciones individuales para las utilizaciones de recursos de CPU, IOPS y registro. Serán muy útiles para comprender particularmente estos usos.

Modelo de compras basado en núcleo virtual (vCore)

Este concepto es similar al enfoque tradicional porque podemos decidir cada recurso de la base de datos. Podemos organizar las opciones de VCores y tamaño máximo de datos manualmente en este modelo. Sin embargo, no podemos determinar el recurso de memoria. Cada VCore viene con memoria dedicada y el valor dedicado de la memoria depende de la generación de los VCore.

Por último, en este modelo podemos elegir los siguientes niveles de servicio:

  • Propósito general.
  • Crítico para la empresa.
  • Hiperescala

Conclusión

En este artículo, exploramos los modelos de compra de Azure SQL Database y descubrimos las instrucciones de uso de la calculadora de DTU para estimar las DTU requeridas en Azure SQL para bases de datos locales.