Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O que é DTU no Banco de Dados SQL do Azure e como descobrir quanto precisamos


O Microsoft Azure fornece o Mecanismo de Banco de Dados de Plataforma como Serviço (PaaS) por meio da plataforma do Banco de Dados SQL do Azure, para que possamos usar esse banco de dados para os aplicativos baseados em nuvem. A principal vantagem do Banco de Dados SQL do Azure é permitir o dimensionamento fácil com tempo de inatividade zero e não requer nenhum processo de atualização ou aplicação de patches. Além disso, não precisamos nos preocupar com problemas de hardware.

No entanto, a consideração significativa do Banco de Dados SQL do Azure é atender ao requisito de desempenho do banco de dados implantado em relação ao custo mínimo. Sem dúvida, ninguém quer pagar pelos recursos ou recursos redundantes que não usa ou planeja usar.

Neste ponto, o Microsoft Azure oferece dois modelos de compra diferentes para oferecer eficiência de custo:
  • Modelo de compra baseado em unidade de transação de banco de dados (DTU).
  • Modelo de compra baseado no núcleo virtual (vCore)

Uma decisão de modelo de compra afeta diretamente o desempenho do banco de dados e o valor total das contas. Na minha opinião, se o banco de dados implantado não consumir muitos recursos, o modelo de compra baseado em DTU será mais adequado.

Agora, discutiremos os detalhes sobre esses dois modelos de compra nas seções a seguir.

Modelo de compra baseado em unidade de transação de banco de dados (DTU)


Para entender mais claramente o modelo de compra baseado em DTU, precisamos esclarecer o que faz sentido DTU no Banco de Dados SQL do Azure. DTU é uma abreviação de “Database Transaction Unit” e descreve uma métrica de unidade de desempenho para o Banco de Dados SQL do Azure. Podemos comparar o DTU com a potência de um carro porque afeta diretamente o desempenho do banco de dados. A DTU representa uma mistura das seguintes métricas de desempenho como uma única unidade de desempenho para o Banco de Dados SQL do Azure:
  • CPU
  • Memória
  • E/S de dados e E/S de log



A ideia principal do conceito de DTU é oferecer uma configuração de recursos pré-configurada aos clientes para que simplifique o dimensionamento do desempenho em uma única métrica. Por exemplo, se precisarmos de mais desempenho, podemos deslizar a barra e aumentar o número de DTUs no Banco de Dados SQL do Azure.



O modelo de compra baseado em DTU contém três níveis de serviço diferentes e esses níveis de serviço oferecem diferentes DTUs e opções de recursos. A tabela a seguir ilustra os níveis de serviço que fizeram parte do modelo de compra baseado em DTU.

Básico

Padrão

Premium

Carga de trabalho desejada

Desenvolvimento e produção

Desenvolvimento e produção

Desenvolvimento e produção

SLA de tempo de atividade

99,99%

99,99%

99,99%

Retenção máxima de backup

7 dias

35 dias

35 dias

CPU

Baixo

Baixo Médio Alto

Médio, Alto

Taxa de transferência de E/S (aproximada)

1-5 IOPS por DTU

1-5 IOPS por DTU

25 IOPS por DTU

Latência de E/S (aproximada)

5 ms (leitura), 10 ms (gravação)

5 ms (leitura), 10 ms (gravação)

2 ms (leitura/gravação)

Indexação de armazenamento de colunas

N / D

S3 e acima

Compatível

OLTP na memória

N / D

N / D

Compatível

DTU máximo

5

3000 (S12)

4000 (P15)

Tamanho máximo de armazenamento

2 GB

250 GB

1 TB

Como podemos ver, as DTUs e recursos máximos variam de acordo com o nível de serviço. Além disso, o modelo de preços será alterado em relação ao nível de serviço. Por exemplo, a configuração a seguir para um único banco de dados no modelo de compra baseado em DTU será de US$ 584,00 por mês.




Piscina elástica


Resumidamente, o Elastic Pool nos ajuda a gerenciar e dimensionar automaticamente os vários bancos de dados que têm demandas de recursos imprevisíveis e variáveis ​​em um pool de recursos compartilhado. Por meio do Elastic Pool, não precisamos dimensionar os bancos de dados continuamente em relação à flutuação da demanda de recursos. Os bancos de dados que fazem parte do pool consomem os recursos do Elastic Pool quando são necessários, mas não podem exceder as limitações de recursos do Elastic Pool para fornecer uma solução econômica.

Estimativa adequada da DTU para o Banco de Dados SQL do Azure


Depois de decidir usar o modelo de compra baseado em DTU, temos que descobrir a seguinte pergunta-resposta com motivos lógicos:
  • Qual ​​nível de serviço e quantas DTUs são necessárias para minha carga de trabalho ao migrar para o Azure SQL?

A Calculadora de DTU será a principal solução para estimar o requisito de DTUs quando estivermos migrando bancos de dados locais para o Banco de Dados SQL do Azure. A ideia principal dessa ferramenta é capturar a utilização de várias métricas do SQL Server existente que afeta as DTUs e, em seguida, tenta estimar aproximadamente as DTUs e a camada de serviço à luz das utilizações de desempenho coletadas. A calculadora DTU coleta as seguintes métricas por meio do Utilitário de linha de comando ou do PowerShell Script e salva essas métricas em um arquivo CSV.
  • Processador - % de tempo do processador
  • Disco Lógico - Leituras de Disco/s
  • Disco lógico - Gravações de disco/s
  • Banco de dados - Bytes de log liberados/s

Neste artigo, aprenderemos o uso do Command-Line Utility porque este é um projeto de código aberto e os códigos são hospedados no GitHub. Assim, podemos fazer alterações facilmente se precisarmos. Depois de baixar e descompactar o utilitário de linha de comando, dois arquivos virão à nossa frente.



SqlDtuPerfmon.exe.config nos ajuda a determinar alguns parâmetros do utilitário de linha de comando:

CsvPath especifica o caminho do arquivo CSV onde as métricas coletadas serão armazenadas.

SampleInterval especifica em quantos segundos os intervalos as amostras serão coletadas

MaxSamples especifica o número máximo de amostras que serão coletadas.



Neste ponto, temos que levar em conta algumas considerações sobre a Calculadora DTU. A Calculadora de DTU coleta a utilização total das métricas no computador. Por esta razão, os outros processos que afetam o consumo de CPU, memória e disco devem ser interrompidos, caso contrário será difícil fazer uma estimativa precisa de DTUs. Outra questão é que, na medida do possível, precisamos reunir a utilização das métricas que cobrem os intervalos de tempo de pico de carga de trabalho. Dessa forma, a Calculadora de DTU oferece as melhores recomendações e descobrimos o requisito máximo de DTUs com uma estimativa mais aproximada. Agora, executaremos o SqlDtuPerfmon.exe e ele começará diretamente a coletar a utilização de recursos e salvar o arquivo CSV especificado.



Após a conclusão da coleta da utilização dos recursos, inseriremos o número de núcleos e enviaremos o arquivo CSV para o site da Calculadora DTU.



Quando clicamos no botão Calcular, primeiro, o gráfico de pizza Nível de serviço/Nível de desempenho aparece na tela e mostra as sugestões de nível de serviço estimadas divididas em fatias com os detalhes de porcentagem. De acordo com o DTU Calculator, o nível Standard - S6 fornecerá um desempenho satisfatório para essa carga de trabalho.



Logo abaixo deste gráfico, o gráfico de DTUs ao longo do tempo é mostrado e este gráfico representa as DTUs mudando em relação ao período de tempo. Antes de avaliar este gráfico, podemos adicionar algumas informações adicionais para interpretá-lo mais facilmente.



Como você pode ver, o gráfico de linhas representa uma carga de trabalho instável, mas fez mais sentido quando adicionamos notas informativas. Na minha opinião, este gráfico é muito útil para entender a interação entre as mudanças de carga de trabalho e as DTUs. Assim, podemos fazer uma estimativa mais adequada das DTUs necessárias. Como mencionamos na entrada do artigo, nosso principal objetivo deve ser encontrar uma solução econômica para a carga de trabalho.

No entanto, essas sugestões não expressam os requisitos precisos da DTU no Azure SQL. Por esse motivo, talvez seja necessário alterar a Camada de Serviço ou o Modelo de Compra após a implantação do banco de dados no Azure SQL.

Quando clicamos em Exibir mais detalhes, alguns relatórios adicionais serão mostrados e esses relatórios representam as recomendações individuais para utilizações de recursos de CPU, IOPS e Log. Eles serão muito úteis para entender particularmente essas utilizações.


Modelo de compra baseado em núcleo virtual (vCore)


Este conceito é semelhante à abordagem tradicional porque podemos decidir cada recurso do banco de dados. Podemos organizar manualmente as opções de VCores e tamanho máximo de dados neste modelo. No entanto, não podemos determinar o recurso de memória. Cada VCore vem com memória dedicada e o valor dedicado da memória depende da geração dos VCores.



Por último, neste modelo podemos escolher os seguintes níveis de serviço:
  • Propósito Geral.
  • Crítico para os negócios.
  • Hiperescala

Conclusão


Neste artigo, exploramos os modelos de compra do Banco de Dados SQL do Azure e descobrimos as instruções de uso da Calculadora de DTU para estimar a DTU necessária no SQL do Azure para bancos de dados locais.