Resultados de benchmarks YCSB para o ApsaraDB for MongoDB em arquiteturas de servidor físico e disco em nuvem, abrangendo diversas especificações de instância e proporções de leitura e escrita.
Ambiente de teste
|
Parâmetro |
ECS para teste de estresse |
ApsaraDB for MongoDB (Servidor Físico) |
ApsaraDB for MongoDB (Disco em Nuvem) |
|
Região e zona |
China (Hangzhou) Zona H |
China (Hangzhou) Zona H |
China (Hangzhou) Zona H |
|
Tipo de rede |
VPC |
VPC |
VPC |
|
Família da instância |
c6e (Otimizada para computação, desempenho aprimorado) |
Uso geral e dedicada |
Dedicada |
|
Tipo de instância |
ecs.c6e.2xlarge (8 núcleos, 16 GB) |
||
|
Tipo de armazenamento |
Disco em nuvem ESSD PL1 |
SSD Local |
Disco em nuvem ESSD PL1 |
|
Espaço de armazenamento |
- |
500 GB |
500 GB |
|
Topologia |
- |
Conjunto de réplicas padrão de três nós (um primário, um secundário e um nó oculto) |
Conjunto de réplicas padrão de três nós (um primário, um secundário e um nó oculto) |
|
Versão da imagem |
Alibaba Cloud Linux 3.2104 LTS 64 bits |
3.10.0-327.ali2017.alios7.x86_64 |
4.19.81-17.2.al7.x86_64 |
|
Versão do kernel da instância |
- |
MongoDB 4.2 (versão menor base 4.2.13) |
MongoDB 4.4 (versão menor base 4.4.1) |
|
Configuração de consistência |
- |
Read/write concern padrão |
Read/write concern padrão |
As instâncias ECS e ApsaraDB for MongoDB estão na mesma região e zona. Tempo de ida e volta (RTT): aproximadamente 0,104 ms.
Ferramenta de teste
Este teste utiliza o YCSB 0.17.0 para benchmarking.
O YCSB é uma ferramenta de benchmarking baseada em Java para diversos bancos de dados.
Procedimento de teste
-
Adicione o primary private IP address da instância ECS à lista de permissões do ApsaraDB for MongoDB. Modificar uma lista de permissões.
NotaAcesse o console ECS e visualize o primary private IP address da instância ECS na seção Network Information da página Instance Details.
Conecte-se à instância ECS. Conectar-se a uma instância ECS.
-
Carregue os dados de teste com a ferramenta YCSB.
./bin/ycsb load mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8Modifique os seguintes parâmetros:
recordcount=1000000: Quantidade total de registros a carregar na instância ApsaraDB for MongoDB.-
mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": Endpoint da instância ApsaraDB for MongoDB. Neste exemplo, a conta do banco de dados é test e o banco de dados é admin.NotaAcesse o console do ApsaraDB for MongoDB e visualize o endpoint na seção Private Connection - VPC da página Database Connection.
threads 8: Número de threads simultâneas do cliente.
-
Execute o comando abaixo para realizar o teste de estresse.
./bin/ycsb run mongodb -s -p workload=site.ycsb.workloads.CoreWorkload -p recordcount=1000000 -p operationcount=5000000 -p insertproportion=0 -p readproportion=50 -p updateproportion=50 -p requestdistribution=zipfian -p mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin" -threads 8Modifique os seguintes parâmetros:
recordcount=1000000: Total de registros de dados carregados na instância ApsaraDB for MongoDB.operationcount=5000000: Quantidade de operações de leitura e escrita a executar.insertproportion=0: Proporção de operações de inserção.readproportion=50: Proporção de operações de leitura.updateproportion=50: Proporção de operações de atualização.-
mongodb.url="mongodb://test:****@dds-bp13e84d11****.mongodb.rds.aliyuncs.com:3717/admin": Endpoint da instância ApsaraDB for MongoDB. Neste exemplo, a conta do banco de dados é test e o banco de dados é admin.NotaAcesse o console do ApsaraDB for MongoDB e visualize os endpoints da instância na seção Internal Connections - VPC da página Database Connections.
threads 8: Número de threads simultâneas no cliente.
Resultados dos testes
Cenários
r:w=100:0: 100% leitura, 0% escrita.r:w=95:5: 95% leitura, 5% escrita.r:w=50:50: 50% leitura, 50% escrita.r:w=5:95: 5% leitura, 95% escrita.r:w=0:100: 0% leitura, 100% escrita.
Parâmetros
recordcount: Total de registros carregados na instância ApsaraDB for MongoDB.operationcount: Total de operações de leitura e escrita.threads: Threads simultâneas do cliente.throughput: Operações por segundo (OPS).RAL: Latência média de leitura em microssegundos (us).WAL: Latência média de escrita em microssegundos (us).
Se RAL ou WAL for 0, nenhuma operação de leitura ou escrita foi executada.
As tabelas e gráficos a seguir comparam as arquiteturas de servidor físico e disco em nuvem em várias proporções de leitura e escrita.
Instância de servidor físico (MongoDB 4.2)
Instância com arquitetura de disco em nuvem (MongoDB 4.4)
Comparação de desempenho
Análise dos resultados dos testes
Para
CPU:Memória=1:2, os servidores físicos superam o disco em nuvem em 7%-50%, com destaque para a configuração de 4 núcleos e 8 GB.No cenário
CPU:Memória=1:4, a diferença se reduz para cerca de 10%. Servidores físicos são mais adequados para cargas de trabalho com muita escrita; já o disco em nuvem é ideal para cargas com muita leitura.-
Quando
CPU:Memória=1:8:Servidor físico e disco em nuvem apresentam desempenho praticamente idêntico.
À medida que a memória aumenta, o disco em nuvem supera significativamente o servidor físico, especialmente na configuração de 4 núcleos e 32 GB.
A arquitetura de disco em nuvem oferece as seguintes vantagens:
Recursos dedicados eliminam a contenção comum em servidores físicos compartilhados.
Permite dimensionamento independente de computação e armazenamento sem necessidade de migração de dados.
Suporta os níveis de desempenho ESSD PL1, PL2 e PL3 com faturamento econômico de pagamento conforme o uso.





