Vacuuming adalah operasi pemeliharaan database PostgreSQL yang penting. Operasi ini digunakan untuk mengklaim kembali ruang penyimpanan yang ditempati oleh baris yang diperbarui atau dihapus untuk menghindari pembengkakan tabel atau indeks. Operasi ini juga digunakan untuk membekukan ID transaksi guna mencegah wraparound ID transaksi dan untuk memperbarui statistik tabel.
Untuk mengetahui informasi selengkapnya tentang vacuuming, lihat Vacuuming rutin.
Untuk mengotomatiskan proses vacuuming dan memperbarui statistik tabel secara kolektif, AlloyDB Omni mendukung autovacuum adaptif. Autovacuum adaptif memungkinkan penyesuaian otomatis workload vacuum saat workload Anda berubah, menghapus tuple yang tidak aktif, dan memperbarui statistik tabel.
Autovacuum memastikan performa transaksional aplikasi yang andal dan konsisten serta mempertahankan ketersediaan sistem yang tinggi dengan mencegah wraparound ID transaksi.
Secara default, AlloyDB Omni mengaktifkan autovacuum adaptif. Anda dapat menonaktifkan atau mengubah autovacuum adaptif di AlloyDB Omni dengan menggunakan flag database.
Manfaat
Autovacuum adaptif menawarkan manfaat berikut:
Penyesuaian resource otomatis. AlloyDB Omni secara otomatis menyesuaikan resource seperti CPU, I/O, jumlah proses vacuum, dan memori untuk proses vacuum berdasarkan status workload real time dan resource yang tersedia tanpa memengaruhi performa sistem.
Pencegahan wraparound ID transaksi. AlloyDB Omni memantau progres vacuum dan kecepatan konsumsi ID transaksi. Jika diperlukan, AlloyDB Omni membatasi konsumsi ID transaksinya dengan melakukan vacuum pada setiap tabel dalam database, sehingga mencegah wraparound ID transaksi.
Vacuum berkala untuk tabel. AlloyDB Omni memicu autovacuum berdasarkan jumlah tuple yang tidak aktif dan halaman yang perlu dipindai. Tindakan ini akan menghapus tuple yang tidak aktif tepat waktu untuk menghindari pembengkakan tabel atau indeks.
Deteksi otomatis pemblokir. AlloyDB Omni secara otomatis mendeteksi pemblokir, seperti transaksi yang berjalan lama, transaksi yang disiapkan tanpa induk, slot replikasi tanpa induk, dan menampilkan pesan peringatan yang mirip dengan berikut ini di 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 Omni. Anda dapat menonaktifkan autovacuum adaptif dengan menetapkan flag database enable_google_adaptive_autovacuum instance ke off.
AlloyDB Omni 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 perilaku untuk workload real Anda.
Jika Anda menetapkan nilai di flag ini, autovacuum adaptif akan menyesuaikan perilakunya untuk mempertimbangkan preferensi Anda.
Untuk melihat daftar lengkap flag database PostgreSQL yang didukung dan terkait dengan vacuum dan autovacuum, lihat flag vacuum dan flag autovacuum.