AWS adalah penyedia cloud #1 untuk hosting database sumber terbuka, dan cloud masuk untuk penerapan MySQL. Karena organisasi terus bermigrasi ke cloud, penting untuk mengatasi masalah performa, seperti latensi tinggi, throughput rendah, dan jeda replikasi dengan jarak yang lebih tinggi antara pengguna Anda dan infrastruktur cloud. Sementara banyak pengguna AWS default ke solusi database terkelola mereka, Amazon RDS, ada alternatif yang tersedia yang dapat meningkatkan kinerja MySQL Anda di AWS melalui opsi penyesuaian lanjutan dan dukungan jenis instans EC2 tanpa batas. ScaleGrid menawarkan alternatif menarik untuk menghosting MySQL di AWS yang menawarkan kinerja lebih baik, lebih banyak kontrol, dan tidak ada penguncian vendor cloud serta harga yang sama dengan Amazon RDS. Dalam postingan ini, kami membandingkan performa MySQL Amazon RDS vs. MySQL Hosting di ScaleGrid pada instans AWS High Performance.
TLDR
ScaleGrid's MySQL pada penerapan Kinerja Tinggi AWS dapat memberikan 2x-3x throughput dengan setengah latensi Amazon RDS untuk MySQL dengan keuntungan tambahan memiliki 2 replika baca dibandingkan dengan 1 di RDS.
MySQL pada Uji Kinerja AWS
ScaleGrid | Amazon RDS | |
Jenis Instance | AWS High Performance XLarge (lihat detail sistem di bawah) | Instans DB r4.xlarge (Multi-AZ) |
Jenis Penerapan | 3 Set Master-Slave Node dengan Replikasi Semisinkron | Penerapan Multi-AZ dengan 1 Replika Baca |
Disk SSD | SSD Lokal &Tujuan Umum – 2TB | Tujuan Umum – 2TB |
Biaya Bulanan (USD) | $1.798 | $1.789 |
Amazon RDS Biaya | Harga | Kuantitas | Total | Catatan |
Multi-AZ | ||||
Instans DB (jam) | $0,48 | 730 | $350,40 | db.r4.xlarge |
Instans DB (jam) | $0,48 | 730 | $350,40 | db.r4.xlarge |
Penyimpanan (GB) | $0,115 | 2000 | $230.00 | Tujuan Umum – 2TB (Single-AZ) |
Baca Replika | ||||
Instans DB (jam) | $0,48 | 730 | $350,40 | db.r4.xlarge (Single-AZ) |
Penyimpanan (GB) | $0,115 | 2000 | $230.00 | Tujuan Umum – 2TB (Single-AZ) |
Biaya Lainnya | ||||
Penyimpanan Cadangan (GB) | $0,095 | 1000 | $95.00 | Mengosongkan penyimpanan DB hingga 100% |
Transfer Data (ke internet) | $0,09 | 0 | $0,00 | Kosongkan hingga 1 GB/bln |
Transfer Data (ke luar wilayah) | $0,01 | 2000 | $20.00 | US East (Virginia Utara) |
Dukungan | $162,62 | 1 | $162,62 | 10% dari biaya bulanan |
Total | $1,788.82 |
Seperti yang Anda lihat dari tabel di atas, harga MySQL RDS berada dalam $10 dari solusi hosting MySQL yang terkelola sepenuhnya dan menyeluruh dari ScaleGrid.
Apa yang dimaksud dengan Kumpulan Replika Performa Tinggi ScaleGrid?
Set replika ScaleGrid MySQL pada AWS High Performance menggunakan hibrida SSD lokal dan disk EBS untuk mencapai kinerja tinggi dan keandalan tinggi. Konfigurasi tipikal diterapkan menggunakan set replika 3-simpul:
- Master dan Slave-1 menggunakan disk SSD lokal.
- Slave-2 menggunakan disk EBS (bisa berupa Disk Tujuan Umum atau disk IOPS yang Disediakan).
Apa artinya ini? Karena Master dan Slave-1 berjalan pada SSD lokal, Anda mendapatkan kinerja disk terbaik dari mesin AWS Anda. Tidak ada lagi EBS berbasis jaringan, hanya SSD lokal yang sangat cepat. Membaca dan menulis ke Primer Anda, dan bahkan membaca dari Slave-1 akan bekerja dengan kecepatan SSD. Slave-2 menggunakan disk data EBS, dan Anda dapat mengonfigurasi jumlah IOPS yang diperlukan untuk cluster Anda. Konfigurasi ini memberikan keamanan lengkap untuk data Anda, bahkan jika Anda kehilangan disk SSD lokal.
Replika set replika XLarge MySQL AWS Kinerja Tinggi ScaleGrid menggunakan instans i3.xlarge (RAM 30,5 GB) dengan SSD lokal untuk Master dan Slave-1, dan i3.2xlarge (61 GB RAM) contoh untuk Slave-2.
Konfigurasi MySQL
Konfigurasi MySQL serupa digunakan pada penerapan ScaleGrid dan RDS:
Konfigurasi | Nilai |
versi | 5.7.25 edisi komunitas |
innodb_buffer_pool_size | 25G |
innodb_log_file_size | 1G |
innodb_flush_log_at_trx_commit | 1 |
sync_binlog | 1 |
innodb_io_capacity | 3000 |
innodb_io_capacity_max | 6000 |
slave_parallel_workers | 30 |
slave_parallel_type | LOGICAL_CLOCK |
Konfigurasi Tolok Ukur Kinerja MySQL
Konfigurasi | Rincian |
Alat | Sysbench versi 1.0.17 |
Host | 1 r4.xlarge terletak di pusat data AWS yang sama dengan Master MySQL |
# Tabel | 100 |
# Baris per tabel | 5.000.000 |
Skrip penghasil beban kerja | oltp_read_write.lua |
Skenario dan Hasil Uji Kinerja MySQL
Untuk memastikan kami memberikan hasil yang informatif untuk semua jenis beban kerja MySQL AWS, kami telah membagi pengujian kami menjadi tiga skenario ini sehingga Anda dapat mengevaluasi berdasarkan intensitas beban kerja baca/tulis Anda:
- 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
Setiap skenario dijalankan dengan jumlah utas klien sysbench yang bervariasi mulai dari 50 hingga 400, dan setiap pengujian dijalankan selama 10 menit. Kami mengukur throughput dalam hal Query Per Second (QPS) dan latensi Persentil ke-95, dan memastikan bahwa jeda replikasi maksimum pada slave tidak melewati 30 detik. Untuk beberapa pengujian pada penerapan ScaleGrid, konfigurasi MySQL binlog_group_commit_sync_delay disetel sehingga jeda replikasi slave tidak melebihi 30 detik. Teknik ini disebut sebagai 'memperlambat master untuk mempercepat budak' dan dijelaskan di blog J-F Gagne.
Cara Meningkatkan Kinerja #MySQL AWS 2X Lebih Dari Amazon RDS dengan Biaya Yang SamaKlik Untuk TweetSkenario-1:Beban Kerja Intensif Baca dengan 80% Bacaan dan 20% Tulis
Seperti yang dapat kita lihat dari tes beban kerja intensif baca, instans MySQL performa tinggi ScaleGrid di AWS mampu secara konsisten menangani sekitar 27.800 QPS mulai dari 50 hingga 400 benang. Ini hampir meningkat 200% dibandingkan kinerja MySQL RDS yang rata-rata hanya 9.411 QPS di rentang utas yang sama.
ScaleGrid juga mempertahankan rata-rata latensi 53% lebih rendah di seluruh pengujian kinerja AWS MySQL. Latensi Amazon RDS dan ScaleGrid meningkat dengan stabil seiring dengan bertambahnya jumlah utas, di mana ScaleGrid mencapai maksimum 383 md untuk 400 utas sementara Amazon RDS berada pada 831 md pada tingkat yang sama.
Skenario-2:Beban Kerja Seimbang dengan 50% Baca dan 50% Tulis
Dalam pengujian kinerja beban kerja seimbang kami, penerapan Kinerja Tinggi MySQL ScaleGrid di AWS berperforma lebih baik lagi dengan rata-rata 20.605 QPS pada utas mulai dari 50 hingga 400. Amazon RDS hanya rata-rata 8.296 untuk jumlah utas yang sama, menghasilkan peningkatan 148% dengan ScaleGrid.
Latensi ScaleGrid dan Amazon RDS menurun secara signifikan dalam pengujian beban kerja seimbang dibandingkan dengan pengujian intensif baca yang dibahas di atas. Amazon RDS rata-rata latensi 258 md dalam pengujian beban kerja seimbang, di mana ScaleGrid hanya rata-rata 125 md mencapai pengurangan latensi lebih dari 52% dibandingkan MySQL di Amazon RDS.
Skenario-3:Beban Kerja Intensif Tulis dengan 20% Bacaan dan 80% Tulis
Dalam skenario beban kerja MySQL AWS intensif tulis terakhir kami, ScaleGrid mencapai kinerja throughput yang jauh lebih tinggi dengan rata-rata 17.007 QPS pada rentang 50 hingga 400 utas. Ini merupakan peningkatan 123% dibandingkan Amazon RDS yang hanya mencapai 7.638 QPS dengan jumlah utas yang sama.
Uji latensi persentil ke-95 juga menghasilkan latensi yang jauh lebih rendah untuk ScaleGrid rata-rata 114 md pada 50 hingga 400 utas. Amazon RDS mencapai rata-rata 247 md dalam pengujian latensi, menghasilkan pengurangan rata-rata 54% dalam latensi saat menerapkan MySQL Kinerja Tinggi ScaleGrid pada layanan AWS melalui Amazon RDS.
Analisis
Seperti yang kami amati dari hasil pengujian, beban kerja intensif baca menghasilkan throughput dan latensi yang lebih tinggi dibandingkan beban kerja seimbang dan beban kerja intensif tulis, terlepas dari caranya MySQL di-deploy di AWS:
Rata-rata Uji Kinerja Throughput MySQL pada AWS | ScaleGrid | Amazon RDS | Peningkatan ScaleGrid |
Throughput Intensif Baca | 27.795 | 9,411 | 195.4% |
Seimbangkan Throughput Beban Kerja | 20.605 | 8.296 | 148,4% |
Throughput Intensif Tulis | 17.007 | 7,638 | 122,7% |
Rata-rata Uji Kinerja Latensi MySQL di AWS | ScaleGrid | Amazon RDS | Peningkatan ScaleGrid |
Latensi Intensif Baca | 206ms | 439ms | -53.0% |
Latensi Beban Kerja Seimbang | 125ms | 258ms | -51.6% |
Latensi Intensif Tulis | 114ms | 247ms | -53.8% |
Penjelasan Hasil
- Kami melihat bahwa ScaleGrid MySQL pada penerapan AWS memberikan throughput yang hampir 3x lebih baik untuk beban kerja intensif baca dibandingkan dengan penerapan RDS.
- Saat beban tulis meningkat, meskipun throughput absolut menurun, ScaleGrid masih memberikan kinerja throughput yang mendekati 2,5x lebih baik.
- Untuk beban kerja yang intensif menulis, kami menemukan bahwa jeda replikasi mulai muncul untuk slave EBS pada penerapan ScaleGrid. Karena tujuan kami adalah untuk menjaga lag replikasi slave dalam waktu 30 detik untuk menjalankan kami, kami memperkenalkan binlog_group_commit_sync_delay untuk memastikan bahwa slave dapat mencapai eksekusi paralel yang lebih baik. Ini mengendalikan penundaan, dan menghasilkan throughput absolut yang lebih rendah pada penerapan ScaleGrid, tetapi kami masih dapat melihat throughput 2,2x lebih baik dibandingkan dengan penerapan RDS.
- Untuk semua skenario beban kerja read-intensive, write-intensive, dan balanced, ScaleGrid menawarkan karakteristik latensi 0,5X lebih rendah dibandingkan dengan RDS.
Penerapan 'Kinerja Tinggi' ScaleGrid dapat memberikan 2x-3x throughput pada setengah latensi RDS dengan keuntungan tambahan memiliki 2 replika baca dibandingkan dengan 1 di RDS. Untuk mempelajari lebih lanjut tentang keunggulan hosting MySQL ScaleGrid dibandingkan Amazon RDS untuk MySQL, lihat halaman Bandingkan Penyedia MySQL kami atau mulai uji coba 30 hari gratis untuk menjelajahi platform DBaaS yang terkelola sepenuhnya.