Compartilhar via


Criar contêineres e bancos de dados do Azure Cosmos DB com a taxa de transferência de dimensionamento automático

APLICA-SE AO: NoSQL MongoDB Cassandra Gremlin Table

O Microsoft Azure Cosmos DB possibilita configurar a taxa de transferência provisionada padrão (manual) ou de dimensionamento automático nos seus bancos de dados e contêineres. A taxa de transferência provisionada de dimensionamento automático no Microsoft Azure Cosmos DB permite que você dimensione a taxa de transferência (RU/s) do seu banco de dados ou contêiner de forma automática e instantânea.

A taxa de transferência provisionada de dimensionamento automático é adequada para cargas de trabalho críticas que têm padrões de tráfego variáveis ou imprevisíveis e exigem SLAs em alto desempenho e escala. O dimensionamento automático dimensiona, por padrão, as cargas de trabalho com base na região e partição mais ativas. Para cargas de trabalho não uniformes que têm diferentes padrões de carga de trabalho entre regiões e partições, esse dimensionamento pode causar escalas desnecessárias. O dimensionamento dinâmico ou dimensionamento automático dinâmico é um aprimoramento do dimensionamento automático provisionado que ajuda no escala dessas cargas de trabalho não uniformes de forma independente com base no uso, por região e por nível de partição. O escala dinâmico permite que você economize custos se você frequentemente tiver partições ativas e/ou várias regiões.

Benefícios de dimensionamento automático

Os bancos de dados e contêineres do Azure Cosmos DB configurados com taxa de transferência provisionada de dimensionamento automático têm os seguintes benefícios:

  • Simple: O dimensionamento automático remove a complexidade de gerenciar RU/s com script personalizado ou capacidade colocação em escala manual.

  • Escalonável: Os bancos de dados e contêineres escalam automaticamente a taxa de transferência provisionada conforme necessário. Não há interrupção nas conexões do cliente, nos aplicativos ou nos SLAs do Azure Cosmos DB.

  • Econômico: O dimensionamento automático ajuda a otimizar o uso de RU/s e de custos ao reduzir verticalmente quando não estiver em uso. Você paga apenas pelos recursos que suas cargas de trabalho precisam por hora. Do total de horas em um mês, se você definir o valor máximo de RU/s de dimensionamento automático e usar a quantidade total Tmax em 66% das horas ou menos, você poderá economizar com a escala automática. Além disso, com a escala automática, adicionar uma região secundária para alta disponibilidade é mais econômico, pois cada região e partição é dimensionada independentemente com base no uso real. Para saber mais, consulte o artigo Como escolher entre a taxa de transferência padrão (manual) e de dimensionamento automático provisionada.

  • Altamente disponível: Os bancos de dados e contêineres que usam dimensionamento automático usam o mesmo back-end do Azure Cosmos DB de alta disponibilidade, tolerante a falhas e distribuído globalmente para garantir a durabilidade e a alta disponibilidade dos dados.

Casos de uso do dimensionamento automático

Os casos de uso do dimensionamento automático incluem:

  • Cargas de trabalho variáveis ou imprevisíveis: Quando suas cargas de trabalho têm picos variáveis ou imprevisíveis de uso, o dimensionamento automático ajuda a aumentar e reduzir verticalmente automaticamente com base no uso. Os exemplos incluem sites de varejo que têm diferentes padrões de tráfego, dependendo do sazonalidade; cargas de trabalho de IOT que têm picos em vários momentos do dia; aplicativos de linha de negócios que apresentam pico de uso algumas vezes por mês ou ano, e muito mais. Com o dimensionamento automático, você não precisa mais provisionar manualmente a capacidade máxima ou média.

  • Novos aplicativos: Se você estiver desenvolvendo um novo aplicativo e não tiver certeza sobre a taxa de transferência (RU/s) de que precisa, o dimensionamento automático facilitará o início. Você pode começar com o ponto de entrada de dimensionamento automático de 100–1.000 RU/s, monitorar o uso e determinar as RU/s corretas ao longo do tempo.

  • Aplicativos usados ​​com pouca frequência: Se você tem um aplicativo que é usado apenas por algumas horas, várias vezes ao dia, semana ou mês, como um aplicativo/site/blog de baixo volume. O dimensionamento automático ajusta a capacidade para lidar com picos de uso e reduz quando ele termina.

  • Cargas de trabalho de desenvolvimento e teste: se você ou sua equipe usam bancos de dados e contêineres do Azure Cosmos DB durante as horas de trabalho, mas não precisam deles nas noites ou nos fins de semana, o dimensionamento automático ajuda a economizar custos, reduzindo ao mínimo quando não estiver em uso.

  • Cargas de trabalho/consultas de produção agendadas: Se você tiver uma série de solicitações, operações ou consultas agendadas que deseja executar durante períodos ociosos, poderá fazer isso facilmente com o dimensionamento automático. Quando você precisa executar a carga de trabalho, a taxa de transferência é escalada automaticamente para o valor necessário e é reduzida posteriormente.

A criação de uma solução personalizada para esses problemas não só requer uma enorme quantidade de tempo, mas também apresenta complexidade na configuração ou no código do seu aplicativo. O dimensionamento automático habilita os cenários acima imediatamente e elimina a necessidade de dimensionamento personalizado ou manual da capacidade.

Casos de uso de escala dinâmico

Os casos de uso do escala dinâmico incluem:

  • Cargas de trabalho de banco de dados que têm uma região primária com alto tráfego e uma região passiva secundária para recuperação de desastre.
    • Com a escala dinâmica, obter alta disponibilidade com várias regiões é mais econômico. A região secundária é reduzida verticalmente de forma independente e automática quando se torna ociosa. A região secundária também escala verticalmente de forma automática à medida que se torna ativa e durante o tratamento da replicação de gravação da região primária.
  • Cargas de trabalho de banco de dados de várias regiões.
    • Essas cargas de trabalho geralmente observam a distribuição desigual de solicitações entre regiões devido ao crescimento natural do tráfego e quedas ao longo do dia. Por exemplo, um banco de dados pode estar ativo durante o horário comercial em fusos horários distribuídos globalmente.

Como a taxa de transferência provisionada de dimensionamento automático funciona

Ao configurar contêineres e bancos de dados com dimensionamento automático, você especifica a taxa de transferência máxima Tmax necessária. O Azure Cosmos DB dimensiona a taxa de transferência T como 0.1*Tmax <= T <= Tmax. Por exemplo, se você definir a taxa de transferência máxima como 20.000 RU/s, a taxa de transferência será escalada entre 2.000 e 20.000 RU/s. Como o dimensionamento é automático e instantâneo, a qualquer momento, você pode consumir até o Tmax provisionado sem atraso.

A cada hora, você será cobrado pela maior produtividade T para a qual o sistema é dimensionado dentro da hora. Quando o dimensionamento dinâmico está habilitado, o dimensionamento é baseado no uso de RU/s em cada partição física e região. Como cada partição e região são dimensionadas de forma independente, isso pode levar à economia de custos para cargas de trabalho não uniformes, pois aumentos de escala desnecessários são evitados.

O ponto de entrada para taxa de transferência máxima de dimensionamento automático Tmax começa em 1.000 RU/s e escala entre 100–1.000 RU/s. Você pode definir Tmax em incrementos de 1.000 RU/s e alterar o valor a qualquer momento.

Por exemplo, se tivermos uma coleção com 1000 RU/s e 2 partições, cada partição poderá ir até 500 RU/s. Para uma hora de atividade, a utilização seria semelhante a esta:

Region Partição Produtividade Utilização Observações
Gravar P1 <= 500 RU/s 100% 500 RU/s que consistem em 50 RU/s usadas para operações de gravação e 450 RU/s para operações de leitura.
Gravar P2 <= 200 RU/s 40% 200 RU/s que consistem em todas as operações de leitura.
Ler P1 <= 150 RU/s 30% 150 RU/s que consistem em 50 RU/s usadas para gravações replicadas da região de gravação. 100 RU/s são usados para operações de leitura nesta região.
Ler P2 <= 50 RU/s 10%

Sem escala dinâmico, todas as partições são dimensionadas uniformemente com base na partição mais ativa. Nesse exemplo, como a partição mais ativa teve 100% de utilização, todas as partições nas regiões de leitura e gravação são dimensionadas para 1000 RU/s, fazendo com que o total de RU/s seja dimensionado para 2000 RU/s.

Com o escala dinâmico, como o rendimento de cada partição e região e taxa de transferência de forma independente, o total de RU/s dimensionado seria 900 RU/s, o que reflete melhor o padrão de tráfego real e reduz os custos.

Habilitando o dimensionamento automático em recursos existentes

Use o portal, CLI ou PowerShell do Azure para habilitar o dimensionamento automático em um banco de dados ou contêiner existente. Você pode alternar entre o dimensionamento automático e a taxa de transferência provisionada (manual) padrão a qualquer momento. Para obter mais informações, veja esta documentação para saber mais.

Limites de taxa de transferência e armazenamento para dimensionamento automático

Para qualquer valor de Tmax, o banco de dados ou contêiner pode armazenar um total de 0.1 * Tmax GB. Após essa quantidade de armazenamento ser atingida, a RU/s máxima será aumentada automaticamente com base no novo valor de armazenamento, sem causar impacto no aplicativo.

Por exemplo, se você começar com o máximo de 50.000 RU/s (o que é dimensionado entre 5000 e 50.000 RU/s), pode armazenar até 5000 GB de dados. Se você exceder 5.000 GB (por exemplo, o armazenamento agora é de 6.000 GB), o novo limite máximo de RU/s será de 60.000 RU/s (o que é escalado entre 6.000 e 60.000 RU/s).

Ao usar a taxa de transferência no nível do banco de dados com dimensionamento automático, você pode fazer com que os 25 primeiros contêineres compartilhem um máximo de RU/s de 1000 (o que é dimensionado entre 100 e 1000 RU/s), desde que você não exceda 100 GB de armazenamento. Para obter mais informações, veja esta documentação.

Habilitando o escala dinâmico

A escala automática dinâmica é habilitada por padrão para todas as contas do Azure Cosmos DB criadas após 25 de setembro de 2024. Os clientes que desejam habilitar esse recurso para suas contas mais antigas podem fazê-lo programaticamente por meio do Azure PowerShell/CLI/API Rest ou do painel de recursos do portal do Azure, conforme mostrado:

  1. Navegue até sua conta do Azure Cosmos DB no portal do Azure.

  2. Navegue até a página Recursos.

  3. Localize e habilite o recurso de Escala Dinâmica (Escala Automática por Região e por Partição.

    Captura de tela do recurso

    Importante

    O recurso está habilitado no nível da conta, portanto, todos os contêineres de escala automática e bancos de dados de produtividade compartilhados dentro da conta terão esse recurso aplicado automaticamente. Habilitar esse recurso não afeta os recursos da conta que estão usando produtividade manual. Os recursos manuais precisarão ser alterados para escala automática para usufruir da escala dinâmica. A habilitação desse recurso tem tempo de inatividade ou impacto no desempenho nulos. Esse recurso não se aplica a contas sem servidor.

Monitoramento Métricas

Você pode usar as seguintes métricas para monitorar o escala automático e dinâmico:

Nome da métrica Definição Uso das métricas
Taxa de transferência provisionada Mostra as RU/s mais altas agregadas escaladas ao longo da hora inteira e representa o total de RU/s dimensionadas para a hora. Você pode usar a métrica Provisioned Throughput para ver as RU/s cobradas em cada hora. Com o dimensionamento automático, você é cobrado com base na partição mais ativa a cada hora e o mesmo se aplica a todas as partições e regiões. Com a escala automática dinâmica, você é cobrado pelas RU/s mais altas agregadas escaladas para cada hora em cada nível de partição e região.
Consumo de RU normalizado Essa métrica representa a proporção de RU/s consumidas para RU/s provisionadas em cada nível de partição e região. Use essa métrica para determinar se a produtividade máxima da escala automática está subprovisionada ou superprovisionada.

Se o valor da métrica for consistentemente 100% e seu aplicativo estiver observando limitação de fluxo (código de erro 429), talvez você precise de mais RU/s. Por outro lado, se esse valor de métrica for baixo e não houver limitação de fluxo, poderá haver espaço para otimizar e reduzir verticalmente as RU/s. Saiba mais sobre como interpretar e depurar erros de limitação de taxa com o código 429.

A métrica Normalized RU Consumption reflete as RU/s consumidas na região secundária devido ao tráfego de replicação de gravação da primária, além de qualquer tráfego de leitura na secundária.
RU de escala automática Mostra a produtividade provisionada escalada dinamicamente em cada nível de partição e região somente para contas habilitadas para escala automática dinâmica. Use essa métrica para ver como as partições em cada região são escaladas de forma independente com base em seu uso.

Use métricas do Azure Monitor - Autoscaled RU para analisar como o novo dimensionamento automático é aplicado entre partições e regiões. Filtre para a conta de banco de dados e o contêiner desejados e, em seguida, filtre ou divida pela métrica Physical PartitionID. Essa métrica mostra todas as partições em suas várias regiões.

Comparação – Contêineres configurados com taxa de transferência manual vs dimensionamento automático

Para obter mais detalhes, consulte esta documentação sobre como escolher entre a taxa de transferência padrão (manual) e o dimensionamento automático.

Contêineres com taxa de transferência padrão (manual) Contêineres com taxa de transferência de dimensionamento automático
Taxa de transferência provisionada (RU/s) Provisionado manualmente. Dimensionado de forma automática e instantânea com base nos padrões de uso da carga de trabalho.
Limitação de taxa de solicitações/operações (429) Pode acontecer se o consumo exceder a capacidade provisionada. Não ocorrerá se você consumir RU/s dentro do intervalo de produtividade de escala automática que está configurado.
Planejamento da capacidade Você precisa fazer o planejamento de capacidade e definir a taxa de transferência exata necessária. O sistema cuida automaticamente do planejamento de capacidade e do gerenciamento de capacidade.
Preços Você paga pelas RU/s provisionadas manualmente por hora, usando a taxa de RU/s padrão (manual) por hora. Você paga por hora pela RU/s mais alta que o sistema dimensionou dentro de uma hora.

Para contas de região de gravação única, você paga pela RU/s usada por hora, usando a taxa de RU/s de dimensionamento automático por hora.

No caso de contas com várias regiões de gravação, não há custo adicional para o dimensionamento automático. Você paga pela taxa de transferência usada por hora, usando a mesma taxa de RU/s de gravação multirregião por hora.

Mais adequado para tipos de carga de trabalho Cargas de trabalho previsíveis e estáveis Cargas de trabalho imprevisíveis e variáveis

Migrar a taxa de transferência provisionada padrão para o dimensionamento automático

Os usuários que desejam migrar um grande número de recursos da taxa de transferência provisionada padrão para o dimensionamento automático podem usar um script da CLI do Azure que migrará todos os recursos de taxa de transferência em uma assinatura do Azure para dimensionamento automático. Para obter mais informações, confira Converter em escala automática.

Próximas etapas