Parameter innodb_buffer_pool_size menentukan ukuran kolam buffer InnoDB. Anda dapat menyesuaikan parameter ini untuk instans RDS MySQL sesuai dengan kebutuhan bisnis guna meningkatkan kinerja instans.
Sebelum Anda mulai
Instans RDS Anda harus menjalankan salah satu edisi berikut:
RDS Edisi Ketersediaan Tinggi
RDS Edisi Dasar
RDS Edisi Kluster
Batasan
Instans Serverless RDS MySQL tidak mendukung modifikasi manual parameter innodb_buffer_pool_size. Instans secara otomatis menyesuaikan ukuran kolam buffer InnoDB berdasarkan perubahan spesifikasi.
Jika parameter innodb_buffer_pool_size dari instans RDS MySQL diatur terlalu besar, hal itu dapat menyebabkan kehabisan memori (OOM) dan memicu alih bencana primer/sekunder. Kami menyarankan Anda mengonfigurasi parameter berdasarkan nilai maksimum kolam buffer yang direkomendasikan dalam topik ini.
Skenario
Dalam penggunaan sehari-hari, kecuali jika memori terbatas, kami menyarankan Anda meningkatkan parameter ini untuk mengoptimalkan kinerja database.
Tingkatkan: Saat memori server mencukupi, meningkatkan innodb_buffer_pool_size dapat secara efektif mengurangi throughput I/O disk. Jika data yang diquery dapat disimpan sepenuhnya atau sebagian besar di memori, CPU tidak perlu sering menunggu I/O disk, yang membantu mengurangi penggunaan CPU. Sebagai contoh, untuk pernyataan UPDATE yang sering dieksekusi, kolam buffer yang lebih besar dapat mengurangi ketergantungan pada disk, mengurangi waktu tunggu kunci, dan meningkatkan efisiensi MySQL dalam memproses pembaruan data, terutama ketika banyak catatan diperbarui.
Kurangi: Saat sumber daya memori terbatas, atau saat aplikasi lain memiliki kebutuhan memori tinggi, Anda dapat mengurangi nilai parameter innodb_buffer_pool_size.
Ukuran kolam buffer InnoDB
Anda dapat mengonfigurasi ulang parameter innodb_buffer_pool_size untuk mengubah ukuran kolam buffer InnoDB untuk instans RDS. Saat ini, Anda hanya dapat memodifikasi parameter ini menggunakan rumus. Rumusnya adalah sebagai berikut:
{DBInstanceClassMemory*X/Y}
# Contoh: {DBInstanceClassMemory*7/10}DBInstanceClassMemoryadalah memori dari tipe instans RDS (variabel sistem), danX/Ymewakili rasio ukuran kolam buffer terhadap memori instans.Rentang yang dapat disesuaikan adalah: [128 MB, DBInstanceClassMemory * 9 / 10], yang berarti nilai minimum adalah 128 MB dan nilai maksimum adalah 90% dari memori instans RDS.
Nilai default ukuran kolam buffer InnoDB
Instans disk lokal berperforma tinggi
Untuk tipe instans berikut, ukuran kolam buffer default adalah 80% hingga 90% dari memori instans. Untuk tipe instans lainnya, nilai defaultnya adalah 75% dari memori instans (memori instans * 3 / 4).
Instance family | Instance Type | CPU dan memori | Nilai default (MB) dan persentase memori instans |
Tipe instans tujuan umum | rds.mysql.s3.large | 4 core, 8 GB | 7372 (90%) |
rds.mysql.m1.medium | 4 core, 16 GB | 14745 (90%) | |
rds.mysql.c1.large | 8 core, 16 GB | 13107 (80%) | |
rds.mysql.c1.xlarge | 8 core, 32 GB | 27852 (85%) | |
rds.mysql.c2.xlarge | 16 core, 64 GB | 52428 (80%) | |
rds.mysql.c2.xlp2 | 16 core, 96 GB | 78643 (80%) | |
Instans khusus | mysql.x4.large.2 | 4 core, 16 GB | 14745 (90%) |
mysql.x8.large.2 | 4 core, 32 GB | 29491 (90%) | |
mysql.x4.xlarge.2 | 8 core, 32 GB | 27852 (85%) | |
mysql.x8.xlarge.2 | 8 core, 64 GB | 55705 (85%) | |
mysql.x4.2xlarge.2 | 16 core, 64 GB | 52428 (80%) | |
mysql.x8.2xlarge.2 | 16 core, 128 GB | 104857 (80%) |
Instans disk
Tipe instans tujuan umum
Ukuran kolam buffer default adalah 75% dari memori instans (memori instans * 3 / 4).
Tipe instans khusus
Ukuran kolam buffer default:
(memori instans - memori cadangan sistem) * 3 / 4Rumus untuk menghitung memori cadangan sistem adalah:
min{memori instans / 2, 2048} + max{CPU instans * 64, memori instans / 64} + (memori instans / 64) + 285, di mana unit memori instans adalah MB.
Untuk kemudahan Anda, tabel berikut memberikan ukuran kolam buffer default dan ukuran kolam buffer maksimum yang direkomendasikan untuk tipe instans khusus.
Inti CPU Instans | Memori instans (MB) | Ukuran kolam buffer | |
Nilai default (MB) | Nilai yang direkomendasikan (MB) | ||
2 | 4096 | 1024 | 1024 |
2 | 8192 | 4096 | 4096 |
2 | 16384 | 9216 | 10240 |
4 | 8192 | 4096 | 4096 |
4 | 16384 | 9216 | 10240 |
4 | 32768 | 21504 | 22528 |
8 | 16384 | 9216 | 10240 |
8 | 32768 | 21504 | 22528 |
8 | 65536 | 45056 | 48128 |
12 | 24576 | 15360 | 16384 |
12 | 49152 | 33792 | 35840 |
12 | 98304 | 69632 | 73728 |
16 | 32768 | 21504 | 22528 |
16 | 65536 | 45056 | 48128 |
16 | 131072 | 93184 | 99328 |
24 | 49152 | 32768 | 34816 |
24 | 98304 | 69632 | 73728 |
24 | 196608 | 140288 | 149504 |
32 | 65536 | 45056 | 47104 |
32 | 131072 | 93184 | 99328 |
32 | 262144 | 188416 | 200704 |
52 | 98304 | 67584 | 72704 |
52 | 196608 | 140288 | 149504 |
52 | 393216 | 283648 | 302080 |
64 | 262144 | 188416 | 200704 |
64 | 524288 | 378880 | 403456 |
102 | 786432 | 569344 | 607232 |
104 | 196608 | 138240 | 147456 |
104 | 393216 | 282624 | 302080 |
Kapasitas kolam buffer InnoDB selalu merupakan kelipatan dari innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances:
innodb_buffer_pool_chunk_sizetetap pada 32 MB. Untuk instans yang dibuat sebelumnya, mungkin 128 MB.Saat nilai
innodb_buffer_pool_sizeyang ditetapkan oleh pengguna bukan kelipatan, sistem secara otomatis membulatkan ke kelipatan integer terdekat.
Sebagai contoh, saat innodb_buffer_pool_chunk_size adalah 1 GB dan innodb_buffer_pool_instances adalah 1, jika Anda menetapkan innodb_buffer_pool_size menjadi 1,5 GB, maka akan disesuaikan menjadi 2 GB.
Ubah ukuran kolam buffer InnoDB untuk satu instans RDS
Pergi ke halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Kemudian, temukan instans RDS dan klik ID instans tersebut.
Di panel navigasi di sebelah kiri, klik Parameters.
Temukan parameter innodb_buffer_pool_size, klik
di sebelah kanan untuk memodifikasinya, lalu klik OK.Klik Submit Parameters, lalu klik OK di kotak dialog konfirmasi.
CatatanMemodifikasi parameter
innodb_buffer_pool_sizeuntuk RDS MySQL 5.6 memerlukan restart, tetapi ini tidak diperlukan untuk RDS MySQL 5.7 dan 8.0.
Ubah ukuran kolam buffer InnoDB untuk beberapa instans RDS sekaligus
Anda dapat membuat template parameter untuk memodifikasi innodb_buffer_pool_size lalu menerapkannya ke instans yang perlu dimodifikasi. Jika template parameter yang berisi parameter ini telah dibuat, Anda hanya perlu mengubah nilai parameter ini dalam template. Lalu, Anda dapat menerapkan template ke beberapa instans RDS sekaligus. Untuk informasi lebih lanjut, lihat Gunakan template parameter.

Referensi
Anda juga dapat menganalisis dan menangani masalah penggunaan memori RDS MySQL berdasarkan informasi pemantauan dan analisis log lambat dari instans Anda.