Parâmetro de comparação de DTU

Aplica-se a: Banco de Dados SQL do Azure

Uma DTU (unidade de transação do banco de dados) é uma unidade de medida que representa uma medida combinada de CPU, memória, leituras e gravações. As características físicas (CPU, memória, E/S) associadas a cada medida de DTU são calibradas por meio de um parâmetro de comparação que simula a carga de trabalho do banco de dados real. Este artigo resume o parâmetro de comparação de DTU e compartilha informações sobre o esquema, os tipos de transação usados, a combinação de cargas de trabalho, os usuários e o ritmo, as regras de escala e as métricas associadas ao parâmetro de comparação.

Para obter informações gerais sobre o modelo de compra baseado em DTU, confira a Visão geral do modelo de compra baseado em DTU.

Resumo do parâmetro de comparação

O parâmetro de comparação de DTU mede o desempenho de um conjunto de operações básicas do banco de dados que ocorrem com mais frequência em cargas de trabalho OLPT (processamento de transações online). Embora o parâmetro de comparação seja projetado com a computação em nuvem em mente, o esquema do banco de dados, o preenchimento dos dados e as transações foram projetados para ser amplamente representativos dos elementos básicos mais comumente usados em cargas de trabalho OLTP.

Correlacionando resultados do parâmetro de comparação ao desempenho de um banco de dados real

É importante entender que todos os parâmetros de comparação são apenas representativos e indicativos. As taxas de transação obtidas com o aplicativo de parâmetro de comparação não serão iguais às que podem ser obtidas com outros aplicativos. O parâmetro de comparação compreende um conjunto de tipos de transação diferentes executados em um esquema com uma variedade de tabelas e de tipos de dados. Embora o parâmetro de comparação exercite as mesmas operações básicas comuns a todas as cargas de trabalho OLTP, ele não representa nenhuma classe específica de banco de dados ou de aplicativo. A meta do parâmetro de comparação é fornecer um guia razoável para o desempenho relativo de um banco de dados que pode ser esperado ao escalar ou reduzir verticalmente entre os tamanhos da computação.

Na realidade, os bancos de dados de diferentes tamanhos e complexidade, lidam com combinações diferentes de cargas de trabalho e responderão de formas diferentes. Por exemplo, um aplicativo de E/S intensiva pode atingir os limites de E/S mais cedo ou um aplicativo de uso intensivo de CPU pode atingir os limites de CPU mais cedo. Não há nenhuma garantia de que qualquer banco de dados específico será dimensionado da mesma forma que o parâmetro de comparação em um aumento da carga.

O parâmetro de comparação e a respectiva metodologia são descritos mais detalhadamente neste artigo.

Esquema

O esquema foi projetado para ter variedade e complexidade suficiente para dar suporte a uma ampla gama de operações. O parâmetro de comparação é executado em um banco de dados composto por seis tabelas. As tabelas recaem em três categorias: tamanho fixo, em escala e crescente. Há duas tabelas de tamanho fixo; três tabelas em escala e uma tabela crescente. As tabelas de tamanho fixo têm um número constante de linhas. As tabelas em escala têm uma cardinalidade proporcional ao desempenho do banco de dados, mas não são alteradas durante o parâmetro de comparação. A tabela crescente é dimensionada como uma tabela em escala na carga inicial, mas depois a cardinalidade é alterada no curso da execução do parâmetro de comparação à medida que as linhas são inseridas e excluídas.

O esquema inclui uma combinação de tipos de dados, incluindo inteiros, numéricos, caracteres e data/hora. O esquema inclui chaves primárias e secundárias, mas nenhuma chave estrangeira – ou seja, não há restrições de integridade referencial entre as tabelas.

Um programa de geração de dados gera os dados para o banco de dados inicial. Os dados numéricos e inteiros são gerados com várias estratégias. Em alguns casos, os valores são distribuídos aleatoriamente em um intervalo. Em outros casos, um conjunto de valores é aleatoriamente permutado para garantir que uma distribuição específica seja mantida. Os campos de texto são gerados de uma lista ponderada de palavras para gerar dados de aparência realista.

O banco de dados é dimensionado com base em um fator de escala. O fator de escala (abreviado como SF) determina a cardinalidade das tabelas em escala e crescentes. Conforme descrito abaixo na seção Usuários e Definição, o tamanho do banco de dados, o número de usuários e o desempenho máximo são dimensionados proporcionalmente entre si.

Transactions

A carga de trabalho consiste em nove tipos de transação, conforme mostrado na tabela a seguir. Cada transação é projetada para realçar um conjunto de características do sistema em particular no mecanismo de banco de dados e no hardware do sistema, com alto contraste em relação às outras transações. Essa abordagem facilita a avaliação do impacto dos diferentes componentes no desempenho geral. Por exemplo, a transação "Leitura Intensa" gera um número significativo de operações de leitura do disco.

Tipo de transação Descrição
Leitura Simples SELECT; na memória; somente leitura
Leitura Média SELECT; maior parte na memória; somente leitura
Leitura Intensa SELECT; maior parte fora da memória; somente leitura
Atualização Simples UPDATE; na memória; leitura/gravação
Atualização Intensa UPDATE; maior parte fora da memória; leitura/gravação
Inserção Simples INSERT; na memória; leitura/gravação
Inserção Intensa INSERT; maior parte fora da memória; leitura/gravação
Excluir DELETE; combinação de na memória e não na memória; leitura/gravação
CPU Intensa SELECT; na memória; carga de CPU relativamente intensa; somente leitura

Combinação de carga de trabalho

As transações são selecionadas aleatoriamente em uma distribuição ponderada com a combinação geral a seguir. A combinação geral tem uma taxa de leitura/gravação de aproximadamente 2:1.

Tipo de transação % de combinação
Leitura Simples 35
Leitura Média 20
Leitura Intensa 5
Atualização Simples 20
Atualização Intensa 3
Inserção Simples 3
Inserção Intensa 2
Excluir 2
CPU Intensa 10

Usuários e definição

O parâmetro de comparação de desempenho é direcionado de uma ferramenta que envia transações por meio de um conjunto de conexões para simular o comportamento de alguns usuários simultâneos. Embora todas as conexões e transações sejam geradas por máquina, para manter a simplicidade nos referimos a essas conexões como usuários. Embora cada usuário opere independentemente dos demais, todos os usuários realizam o mesmo ciclo de etapas mostrado abaixo:

  1. Estabeleça uma conexão de banco de dados.
  2. Repita até receber um sinal para sair:
    • Selecione uma transação aleatoriamente (de uma distribuição ponderada).
    • Execute a transação selecionada e meça o tempo de resposta.
    • Aguarde uma definição de atraso.
  3. Feche a conexão de banco de dados.
  4. Sair.

A definição de atraso (na etapa 2c) é selecionada aleatoriamente, mas com uma distribuição cuja média é de 1,0 segundo. Portanto, cada usuário pode, em média, gerar no máximo uma transação por segundo.

Regras de dimensionamento

O número de usuários é determinado pelo tamanho do banco de dados (em unidades de fator de escala). Há um usuário para cada cinco unidades de fator de escala. Devido à definição de atraso, um usuário pode gerar no máximo uma transação por segundo, em média.

Por exemplo, um fator de escala de 500 (SF = 500) bancos de dados terá 100 usuários e pode atingir uma taxa máxima de 100 TPS. Conduzir uma taxa TPS mais alta exige mais usuários e um banco de dados maior.

Duração da medida

Uma execução válida do parâmetro de comparação exige uma duração da medida permanente de pelo menos uma hora.

Métricas

As principais métricas no parâmetro de comparação são a taxa de transferência e o tempo de resposta.

  • A taxa de transferência é a medida de desempenho essencial no parâmetro de comparação. A taxa de transferência é informada em transações por unidade de tempo, contando todos os tipos de transação.
  • O tempo de resposta é uma medida da previsibilidade do desempenho. A restrição de tempo de resposta varia de acordo com a classe de serviço, com classes superiores de serviço com um requisito de tempo de resposta mais rigoroso, conforme mostrado abaixo.
Classe de serviço Medida de taxa de transferência Requisito de tempo de resposta
Premium Transações por segundo 95º percentil em 0,5 segundo
Standard Transações por minuto 90º percentil em 1,0 segundo
Basic Transações por hora 80º percentil em 2,0 segundos

Observação

As métricas de tempo de resposta são específicas ao parâmetro de comparação de DTU. Os tempos de resposta para outras cargas de trabalho dependem da carga de trabalho e serão diferentes.

Próximas etapas

Saiba mais sobre os modelos de compra e os conceitos relacionados nos seguintes artigos: