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
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Conta do Azure Cosmos DB para NoSQL. Crie uma API para uma conta NoSQL.
- Certifique-se de anotar o URI do ponto de extremidade e a chave primária da conta.
- Conta do Armazenamento do Azure. Crie uma conta de Armazenamento do Azure.
- Certifique-se de anotar a cadeia de conexão para a conta de armazenamento. Cadeia de conexão do Armazenamento do Azure Vies.
- Segundo grupo de recursos vazio. Crie um grupo de recursos.
- CLI (Interface de Linha de Comando) do Azure.
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.
Navegue até sua conta existente da API para NoSQL no portal do Azure.
No menu de recursos, selecione Data Explorer.
Na página Data Explorer, selecione a opção Novo Contêiner na barra de comandos.
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
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.
Implante a estrutura de benchmarking usando um modelo do Azure Resource Manager disponível neste link.
Na página Implantação Personalizada, os seguintes parâmetros
Selecione Rever + criar e, em seguida, Criar para implementar o modelo.
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.
Navegue até sua conta de Armazenamento do Azure existente no portal do Azure.
Navegue até uma tabela de armazenamento chamada ycsbbenchmarkingmetadata e localize a entidade com uma chave de partição de
ycsb_sql
.Observe o
JobStatus
campo da entidade da tabela. Inicialmente, o status do trabalho éStarted
e inclui um carimboJobStartTime
de data/hora na propriedade, mas não naJobFinishTime
propriedade.Aguarde até que o trabalho tenha um status de e inclua um carimbo
JobFinishTime
deFinished
data/hora na propriedade.Gorjeta
Pode levar aproximadamente 20-30 minutos para o trabalho terminar.
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.
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.
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.
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.
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.