O Microsoft Azure é um dos provedores de nuvem mais populares do mundo e uma opção natural para hospedagem de banco de dados em aplicativos que aproveitam a Microsoft em toda a infraestrutura. MySQL é o banco de dados de código aberto número um que geralmente é hospedado por meio de instâncias do Azure. Embora a Microsoft ofereça seu próprio produto de banco de dados do Azure, existem outras alternativas disponíveis que podem ajudá-lo a melhorar o desempenho do MySQL. Nesta postagem do blog, comparamos o Banco de Dados do Azure para MySQL versus o ScaleGrid MySQL no Azure para que você possa ver qual provedor oferece o melhor desempenho de taxa de transferência e latência. Medimos a latência em ms latência do percentil 95.
Em resumo – TLDR |
| Cargas de trabalho de leitura intensiva Durante Cargas de Trabalho de Leitura Intensiva, o ScaleGrid consegue atingir uma taxa de transferência até 3 vezes maior e uma latência média 66% melhor em comparação com o Banco de Dados do Azure. Leia agora | | Cargas de trabalho balanceadas Com uma taxa de transferência média de 150% melhor e menos de um terço da latência, ScaleGrid supera o Banco de Dados do Azure para cargas de trabalho balanceadas. Leia agora | | Cargas de trabalho com muita gravação O Scalegrid atinge uma taxa de transferência até 4 vezes maior e uma latência média 64% menor em todos os segmentos em comparação com o Banco de Dados do Azure para MySQL. Leia agora | |
Apenas começando? Confira a publicação A Melhor Maneira de Hospedar o MySQL no Azure Cloud para saber mais sobre como otimizar sua implantação de banco de dados na nuvem.
Referência de desempenho do MySQL Azure
Neste relatório de referência, comparamos a hospedagem do MySQL no Azure no ScaleGrid versus o Banco de Dados do Azure para MySQL nesses três cenários de carga de trabalho:
- Carga de trabalho de leitura intensiva:80% de leituras e 20% de gravações
- Carga de trabalho balanceada:50% de leituras e 50% de gravações
- Carga de trabalho intensiva de gravação:20% de leituras e 80% de gravações
Medimos a taxa de transferência e o desempenho da latência do MySQL e medimos a taxa de transferência em termos de consultas por segundo (QPS) e latência em termos de percentil 95 (ms). Confira nossa seção de configuração de benchmark abaixo do relatório de desempenho para ver como esses testes foram configurados.
Desempenho de leitura intensiva do MySQL
As cargas de trabalho de leitura intensiva do MySQL são cargas de trabalho normalmente dominadas por operações de leitura, como SELECT. Assim, uma carga de trabalho de leitura intensiva seria aquela que pesquisa o banco de dados com mais frequência do que escrever nele. A Percona tem um ótimo post sobre cargas de trabalho com uso intenso de leitura e escrita, onde você pode aprender mais.
Vamos dar uma olhada na taxa de transferência e no desempenho da latência do ScaleGrid MySQL vs. Azure Database for MySQL:
Produtividade
Tópicos | ScaleGrid | Azure | Melhoria do ScaleGrid |
25 | 5.299 | 1.689 | 214% |
50 | 6.092 | 2.302 | 165% |
100 | 8.429 | 2.877 | 193% |
150 | 9.011 | 2.870 | 214% |
175 | 7.025 | 2.805 | 151% |
Como podemos ver no gráfico e na tabela de desempenho acima, o ScaleGrid MySQL atinge taxa de transferência até 3x maior b> comparado ao Banco de Dados do Azure para cargas de trabalho de leitura intensiva. Embora a taxa de transferência do Banco de Dados do Azure para MySQL esteja abaixo de 3.000 consultas por segundo em todos os cenários de encadeamento, o ScaleGrid tem mais de 5.000 a 9.000 consultas por segundo em todos os encadeamentos. |
Latência
Tópicos | ScaleGrid | Azure | Melhoria do ScaleGrid |
25 | 258 | 451 | -43% |
50 | 101 | 670 | -85% |
100 | 148 | 978 | -85% |
150 | 309 | 1562 | -80% |
175 | 1.089 | 1.678 | -35% |
Enquanto a latência do Banco de Dados do Azure para MySQL aumenta rapidamente à medida que o número de encadeamentos cresce, o ScaleGrid MySQL atinge constantemente baixa latência em todas as contagens de encadeamentos . Em média, ScaleGrid for MySQL tem latência 66% menor que o Banco de Dados do Azure para MySQL para cenários de carga de trabalho com leitura intensa. |
Reduza a latência do #MySQL em 66% no Azure, com desempenho de taxa de transferência até 3 vezes maiorClique para Tweet
Desempenho de carga de trabalho balanceada do MySQL
As cargas de trabalho balanceadas aproveitam quantidades aproximadamente iguais de operações de leitura e operações de gravação.
Produtividade
Tópicos | ScaleGrid | Azure | Melhoria do ScaleGrid |
25 | 3.806 | 1.748 | 118% |
50 | 5.834 | 2.437 | 139% |
100 | 6.365 | 2.712 | 135% |
150 | 5.724 | 2.775 | 106% |
175 | 6.206 | 1.767 | 251% |
Em média, ScaleGrid melhorou a taxa de transferência do MySQL em 150% em relação ao banco de dados do Azure para MySQL para cargas de trabalho balanceadas e é mais de 2x melhor em todo o número de threads. O Banco de Dados do Azure atingiu o máximo de cerca de 2.775 consultas por segundo em 150 threads, enquanto o ScaleGrid atingiu 5.724 consultas por segundo para o mesmo número de threads. |
Latência
Tópicos | ScaleGrid | Azure | Melhoria do ScaleGrid |
25 | 76 | 390 | -81% |
50 | 103 | 612 | -83% |
100 | 240 | 943 | -75% |
150 | 560 | 1.590 | -65% |
175 | 560 | 2.199 | -75% |
Vemos outra melhoria dramática no desempenho de latência para cargas de trabalho balanceadas, onde as implantações do ScaleGrid MySQL são capazes de funcionar menos mais de um terço da latência comparado ao Banco de Dados do Azure para MySQL. |
Desempenho de gravação intensiva do MySQL
Enquanto as operações de leitura estão pesquisando no banco de dados, as operações de gravação são aquelas que salvam ou modificam o banco de dados, como consultas INSERT, UPDATE ou DELETE. As cargas de trabalho com uso intenso de gravação geralmente são mais caras do que as cargas de trabalho com uso intenso de leitura, pois as operações consomem mais recursos. Vamos comparar o desempenho de latência e taxa de transferência do Banco de Dados do Azure em relação ao ScaleGrid em cargas de trabalho com uso intensivo de gravação do MySQL.
Produtividade
Tópicos | ScaleGrid | Azure | Melhoria do ScaleGrid |
25 | 3.327 | 826 | 303% |
50 | 5.003 | 1.154 | 334% |
100 | 5.180 | 1.476 | 251% |
150 | 4.310 | 1.651 | 161% |
175 | 4.071 | 1.643 | 148% |
Em nosso cenário de gravação intensiva, podemos ver a maior melhoria de desempenho onde ScaleGrid atinge até 4x taxa de transferência mais alta em comparação com o banco de dados do Azure . Isso é especialmente aparente em nossos cenários de baixo encadeamento, mas mesmo com 175 encadeamentos, o ScaleGrid ainda tem um desempenho 2,5 vezes melhor que o Banco de Dados do Azure. |
Latência
Tópicos | ScaleGrid | Azure | Melhoria do ScaleGrid |
25 | 76 | 277 | -73% |
50 | 101 | 383 | -74% |
100 | 298 | 996 | -70% |
150 | 760 | 1.740 | -56% |
175 | 1.089 | 2.009 | -46% |
ScaleGrid superou o Azure Database novamente com uma média de 64% menor latência em todo o número de threads para cargas de trabalho com uso intenso de gravação. |
Como podemos ver nos relatórios acima, o ScaleGrid ajuda você a aumentar significativamente sua taxa de transferência e diminuir sua latência em relação a implantações de banco de dados do Azure para MySQL em cargas de trabalho de leitura intensa, gravação intensiva e balanceadas cenários. Para saber mais sobre como esses dois provedores se comparam entre os recursos, confira a página ScaleGrid vs. Azure Database MySQL.
Configurações de referência
Vamos dar uma olhada nas configurações que usamos no benchmark de desempenho:
Comparação de configuração
Projetamos a configuração usando os planos mais comparáveis oferecidos entre o ScaleGrid e o Banco de Dados do Azure. Existem apenas pequenas diferenças e os custos são os mesmos para os dois provedores:
| ScaleGrid MySQL no Azure | Azure Database for MySQL |
Tipo de instância | Dedicado Grande:Standard_Ds2_v2 2 núcleos | Propósito geral:2 núcleos |
RAM | 7 GB | 10 GB (5 GB de memória por vCore) |
SSD | 128 GB, disco SSD Premium, 500 IOPS | 167 GB, até 500 IOPS |
Tipo de implantação | 2+1 Quorum com replicação semisíncrona | +1 Réplica de leitura Replicação assíncrona |
Região | Leste dos EUA | Leste dos EUA |
Suporte | Incluído | Plano padrão ($100) |
Preço Mensal Estimado | $400 | $400 |
Configuração do Sysbench
Configuration | Detalhes |
Ferramenta | Sysbench versão 1.0.20 |
Host | Standard_Ds2_v2 2 núcleos (2 vcpus, 7 GB de memória) na região leste dos EUA |
# Tabelas | 100 |
# linhas por tabela | 2.000.000 |
Distribuição de números aleatórios | Especial |
Configuração do MySQL Server
Configuração | Azure Scalegrid (dedicado) | Azure DB for MySQL |
versão SQL | 5.7.25 | 5.7.27 |
innodb_buffer_pool_size | 4G | 7,5G |
innodb_log_file_size | 1G | 268M |
innodb_io_capacity | 500 | 500 |
innodb_io_capacity_max | 1000 | 1000 |
Observe que no ScaleGrid, você tem opções avançadas para personalizar suas configurações do MySQL. Isso permite que você personalize sua implantação de acordo com as necessidades do seu aplicativo e otimize o desempenho. Infelizmente, o Banco de Dados do Azure não permite a personalização de alguns dos parâmetros, portanto, você fica preso às configurações padrão disponíveis por meio de sua plataforma.
Por exemplo, conseguimos personalizar o tamanho do arquivo de log do InnoDB para 1 GB, enquanto para o Banco de Dados do Azure, isso não pode ser modificado e tem um valor padrão de 268 M. Saiba mais sobre as limitações no Banco de Dados do Azure para MySQL.
Há muitas outras vantagens de usar o Scalegrid MySQL para Azure, confira a comparação completa em nossa página ScaleGrid vs. Azure Database – MySQL Hosting.