Praktik terbaik untuk meningkatkan performa dan ketersediaan AlloyDB

Halaman ini memperkenalkan praktik terbaik umum untuk membantu Anda meningkatkan performa, ketahanan, dan ketersediaan AlloyDB untuk PostgreSQL. Halaman ini ditujukan untuk administrator dan developer database yang sudah memahami AlloyDB dan PostgreSQL.

Konfigurasi dan administrasi instance

Menggunakan alat AlloyDB untuk memantau status dan penggunaan database

Gunakan tabel berikut untuk mempelajari alat AlloyDB yang membantu Anda memantau penggunaan, status, dan performa database.

Alat AlloyDB Deskripsi
Laporan ringkasan performa Membandingkan snapshot metrik sistem antara dua titik waktu yang berbeda.
Insight kueri Membantu Anda mendeteksi, mendiagnosis, dan mencegah masalah performa kueri untuk database AlloyDB. Solusi ini menyediakan informasi layanan mandiri, pemantauan yang intuitif, dan diagnostik yang lebih dari sekadar deteksi untuk membantu Anda mengidentifikasi akar penyebab masalah performa.
Insight sistem Memungkinkan Anda memantau resource dan metrik database, termasuk jumlah node aktif, penggunaan CPU, koneksi puncak, error log, transaksi per detik, dan jeda replika maksimum.

Mengikuti pedoman operasional

Untuk memastikan bahwa instance Anda tercakup dalam SLA AlloyDB untuk PostgreSQL, ikuti pedoman operasional.

Mengonfigurasi periode pemeliharaan untuk instance utama

Konfigurasikan periode pemeliharaan untuk instance utama Anda guna merencanakan waktu update yang mengganggu dapat terjadi. Untuk informasi selengkapnya, lihat Melihat dan menetapkan waktu pemeliharaan.

Menambahkan instance kumpulan baca untuk memindahkan traffic baca

Untuk workload read-heavy, tambahkan instance kumpulan baca untuk memindahkan traffic baca dari instance utama.

Konfigurasikan satu atau beberapa kumpulan operasi baca untuk setiap database dalam instance untuk membantu meningkatkan penyimpanan dalam cache.

Pertimbangkan untuk menambahkan node tambahan per kumpulan untuk memfasilitasi load balancing otomatis dan ketersediaan tinggi.

Mengelola jeda replikasi

AlloyDB telah melakukan beberapa peningkatan untuk meningkatkan kelambatan replikasi. Namun, Anda mungkin mengalami skenario saat replay log diblokir atau tidak dapat terus berjalan, yang dapat menyebabkan peningkatan jeda replikasi.

Misalnya, jika ukuran VM utama Anda jauh lebih besar daripada ukuran node kumpulan operasi baca, dalam workload operasi tulis yang berat, VM utama mungkin menghasilkan data log lebih cepat daripada node operasi baca dapat memutar ulang data tersebut, terutama jika ada juga workload operasi baca yang berat yang berjalan secara serentak di node operasi baca. Dalam skenario ini, meningkatkan ukuran node baca dapat membantu memberinya lebih banyak resource.

Bergantung pada kebutuhan aplikasi, Anda mungkin ingin menyesuaikan parameter berikut:

Jangan memulai operasi administratif sebelum operasi sebelumnya selesai

Instance AlloyDB tidak dapat menerima permintaan operasi baru hingga operasi sebelumnya selesai. Jika Anda mencoba memulai operasi baru sebelum operasi sebelumnya selesai, permintaan operasi akan gagal. Tindakan ini termasuk memulai ulang instance.

Status instance di konsol Google Cloud tidak mencerminkan apakah operasi sedang berjalan. Tanda centang hijau hanya menunjukkan apakah instance berada dalam status RUNNABLE. Untuk melihat apakah operasi sedang berjalan, klik tab Operasi, lalu periksa status operasi terbaru.

Mengonfigurasi kuota penyimpanan yang cukup untuk mengakomodasi pemeliharaan database yang penting

Secara default, Anda dapat menggunakan penyimpanan hingga 16 TB per cluster. Jika Anda memerlukan penyimpanan ekstra, pertimbangkan untuk meningkatkan kuota penyimpanan.

Mencegah penggunaan CPU yang berlebihan

Anda dapat melihat persentase CPU yang tersedia yang digunakan instance di halaman detail instance di konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Memantau instance. Anda juga dapat memantau penggunaan CPU dan menerima pemberitahuan pada batas yang ditentukan menggunakan Membuat kebijakan pemberitahuan batas metrik.

Untuk menghindari penggunaan yang berlebihan, Anda dapat menskalakan instance ke jumlah CPU yang lebih tinggi. Jika ingin mengubah CPU, instance harus dimulai ulang. Jika instance Anda sudah mencapai jumlah CPU maksimum, sebaiknya Anda melakukan sharding database ke beberapa instance.

Menghindari kehabisan memori

AlloyDB memiliki pengelolaan memori otomatis untuk mencegah masalah kehabisan memori. Namun, tekanan memori yang konstan dapat menyebabkan masalah performa. Saat mencari tanda-tanda kehabisan memori, Anda sebaiknya menggunakan metrik penggunaan sebagai langkah utama. Sebaiknya metrik ini tetap berada di bawah 90% untuk performa yang optimal.

Anda juga dapat menggunakan metrik total_usage untuk mengamati persentase memori yang tersedia yang digunakan instance AlloyDB, termasuk memori yang digunakan oleh penampung database dan memori yang dialokasikan oleh cache sistem operasi.

Dengan mengamati perbedaan antara metrik penggunaan dan total penggunaan, Anda dapat mengidentifikasi jumlah memori yang digunakan oleh proses dengan jumlah yang digunakan oleh cache sistem operasi. Anda dapat menggunakan kembali memori dalam cache ini.

Skalakan instance AlloyDB untuk meningkatkan ukuran memorinya. Jika ingin mengubah ukuran memori instance, Anda harus memulai ulang instance. Jika instance Anda sudah mencapai ukuran memori maksimum, Anda harus melakukan sharding database di beberapa instance.

Untuk informasi selengkapnya tentang cara memantau penggunaan dan metrik penggunaan total di konsol Google Cloud , lihat Memantau instance.

Pastikan instance Anda memiliki ID transaksi yang optimal

Anda dapat melihat penggunaan ID transaksi instance di halaman Metrics Explorer di konsol Google Cloud dengan menetapkan Resource Type ke AlloyDB for PostgreSQL Database dan menetapkan Metric ke Percentage of instance's transaction IDs consumed. Untuk informasi selengkapnya, lihat Membuat diagram dengan Metrics Explorer.

AlloyDB memiliki autovacuum adaptif bawaan yang membantu memitigasi masalah terkait vacuum.

Arsitektur data

Jika memungkinkan, bagi instance besar menjadi instance yang lebih kecil

Jika memungkinkan, gunakan banyak cluster AlloyDB yang lebih kecil, bukan menggunakan satu instance besar. Mengelola instance monolitik besar memiliki tantangan yang tidak dibuat oleh sekelompok instance yang lebih kecil.

Jangan menggunakan terlalu banyak tabel database

Pertahankan jumlah tabel instance kurang dari 10.000 tabel. Terlalu banyak tabel database dapat memengaruhi waktu upgrade database.

Performa kueri

Mengaktifkan Columnar Engine jika Anda menjalankan kueri analisis

Baca ringkasan mesin berbasis kolom AlloyDB. Periksa jenis kueri yang mendapatkan manfaat dari pengaktifan mesin kolom.

Anda dapat memantau penggunaan mesin kolom.

Jika Anda baru menggunakan mesin kolom, mulailah dengan memahami kolomisasi otomatis. Kemudian, Anda dapat memilih untuk mengelola kolom secara manual.

Menskalakan instance untuk meningkatkan performa kueri

Jika Anda mengalami performa kueri yang rendah, pertimbangkan untuk menskalakan instance.

Setiap SKU memiliki konfigurasi vCPU dan memori yang terbatas, dan setiap SKU juga memiliki cache cepat yang terbatas. Jika ukuran data Anda besar, dan jika Anda mengalami performa kueri yang buruk, pertimbangkan untuk menskalakan ke instance yang lebih besar.

Men-deploy kumpulan baca dan men-offload kueri baca ke kumpulan baca

Jika aplikasi Anda melakukan operasi tulis dan baca yang berat, pertimbangkan untuk men-deploy kumpulan operasi baca dan memindahkan kueri baca ke kumpulan operasi baca.

Untuk workload read-heavy, tambahkan instance kumpulan baca untuk memindahkan traffic baca dari instance utama.

Implementasi aplikasi

Menggunakan praktik pengelolaan koneksi yang baik

Gunakan praktik pengelolaan koneksi yang baik, seperti penggabungan koneksi dan backoff eksponensial.

Menggunakan teknik pengelolaan koneksi yang baik akan meningkatkan penggunaan resource aplikasi dan membantu Anda tetap berada dalam batas koneksi AlloyDB.

Menguji respons aplikasi Anda terhadap update pemeliharaan

Uji respons aplikasi Anda terhadap update pemeliharaan, yang dapat terjadi sewaktu-waktu selama masa pemeliharaan.

Anda dapat menyimulasikan update pemeliharaan dengan melakukan operasi skala komputasi atau memperbarui flag PostgreSQL statis yang memicu pemeliharaan downtime rendah (LDTM).

Selama LDTM, instance Anda tidak akan tersedia untuk beberapa saat, dan koneksi yang ada akan dihentikan. Menguji LDTM akan memberi Anda pemahaman yang lebih baik tentang cara aplikasi menangani pemeliharaan terjadwal dan seberapa cepat sistem dapat pulih.

Menguji respons aplikasi Anda terhadap failover

Uji respons aplikasi Anda terhadap failover yang dapat terjadi kapan saja.

Anda dapat memulai failover secara manual menggunakan konsol Google Cloud , Google Cloud CLI, atau API. Untuk mengetahui informasi selengkapnya, lihat Memulai failover.

Menghindari transaksi besar

Pertahankan agar transaksi tetap kecil dan singkat. Jika memerlukan update database yang besar, lakukan update dalam beberapa transaksi yang lebih kecil, bukan menjalankan satu transaksi besar.

Hindari subtransaksi dalam jumlah besar

Hindari subtransaksi dalam jumlah besar dalam transaksi jika ada transaksi yang berjalan lama.

Di AlloyDB, melakukan transaksi di blok error PL/pgSQL akan membuat subtransaksi dari transaksi yang sesuai dengan blok error. Performa sistem secara keseluruhan menurun jika jumlah subtransaksi melebihi 64 saat ada transaksi yang berjalan lama.

Menggunakan Proxy Auth versi terbaru

Jika Anda menggunakan Proxy Auth AlloyDB, pastikan Anda menggunakan versi terbaru. Untuk mengetahui informasi selengkapnya, lihat Memastikan klien Auth Proxy selalu terbaru.

Impor dan ekspor data

Memulihkan dari pencadangan Cloud SQL untuk PostgreSQL untuk migrasi

Untuk memfasilitasi migrasi, lihat Melakukan migrasi dari Cloud SQL untuk PostgreSQL ke AlloyDB.

Untuk mempelajari cara memigrasikan data dari Cloud SQL untuk PostgreSQL ke AlloyDB menggunakan replikasi data berkelanjutan, lihat Database Migration Service untuk PostgreSQL ke AlloyDB.

Mempercepat impor untuk instance kecil

Saat mengimpor set data besar untuk instance kecil, Anda dapat meningkatkan CPU dan RAM instance untuk sementara guna meningkatkan performa.

Pencadangan dan pemulihan

Melindungi data Anda menggunakan kemampuan AlloyDB yang sesuai

Gunakan pencadangan, pemulihan point-in-time (PITR), dan ekspor untuk redundansi dan perlindungan. Keduanya saling melindungi dari berbagai skenario dan saling melengkapi dalam strategi perlindungan data yang tangguh.

Pencadangan ringan; fungsi ini memberikan cara untuk memulihkan data pada instance Anda ke kondisi semula saat Anda mengambil pencadangannya. Namun, fitur cadangan AlloyDB memiliki beberapa batasan. Jika Anda menghapus instance, cadangannya juga akan dihapus. Anda tidak dapat mencadangkan satu database atau tabel. Selain itu, jika region tempat instance berada tidak tersedia, Anda tidak dapat memulihkan instance dari cadangan tersebut, bahkan di region yang tersedia.

Pemulihan point-in-time membantu Anda memulihkan instance ke titik waktu tertentu. Misalnya, jika error menyebabkan hilangnya data, Anda dapat memulihkan database ke statusnya sebelum error terjadi. Pemulihan point-in-time selalu membuat instance baru; Anda tidak dapat melakukan pemulihan point-in-time untuk instance yang ada.

Proses ekspor memerlukan waktu lebih lama karena file eksternal dibuat di Cloud Storage yang dapat digunakan untuk membuat ulang data Anda. Ekspor tidak akan terpengaruh jika Anda menghapus instance. Selain itu, Anda hanya dapat mengekspor satu database atau tabel, bergantung pada format ekspor.

Melindungi instance dan cadangan dari penghapusan yang tidak disengaja

Untuk mengaktifkan pencegahan penghapusan yang tidak disengaja secara default, buat instance AlloyDB menggunakan konsol Google Cloud atau Terraform.

Gunakan fitur ekspor di AlloyDB untuk mengekspor data Anda sebagai perlindungan tambahan. Gunakan Cloud Scheduler dengan Cloud Scheduler API untuk mengotomatiskan pengelolaan ekspor.

Untuk skenario lanjutan selengkapnya, gunakan Cloud Scheduler dengan fungsi Cloud Run untuk otomatisasi.