RDSuntuk memori Postgre SQL - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

RDSuntuk memori Postgre SQL

RDSuntuk SQL memori Postgre dibagi menjadi bersama dan lokal.

Memori bersama RDS untuk Postgre SQL

RDSuntuk Postgre SQL mengalokasikan memori bersama saat instance dimulai. Memori bersama dibagi menjadi beberapa sub-area. Anda dapat menemukan deskripsi untuk yang paling penting berikut ini.

Buffer bersama

Kolam buffer bersama adalah area SQL memori RDS untuk Postgre yang menampung semua halaman yang sedang atau sedang digunakan oleh koneksi aplikasi. Halaman adalah versi memori dari blok disk. Kumpulan buffer bersama menyimpan blok data yang dibaca dari disk. Kumpulan tersebut mengurangi kebutuhan untuk membaca ulang data dari disk, sehingga membuat basis data beroperasi lebih efisien.

Setiap tabel dan indeks disimpan sebagai array halaman dengan ukuran tetap. Setiap blok berisi beberapa tuple, yang sesuai dengan baris. Tuple dapat disimpan di halaman mana pun.

Kolam buffer bersama memiliki memori terbatas. Jika permintaan baru memerlukan halaman yang tidak ada dalam memori, dan tidak ada lagi memori, RDS untuk Postgre SQL mengusir halaman yang jarang digunakan untuk mengakomodasi permintaan. Kebijakan pengosongan diimplementasikan oleh algoritma clock sweep.

Parameter shared_buffers menentukan berapa banyak memori server dikhususkan untuk menyimpan data dalam cache.

Tulis buffer log (WAL) di depan

Buffer log (WAL) write-ahead menyimpan data transaksi yang RDS untuk Postgre SQL kemudian menulis ke penyimpanan persisten. Menggunakan WAL mekanisme, RDS untuk Postgre SQL dapat melakukan hal berikut:

  • Memulihkan data setelah kegagalan

  • Mengurangi disk I/O dengan menghindari penulisan ke disk yang sering

Ketika klien mengubah data, RDS untuk Postgre SQL menulis perubahan pada buffer. WAL Ketika klien mengeluarkan aCOMMIT, proses WAL penulis menulis data transaksi ke WAL file.

wal_levelParameter menentukan berapa banyak informasi yang ditulis keWAL.

Memori lokal RDS untuk Postgre SQL

Setiap proses backend mengalokasikan memori lokal untuk pemrosesan kueri.

Area memori kerja

Area memori kerja menyimpan data sementara untuk kueri yang melakukan pengurutan dan hash. Misalnya, kueri dengan klausa ORDER BY melakukan pengurutan. Kueri menggunakan tabel hash dalam gabungan dan agregasi hash.

Parameter work_mem jumlah memori yang akan digunakan oleh operasi pengurutan internal dan tabel hash sebelum menulis ke file disk sementara. Nilai default-nya adalah 4 MB. Beberapa sesi dapat berjalan secara bersamaan, dan setiap sesi dapat menjalankan operasi pemeliharaan secara paralel. Karena alasan ini, total memori kerja yang digunakan dapat menjadi kelipatan dari pengaturan work_mem.

Area memori kerja pemeliharaan

Area memori kerja pemeliharaan menyimpan data untuk operasi pemeliharaan. Operasi ini termasuk memvakum, membuat indeks, dan menambahkan kunci asing.

Parameter maintenance_work_mem menentukan jumlah maksimum memori yang akan digunakan oleh operasi pemeliharaan. Nilai default-nya adalah 64 MB. Sebuah sesi basis data hanya dapat menjalankan satu operasi pemeliharaan dalam satu waktu.

Area buffer sementara

Area buffer sementara menyimpan tabel sementara untuk setiap sesi basis data.

Setiap sesi mengalokasikan buffer sementara sesuai kebutuhan hingga batas yang Anda tentukan. Saat sesi berakhir, server menghapus buffer.

Parameter temp_buffers mengatur jumlah maksimum buffer sementara yang digunakan oleh setiap sesi. Sebelum penggunaan pertama tabel sementara dalam sesi, Anda dapat mengubah nilai temp_buffers.