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
Gunakan alat AlloyDB untuk memantau penggunaan dan status database.
Ikuti panduan operasional.
Konfigurasi masa pemeliharaan untuk instance utama Anda.
Tambahkan instance kumpulan baca untuk memindahkan traffic baca.
Mengelola jeda replikasi.
Jangan memulai operasi administratif sebelum operasi sebelumnya selesai.
Konfigurasi kuota penyimpanan yang cukup untuk mengakomodasi pemeliharaan database yang penting.
Cegah penggunaan CPU yang berlebihan.
Hindari kehabisan memori.
Pastikan instance Anda memiliki ID transaksi yang optimal.
Menggunakan alat AlloyDB untuk memantau penggunaan dan status 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 penyebab utama 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 replikasi maksimum. |
Mengikuti panduan operasional
Untuk memastikan bahwa instance Anda tercakup dalam SLA AlloyDB untuk PostgreSQL, ikuti pedoman operasional.
Mengonfigurasi masa pemeliharaan untuk instance utama Anda
Konfigurasikan masa pemeliharaan untuk instance utama Anda guna merencanakan waktu terjadinya update yang mengganggu. Untuk mengetahui informasi selengkapnya, lihat Melihat dan menyetel 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.
Konfigurasi satu atau beberapa kumpulan baca untuk setiap database dalam instance untuk membantu meningkatkan kualitas penayangan cache.
Sebaiknya tambahkan node tambahan per kumpulan untuk memfasilitasi load balancing otomatis dan ketersediaan tinggi.
Mengelola jeda replikasi
AlloyDB telah melakukan beberapa peningkatan untuk mengurangi kelambatan replikasi. Namun, Anda mungkin mengalami skenario saat pemutaran ulang log diblokir atau tidak dapat mengikuti, yang dapat menyebabkan peningkatan jeda replikasi.
Misalnya, jika ukuran VM utama Anda jauh lebih besar daripada ukuran node kumpulan baca, di bawah beban kerja tulis yang berat, VM utama dapat menghasilkan catatan log lebih cepat daripada yang dapat diputar ulang oleh node baca, terutama jika ada juga beban kerja baca yang berat yang berjalan secara bersamaan di node baca. Dalam skenario ini, meningkatkan ukuran node baca mungkin dapat membantu memberikan lebih banyak resource.
Bergantung pada kebutuhan aplikasi, Anda mungkin ingin menyesuaikan parameter berikut:
max_standby_streaming_delay
: menentukan berapa lama pemutaran ulang menunggu sebelum membatalkan kueri yang memblokirnya.google_storage.log_replay_throttle_read_transactions
: menentukan apakah akan membatasi kueri saat latensi tinggi. Pembatasan kueri memberikan lebih banyak resource untuk pemutaran ulang agar dapat mengejar ketinggalan lebih cepat dan menghindari menampilkan data yang sudah tidak berlaku untuk kueri.alloydb.promote_cancel_to_terminate
: Menentukan apakah akan menghentikan secara paksa backend kueri yang tidak responsif terhadap pembatalan.
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. Operasi ini termasuk memulai ulang instance.
Status instance di konsol Google Cloud tidak menunjukkan apakah
operasi sedang berjalan. Tanda centang hijau hanya menunjukkan apakah instance
berada dalam status RUNNABLE
. Untuk melihat apakah operasi sedang berjalan, klik
Operasi di panel navigasi sebelah kiri dan 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 lebih banyak penyimpanan, pertimbangkan untuk menambah 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 lakukan 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 upayakan agar metrik ini tetap berada di bawah 90% untuk mendapatkan 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 container 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 ke beberapa instance.
Untuk mengetahui informasi selengkapnya tentang pemantauan penggunaan dan metrik total penggunaan 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 dengan menetapkan
Metric
ke Percentage of instance's transaction IDs consumed
. Untuk mengetahui informasi selengkapnya, lihat Membuat diagram dengan Metrics Explorer.
AlloyDB memiliki autovacuum adaptif bawaan yang membantu mengurangi masalah terkait vacuum.
Arsitektur data
Bagi instance besar menjadi instance yang lebih kecil jika memungkinkan.
Jangan menggunakan terlalu banyak tabel database.
Jika memungkinkan, bagi instance besar menjadi instance yang lebih kecil
Jika memungkinkan, gunakan banyak cluster AlloyDB yang lebih kecil daripada menggunakan satu instance besar. Mengelola instance monolitik besar menimbulkan tantangan yang tidak ditimbulkan 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
Aktifkan Columnar Engine jika Anda menjalankan kueri analisis.
Menskalakan instance untuk meningkatkan performa kueri.
Men-deploy kumpulan baca dan memindahkan kueri baca ke kumpulan baca.
Aktifkan Columnar Engine jika Anda menjalankan kueri analisis
Baca ringkasan mesin berbasis kolom AlloyDB. Periksa jenis kueri yang akan diuntungkan jika mesin berbasis kolom diaktifkan.
Anda dapat memantau penggunaan mesin berbasis kolom.
Jika Anda baru menggunakan mesin columnar, mulailah dengan mempelajari kolumnisasi 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 Anda.
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 melakukan penskalaan ke instance yang lebih besar.
Men-deploy kumpulan baca dan memindahkan kueri baca ke kumpulan baca
Jika aplikasi Anda melakukan penulisan dan pembacaan yang berat, pertimbangkan untuk men-deploy kumpulan baca dan memindahkan kueri baca ke kumpulan baca.
Untuk workload read-heavy, tambahkan instance kumpulan baca untuk memindahkan traffic baca dari instance utama.
Implementasi aplikasi
Gunakan teknik pengelolaan koneksi yang baik.
Uji respons aplikasi Anda terhadap update pemeliharaan.
Uji respons aplikasi Anda terhadap failover.
Hindari transaksi besar.
Hindari subtransaksi dalam jumlah besar.
Gunakan Proxy Auth versi terbaru.
Gunakan 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 pada aplikasi Anda 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 kapan saja selama masa pemeliharaan.
Anda dapat menyimulasikan update pemeliharaan dengan melakukan operasi penskalaan komputasi atau mengupdate tanda PostgreSQL statis yang memicu pemeliharaan dengan waktu henti minimum (LDTM).
Selama LDTM, instance Anda akan menjadi tidak tersedia untuk beberapa saat, dan koneksi yang ada akan dihentikan. Menguji LDTM akan memberi Anda pemahaman yang lebih baik tentang cara aplikasi Anda 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 Google Cloud konsol, Google Cloud CLI, atau API. Untuk mengetahui informasi selengkapnya, lihat Memulai failover.
Hindari 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 dalam blok error PL/pgSQL akan membuat subtransaksi dari transaksi yang sesuai dengan blok error. Performa sistem secara keseluruhan akan menurun jika jumlah subtransaksi melebihi 64 saat ada transaksi yang berjalan lama.
Menggunakan versi terbaru Auth Proxy
Jika Anda menggunakan Proxy Auth AlloyDB, pastikan Anda menggunakan versi terbaru. Untuk mengetahui informasi selengkapnya, lihat Memastikan klien Proxy Auth selalu terbaru.
Impor dan ekspor data
Pulihkan dari cadangan Cloud SQL untuk PostgreSQL untuk migrasi.
Mempercepat impor untuk instance kecil.
Memulihkan dari cadangan Cloud SQL untuk PostgreSQL untuk migrasi
Untuk memfasilitasi migrasi, lihat Memigrasikan dari Cloud SQL for PostgreSQL ke AlloyDB.
Untuk mempelajari cara memigrasikan data Anda 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
Lindungi data Anda menggunakan kemampuan AlloyDB yang sesuai.
Lindungi instance dan cadangan Anda dari penghapusan yang tidak disengaja.
Lindungi 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 membuat cadangan. Namun, fitur pencadangan AlloyDB memiliki beberapa batasan. Jika Anda menghapus instance, cadangan juga akan dihapus. Anda tidak dapat mencadangkan satu database atau tabel. 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 ke 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 Anda.
Melindungi instance dan cadangan Anda dari penghapusan yang tidak disengaja
Untuk mengaktifkan pencegahan penghapusan tidak disengaja default, buat instance AlloyDB menggunakan Google Cloud konsol 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 Cloud Run functions untuk melakukan otomatisasi.