Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL in Azure Performance Benchmark:ScaleGrid e database di Azure

Microsoft Azure è uno dei provider di cloud più popolari al mondo e si adatta perfettamente all'hosting di database su applicazioni che sfruttano Microsoft nella propria infrastruttura. MySQL è il database open source numero uno comunemente ospitato tramite istanze di Azure. Sebbene Microsoft offra il proprio prodotto Database di Azure, sono disponibili altre alternative che potrebbero aiutarti a migliorare le prestazioni di MySQL. In questo post del blog, confrontiamo il database di Azure per MySQL con ScaleGrid MySQL in Azure in modo da poter vedere quale provider offre le migliori prestazioni di velocità effettiva e latenza. Misuriamo la latenza nella latenza del 95° percentile di ms.

In sintesi:TLDR

Carichi di lavoro ad alta intensità di lettura

Durante i carichi di lavoro a uso intensivo di lettura, ScaleGrid riesce a ottenere una velocità effettiva fino a 3 volte superiore e una latenza media del 66% migliore rispetto al database di Azure. Leggi ora

Carichi di lavoro bilanciati

Con una velocità effettiva superiore del 150% in media e meno di un terzo della latenza, ScaleGrid supera il database di Azure per carichi di lavoro bilanciati. Leggi ora

Carichi di lavoro ad alta intensità di scrittura

Scalegrid ottiene una velocità effettiva fino a 4 volte superiore e una latenza media inferiore del 64% su tutto il numero di thread rispetto al database di Azure per MySQL. Leggi ora

Hai appena iniziato? Dai un'occhiata al post Il modo migliore per ospitare MySQL su Azure Cloud per ulteriori informazioni sull'ottimizzazione della distribuzione del database nel cloud.

MySQL Azure Performance Benchmark

In questo rapporto di benchmark, confrontiamo l'hosting MySQL in Azure su ScaleGrid e il database di Azure per MySQL in questi tre scenari di carico di lavoro:

  • Carico di lavoro ad alta intensità di lettura:80% di letture e 20% di scritture
  • Carico di lavoro bilanciato:50% letture e 50% scritture
  • Carico di lavoro ad alta intensità di scrittura:20% di letture e 80% di scritture

Misuriamo il throughput MySQL e le prestazioni di latenza e misuriamo il throughput in termini di query al secondo (QPS) e latenza in termini di 95° percentile (ms). Consulta la nostra sezione Configurazione benchmark sotto il rapporto sulle prestazioni per vedere come sono stati configurati questi test.

Prestazioni MySQL ad alta intensità di lettura

I carichi di lavoro ad alta intensità di lettura MySQL sono carichi di lavoro generalmente dominati da operazioni di lettura, come SELECT. Quindi, un carico di lavoro ad alta intensità di lettura sarebbe quello che esegue ricerche nel database più spesso anziché scrivervi. Percona ha un ottimo post sui carichi di lavoro ad alta intensità di lettura e scrittura in cui puoi saperne di più.

Diamo un'occhiata alle prestazioni di velocità effettiva e latenza di ScaleGrid MySQL rispetto al database di Azure per MySQL:

Produttività

Fili ScaleGrid Azzurro Miglioramento 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%
Come possiamo vedere dal grafico e dalla tabella delle prestazioni sopra, ScaleGrid MySQL raggiunge un throughput fino a 3 volte superiore rispetto al database di Azure per i carichi di lavoro a uso intensivo di lettura. Mentre la velocità effettiva di Database di Azure per MySQL è inferiore a 3.000 query al secondo in tutti gli scenari di thread, ScaleGrid ha oltre 5.000-9.000 query al secondo in tutti i thread.

Latenza

Fili ScaleGrid Azzurro Miglioramento ScaleGrid
25 258 451 -43%
50 101 670 -85%
100 148 978 -85%
150 309 1562 -80%
175 1.089 1.678 -35%
Mentre la latenza del database di Azure per MySQL aumenta rapidamente all'aumentare del numero di thread, ScaleGrid MySQL raggiunge costantemente una bassa latenza su tutti i conteggi di thread . In media, ScaleGrid per MySQL ha una latenza inferiore del 66% rispetto al database di Azure per MySQL per scenari di carico di lavoro ad alta intensità di lettura.

Riduci la tua latenza #MySQL del 66% su Azure, con prestazioni di throughput fino a 3 volte superioriClick To Tweet

Prestazioni del carico di lavoro bilanciato MySQL

I carichi di lavoro bilanciati sfruttano quantità pressoché uguali di operazioni di lettura e di scrittura.

Produttività

Fili ScaleGrid Azzurro Miglioramento 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%
In media, ScaleGrid ha migliorato la velocità effettiva di MySQL del 150% rispetto al database di Azure per MySQL per carichi di lavoro bilanciati ed è più di 2 volte migliore su tutti i thread. Il database di Azure ha raggiunto il massimo di circa 2.775 query al secondo a 150 thread, mentre ScaleGrid ha raggiunto 5.724 query al secondo per lo stesso numero di thread.

Latenza

Fili ScaleGrid Azzurro Miglioramento ScaleGrid
25 76 390 -81%
50 103 612 -83%
100 240 943 -75%
150 560 1.590 -65%
175 560 2.199 -75%
Vediamo un altro notevole miglioramento delle prestazioni di latenza per carichi di lavoro bilanciati, in cui le distribuzioni ScaleGrid MySQL sono in grado di funzionare a meno di un terzo la latenza rispetto a Database di Azure per MySQL.

Prestazioni MySQL ad alta intensità di scrittura

Mentre le operazioni di lettura effettuano ricerche dal database, le operazioni di scrittura sono quelle che salvano o modificano il database, come le query INSERT, UPDATE o DELETE. I carichi di lavoro ad alta intensità di scrittura sono in genere più costosi dei carichi di lavoro ad alta intensità di lettura poiché le operazioni consumano più risorse. Confrontiamo ScaleGrid e prestazioni di latenza e velocità effettiva del database di Azure nei carichi di lavoro MySQL a uso intensivo di scrittura.

Produttività

Fili ScaleGrid Azzurro Miglioramento 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%
Nel nostro scenario ad alta intensità di scrittura, siamo in grado di vedere il più grande miglioramento delle prestazioni in cui ScaleGrid raggiunge fino a 4 volte velocità effettiva superiore rispetto al database di Azure . Ciò è particolarmente evidente nei nostri scenari a basso thread, ma anche a 175 thread ScaleGrid offre prestazioni 2,5 volte migliori rispetto al database di Azure.

Latenza

Fili ScaleGrid Azzurro Miglioramento 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 ha nuovamente superato il database di Azure con una media del 64% di latenza inferiore su tutto il numero di thread per carichi di lavoro ad alta intensità di scrittura.

Come si può vedere dai report precedenti, ScaleGrid consente di aumentare significativamente la velocità effettiva e di ridurre la latenza rispetto alle distribuzioni di database di Azure per MySQL in carichi di lavoro a uso intensivo di lettura, scrittura e bilanciati scenari. Per ulteriori informazioni sul confronto tra questi due provider tra le funzionalità, consulta la pagina ScaleGrid e database MySQL di Azure.

Configurazioni benchmark

Diamo un'occhiata alle configurazioni che abbiamo utilizzato nel benchmark delle prestazioni:

Confronto di configurazione

Abbiamo progettato la configurazione usando i piani più comparabili offerti tra ScaleGrid e Database di Azure. Ci sono solo piccole differenze e i costi sono gli stessi per i due fornitori:

ScaleGrid MySQL in Azure Database di Azure per MySQL
Tipo di istanza Dedicato Large:Standard_Ds2_v2 2 core Uso generico:2 core
RAM 7GB 10 GB (5 GB di memoria per vCore)
SSD 128 GB, disco SSD Premium, 500 IOPS 167 GB, fino a 500 IOPS
Tipo di distribuzione Quorum 2+1 con replica semisincrona +1 replica di lettura replica asincrona
Regione Stati Uniti orientali Stati Uniti orientali
Supporto Incluso Piano standard ($ 100)
Prezzo mensile stimato $400 $400

Configurazione Sysbench

Configurazione Dettagli
Strumento Sysbench versione 1.0.20
Host Standard_Ds2_v2
2 core (2 vcpus, 7 GB di memoria) nella regione degli Stati Uniti orientali
# Tabelle 100
# righe per tabella 2.000.000
Distribuzione di numeri casuali Speciale

Configurazione di MySQL Server

Configurazione Azure Scalegrid (dedicato) DB Azure per MySQL
Versione 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

Nota che su ScaleGrid hai opzioni avanzate per personalizzare le tue configurazioni MySQL. Ciò consente di personalizzare la distribuzione in base alle esigenze dell'applicazione e di ottimizzare le prestazioni. Sfortunatamente, Database di Azure non consente la personalizzazione di alcuni parametri, quindi sei bloccato con le configurazioni predefinite disponibili tramite la loro piattaforma.

Ad esempio, siamo stati in grado di personalizzare la dimensione del file di registro di InnoDB su 1 GB, mentre per il database di Azure questo non può essere modificato e ha un valore predefinito di 268 M. Altre informazioni sulle limitazioni nel database di Azure per MySQL.

Esistono molti altri vantaggi dell'utilizzo di Scalegrid MySQL per Azure, controlla il confronto completo nella nostra pagina ScaleGrid e database di Azure - Hosting MySQL.