Dokumen ini memberikan rekomendasi workload dan deployment untuk menentukan ukuran instance AlloyDB untuk PostgreSQL untuk workload pemrosesan transaksi online (OLTP) dan pemrosesan analisis online (OLAP).
Ringkasan
Untuk membantu Anda mencapai 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 waktu non-operasional kurang dari satu detik untuk node primer dan tanpa waktu non-operasional untuk node kumpulan baca selama operasi penskalaan
Mengoptimalkan instance AlloyDB untuk PostgreSQL agar performanya lebih baik mencakup pengelolaan berikut:
- Menentukan ukuran instance read pool dan primer dengan benar
- Memperbarui tanda 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
- Ukuran data yang diharapkan: ukuran data yang akan Anda simpan di AlloyDB untuk PostgreSQL, dan ukuran set data aktif
- Skala workload 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 depan (WAL) dipertahankan di penyimpanan regional, sementara materialisasi blok di-offload ke penyimpanan.
Demikian pula, dengan arsitektur cache multi-tingkat, data akan otomatis ditempatkan di antara cache buffer, cache ultra-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 penentuan ukuran utama adalah TPS. Untuk memperkirakan ukuran AlloyDB untuk PostgreSQL yang diperlukan, ikuti langkah-langkah berikut:
- Identifikasi workload yang ada. Jika Anda melakukan migrasi 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
HammerDBataupgbench. Alat ini membantu mengukur performa 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 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 untuk 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.
Gunakan rekomendasi ukuran dalam tabel berikut sebagai panduan umum.
Untuk mempelajari max_connections maksimum yang direkomendasikan untuk setiap ukuran mesin, lihat Koneksi serentak maksimum.
| vCPU/Mem | Rentang Transaksi/detik yang Direkomendasikan (30% di-cache) |
Ukuran data kerja yang direkomendasikan (hingga total ukuran 128 TB) |
|---|---|---|
| 2 / 16GB | Hingga 1.000 | Hingga 100 GB |
| 4 / 32GB | Hingga 2.500 | Hingga 250 GB |
| 8/ 64GB | Hingga 4.000 | Hingga 500 GB |
| 16 / 128GB | Hingga 8.000 | Hingga 1 TB |
| 32 / 256GB | Hingga 14.000 | Hingga 3 TB |
| 64 / 512GB | Hingga 20.000 | Hingga 8 TB |
| 96 / 768GB | Hingga 25.000 | Hingga 16 TB |
| 128 / 864GB | Lebih dari 20.000 | Hingga 32 TB |
Jenis deployment
Berdasarkan beban kerja, Anda dapat men-deploy AlloyDB untuk PostgreSQL sebagai instance utama saja atau instance utama dengan kumpulan baca.
Hanya utama
Pilih deployment khusus primer untuk workload berikut:
- Banyak penulisan dengan pembacaan rendah-sedang
- Kueri yang banyak membaca dengan penulisan ringan
- Baca-tulis OLTP umum (60-70% baca, 30-40% tulis).
Untuk mengetahui informasi selengkapnya tentang jenis mesin, lihat Panduan umum ukuran mesin.
Instance utama dengan instance read pool
Jika Anda memilih untuk men-deploy instance utama dengan pool baca, pertimbangkan hal berikut:
- Jika Anda memiliki pembacaan yang sensitif terhadap latensi, pertimbangkan untuk memindahkan kueri baca ke instance pool baca. Anda dapat mengonfigurasi hingga 20 node di semua instance kumpulan baca. Untuk mengetahui informasi selengkapnya, lihat Membuat instance read pool.
- Konfigurasi beberapa instance read pool, jika Anda memiliki lebih dari satu database—misalnya, CRM atau Finance dalam instance yang sama. Menggunakan strategi ini akan membantu caching dan performa kueri yang efektif.
- 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 kumpulan baca untuk ketersediaan tinggi.
- Aktifkan columnar engine secara selektif di instance kumpulan 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 analitis. Mengaktifkan columnar engine secara default akan menggunakan 30% memori dan otomatis menggunakan data cache yang sangat cepat.
Untuk mengetahui informasi selengkapnya tentang 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.
Hanya utama
Jika Anda men-deploy instance khusus utama, pertimbangkan hal berikut:
- Gunakan deployment ini untuk transaksi dengan kueri analitis (HTAP).
- Aktifkan columnar engine untuk membantu kueri OLAP.
- Pertimbangkan untuk men-deploy dengan mesin 16 vCPU atau yang lebih besar yang menyediakan lebih banyak memori untuk menyimpan data kolom.
Primer dengan kumpulan baca
Jika Anda men-deploy instance utama dengan pool baca, pertimbangkan hal-hal berikut:
- Jika Anda memiliki operasi tulis yang berat dan juga operasi baca analitik yang sensitif terhadap latensi dengan persyaratan jeda yang rendah, deploy instance utama dengan HA diaktifkan, dan dengan instance kumpulan baca.
- Aktifkan columnar engine di instance kumpulan baca tempat Anda menjalankan kueri analisis.
- Konfigurasi beberapa instance read pool, jika Anda memiliki lebih dari satu database—misalnya, CRM atau Finance dalam instance yang sama. Menggunakan strategi ini akan membantu caching dan performa kueri yang efektif.
- 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 kumpulan baca untuk ketersediaan tinggi.
- Aktifkan columnar engine secara selektif di instance kumpulan 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 untuk PostgreSQL di AlloyDB untuk PostgreSQL.
- Panduan Tolok Ukur OLAP untuk PostgreSQL di AlloyDB untuk PostgreSQL.