Dokumen ini memberikan rekomendasi workload dan deployment untuk menentukan ukuran instance AlloyDB untuk PostgreSQL bagi workload pemrosesan transaksi online (OLTP) dan pemrosesan analisis online (OLAP).
Ringkasan
Untuk membantu Anda mendapatkan performa database yang lebih baik, AlloyDB untuk PostgreSQL menyediakan fitur bawaan berikut:
- Pengelolaan memori otomatis
- Autovacuum adaptif
- Setelan performa bawaan yang dioptimalkan
- Jeda replikasi rendah
- Pemeliharaan tanpa gangguan dengan periode nonaktif kurang dari satu detik untuk node primer dan tanpa periode nonaktif untuk node kumpulan baca selama operasi penskalaan
Mengoptimalkan instance AlloyDB untuk PostgreSQL agar performanya lebih baik mencakup pengelolaan berikut:
- Menentukan ukuran instance kumpulan baca dan utama dengan benar
- Memperbarui flag yang memengaruhi performa
Pertimbangan ukuran
Sebelum menentukan ukuran instance AlloyDB untuk PostgreSQL, tentukan hal berikut:
- Jenis workload: OLTP, OLAP, atau HTAP
- Persyaratan performa: persyaratan latensi dan throughput
- Perkiraan ukuran data: ukuran data yang akan Anda simpan di AlloyDB untuk PostgreSQL, dan ukuran set data aktif
- Skala beban kerja Anda: peningkatan atau pertumbuhan ukuran data dari waktu ke waktu
Beban kerja OLTP
Anda dapat men-deploy database AlloyDB untuk PostgreSQL sebagai instance zonal (satu node) atau sebagai instance yang sangat tersedia (dua node di setiap zona). Secara opsional, Anda juga dapat menambahkan instance kumpulan baca dan cluster sekunder di region lain untuk workload yang didistribusikan secara geografis atau untuk pemulihan dari bencana (DR).
AlloyDB untuk PostgreSQL di-deploy menggunakan arsitektur terdistribusi skala cloud dengan komputasi dan penyimpanan yang terpisah. Penulisan akan dikonfirmasi segera setelah file log tulis di muka (WAL) dipertahankan di penyimpanan regional, sementara materialisasi blok akan di-offload ke penyimpanan.
Demikian pula, dengan arsitektur cache multi-tingkat, data secara otomatis ditempatkan di antara cache buffer, cache sangat cepat, dan mesin penyimpanan cerdas. Karena arsitektur cache multi-tingkat yang digunakan di AlloyDB untuk PostgreSQL ini, operasi input dan output per detik (IOPs) tidak relevan dalam konteks AlloyDB untuk PostgreSQL jika dibandingkan dengan sistem database lainnya.
Namun, penggunaan transaksi per detik (TPS)/transaksi per menit (TPM) dapat memberikan perbandingan yang bermakna untuk memahami jumlah data yang dapat ditangani oleh AlloyDB untuk PostgreSQL.
Metrik penskalaan utama adalah TPS. Untuk memperkirakan ukuran AlloyDB untuk PostgreSQL yang diperlukan, ikuti langkah-langkah berikut:
- Identifikasi workload yang ada. Jika Anda bermigrasi dari PostgreSQL yang dikelola sendiri atau dari database komersial lainnya, Anda mungkin sudah memiliki nilai TPS untuk workload yang ada.
- Menganalisis kueri Anda. Identifikasi kueri paling penting dalam workload Anda dan tentukan persyaratan performanya.
- Gunakan alat seperti
HammerDB
ataupgbench
. Alat ini membantu mem-benchmark AlloyDB untuk PostgreSQL dan menentukan apakah ukuran mesin memenuhi persyaratan TPS Anda. - Gunakan Panduan Tolok Ukur OLTP AlloyDB untuk PostgreSQL. Panduan ini memberikan data performa untuk berbagai konfigurasi AlloyDB untuk PostgreSQL, guna menemukan konfigurasi yang memenuhi persyaratan TPS Anda.
- Pilih ukuran AlloyDB untuk PostgreSQL yang sesuai. Pertimbangkan ukuran data Anda saat ini dan ekspektasi pertumbuhan di masa mendatang.
Panduan ukuran mesin
Contoh tabel berikut menunjukkan rekomendasi untuk data dengan tolok ukur TPC-C yang memiliki rasio baca-tulis sekitar 65% baca dan 35% tulis. Saat menentukan ukuran instance AlloyDB for PostgreSQL, Anda harus berupaya agar pemakaian CPU dalam kondisi stabil sekitar 60-70% untuk menghindari overhead penjadwalan sistem operasi. Hal ini memungkinkan beberapa margin untuk lonjakan penggunaan resource oleh aplikasi klien.
vCPU/Mem | Rentang Transaksi/detik yang Direkomendasikan (30% di-cache) |
Ukuran data kerja yang direkomendasikan (hingga ukuran total 128 TB) |
max_connections yang direkomendasikan |
---|---|---|---|
2 / 16GB | Hingga 1.000 | Hingga 100 GB | 1000 |
4 / 32GB | Hingga 2.500 | Hingga 250 GB | 2000 |
8/ 64GB | Hingga 4.000 | Hingga 500 GB | 4000 |
16 / 128GB | Hingga 8.000 | Hingga 1 TB | 5000 |
32 / 256GB | Hingga 14.000 | Hingga 3 TB | 5000 |
64 / 512GB | Hingga 20.000 | Hingga 8 TB | 5000 |
96 / 768GB | Hingga 25.000 | Hingga 16 TB | 5000 |
128 / 864GB | Lebih dari 20.000 | Hingga 32 TB | 5000 |
Jenis deployment
Berdasarkan beban kerja, Anda dapat men-deploy AlloyDB untuk PostgreSQL sebagai instance utama saja atau instance utama dengan kumpulan baca.
Khusus utama
Pilih deployment khusus primer untuk workload berikut:
- Tulis berat dengan bacaan rendah-sedang
- Kueri dengan banyak bacaan dan sedikit penulisan
- Baca-tulis OLTP standar (60-70% baca, 30-40% tulis).
Untuk mengetahui informasi selengkapnya tentang jenis mesin, lihat Panduan ukuran mesin umum.
Instance utama dengan instance kumpulan baca
Jika Anda memilih untuk men-deploy instance utama dengan kumpulan baca, pertimbangkan hal berikut:
- Jika Anda memiliki pembacaan yang sensitif terhadap latensi, pertimbangkan untuk memindahkan kueri baca ke instance kumpulan baca. Anda dapat mengonfigurasi hingga 20 node di semua instance kumpulan baca. Untuk mengetahui informasi selengkapnya, lihat Membuat instance kumpulan baca.
- Konfigurasi beberapa instance pool baca, jika Anda memiliki lebih dari satu database—misalnya, CRM atau Finance dalam instance yang sama. Menggunakan strategi ini akan membantu caching yang efektif dan performa kueri.
- Anda dapat menentukan ukuran instance utama dan kumpulan baca secara berbeda berdasarkan persyaratan Anda. Untuk mengetahui informasi selengkapnya tentang praktik terbaik untuk instance kumpulan baca, lihat Praktik terbaik untuk meningkatkan performa dan ketersediaan AlloyDB.
- Tambahkan lebih dari satu node per instance pool baca untuk ketersediaan tinggi.
- Aktifkan mesin berbasis kolom secara selektif di instance pool baca tertentu untuk performa kueri baca. Anda tidak perlu mengaktifkan mesin columnar di instance utama.
Sebaiknya gunakan fitur bawaan seperti penasihat indeks untuk membantu Anda menambahkan indeks yang dapat meningkatkan performa kueri.
Workload OLAP
Untuk workload OLAP, metrik pengukuran utama adalah performa kueri, terutama kueri yang memerlukan pemindaian atau penggabungan tabel penuh. AlloyDB untuk PostgreSQL menyertakan columnar engine bawaan yang membantu mempercepat kueri analisis. Mengaktifkan mesin columnar secara default menggunakan 30% memori dan otomatis menggunakan data cache yang sangat cepat.
Untuk mengetahui informasi selengkapnya tentang cara mengukur performa OLAP dengan AlloyDB untuk PostgreSQL menggunakan workload TPC-H, lihat Panduan Tolok Ukur OLAP untuk PostgreSQL di AlloyDB untuk PostgreSQL.
Jenis deployment
Berdasarkan beban kerja, Anda dapat men-deploy AlloyDB untuk PostgreSQL sebagai instance utama saja atau instance utama dengan kumpulan baca.
Khusus utama
Jika Anda men-deploy instance khusus primer, pertimbangkan hal berikut:
- Gunakan deployment ini untuk transaksi dengan kueri analitis (HTAP).
- Aktifkan mesin berbasis kolom untuk membantu kueri OLAP.
- Pertimbangkan untuk men-deploy dengan mesin 16 vCPU atau yang lebih besar yang menyediakan lebih banyak memori untuk menyimpan data berbasis kolom.
Primer dengan kumpulan baca
Jika Anda men-deploy instance utama dengan pool baca, pertimbangkan hal-hal berikut:
- Jika Anda memiliki penulisan berat dan juga pembacaan analitis yang sensitif terhadap latensi dengan persyaratan jeda rendah, deploy instance utama dengan HA diaktifkan, dan dengan instance kumpulan baca.
- Aktifkan mesin berbasis kolom di instance kumpulan baca tempat Anda menjalankan kueri analisis.
- Konfigurasi beberapa instance pool baca, jika Anda memiliki lebih dari satu database—misalnya, CRM atau Finance dalam instance yang sama. Menggunakan strategi ini akan membantu caching yang efektif dan performa kueri.
- Anda dapat menentukan ukuran instance utama dan kumpulan baca secara berbeda berdasarkan persyaratan Anda. Untuk mengetahui informasi selengkapnya tentang praktik terbaik untuk instance kumpulan baca, lihat Praktik terbaik untuk meningkatkan performa dan ketersediaan AlloyDB.
- Tambahkan lebih dari satu node per instance pool baca untuk ketersediaan tinggi.
- Aktifkan mesin berbasis kolom secara selektif di instance pool baca tertentu untuk performa kueri baca. Anda tidak perlu mengaktifkan mesin columnar di instance utama.
Langkah berikutnya
- Pelajari praktik terbaik untuk meningkatkan performa dan ketersediaan.
- Panduan Tolok Ukur OLTP PostgreSQL untuk AlloyDB untuk PostgreSQL.
- Panduan Tolok Ukur OLAP untuk PostgreSQL di AlloyDB untuk PostgreSQL.