Compartilhar via


Medir o desempenho do Azure Cosmos DB para NoSQL com uma estrutura de benchmarking

Há mais opções, agora do que nunca, no tipo de banco de dados a ser usado com sua carga de trabalho de dados. Um dos principais fatores para escolher um banco de dados é o desempenho do banco de dados ou serviço, mas o desempenho de benchmarking pode ser complicado e propenso a erros. A estrutura de benchmarking para Bancos de Dados do Azure simplifica o processo de medição do desempenho com ferramentas populares de benchmarking de software livre com receitas de baixo atrito que implementam práticas recomendadas comuns. No Azure Cosmos DB para NoSQL, a estrutura implementa as práticas recomendadas para o SDK do Java e usa a ferramenta YCSB de software livre. Neste guia, você usa esta estrutura de parâmetro de comparação para implementar uma carga de trabalho de leitura para se familiarizar com a estrutura.

Pré-requisitos

Criar recursos de conta do Azure Cosmos DB

Primeiro, você cria um banco de dados e um contêiner na conta da API existente para NoSQL.

  1. Navegue até sua conta existente da API para NoSQL no portal do Azure.

  2. No menu de recursos, selecione Data Explorer.

    Captura de tela da opção Data Explorer realçada no menu de recursos.

  3. Na página do Data Explorer , selecione a opção Novo Contêiner na barra de comandos.

    Captura de tela da opção Novo Contêiner na barra de comandos do Data Explorer.

  4. Na caixa de diálogo Novo Contêiner , crie um novo contêiner com as seguintes configurações:

    Configurações Value
    ID do banco de dados ycsb
    Tipo de taxa de transferência de banco de dados Manual
    Valor da taxa de transferência do banco de dados 400
    ID do contêiner usertable
    Chave de partição /id

    Captura de tela da caixa de diálogo Novo Contêiner na página Data Explorer.

Implantar a estrutura de benchmarking no Azure

Agora, você usa um modelo do Azure Resource Manager para implantar a estrutura de benchmarking no Azure com a receita de leitura padrão.

  1. Implante a estrutura de benchmarking usando um modelo do Azure Resource Manager disponível neste link.

    Botão Implantar no Azure.

  2. Na página Implantação Personalizada, os seguintes parâmetros

    Captura de tela da página Implantação Personalizada com valores de parâmetros preenchidos.

  3. Selecione Revisar + Criar e, em seguida, Criar para implantar o modelo.

  4. Aguarde até que a implantação seja concluída.

    Dica

    A implantação pode levar de 5 a 10 minutos para ser concluída.

Exibir os resultados do parâmetro de comparação

Agora, você pode usar a conta de Armazenamento do Azure existente para verificar o status do trabalho de parâmetro de comparação e exibir os resultados agregados. O status é armazenado usando uma tabela de armazenamento e os resultados são agregados em um blob de armazenamento usando o formato CSV.

  1. Navegue até sua conta de Armazenamento do Azure existente no portal do Azure.

  2. Navegue até uma tabela de armazenamento chamada ycsbbenchmarkingmetadata e localize a entidade com uma chave de partição de ycsb_sql.

    Captura de tela da tabela ycsbbenchmarkingMetadata em uma conta de armazenamento.

  3. Observe o JobStatus campo da entidade da tabela. Inicialmente, o status do trabalho é Started e inclui um carimbo de data/hora na propriedade JobStartTime, mas não na propriedade JobFinishTime.

  4. Aguarde até que o trabalho tenha um status de Finished e inclua um carimbo de data/hora na propriedade JobFinishTime.

    Dica

    Pode levar aproximadamente de 20 a 30 minutos para que o trabalho seja concluído.

  5. Navegue até o contêiner de armazenamento na mesma conta com um prefixo de ycsbbenchmarking-*. Observe os blobs de saída e diagnóstico da ferramenta.

    Captura de tela do contêiner e dos blobs de saída da ferramenta de parâmetro de comparação.

  6. Abra o blob aggregation.csv e observe o conteúdo. Agora você deve ter um conjunto de dados CSV com resultados agregados de todos os clientes de parâmetro de comparação.

    Captura de tela do conteúdo do blob de resultados de agregação.

    Operation,Count,Throughput,Min(microsecond),Max(microsecond),Avg(microsecond),P9S(microsecond),P99(microsecond)
    READ,180000,299,706,448255,1079,1159,2867
    

Receitas

A estrutura de benchmarking dos Bancos de Dados do Azure inclui receitas para encapsular as definições de carga de trabalho que são passadas para a ferramenta de benchmarking subjacente para uma experiência de "1 clique". As definições de carga de trabalho foram projetadas com base nas práticas recomendadas publicadas pela equipe do Azure Cosmos DB e pela equipe da ferramenta de benchmarking. As receitas foram testadas e validadas para resultados consistentes.

Você pode esperar ver as seguintes latências para todas os métodos de leitura e gravação no repositório GitHub.

  • Latência de leitura

    Diagrama da latência de leitura típica com média de cerca de 1 milissegundo a 2 milissegundos.

  • Latência de gravação

    Diagrama da latência de gravação típica com média de cerca de 4 milissegundos.

Problemas comuns

Esta seção inclui os erros comuns que podem ocorrer ao executar a ferramenta de benchmarking. Os logs de erro da ferramenta normalmente estão disponíveis em um contêiner dentro da conta de Armazenamento do Azure.

Captura de imagem do contêiner e blobs em uma conta de armazenamento.

  • Se os logs não estiverem disponíveis na conta de armazenamento, esse problema normalmente será causado por uma cadeia de conexão de armazenamento incorreta ou ausente. Nesse caso, esse erro é listado no arquivo agent.out dentro da pasta /home/benchmarking da máquina virtual cliente.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Esse erro é listado no arquivo agent.out na VM do cliente e na conta de armazenamento se o URI do ponto de extremidade do Azure Cosmos DB estiver incorreto ou inacessível.

    Caused by: java.net.UnknownHostException: rtcosmosdbsss.documents.azure.com: Name or service not known 
    
  • Esse erro é listado no arquivo agent.out na VM do cliente e na conta de armazenamento se a chave do Azure Cosmos DB estiver incorreta.

    The input authorization token can't serve the request. The wrong key is being used….
    

Próximas etapas