Converter o número de vCores ou vCPUs em seu banco de dados não relacional para RU/s do Azure Cosmos DB

APLICA-SE A: NoSQL

APLICA-SE A: MongoDB

Este artigo explica como estimar as unidades de solicitação (RU/s) do Azure Cosmos DB quando você está considerando a migração de dados, mas tudo o que você sabe é a contagem total de vCore ou vCPU no(s) conjunto(s) de réplicas de banco de dados existentes. Quando você migra um ou mais conjuntos de réplicas para o Azure Cosmos DB, cada coleção mantida nesses conjuntos de réplicas será armazenada como uma coleção do Azure Cosmos DB que consiste em um cluster fragmentado com um fator de replicação de 4x. Você pode ler mais sobre nossa arquitetura neste guia de particionamento e dimensionamento. As unidades de solicitação são como a capacidade de taxa de transferência é provisionada em uma coleção; você pode ler o guia de unidades de solicitação e o guia de provisionamento de RU/s para saber mais. Quando você migra uma coleção, o Azure Cosmos DB provisiona fragmentos suficientes para atender às unidades de solicitação provisionadas e armazenar seus dados. Portanto, estimar RU/s para coleções é uma etapa importante para definir o escopo da escala de sua propriedade de dados planejada do Azure Cosmos DB antes da migração. Com base em nossa experiência com milhares de clientes, descobrimos que esta fórmula nos ajuda a chegar a uma estimativa aproximada de RU/s de ponto de partida a partir de vCores ou vCPUs:

Provisioned RU/s = C*T/R

  • T: Total de vCores e/ou vCPUs no(s) conjunto(s) de réplicas de bancos de dados existentes.
  • R: Fator de replicação do(s) conjunto(s) de réplicas com dados existentes.
  • C: RU provisionado recomendado por vCore ou vCPU. Esse valor deriva da arquitetura do Azure Cosmos DB:
    • C = 600 RU/s/vCore* para Azure Cosmos DB para NoSQL
    • C = 1000 RU/s/vCore* para Azure Cosmos DB para MongoDB v4.0
    • As estimativas C para API para Cassandra, Gremlin ou outras APIs não estão disponíveis no momento

Os valores para C são fornecidos acima. T deve ser determinado examinando o número de vCores ou vCPUs em cada conjunto de réplicas com suporte de dados do seu banco de dados existente e somando para obter o total, se você não puder estimar T, considere seguir nosso guia para estimar RU/s usando o planejador de capacidade do Azure Cosmos DB em vez deste guia. T não deve incluir vCores ou vCPUs associados ao servidor de roteamento ou cluster de configuração do banco de dados existente, se ele tiver esses componentes.

Para R, recomendamos conectar o fator de replicação médio dos conjuntos de réplicas do banco de dados, se essas informações não estiverem disponíveis, R =3 é uma boa regra prática.

As APIs de interoperabilidade do Azure Cosmos DB são executadas sobre a API para NoSQL e implementam suas próprias arquiteturas exclusivas; assim, o Azure Cosmos DB para MongoDB v4.0 tem um valor C diferente da API do Azure Cosmos DB para NoSQL.

Exemplo trabalhado: estimar RU/s para migração de conjunto de réplicas únicas

Migrate a replica set with 3 replicas of a four-core SKU to Azure Cosmos DB

Considere um único conjunto de réplicas com um fator de replicação de R=3 com base em uma SKU de servidor de quatro núcleos. Então

  • T = 12 vCores
  • R = 3

Em seguida, as unidades de solicitação recomendadas para a API do Azure Cosmos DB para NoSQL são:

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (12 vCores) / (3) = 2,400 RU/s

E as unidades de solicitação recomendadas para o Azure Cosmos DB para MongoDB são:

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (12 vCores) / (3) = 4,000 RU/s

Exemplo trabalhado: estimar RU/s ao migrar um cluster de conjuntos de réplicas homogêneas

Migrate a homogeneous sharded replica set with 3 shards, each with three replicas of a four-core SKU, to Azure Cosmos DB

Considere um cluster fragmentado e replicado composto por três conjuntos de réplicas, cada um com um fator de replicação três, onde cada servidor é uma SKU de quatro núcleos. Então

  • T = 36 vCores
  • R = 3

Em seguida, as unidades de solicitação recomendadas para a API do Azure Cosmos DB para NoSQL são:

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (36 vCores) / (3) = 7,200 RU/s

E as unidades de solicitação recomendadas para o Azure Cosmos DB para MongoDB são:

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (36 vCores) / (3) = 12,000 RU/s

Exemplo trabalhado: estimar RU/s ao migrar um cluster de conjuntos de réplicas heterogêneas

Migrate a heterogeneous sharded replica set with 3 shards, each with different numbers of replicas of a four-core SKU, to Azure Cosmos DB

Considere um cluster fragmentado e replicado composto por três conjuntos de réplicas, no qual cada servidor é baseado em uma SKU de quatro núcleos. Os conjuntos de réplicas são "heterogêneos" no sentido de que cada um tem um fator de replicação diferente: 3x, 1x e 5x, respectivamente. A abordagem recomendada é usar o fator de replicação médio ao calcular unidades de solicitação. Então

  • T = 36 vCores
  • Ravg = (3+1+5)/3 = 3

Em seguida, as unidades de solicitação recomendadas para a API do Azure Cosmos DB para NoSQL são:

Provisioned RU/s, API for NoSQL = (600 RU/s/vCore) * (36 vCores) / (3) = 7,200 RU/s

E as unidades de solicitação recomendadas para o Azure Cosmos DB para MongoDB são:

Provisioned RU/s, API for MongoDB = (1,000 RU/s/vCore) * (36 vCores) / (3) = 12,000 RU/s

Dicas para obter a estimativa de RU/s mais precisa

Migrando de um banco de dados gerenciado em nuvem: Se você usa atualmente um banco de dados gerenciado em nuvem, esses serviços geralmente parecem ser provisionados em unidades de vCores ou vCPUs (em outras palavras, T), mas na verdade a contagem de núcleos provisionada define o valor vCores/réplica ou vCPU/réplica (T/R) para um conjunto de réplicas de nó R; o número real de núcleos é R vezes maior do que o provisionado explicitamente. Recomendamos determinar se essa descrição se aplica ao seu banco de dados atual gerenciado na nuvem e, em caso afirmativo, você deve multiplicar o número nominal de vCores ou vCPUs provisionados por R para obter uma estimativa precisa de T.

vCores vs vCPUs: Neste artigo tratamos "vCore" e "vCPU" como sinônimos, portanto C tem unidades de RU/s/vCore ou RU/s/vCPU, sem distinção. No entanto, na prática, esta simplificação pode não ser exata em algumas situações. Estes termos podem ter significados diferentes; por exemplo, se suas CPUs físicas suportam hyperthreading, é possível que 2 vCPU = 1 vCore w/HT ou algo mais. Em geral, a relação vCore/vCPU depende de hardware e recomendamos investigar qual é a relação no hardware de cluster existente e se a computação de cluster é provisionada em termos de vCores ou vCPUs. Se vCPU e vCore têm significados diferentes em seu hardware, então recomendamos tratar as estimativas acima de C como tendo unidades de RU/s/vCore e, se necessário, converter T de vCPU para vCore usando o fator de conversão apropriado para o seu hardware.

Resumo

Estimar RU/s de vCores ou vCPUs requer a coleta de informações sobre o total de vCores/, vCPUs e fator de replicação do(s) conjunto(s) de réplicas de banco de dados existentes. Em seguida, você pode usar relações conhecidas entre vcores,/vCPUs e taxa de transferência para estimar unidades de solicitação (RU/s) do Azure Cosmos DB. Encontrar essa estimativa de unidade de solicitação será uma etapa importante para antecipar a escala do seu patrimônio de dados do Azure Cosmos DB após a migração.

A tabela abaixo resume a relação entre vCores e vCPUs para API do Azure Cosmos DB para NoSQL e API para MongoDB v4.0:

vCores RU/s (API para NoSQL)
(fator rep.=3)
RU/s (API para MongoDB v4.0)
(fator rep.=3)
3 600 1000
6 1200 2000
12 2400 4000
24 4800 8000
48 9600 16000
96 19200 32000
192 38400 64000
384 76800 128000

Próximos passos