Referência da DTU
Aplica-se a:Banco de Dados SQL do Azure
Uma unidade de transação de banco de dados (DTU) é 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 DTU são calibradas usando um benchmark que simula a carga de trabalho do banco de dados do mundo real. Este artigo resume o benchmark da DTU e compartilha informações sobre o esquema, os tipos de transação usados, a combinação de carga de trabalho, os usuários e o ritmo, as regras de dimensionamento e as métricas associadas ao benchmark.
Para obter informações gerais sobre o modelo de compra baseado em DTU, consulte a visão geral do modelo de compra baseado em DTU.
Resumo do índice de referência
O benchmark DTU mede o desempenho de uma combinação de operações básicas de banco de dados que ocorrem com mais frequência em cargas de trabalho OLTP (processamento de transações online). Embora o benchmark seja projetado com a computação em nuvem em mente, o esquema do banco de dados, o preenchimento de dados e as transações foram projetados para serem amplamente representativos dos elementos básicos mais comumente usados em cargas de trabalho OLTP.
Correlacionando os resultados de benchmark com o desempenho do banco de dados do mundo real
É importante entender que todos os benchmarks são representativos e meramente indicativos. As taxas de transação alcançadas com a aplicação de referência não serão as mesmas que poderiam ser alcançadas com outras aplicações. O índice de referência compreende uma coleção de diferentes tipos de transações executadas em relação a um esquema que contém uma gama de tabelas e tipos de dados. Embora o benchmark exerça as mesmas operações básicas que são comuns a todas as cargas de trabalho OLTP, ele não representa nenhuma classe específica de banco de dados ou aplicativo. O objetivo do benchmark é fornecer um guia razoável para o desempenho relativo de um banco de dados que pode ser esperado ao aumentar ou diminuir a escala entre tamanhos de computação.
Na realidade, os bancos de dados são de tamanhos e complexidades diferentes, encontram diferentes combinações de cargas de trabalho e responderão de maneiras diferentes. Por exemplo, um aplicativo com uso intensivo de E/S pode atingir os limites de E/S mais cedo ou um aplicativo com uso intensivo de CPU pode atingir os limites de CPU mais cedo. Não há garantia de que qualquer banco de dados específico será dimensionado da mesma forma que o benchmark sob carga crescente.
O parâmetro de referência e a sua metodologia são descritos mais pormenorizadamente neste artigo.
Esquema
O esquema foi projetado para ter variedade e complexidade suficientes para suportar uma ampla gama de operações. O benchmark é executado em relação a um banco de dados composto por seis tabelas. As tabelas se dividem em três categorias: tamanho fixo, dimensionamento e crescimento. Existem duas tabelas de tamanho fixo; três tabelas de escala; e uma mesa de cultivo. As tabelas de tamanho fixo têm um número constante de linhas. As tabelas de dimensionamento têm uma cardinalidade que é proporcional ao desempenho do banco de dados, mas não muda durante o benchmark. A tabela crescente é dimensionada como uma tabela de dimensionamento na carga inicial, mas a cardinalidade muda durante a execução do benchmark à medida que as linhas são inseridas e excluídas.
O esquema inclui uma combinação de tipos de dados, incluindo inteiro, numérico, caractere e data/hora. O esquema inclui chaves primárias e secundárias, mas não quaisquer chaves estrangeiras - ou seja, não há restrições de integridade referencial entre tabelas.
Um programa de geração de dados gera os dados para o banco de dados inicial. Dados inteiros e numéricos são gerados com várias estratégias. Em alguns casos, os valores são distribuídos aleatoriamente ao longo de um intervalo. Em outros casos, um conjunto de valores é permutado aleatoriamente para garantir que uma distribuição específica seja mantida. Os campos de texto são gerados a partir de uma lista ponderada de palavras para produzir dados realistas.
O banco de dados é dimensionado com base em um fator de escala. O fator de escala (abreviado como SF) determina a cardinalidade das tabelas de escala e crescimento. Conforme descrito abaixo na seção Usuários e Preparação, o tamanho do banco de dados, o número de usuários e o desempenho máximo são dimensionados proporcionalmente uns aos outros.
Transações
A carga de trabalho consiste em nove tipos de transação, conforme mostrado na tabela abaixo. Cada transação é projetada para destacar um conjunto particular de características do sistema no mecanismo de banco de dados e no hardware do sistema, com alto contraste das outras transações. Esta abordagem facilita a avaliação do impacto dos diferentes componentes no desempenho global. Por exemplo, a transação "Read Heavy" produz um número significativo de operações de leitura do disco.
Tipo de Transação | Description |
---|---|
Leia Lite | SELECIONAR; na memória; somente leitura |
Ler Médio | SELECIONAR; principalmente na memória; somente leitura |
Ler Pesado | SELECIONAR; a maioria não está na memória; somente leitura |
Atualizar Lite | ATUALIZAÇÃO; na memória; leitura-escrita |
Atualização pesada | ATUALIZAÇÃO; a maioria não está na memória; leitura-escrita |
Inserir Lite | INSERIR; na memória; leitura-escrita |
Inserir pesado | INSERIR; a maioria não está na memória; leitura-escrita |
Delete | SUPRIMIR; mistura de in-memory e não in-memory; leitura-escrita |
CPU pesada | SELECIONAR; na memória; carga relativamente pesada da CPU; somente leitura |
Combinação de carga de trabalho
As transações são selecionadas aleatoriamente a partir de uma distribuição ponderada com a seguinte combinação geral. A mistura geral tem uma relação leitura/gravação de aproximadamente 2:1.
Tipo de Transação | % da mistura |
---|---|
Leia Lite | 35 |
Ler Médio | 20 |
Ler Pesado | 5 |
Atualizar Lite | 20 |
Atualização pesada | 3 |
Inserir Lite | 3 |
Inserir pesado | 2 |
Delete | 2 |
CPU pesada | 10 |
Usuários e ritmo
A carga de trabalho de referência é orientada a partir de uma ferramenta que envia transações em um conjunto de conexões para simular o comportamento de vários usuários simultâneos. Embora todas as conexões e transações sejam geradas por máquinas, para simplificar, nos referimos a essas conexões como usuários. Embora cada usuário opere independentemente de todos os outros usuários, todos os usuários executam o mesmo ciclo de etapas mostrado abaixo:
- Estabeleça uma conexão de banco de dados.
- Repita até sinalizar para sair:
- Selecione uma transação aleatoriamente (a partir de uma distribuição ponderada).
- Execute a transação selecionada e meça o tempo de resposta.
- Aguarde um atraso no ritmo.
- Feche a conexão do banco de dados.
- Sair.
O atraso de estimulação (no passo 2c) é selecionado aleatoriamente, mas com uma distribuição que tem uma média de 1,0 segundo. Assim, 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 ao atraso de ritmo, um usuário pode gerar no máximo uma transação por segundo, em média.
Por exemplo, um banco de dados de fator de escala de 500 (SF=500) terá 100 usuários e pode atingir uma taxa máxima de 100 TPS. Para gerar uma taxa de TPS mais alta requer mais usuários e um banco de dados maior.
Duração da medição
Um ensaio de referência válido requer uma duração de medição em condições estacionárias de, pelo menos, uma hora.
Métricas
As principais métricas no benchmark são taxa de transferência e tempo de resposta.
- A taxa de transferência é a medida de desempenho essencial no benchmark. A taxa de transferência é relatada em transações por unidade de tempo, contando todos os tipos de transação.
- O tempo de resposta é uma medida de previsibilidade de desempenho. A restrição de tempo de resposta varia de acordo com a classe de serviço, com classes mais altas de serviço tendo um requisito de tempo de resposta mais rigoroso, como mostrado abaixo.
Classe de Serviço | Medida de taxa de transferência | Requisito de tempo de resposta |
---|---|---|
Premium | Transações por segundo | percentil 95 a 0,5 segundos |
Standard | Transações por minuto | percentil 90 a 1,0 segundos |
Básica | Transações por hora | percentil 80 a 2,0 segundos |
Nota
As métricas de tempo de resposta são específicas para o Benchmark da DTU. Os tempos de resposta para outras cargas de trabalho dependem da carga de trabalho e serão diferentes.
Próximos passos
Saiba mais sobre modelos de compra e conceitos relacionados nos seguintes artigos:
- Visão geral do modelo de compra baseado em DTU
- Modelo de compra vCore - Banco de Dados SQL do Azure
- Comparar modelos de compra baseados em vCore e DTU do Banco de Dados SQL do Azure
- Migrar o Banco de Dados SQL do Azure do modelo baseado em DTU para o modelo baseado em vCore
- Limites de recursos para bancos de dados únicos usando o modelo de compra DTU - Banco de Dados SQL do Azure
- Limites de recursos para pools elásticos usando o modelo de compra DTU