Medir o desempenho do Azure Cosmos DB for NoSQL com uma estrutura de parâmetro de comparação

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 fatores-chave para escolher um banco de dados é o desempenho do banco de dados ou serviço, mas o desempenho de parâmetro de comparação pode ser complicado e sujeito a erros. A estrutura de parâmetro de comparação para Bancos de Dados do Azure simplifica o processo de medição de desempenho com ferramentas populares de parâmetro de comparação de código aberto com métodos de baixo atrito que implementam as melhores práticas comuns. No Azure Cosmos DB for NoSQL, a estrutura implementa as melhores práticas para o SDK do Java e usa a ferramenta de código aberto YCSB. 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 uma conta do Azure Cosmos DB

Primeiro, você cria um banco de dados e um contêiner na API existente para a conta do 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 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 Data Explorer.

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

    Configuração Valor
    ID do banco de dados ycsb
    Tipo de taxa de transferência do banco de dados Manual
    Quantidade de 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 estrutura de parâmetro de comparação ao Azure

Agora, você usa um modelo do Azure Resource Manager para implantar a estrutura de parâmetro de comparação ao Azure com método de leitura padrão.

  1. Implantar a estrutura de parâmetro de comparação usando um modelo do Azure Resource Manager disponível neste link.

    Implantar no botão do Azure.

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

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

  3. Selecione Examinar + criar e depois 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.

Exibição dos resultados do parâmetro de comparação

Agora, você pode usar a conta de Armazenamento do Microsoft 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 existente do Armazenamento do Microsoft Azure no portal do Azure.

  2. Navegue até uma tabela de armazenamento denominada 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 campo JobStatus da entidade de 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

    O trabalho pode levar aproximadamente 20-30 minutos para ser 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 para a 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âmetros de comparações.

    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 parâmetro de comparação para Bancos de Dados do Azure inclui métodos para encapsular as definições de carga de trabalho que são passadas para a ferramenta de parâmetro de comparação subjacente para uma experiência de "1-Clique". As definições da carga de trabalho foram projetadas com base nas melhores práticas publicadas pela equipe do Azure Cosmos DB e pela equipe da ferramenta de parâmetro de comparação. Os métodos foram testados e validados 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 típica de leitura em torno de 1 milissegundo a 2 milissegundos.

  • Latência de Gravação

    Diagrama da latência típica de gravação em torno de 4 milissegundos.

Problemas comuns

Esta seção inclui os erros comuns que podem ocorrer ao executar a ferramenta de parâmetro de comparação. Os logs de erros da ferramenta estão normalmente disponíveis em um contêiner dentro da conta de Armazenamento do Microsoft 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, este problema é normalmente causado por uma cadeia de conexão de armazenamento incorreta ou ausente. Neste caso, este erro está listado no arquivo agent.out dentro da pasta /home/benchmarking da máquina virtual do cliente.

    Error while accessing storage account, exiting from this machine in agent.out on the VM
    
  • Este erro está listado no arquivo agent.out tanto na VM do cliente quanto 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 
    
  • Este erro está listado no arquivo agent.out tanto na VM do cliente quanto 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