Melakukan penyetelan cerdas di Azure Database for PostgreSQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Server fleksibel Azure Database for PostgreSQL memiliki fitur penyetelan cerdas yang dirancang untuk meningkatkan performa secara otomatis dan membantu mencegah masalah. Penyetelan cerdas terus memantau status database server fleksibel Azure Database for PostgreSQL dan secara dinamis menyesuaikan database dengan beban kerja Anda.

Fitur ini terdiri dari dua fungsi penyetelan otomatis:

  • Penyetelan autovacuum: Fungsi ini melacak rasio kembung dan menyesuaikan pengaturan autovacuum yang sesuai. Ini faktor dalam penggunaan sumber daya saat ini dan diprediksi untuk mencegah gangguan beban kerja.
  • Menulis penyetelan: Fungsi ini memantau volume dan pola operasi tulis, dan memodifikasi parameter yang memengaruhi performa tulis. Penyesuaian ini meningkatkan performa dan keandalan sistem, untuk secara proaktif menolak potensi komplikasi.

Anda dapat mengaktifkan penyetelan cerdas dengan menggunakan portal Azure atau Azure CLI.

Mengapa penyetelan cerdas?

Proses autovacuum adalah bagian penting untuk menjaga kesehatan dan performa database server fleksibel Azure Database for PostgreSQL. Ini membantu mengklaim kembali penyimpanan yang ditempati oleh baris "mati", mengosongkan ruang dan menjaga database berjalan dengan lancar.

Sama pentingnya adalah penyetelan operasi tulis dalam database. Tugas ini biasanya jatuh ke administrator database. Terus memantau database dan menyempurnakan operasi penulisan dapat menjadi tantangan dan memakan waktu. Tugas ini menjadi semakin kompleks ketika Anda berhadapan dengan beberapa database.

Di sinilah langkah-langkah penyetelan cerdas. Daripada mengawasi dan menyetel database Anda secara manual, Anda dapat menggunakan penyetelan cerdas untuk memantau dan menyetel database secara otomatis. Anda kemudian dapat fokus pada tugas penting lainnya.

Fungsi penyetelan autovacuum dalam penyetelan cerdas memantau rasio kembung dan menyesuaikan pengaturan sesuai kebutuhan untuk pemanfaatan sumber daya yang optimal. Ini secara proaktif mengelola proses "pembersihan" database dan mengurangi masalah performa yang dapat disebabkan oleh data yang kedaluarsa.

Fungsi penyetelan tulis mengamati kuantitas dan pola transaksional operasi tulis. Ini secara cerdas menyesuaikan parameter seperti bgwriter_delay, , checkpoint_completion_targetmax_wal_size, dan min_wal_size. Dengan demikian, ini meningkatkan performa dan keandalan sistem, bahkan di bawah beban tulis tinggi.

Saat Anda menggunakan penyetelan cerdas, Anda dapat menghemat waktu dan sumber daya yang berharga dengan mengandalkan server fleksibel Azure Database for PostgreSQL untuk mempertahankan performa optimal database Anda.

Bagaimana cara kerja penyetelan cerdas?

Penyetelan cerdas adalah proses pemantauan dan analisis berkelanjutan yang tidak hanya mempelajari karakteristik beban kerja Anda tetapi juga melacak beban dan penggunaan sumber daya Anda saat ini, seperti CPU atau IOPS. Ini tidak mengganggu operasi normal beban kerja aplikasi Anda.

Proses ini memungkinkan database untuk menyesuaikan beban kerja Anda secara dinamis dengan membedakan rasio kembung saat ini, performa tulis, dan efisiensi titik pemeriksaan pada instans Anda. Dengan wawasan ini, penyetelan cerdas menyebarkan tindakan penyetelan yang meningkatkan performa beban kerja Anda dan menghindari potensi perangkap.

Penyetelan autovacuum

Penyetelan cerdas menyesuaikan lima parameter yang terkait dengan autovacuum: autovacuum_vacuum_scale_factor, , autovacuum_cost_limitautovacuum_naptime, autovacuum_vacuum_threshold, dan autovacuum_vacuum_cost_delay. Parameter ini mengatur komponen seperti:

  • Pecahan tabel yang menetapkan VACUUM proses.
  • Batas penundaan vakum berbasis biaya.
  • Interval jeda antara eksekusi autovacuum.
  • Jumlah minimum tuple yang diperbarui atau mati diperlukan untuk memulai VACUUM proses.
  • Durasi jeda antara putaran pembersihan.

Penting

Penyetelan cerdas memodifikasi parameter terkait autovacuum di tingkat server, bukan pada tingkat tabel individual. Selain itu, jika autovacuum dimatikan, penyetelan cerdas tidak dapat beroperasi dengan benar. Agar penyetelan cerdas mengoptimalkan proses, fitur autovacuum harus diaktifkan.

Meskipun daemon autovacuum memicu dua operasi (VACUUM dan ANALYZE), penyetelan cerdas hanya menyempurnakan VACUUM proses. Fitur ini saat ini tidak menyesuaikan ANALYZE proses, yang mengumpulkan statistik pada konten tabel untuk membantu perencana kueri server fleksibel Azure Database for PostgreSQL memilih rencana eksekusi kueri yang paling cocok.

Penyetelan cerdas mencakup perlindungan untuk mengukur pemanfaatan sumber daya seperti CPU dan IOPS. Ini tidak akan meningkatkan aktivitas autovacuum ketika instans Anda berada di bawah beban berat. Dengan cara ini, penyetelan cerdas memastikan keseimbangan antara operasi pembersihan yang efektif dan performa keseluruhan sistem Anda.

Ketika penyetelan cerdas mengoptimalkan autovacuum, mempertimbangkan rata-rata blloat server dengan menggunakan statistik tentang tuple langsung dan mati. Untuk mengurangi kembung, penyetelan cerdas dapat mengurangi parameter seperti faktor skala atau waktu tidur siang. Ini dapat memicu VACUUM proses lebih cepat dan, jika perlu, mengurangi penundaan antara putaran.

Di sisi lain, jika blob minimal dan proses autovacuum terlalu agresif, penyetelan cerdas dapat meningkatkan parameter seperti penundaan, faktor skala, dan waktu tidur siang. Keseimbangan ini meminimalkan kembung dan membantu memastikan bahwa proses autovacuum menggunakan sumber daya secara efisien.

Menulis penyetelan

Penyetelan cerdas menyesuaikan empat parameter yang terkait dengan penyetelan tulis: bgwriter_delay, , checkpoint_completion_targetmax_wal_size, dan min_wal_size.

Parameter bgwriter_delay menentukan frekuensi di mana proses penulis latar belakang dibangunkan untuk membersihkan buffer "kotor" (buffer yang baru atau dimodifikasi). Proses penulis latar belakang adalah salah satu dari tiga proses di server fleksibel Azure Database for PostgreSQL yang menangani operasi tulis. Yang lain adalah proses checkpointer dan penulisan back-end (proses klien standar, seperti koneksi aplikasi).

Peran utama proses penulis latar belakang adalah untuk meringankan beban dari proses checkpointer utama dan mengurangi ketegangan penulisan back-end. Parameter bgwriter_delay mengatur frekuensi putaran penulis latar belakang. Dengan menyesuaikan parameter ini, Anda juga dapat mengoptimalkan performa kueri Bahasa Manipulasi Data (DML).

Parameter checkpoint_completion_target adalah bagian dari mekanisme tulis kedua yang didukung server fleksibel Azure Database for PostgreSQL, khususnya proses checkpointer. Titik pemeriksaan terjadi pada interval konstanta yang checkpoint_timeout menentukan (kecuali dipaksa dengan melebihi ruang yang dikonfigurasi). Untuk menghindari kelebihan beban sistem I/O dengan lonjakan penulisan halaman, menulis buffer kotor selama titik pemeriksaan tersebar selama periode waktu tertentu. Parameter checkpoint_completion_target mengontrol durasi ini dengan menggunakan checkpoint_timeout untuk menentukan durasi sebagai sebagian kecil dari interval titik pemeriksaan.

Nilai checkpoint_completion_target default adalah 0,9 (sejak PostgreSQL 14). Nilai ini umumnya berfungsi paling baik, karena menyebarkan beban I/O selama periode waktu maksimum. Dalam kasus yang jarang terjadi, titik pemeriksaan mungkin tidak selesai tepat waktu karena fluktuasi tak terduga dalam jumlah segmen Write-Ahead Logging (WAL) yang diperlukan. Dampak potensial pada performa adalah alasan mengapa checkpoint_completion_target metrik target untuk penyetelan cerdas.

Batasan dan masalah yang diketahui

  • Penyetelan cerdas membuat optimasi hanya dalam rentang tertentu. Ada kemungkinan bahwa fitur tidak akan membuat perubahan apapun.
  • Penyetelan cerdas tidak menyesuaikan ANALYZE pengaturan.
  • Penyetelan autovacuum saat ini didukung untuk tingkat komputasi server Tujuan Umum dan Memori yang Dioptimalkan yang memiliki empat vCore atau lebih. Tingkat komputasi server burstable tidak didukung.

Langkah berikutnya