Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara Meningkatkan Kinerja MySQL AWS 2X Lebih Dari Amazon RDS dengan Biaya Yang Sama

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:

  1. Beban Kerja Intensif Baca: 80% Membaca dan 20% Menulis
  2. Beban Kerja Seimbang: 50% Membaca dan 50% Menulis
  3. 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 Tweet

Skenario-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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memperbaiki batas waktu tunggu Lock terlampaui; coba mulai ulang transaksi untuk 'tabel Mysql macet?

  2. Cara mereset kata sandi root MySQL

  3. Pernyataan KASUS SQL

  4. 4 Cara Mendaftar Semua Tabel di Database MySQL

  5. seberapa amankah pernyataan yang disiapkan PDO?