全部产品
Search
文档中心

ApsaraDB RDS:Gunakan fitur Binlog Parallel Flush

更新时间:Jul 06, 2025

AliSQL mengoptimalkan fitur Binlog Parallel Flush selama fase commit log biner untuk meningkatkan performa penulisan. Jika Anda mengaktifkan fitur ini setelah optimasi, performa penulisan instance ApsaraDB RDS Anda akan meningkat secara signifikan.

Prasyarat

  • Instance RDS Anda harus menggunakan MySQL 8.0.

  • Instance RDS Anda harus menjalankan versi mesin minor 20230930 atau yang lebih baru.

    Catatan

    Untuk memeriksa versi mesin minor dari instance RDS Anda, masuk ke konsol ApsaraDB RDS dan buka halaman Basic Information. Di bagian Configuration Information, periksa apakah tombol Upgrade Minor Engine Version tersedia. Jika tombol tersebut ada, klik untuk melihat dan memperbarui versi mesin minor instance RDS Anda. Jika tombol tidak tersedia, instance RDS Anda sudah menggunakan versi mesin minor terbaru. Untuk informasi lebih lanjut, lihat Perbarui versi mesin minor.

  • Parameter sync_binlog instance RDS Anda tidak boleh diatur ke 1.

Informasi latar belakang

13ca93f432f146db197ded0b18b3023042978ae3ee7812bef3267aa4ca532dedQzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTA5NTg1MTRfMjVEODNBODItRjNCMi00OGYxLUE1RDMtNzkzNkU5REIxNjQ5LnBuZw==.png

Dalam MySQL, sistem menulis data ke log biner setiap kali transaksi dikomit. Penulisan dilakukan secara berurutan, satu transaksi setelah yang lain.

Proses penulisan membutuhkan waktu karena sistem harus mengurai semua event dalam cache log biner, memberikan nilai pada parameter Checksum dan log_pos, serta menghasilkan event pengenal transaksi global (GTID). Proses ini menjadi hambatan besar bagi performa penulisan instance RDS. Untuk mengatasi hambatan ini, AliSQL mengoptimalkan fitur Binlog Parallel Flush.

Rincian optimasi

Buffer log biner

7d62745838385a745eefff4a18d6f6ae712c7f429c11d5456c9288e66c0685d9QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTEwNTY5ODBfRkE0RTZEOEYtMTg0NC00NzFiLTg0RTYtRjIxQTYyNjk4OEQwLnBuZw==.png

AliSQL memperkenalkan buffer log biner untuk menerapkan optimasi. Setelah beberapa thread dialokasikan, sistem dapat menulis event log biner ke buffer log biner secara paralel. Kemudian, thread backend menulis data dari buffer log biner ke file log biner. Dengan cara ini, sistem dapat melakukan operasi yang biasanya diselesaikan secara berurutan, seperti pemberian nilai pada parameter Checksum dan log_pos serta pembuatan event GTID, secara paralel. Hal ini meningkatkan performa penulisan saat event ditulis ke file log biner.

Komit grup

Dalam MySQL, sistem menulis data ke file log biner dan file redo log dari berbagai grup transaksi selama komit transaksi. Ini membantu menggabungkan operasi I/O sebanyak mungkin dan meningkatkan performa. Setelah optimasi, konsep komit grup tetap dipertahankan. Gambar berikut menunjukkan fitur Binlog Parallel Flush dengan komit grup.

49080702daa3a9709047732fbb09ebe2c40954015a22dc572926f5f706cdec34QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTEzMzE1ODZfRUVEQUNGMkEtMTE4RS00YmU4LUE0RDItQjZGRDg2NjEzMDE0LnBuZw==.png

Setelah optimasi, sistem mengalokasikan GTID dan buffer log biner untuk setiap transaksi. Sistem kemudian menulis event log biner dari grup transaksi ke buffer log biner. Setelah file redo log disimpan dan thread backend menulis data dari buffer log biner ke file log biner, grup transaksi dapat dikomit.

Persistensi log biner

f8acb0a238e8f535995bc410175c5b167240ab1ee31b97091d438c41812720b7QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTEwMTExMTgzOTBfOUMxQTkzNjktRTczNi00ZjIwLUFGNzktRUFCNERBOENBNDcwLnBuZw==.pngSetelah optimasi, file log biner dipersistensikan oleh thread backend secara berkala. Secara default, file log biner dipersistensikan sekali per detik.

Deskripsi parameter

loose_binlog_parallel_flush

Parameter ini menentukan apakah fitur Binlog Parallel Flush diaktifkan. Parameter ini adalah variabel sistem global dengan nilai valid: on dan off. Perubahan nilai parameter ini langsung berlaku tanpa perlu me-restart instance RDS Anda.

Efek optimasi

Lingkungan pengujian

Tabel berikut menjelaskan efek optimasi fitur pada instance ApsaraDB RDS for MySQL dengan spesifikasi berbeda.

Layanan

Versi

CPU dan memori

Jenis penyimpanan

Kapasitas penyimpanan

ApsaraDB RDS for MySQL

MySQL 8.0 (versi mesin minor: 20230930)

16 core, 32 GB

ESSD PL1

1.000 GB

16 core, 32 GB

SSD

1.000 GB

64 core, 128 GB

ESSD PL1

1.000 GB

64 core, 128 GB

SSD

1.000 GB

Konfigurasi parameter

Instance RDS dalam pengujian menggunakan template parameter kinerja tinggi. Dalam template tersebut, konfigurasi parameter terkait kinerja berikut digunakan: sync_binlog = 1000 dan innodB_flush_log_at_trx_commit = 2.

Skrip pengujian

Skrip oltp_update_non_index dari Sysbench digunakan untuk pengujian kinerja. Data pengujian mencakup 100 tabel, dengan masing-masing tabel berisi 100.000 baris.

Hasil pengujian

Gambar berikut menunjukkan hasil pengujian. Dibandingkan dengan Native MySQL Normal Flush, Binlog Parallel Flush meningkatkan performa penulisan instance RDS secara signifikan. Peningkatan maksimum dapat mencapai 10% hingga 30%.

5387087b82ed9e5a496a96425aee3abbe3cd103f9e53f63b92eae933526933a3QzpcVXNlcnNccWl5aW5ndGFuXEFwcERhdGFcUm9hbWluZ1xpRGluZ1RhbGtcNDI5ODE1NTU5N192MlxJbWFnZUZpbGVzXDE3MTA0ODMyODY1NTlfOTdCMkI0NTktNTYzMi00ZmU2LUJEMTMtOEQwMjg5QTYwQTVCLnBuZw==.png