Microsoft Azure adalah salah satu penyedia cloud paling populer di dunia, dan cocok untuk hosting database pada aplikasi yang memanfaatkan Microsoft di seluruh infrastruktur mereka. MySQL adalah database open source nomor satu yang biasanya dihosting melalui instance Azure. Sementara Microsoft menawarkan produk Azure Database mereka sendiri, ada alternatif lain yang tersedia yang mungkin dapat membantu Anda meningkatkan kinerja MySQL Anda. Dalam posting blog ini, kami membandingkan Azure Database for MySQL vs. ScaleGrid MySQL di Azure sehingga Anda dapat melihat penyedia mana yang menawarkan kinerja throughput dan latensi terbaik. Kami mengukur latensi dalam latensi persentil ke-95 md.
Sekilas – TLDR | ||||||
---|---|---|---|---|---|---|
|
Baru memulai? Lihat postingan Cara Terbaik untuk Menghosting MySQL di Azure Cloud untuk mempelajari lebih lanjut tentang mengoptimalkan penerapan basis data cloud Anda.
Tolok ukur Kinerja MySQL Azure
Dalam laporan tolok ukur ini, kami membandingkan hosting MySQL di Azure di ScaleGrid vs. Azure Database untuk MySQL di tiga skenario beban kerja berikut:
- Beban Kerja Intensif Baca:80% membaca dan 20% menulis
- Beban Kerja Seimbang:50% membaca dan 50% menulis
- Beban Kerja Intensif Tulis:20% membaca dan 80% menulis
Kami mengukur throughput MySQL dan kinerja latensi, dan mengukur throughput dalam hal kueri per detik (QPS) dan latensi dalam persentil ke-95 (md). Lihat bagian Konfigurasi Tolok Ukur kami di bawah laporan kinerja untuk melihat bagaimana pengujian ini dikonfigurasi.
Kinerja Intensif Baca MySQL
Beban kerja intensif baca MySQL adalah beban kerja yang biasanya didominasi oleh operasi baca, seperti SELECT. Jadi, beban kerja membaca intensif akan menjadi salah satu yang mencari database lebih sering vs menulis untuk itu. Percona memiliki postingan yang bagus tentang beban kerja intensif baca vs. tulis, tempat Anda dapat mempelajari lebih lanjut.
Mari kita lihat kinerja throughput dan latensi ScaleGrid MySQL vs. Azure Database untuk MySQL:
Throughput
Utas | ScaleGrid | Azure | Peningkatan 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% |
Seperti yang dapat kita lihat dari grafik dan tabel kinerja di atas, ScaleGrid MySQL mencapai throughput hingga 3x lebih tinggi dibandingkan dengan Azure Database untuk beban kerja intensif baca. Sementara Azure Database untuk MySQL throughput di bawah 3.000 kueri per detik di semua skenario utas, ScaleGrid memiliki lebih dari 5.000-9.000 kueri per detik di seluruh utas. |
Latensi
Utas | ScaleGrid | Azure | Peningkatan ScaleGrid |
---|---|---|---|
25 | 258 | 451 | -43% |
50 | 101 | 670 | -85% |
100 | 148 | 978 | -85% |
150 | 309 | 1562 | -80% |
175 | 1.089 | 1,678 | -35% |
Sementara Azure Database untuk MySQL latency meningkat pesat seiring bertambahnya jumlah thread, ScaleGrid MySQL terus mencapai latency rendah di semua jumlah thread . Rata-rata, ScaleGrid untuk MySQL memiliki latensi 66% lebih rendah daripada Azure Database untuk MySQL untuk skenario beban kerja intensif baca. |
Kurangi latensi #MySQL Anda sebesar 66% di Azure, dengan kinerja throughput hingga 3 kali lebih tinggiKlik Untuk Tweet
Kinerja Beban Kerja Seimbang MySQL
Beban kerja yang seimbang memanfaatkan jumlah operasi baca dan tulis yang kira-kira sama.
Throughput
Utas | ScaleGrid | Azure | Peningkatan 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% |
Rata-rata, ScaleGrid meningkatkan throughput MySQL sebesar 150% dibandingkan Azure Database untuk MySQL untuk beban kerja yang seimbang, dan lebih dari 2x lebih baik di semua jumlah utas. Azure Database memaksimalkan sekitar 2.775 kueri per detik pada 150 utas, sementara ScaleGrid mencapai 5.724 kueri per detik untuk jumlah utas yang sama. |
Latensi
Utas | ScaleGrid | Azure | Peningkatan ScaleGrid |
---|---|---|---|
25 | 76 | 390 | -81% |
50 | 103 | 612 | -83% |
100 | 240 | 943 | -75% |
150 | 560 | 1.590 | -65% |
175 | 560 | 2,199 | -75% |
Kami melihat peningkatan dramatis lainnya dalam kinerja latensi untuk beban kerja yang seimbang, di mana penerapan ScaleGrid MySQL dapat dilakukan dengan kurang dari sepertiga latensi dibandingkan dengan Azure Database untuk MySQL. |
Kinerja Penulisan-Intensif MySQL
Saat operasi baca mencari dari database, operasi tulis adalah operasi yang menyimpan atau memodifikasi database, seperti kueri INSERT, UPDATE, atau DELETE. Beban kerja intensif tulis biasanya lebih mahal daripada beban kerja intensif baca karena operasi menghabiskan lebih banyak sumber daya. Mari kita bandingkan kinerja throughput dan latensi ScaleGrid vs. Azure Database di seluruh beban kerja intensif penulisan MySQL.
Throughput
Utas | ScaleGrid | Azure | Peningkatan 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% |
Dalam skenario intensif penulisan kami, kami dapat melihat peningkatan kinerja terbesar di mana ScaleGrid mencapai hingga 4x throughput yang lebih tinggi dibandingkan dengan Azure Database . Ini terutama terlihat dalam skenario utas rendah kami, tetapi bahkan pada 175 utas, ScaleGrid masih berkinerja 2,5x lebih baik daripada Azure Database. |
Latensi
Utas | ScaleGrid | Azure | Peningkatan 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 mengungguli Azure Database lagi dengan rata-rata 64% lebih rendah latensi di semua jumlah utas untuk beban kerja yang intensif menulis. |
Seperti yang dapat kita lihat dari laporan di atas, ScaleGrid membantu Anda meningkatkan throughput secara signifikan dan mengurangi latensi terhadap penerapan Azure Database untuk MySQL di seluruh beban kerja read-intensive, write-intensive, dan balanced skenario. Untuk mempelajari lebih lanjut tentang bagaimana kedua penyedia ini membandingkan seluruh fitur, lihat halaman ScaleGrid vs. Azure Database MySQL.
Konfigurasi tolok ukur
Mari kita lihat konfigurasi yang kami gunakan dalam tolok ukur kinerja:
Perbandingan Konfigurasi
Kami merancang konfigurasi menggunakan paket paling sebanding yang ditawarkan antara ScaleGrid dan Azure Database. Hanya ada sedikit perbedaan dan biayanya sama untuk kedua penyedia:
ScaleGrid MySQL di Azure | Database Azure untuk MySQL | |
---|---|---|
Jenis Instance | Besar Khusus:Standard_Ds2_v2 2 core | Tujuan Umum:2 core |
RAM | 7GB | 10GB (Memori 5GB per vCore) |
SSD | 128 GB, disk SSD Premium, 500 IOPS | 167 GB, hingga 500 IOPS |
Jenis Penerapan | 2+1 Kuorum dengan replikasi semisinkron | +1 Baca Replika Replikasi asinkron |
Wilayah | AS Timur | AS Timur |
Dukungan | Termasuk | Padding standar ($100) |
Perkiraan Harga Bulanan | $400 | $400 |
Konfigurasi Sysbench
Konfigurasi | Detail |
---|---|
Alat | Sysbench versi 1.0.20 |
Host | Standard_Ds2_v2 2 core (2 vcpus, memori 7GB) di wilayah AS Timur |
# Tabel | 100 |
# Baris per tabel | 2.000.000 |
Distribusi angka acak | Spesial |
Konfigurasi Server MySQL
Konfigurasi | Azure Scalegrid (Dedicated) | Azure DB untuk MySQL |
---|---|---|
Versi 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 |
Perhatikan bahwa di ScaleGrid, Anda memiliki opsi lanjutan untuk menyesuaikan konfigurasi MySQL Anda. Ini memungkinkan Anda untuk menyesuaikan penerapan dengan kebutuhan aplikasi Anda dan mengoptimalkan kinerja. Sayangnya, Azure Database tidak mengizinkan penyesuaian beberapa parameter, jadi Anda terjebak dengan konfigurasi default yang tersedia melalui platform mereka.
Misalnya, kami dapat menyesuaikan ukuran file log InnoDB menjadi 1GB sedangkan untuk Azure Database, ini tidak dapat diubah dan memiliki nilai default 268M. Pelajari lebih lanjut tentang batasan di Azure Database untuk MySQL.
Ada banyak keuntungan lain menggunakan Scalegrid MySQL untuk Azure, lihat perbandingan lengkapnya di Database ScaleGrid vs. Azure kami – halaman Hosting MySQL.