Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL no Benchmark de Desempenho do Azure – ScaleGrid vs. Banco de Dados do Azure

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.