Menggunakan cache paket bersama - Amazon Aurora

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

Menggunakan cache paket bersama

Ikhtisar

Aurora PostgreSQL menggunakan process-per-user model di mana setiap koneksi klien membuat proses backend khusus. Setiap proses backend mempertahankan cache rencana lokalnya sendiri untuk pernyataan yang disiapkan. Karena cache ini tidak dapat dibagi antar proses, aplikasi yang menggunakan banyak pernyataan yang disiapkan dapat membuat cache duplikat di berbagai proses backend, yang mengarah pada peningkatan penggunaan memori.

Aurora PostgreSQL versi 17.6 dan yang lebih baru dan 16.10 dan kemudian memperkenalkan fungsionalitas cache paket bersama. Saat Anda mengaktifkan fitur ini, proses backend dapat berbagi paket generik, yang mengurangi penggunaan memori dan meningkatkan kinerja dengan menghilangkan pembuatan paket duplikat.

Cache paket bersama menggunakan komponen berikut sebagai kunci cache-nya:

  • String kueri (termasuk komentar)

  • Parameter GUC terkait perencana (termasuk) search_path

  • ID Pengguna

  • ID Database

Instans memulai ulang ulang cache bersama.

Parameter

Tabel berikut menjelaskan parameter yang mengontrol fitur cache paket bersama:

Parameter Deskripsi Default Diizinkan
apg_shared_plan_cache.enable Mengaktifkan atau menonaktifkan cache paket bersama 0 (MATI) 0, 1
apg_shared_plan_cache.max Jumlah maksimum entri cache 200—1000 (tergantung ukuran instance) 100—50000
apg_shared_plan_cache.min_size_per_entry Ukuran paket minimum untuk disimpan dalam cache bersama. Paket yang lebih kecil menggunakan cache lokal untuk mengoptimalkan kinerja OLTP. 16 KB 0—32768 (KB)
apg_shared_plan_cache.max_size_per_entry Ukuran paket maksimum untuk cache bersama. Paket yang lebih besar hanya menyimpan informasi biaya. 256 KB—4 MB (tergantung ukuran instance) 0—32768 (KB)
apg_shared_plan_cache.idle_generic_plan_release_timeout Waktu setelah sesi idle merilis rencana generik lokal. Nilai yang lebih rendah menghemat memori; nilai yang lebih tinggi mungkin meningkatkan kinerja. 10 detik 0—2147483647 (ms)
catatan

Anda dapat memodifikasi semua parameter tanpa memulai ulang.

Memantau tampilan dan fungsi

  • apg_shared_plan_cache()— Menampilkan informasi entri cache terperinci (hits, validitas, stempel waktu)

  • apg_shared_plan_cache_stat()— Menampilkan statistik tingkat instance (penggusuran, pembatalan)

  • apg_shared_plan_cache_reset()— Menghapus semua entri di apg_shared_plan_cache() dan apg_shared_plan_cache_stat()

  • apg_shared_plan_cache_remove(cache_key)— Menghapus entri dari apg_shared_plan_cache() tempat entri cocok cache_key

Batasan

  • Hanya berfungsi dengan pernyataan yang disiapkan dan tidak menyimpan PL/pgSQL pernyataan cache

  • Tidak menyimpan kueri yang berisi tabel sementara atau tabel katalog

  • Tidak menyimpan kueri yang bergantung pada RLS (Keamanan Tingkat Baris)

  • Setiap replika mempertahankan cache-nya sendiri (tidak ada berbagi lintas replika)