Untuk meningkatkan efisiensi disk I/O dan kecepatan respons sistem, Anda dapat menggunakan fitur RDS MySQL Disk Berkinerja-Tinggi Buffer Pool Extension (BPE). Fitur ini membantu memperluas ukuran buffer pool, mempercepat caching, serta meningkatkan kinerja baca-tulis keseluruhan instans RDS Anda. Topik ini menjelaskan prinsip teknis, metode penggunaan, dan detail pengujian kinerja dari fitur Buffer Pool Extension (BPE).
Latar Belakang
Membaca data dari disk ke memori dan menulis data dari memori ke disk adalah operasi I/O umum dalam sistem database. Operasi disk I/O lebih lambat dibandingkan dengan operasi dalam memori dan membutuhkan waktu lebih lama untuk diselesaikan. Jika sistem database Anda mengalami beban kerja baca-tulis yang tinggi atau perlu memproses permintaan baca-tulis secara sering, disk I/O dapat menjadi hambatan kinerja.
Oleh karena itu, Alibaba Cloud RDS telah memperkenalkan jenis penyimpanan baru - disk berkinerja-tinggi. Sementara tetap mempertahankan kompatibilitas dengan semua fitur disk ESSD semua fitur, disk berkinerja-tinggi menggunakan arsitektur penyimpanan tiga lapis untuk mengelola dan membaca/menulis berbagai jenis data dan cache. Mereka juga memperkenalkan fitur lonjakan I/O dan Buffer Pool Extension (BPE) untuk meningkatkan kinerja I/O instans RDS.
Buffer Pool Extension (BPE) pengenalan fungsi
Ikhtisar fitur
Buffer pool adalah area memori yang digunakan untuk menyimpan cache data disk. Jika blok data perlu dibaca dari atau ditulis ke disk, sistem mencari blok data dari buffer pool:
Jika blok data ditemukan di buffer pool, sistem membaca dan menulis data dari dan ke buffer pool.
Jika blok data tidak ditemukan di buffer pool, sistem membaca data dari atau menulis data ke disk dan kemudian menyimpan data di buffer pool.
Buffer pool secara efisien mengurangi jumlah operasi disk I/O dan meningkatkan kinerja I/O instans RDS Anda. Ukuran buffer pool bervariasi berdasarkan ukuran memori. Jika sumber daya memori tidak mencukupi, ukuran buffer pool terbatas, yang memengaruhi kinerja I/O.
RDS MySQL memperkenalkan kemampuan Buffer Pool Extension untuk membantu memperluas ukuran buffer pool. Dikombinasikan dengan kemampuan kernel mesin RDS, secara teknis meningkatkan kinerja baca-tulis keseluruhan RDS MySQL, memungkinkan instans untuk mengeksekusi lebih banyak perintah baca-tulis dalam periode tertentu, meningkatkan efisiensi disk I/O dan kecepatan respons sistem, serta mencapai akselerasi cache.
Manfaat fitur
Setelah memperkenalkan Buffer Pool Extension, struktur penyimpanan RDS MySQL dibagi menjadi tiga lapisan, yang dapat sepenuhnya memanfaatkan berbagai media penyimpanan infrastruktur Alibaba Cloud untuk skenario dan kebutuhan penyimpanan data yang berbeda, meningkatkan kinerja I/O instans:
Tingkatkan Kinerja Baca-Tulis dan Kurangi Waktu Eksekusi SQL
BPE secara signifikan meningkatkan kecepatan akses halaman data dan mempersingkat durasi eksekusi kueri SQL dengan melakukan caching data.
BPE secara signifikan mengurangi frekuensi mengakses file data di disk berkinerja-tinggi instans, mengurangi bandwidth disk berkinerja-tinggi.
Tingkatkan Stabilitas Instans
Disk tempat BPE berada memiliki latensi lebih rendah daripada disk berkinerja-tinggi. Pada saat yang sama, ini secara signifikan mengurangi dampak jitter I/O disk berkinerja-tinggi pada operasi database, meningkatkan stabilitas.
Di pusat pengalaman solusi Buffer Pool Extension (BPE), Anda dapat melihat secara visual hasil uji tekanan real-time dengan dan tanpa Buffer Pool Extension (BPE) dengan membangun sumber daya RDS nyata, dan fitur ini gratis. Untuk informasi lebih lanjut, lihat Observasi Kinerja Akselerasi I/O Disk Berkinerja-Tinggi RDS (BPE).
Manfaat nilai
Setelah mengaktifkan fitur Buffer Pool Extension (BPE) untuk instans RDS MySQL Anda, saat ini Anda tidak perlu membayar biaya tambahan apa pun, dan bisnis Anda tidak perlu melakukan perubahan apa pun.
Kinerja I/O instans RDS Anda meningkat secara signifikan tanpa perubahan pada biaya atau kode aplikasi. Sebagai contoh, jika instans RDS standar Anda menjalankan Edisi Ketersediaan Tinggi RDS dan menggunakan tipe instans general-purpose dengan 8 core dan 16 GB memori, Anda dapat mencapai peningkatan kinerja QPS baca-tulis setelah mengaktifkan fitur Buffer Pool Extension (BPE). Untuk informasi lebih lanjut, lihat Pengujian Kinerja.
Prinsip teknis
Fitur Buffer Pool Extension (BPE) disk berkinerja-tinggi menggunakan teknologi ekstensi buffer pool untuk mendapatkan performa dari bentuk ESSD tanpa meningkatkan biaya. Fitur ini mewarisi kemampuan penyimpanan terpisah data panas dan dingin, dan meningkatkan ukuran InnoDB buffer pool untuk menyimpan halaman data dan data hangat ke BPE. Dengan cara ini, InnoDB dapat secara fleksibel menggunakan berbagai media penyimpanan untuk meningkatkan QPS.
Arsitektur teknis
Gambar berikut menunjukkan arsitektur penerapan BPE.

BPE menggunakan beberapa disk berkecepatan tinggi sebagai media cache, diposisikan antara memori dan disk berkinerja-tinggi. Dibandingkan dengan disk berkinerja-tinggi, disk berkecepatan tinggi memiliki latensi I/O lebih rendah dan performa superior.
Disk berkecepatan tinggi hanya merupakan media cache.
File data, file binlog, file redo, dll. disimpan di disk berkinerja-tinggi.
Fitur ini meningkatkan ukuran InnoDB buffer pool untuk menyimpan halaman data di buffer pool ke BPE. Dengan cara ini, InnoDB dapat secara fleksibel menggunakan berbagai media penyimpanan.
Prinsip implementasi
Setelah mengaktifkan fitur Buffer Pool Extension (BPE), halaman data instans akan disimpan di ekstensi buffer pool pada disk berkecepatan tinggi.
Halaman data yang disimpan di ekstensi buffer pool semuanya adalah halaman bersih, sesuai dengan data di file data pada disk berkinerja-tinggi.
Daftar berikut menggambarkan proses membaca halaman data:
Klien memulai permintaan untuk membaca halaman data.
Permintaan masuk ke buffer pool memori untuk mencari halaman data:
Jika halaman data ditemukan di buffer pool, hasil kueri dikembalikan ke klien, dan kueri dan pembacaan selesai.
Jika halaman data tidak ditemukan di buffer pool, sistem melanjutkan ke Langkah 3.
Permintaan masuk ke BPE disk berkecepatan tinggi untuk mencari halaman data:
Jika halaman data ditemukan di BPE, halaman data dikembalikan ke buffer pool, dan kemudian hasil kueri dikembalikan ke klien. Kueri dan pembacaan selesai.
Jika halaman data tidak ditemukan di BPE, sistem melanjutkan ke Langkah 4.
Permintaan masuk ke file tabel data pada disk berkinerja-tinggi untuk mencari halaman data. Jika halaman data ditemukan, halaman data dikembalikan ke buffer pool, dan kemudian hasil kueri dikembalikan ke klien.
Kueri dan pembacaan selesai.
Cakupan aplikasi
Instans RDS menjalankan MySQL.
Instans RDS menjalankan MySQL 8.0 dan versi mesin minor 20230914 atau yang lebih baru.
Instans RDS menjalankan Edisi Ketersediaan Tinggi RDS atau Edisi Kluster RDS.
Tipe produk instans RDS adalah standar.
Instans RDS menggunakan tipe instans general-purpose.
Instans RDS berada di salah satu wilayah dan zona berikut. Anda dapat melihat wilayah dan zona yang didukung di Konsol ApsaraDB RDS.
Wilayah
Zona
Cina (Chengdu)
Zona B
Cina (Beijing)
Zona I
Cina (Shanghai)
Zona M
Zona N
Cina (Hangzhou)
Zona J
Harga
Fitur Buffer Pool Extension (BPE) untuk tipe instans general-purpose RDS MySQL dengan disk berkinerja-tinggi tidak dikenakan biaya.
Perhatian
Fitur Buffer Pool Extension (BPE) untuk tipe instans general-purpose RDS MySQL tidak dikenakan biaya.
Apakah data di BPE hilang atau tidak tidak memengaruhi data layanan dan penggunaan normal instans RDS karena data layanan disimpan secara persisten di disk data.
Mengaktifkan fitur Buffer Pool Extension (BPE) akan menggunakan sejumlah memori (4% dari buffer_pool_size). Jumlah memori yang dialokasikan berdasarkan nilai default parameter buffer_pool_size secara otomatis dikurangi sebesar 4%. Jika Anda ingin mengubah nilai parameter buffer_pool_size dalam operasi selanjutnya, Anda dapat mengubah nilai berdasarkan metrik penggunaan memori.
Setelah mengaktifkan atau menonaktifkan fitur Buffer Pool Extension (BPE), instans akan tidak tersedia selama sekitar 30 detik. Disarankan untuk melakukan operasi pengaktifan dan penonaktifan selama jam-jam sepi.
Setelah mengaktifkan fitur Buffer Pool Extension (BPE), kinerja instans akan meningkat secara signifikan, dan semakin besar tipe instans, semakin jelas peningkatannya. Sebagai contoh, jika instans RDS standar Anda menjalankan Edisi Ketersediaan Tinggi RDS dan menggunakan tipe instans general-purpose dengan 8 core dan 16 GB memori, kinerja instans RDS dapat ditingkatkan sebesar 103%.
Buffer pool secara efisien mengurangi jumlah operasi disk I/O dan meningkatkan kinerja I/O instans RDS Anda. Ukuran buffer pool bervariasi berdasarkan ukuran memori. Jika sumber daya memori tidak mencukupi, ukuran buffer pool terbatas. Hal ini memengaruhi kinerja I/O.
Menggunakan fitur Buffer Pool Extension (BPE)
Aktifkan Buffer Pool Extension (BPE)
Akses daftar instans, pilih wilayah di bagian atas, dan klik ID instans target.
Di bagian Basic Information, klik Storage Type di sebelah High-performance Disk Switch Settings. Di kotak dialog yang muncul, aktifkan saklar Buffer Pool Extension (BPE).
Nonaktifkan Buffer Pool Extension (BPE)
Akses daftar instans, pilih wilayah di bagian atas, dan klik ID instans target.
Di bagian Basic Information, klik Storage Type di sebelah High-performance Disk Switch Settings. Di kotak dialog yang muncul, nonaktifkan saklar Buffer Pool Extension (BPE).
Pengujian Kinerja
Persiapan pengujian
Metode pengujian: Lakukan operasi baca-tulis data pada instans dengan tipe yang sama, dan bandingkan kinerja QPS sebelum dan sesudah mengaktifkan fitur Buffer Pool Extension (BPE).
Volume data: 300 GB.
Alat pengujian: Sysbench (Untuk informasi lebih lanjut, lihat Dokumentasi Resmi Sysbench)
CatatanSilakan aktifkan instans ECS terlebih dahulu. Alat pengujian dalam topik ini diinstal di ECS.
Instans pengujian: Siapkan satu instans RDS MySQL dengan 4 core dan 8 GB memori dan satu dengan 8 core dan 16 GB memori, keduanya menggunakan Edisi Ketersediaan Tinggi dan tipe instans general-purpose, dan aktifkan fitur Buffer Pool Extension (BPE).
Edisi
Instance Type Code
CPU dan memori
Edisi Ketersediaan Tinggi
mysql.n2.large.xc
4 core, 8 GB memori
Edisi Ketersediaan Tinggi
mysql.n2.xlarge.xc
8 core, 16 GB memori
Metode pengujian
Topik ini menggunakan CentOS sebagai contoh untuk pengujian kinerja. Jika Anda perlu menginstal dan menguji pada sistem operasi lain, lihat Dokumentasi Resmi Sysbench.
Instal Sysbench
Jalankan perintah berikut untuk menginstal Sysbench:
git clone https://github.com/akopytov/sysbench.git
cd sysbench
git checkout 0.5
yum -y install make automake libtool pkgconfig libaio-devel
yum -y install mariadb-devel
./autogen.sh
./configure
make -j
make install
Uji kinerja QPS instans
Deskripsi Parameter
Tabel berikut menjelaskan parameter yang terlibat dalam pengujian kinerja:
Nama parameter | Deskripsi |
--tables | Jumlah tabel |
--table_size | Jumlah entri di setiap tabel |
--rand-type | Jenis distribusi yang digunakan untuk menghasilkan bilangan acak |
--rand-spec-pct | Persentase bilangan acak khusus yang dianggap sebagai nilai khusus |
--threads | Jumlah thread konkuren |
--time | Durasi pengujian. Satuan: detik |
Uji Kinerja Baca
Jalankan perintah berikut untuk menghasilkan data sebesar 300 GB yang mencakup 30 tabel, dengan masing-masing tabel berisi 40 juta baris:
sysbench oltp_read_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepareJalankan perintah berikut untuk menguji kinerja baca instans RDS:
sysbench oltp_read_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run
Uji Performa Tulis
Jalankan perintah berikut untuk menghasilkan 300 GB data yang mencakup 30 tabel dengan 40 juta baris per tabel:
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepareJalankan perintah berikut untuk menguji kinerja tulis instans RDS:
sysbench oltp_write_only --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run
Uji Kinerja Baca-Tulis
Jalankan perintah berikut untuk menghasilkan 300 GB data yang mencakup 30 tabel dengan 40 juta baris per tabel:
sysbench oltp_read_write --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 prepareJalankan perintah berikut untuk menguji kinerja baca-tulis instans RDS:
sysbench oltp_read_write --tables=30 --table_size=40000000 --rand-type=special --rand-spec-pct=15 --threads=64 --time=100 run
Hasil pengujian
Daftar berikut menjelaskan hasil pengujian untuk instans RDS standar yang menjalankan Edisi Ketersediaan Tinggi RDS dan menggunakan tipe instans general-purpose dengan 4 core dan 8 GB memori:
Kinerja Baca: Kinerja QPS tetap sama sebelum dan sesudah mengaktifkan Buffer Pool Extension (BPE).
Kinerja Tulis: Setelah mengaktifkan Buffer Pool Extension (BPE), kinerja QPS meningkat sebesar 30%.
Kinerja Baca-Tulis: Setelah mengaktifkan Buffer Pool Extension (BPE), kinerja QPS meningkat sebesar 26%.

Daftar berikut menjelaskan hasil pengujian untuk instans RDS standar yang menjalankan Edisi Ketersediaan Tinggi RDS dan menggunakan tipe instans general-purpose dengan 8 core dan 16 GB memori:
Kinerja Baca: Setelah mengaktifkan Buffer Pool Extension (BPE), kinerja QPS meningkat sebesar 80%.
Kinerja Tulis: Setelah mengaktifkan Buffer Pool Extension (BPE), kinerja QPS meningkat sebesar 33%.
Kinerja Baca-Tulis: Setelah mengaktifkan Buffer Pool Extension (BPE), kinerja QPS meningkat sebesar 103%.
