Mengonfigurasi autovacuum adaptif

Halaman ini memberikan ringkasan tentang autovacuum adaptif AlloyDB untuk PostgreSQL dan menjelaskan cara mengonfigurasinya.

Pembersihan adalah operasi pemeliharaan database PostgreSQL yang penting. Fungsi ini digunakan untuk mengklaim kembali ruang penyimpanan yang ditempati oleh baris yang diperbarui atau dihapus untuk menghindari pembesaran tabel atau indeks. ID ini juga digunakan untuk membekukan ID transaksi guna mencegah wraparound ID transaksi dan memperbarui statistik tabel.

Untuk informasi selengkapnya tentang proses vacuum, lihat Proses vacuum rutin.

Untuk mengotomatiskan proses pembersihan dan memperbarui statistik tabel secara kolektif, AlloyDB mendukung autovacuum adaptif. Autovacuum adaptif memungkinkan penyesuaian otomatis beban kerja vacuum saat beban kerja Anda berubah, menghapus tuple yang tidak aktif, dan memperbarui statistik tabel.

Autovacuum memastikan performa transaksi aplikasi yang andal dan konsisten serta mempertahankan ketersediaan sistem yang tinggi dengan mencegah wraparound ID transaksi.

Secara default, AlloyDB mengaktifkan autovacuum adaptif. Anda dapat menonaktifkan atau mengubah autovacuum adaptif di AlloyDB dengan menggunakan flag database.

Manfaat

Autovacuum adaptif menawarkan manfaat berikut:

  • Penyesuaian resource otomatis. AlloyDB secara otomatis menyesuaikan resource seperti CPU, I/O, jumlah proses vacuum, dan memori untuk proses vacuum berdasarkan status real time beban kerja dan resource yang tersedia tanpa memengaruhi performa sistem.

  • Pencegahan wraparound ID transaksi. AlloyDB memantau progres pembersihan dan kecepatan penggunaan ID transaksi. Jika diperlukan, AlloyDB akan membatasi penggunaan ID transaksinya dengan meng-vacuum setiap tabel dalam database, sehingga mencegah wraparound ID transaksi.

  • Pembersihan berkala untuk tabel. AlloyDB memicu autovacuum berdasarkan jumlah tuple mati dan halaman yang perlu dipindai. Fungsi ini menghapus tuple mati secara tepat waktu untuk menghindari pembengkakan tabel atau indeks.

  • Deteksi otomatis pemblokir. AlloyDB secara otomatis mendeteksi pemblokir seperti transaksi yang berjalan lama, transaksi yang disiapkan anak yatim, slot replikasi anak yatim, dan menampilkan pesan peringatan yang mirip dengan berikut ini dalam log postgres:

    Found a backend process PROCESS_ID with a long running transaction whose transaction
    id age AGE is larger than or equal to the transaction age threshold AGE_THRESHOLD.
    

Mengonfigurasi autovacuum adaptif

Secara default, autovacuum adaptif diaktifkan di AlloyDB. Anda dapat menonaktifkan autovacuum adaptif dengan menetapkan flag database enable_google_adaptive_autovacuum instance ke off.

Untuk mengetahui informasi selengkapnya tentang cara menetapkan flag database, lihat Mengonfigurasi flag database instance.

AlloyDB mendukung beberapa flag database PostgreSQL standar yang terkait dengan vacuum dan autovacuum, misalnya, vacuum_cost_delay dan autovacuum_vacuum_cost_delay. Anda tidak perlu menetapkan nilai di salah satu flag ini agar autovacuum adaptif berfungsi karena autovacuum adaptif menyesuaikan dan mengoptimalkan perilakunya dengan beban kerja sebenarnya. Jika Anda menetapkan nilai dalam flag ini, autovacuum adaptif akan menyesuaikan perilakunya untuk mempertimbangkan preferensi Anda.

Untuk melihat daftar lengkap flag database PostgreSQL yang didukung terkait vacuum dan autovacuum, lihat flag vacuum dan flag autovacuum.