Partilhar via


Meça o desempenho do Azure Cosmos DB para NoSQL com uma estrutura de benchmarking

Há mais opções, agora do que nunca, sobre o 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 de desempenho com ferramentas populares de benchmarking de código aberto 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 Java SDK e usa a ferramenta YCSB de código aberto. Neste guia, você usa essa estrutura de benchmarking 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 API existente para a conta 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 ecrã da opção Data Explorer realçada no menu de recursos.

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

    Captura de ecrã da opção Novo Contentor 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:

    Definição Value
    ID da base de dados ycsb
    Tipo de taxa de transferência do banco de dados Manual
    Valor da taxa de transferência do banco de dados 400
    ID do contentor usertable
    Chave de partição /id

    Captura de ecrã da caixa de diálogo Novo Contentor 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 ecrã da página Implementação Personalizada com valores de parâmetros preenchidos.

  3. Selecione Rever + criar e, em seguida, Criar para implementar o modelo.

  4. Aguarde pela conclusão da implementação.

    Gorjeta

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

Ver resultados do benchmark

Agora, você pode usar a conta de Armazenamento do Azure existente para verificar o status do trabalho de referência 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 JobStartTime de data/hora na propriedade, mas não na JobFinishTime propriedade.

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

    Gorjeta

    Pode levar aproximadamente 20-30 minutos para o trabalho terminar.

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

    Captura de tela do contêiner e blobs de saída da ferramenta de benchmarking.

  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 referência.

    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 para 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 as receitas de leitura e gravação no repositório GitHub.

  • Latência de leitura

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

  • Latência de gravação

    Diagrama da latência de gravação típica em média em torno 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 tela do contêiner e blobs em uma conta de armazenamento.

  • Se os logs não estiverem disponíveis na conta de armazenamento, esse problema geralmente é 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 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 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óximos passos

  • Saiba mais sobre a ferramenta de avaliação comparativa com o Guia de introdução.