Medir o desempenho do Azure Cosmos DB para NoSQL com uma arquitetura de benchmarking
Existem mais opções, agora do que nunca, no tipo de base de dados a utilizar com a carga de trabalho de dados. Um dos principais fatores para escolher uma base de dados é o desempenho da base de dados ou do serviço, mas o desempenho de benchmarking pode ser pesado e propenso a erros. A arquitetura de benchmarking das Bases de Dados do Azure simplifica o processo de medição do desempenho com ferramentas de benchmarking open source populares com receitas de baixa fricção que implementam melhores práticas comuns. No Azure Cosmos DB para NoSQL, a arquitetura implementa as melhores práticas para o SDK Java e utiliza a ferramenta open source YCSB . Neste guia, vai utilizar esta arquitetura de referência para implementar uma carga de trabalho de leitura para se familiarizar com a arquitetura.
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 a conta NoSQL.
- Certifique-se de que anota o URI do ponto final e a chave primária da conta. API para chaves primárias NoSQL.
- Conta de Armazenamento do Azure. Criar uma conta de Armazenamento do Azure.
- Certifique-se de que anota a cadeia de ligação da conta de armazenamento. Vies Cadeia de ligação do Armazenamento do Azure.
- Segundo grupo de recursos vazio. Criar um grupo de recursos.
- Interface de Command-Line do Azure (CLI).
Criar recursos de conta do Azure Cosmos DB
Primeiro, vai criar uma base de dados e um contentor na API existente para a conta NoSQL.
Navegue para a API existente para a conta NoSQL no portal do Azure.
No menu de recursos, selecione Data Explorer.
Na página Data Explorer, selecione a opção Novo Contentor na barra de comandos.
Na caixa de diálogo Novo Contentor , crie um novo contentor com as seguintes definições:
Definição Valor ID da base de dados ycsb
Tipo de débito da base de dados Manual Quantidade de débito da base de dados 400
ID do contentor usertable
Chave de partição /id
Implementar a arquitetura de benchmarking no Azure
Agora, vai utilizar um modelo de Resource Manager do Azure para implementar a arquitetura de benchmarking no Azure com a receita de leitura predefinida.
Implemente a arquitetura de benchmarking com um modelo de Resource Manager do Azure disponível nesta ligação.
Na página Implementação Personalizada, os seguintes parâmetros
Selecione Rever + criar e, em seguida , Criar para implementar o modelo.
Aguarde pela conclusão da implementação.
Dica
A implementação pode demorar entre 5 a 10 minutos a concluir.
Ver os resultados da referência
Agora, pode utilizar a conta de Armazenamento do Azure existente para verificar o estado da tarefa de referência e ver os resultados agregados. O estado é armazenado com uma tabela de armazenamento e os resultados são agregados num blob de armazenamento com o formato CSV.
Navegue para a sua conta de Armazenamento do Azure existente no portal do Azure.
Navegue para uma tabela de armazenamento com o nome ycsbbenchmarkingmetadata e localize a entidade com uma chave de partição de
ycsb_sql
.Observe o
JobStatus
campo da entidade de tabela. Inicialmente, o estado da tarefa éStarted
e inclui um carimbo de data/hora naJobStartTime
propriedade, mas não aJobFinishTime
propriedade.Aguarde até que a tarefa tenha o estado e
Finished
inclua um carimbo de data/hora naJobFinishTime
propriedade.Dica
A conclusão da tarefa pode demorar aproximadamente 20 a 30 minutos.
Navegue para o contentor de armazenamento na mesma conta com um prefixo de ycsbbenchmarking-*. Observe os blobs de saída e diagnóstico da ferramenta.
Abra o blobaggregation.csv e observe o conteúdo. Deverá agora 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 arquitetura de benchmarking das Bases de Dados do Azure inclui receitas para encapsular as definições de carga de trabalho que são transmitidas à ferramenta de benchmarking subjacente para uma experiência de "1 Clique". As definições da carga de trabalho foram concebidas com base nas melhores práticas publicadas pela equipa do Azure Cosmos DB e pela equipa da ferramenta de referência. As receitas foram testadas e validadas para obter resultados consistentes.
Pode esperar ver as seguintes latências para todas as receitas de leitura e escrita no repositório do GitHub.
Problemas comuns
Esta secção inclui os erros comuns que podem ocorrer ao executar a ferramenta de benchmarking. Normalmente, os registos de erros da ferramenta estão disponíveis num contentor dentro da conta de Armazenamento do Azure.
Se os registos não estiverem disponíveis na conta de armazenamento, este problema é normalmente causado por uma cadeia de ligação de armazenamento incorreta ou em falta. Neste caso, este erro está listado no ficheiro agent.out na pasta /home/benchmarking da máquina virtual cliente.
Error while accessing storage account, exiting from this machine in agent.out on the VM
Este erro está listado no ficheiro agent.out na VM do cliente e na conta de armazenamento se o URI do ponto final 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 ficheiro 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….
Passos seguintes
- Saiba mais sobre a ferramenta de benchmarking com o guia de Introdução.