Dokumen di Framework Arsitektur Google Cloud ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa database di Google Cloud.
Cloud SQL
Rekomendasi berikut akan membantu Anda mengoptimalkan performa instance Cloud SQL yang menjalankan database SQL Server, MySQL, dan PostgreSQL.
- Untuk database SQL Server, Google merekomendasikan agar Anda mengubah parameter tertentu dan mempertahankan nilai default untuk beberapa parameter.
- Saat memilih jenis penyimpanan untuk database MySQL atau PostgreSQL, pertimbangkan kompromi performa biaya antara penyimpanan SSD dan HDD.
- Untuk mengidentifikasi dan menganalisis masalah performa dengan database PostgreSQL, gunakan dasbor Insight Cloud SQL.
- Untuk mendiagnosis performa yang buruk saat menjalankan kueri SQL, gunakan
pernyataan
EXPLAIN
.
Untuk informasi selengkapnya, lihat dokumentasi berikut:
- Mengoptimalkan performa: SQL Server
- Mengoptimalkan performa: MySQL
- Mengoptimalkan performa: PostgreSQL
Bigtable
Bagian ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa instance Bigtable.
Merencanakan kapasitas berdasarkan persyaratan performa
Anda dapat menggunakan Bigtable dalam spektrum aplikasi yang luas, masing-masing dengan sasaran pengoptimalan yang berbeda. Misalnya, untuk tugas pemrosesan data batch, throughput mungkin lebih penting daripada latensi. Untuk layanan online yang melayani permintaan pengguna, Anda mungkin perlu memprioritaskan latensi yang lebih rendah daripada throughput. Saat Anda merencanakan kapasitas untuk cluster Bigtable, pertimbangkan keseimbangan antara throughput dan latensi. Untuk informasi selengkapnya, lihat Merencanakan kapasitas Bigtable.
Mengikuti praktik terbaik desain skema
Tabel Anda dapat diskalakan hingga miliaran baris dan ribuan kolom, sehingga Anda dapat menyimpan data berukuran petabyte. Saat mendesain skema untuk tabel Bigtable Anda, pertimbangkan praktik terbaik desain skema.
Memantau performa dan melakukan penyesuaian
Pantau penggunaan CPU dan disk untuk instance Anda, analisis performa setiap cluster, dan tinjau rekomendasi ukuran yang ditampilkan dalam diagram pemantauan.
Spanner
Bagian ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa instance Spanner Anda.
Pilih kunci utama yang mencegah hotspot
Hotspot adalah server tunggal yang dipaksa untuk menangani banyak permintaan. Saat Anda memilih kunci utama untuk database, ikuti praktik terbaik desain skema untuk mencegah hotspot.
Ikuti praktik terbaik untuk coding SQL
Compiler SQL di Spanner mengonversi setiap pernyataan SQL deklaratif yang Anda tulis menjadi rencana eksekusi kueri imperatif. Spanner menggunakan rencana eksekusi untuk menjalankan pernyataan SQL. Saat membuat pernyataan SQL, ikuti praktik terbaik SQL untuk memastikan Spanner menggunakan rencana eksekusi yang menghasilkan performa yang optimal.
Menggunakan opsi kueri untuk mengelola pengoptimal kueri SQL
Spanner menggunakan pengoptimal kueri SQL untuk mengubah pernyataan SQL menjadi rencana eksekusi kueri yang efisien. Rencana eksekusi kueri yang dihasilkan pengoptimal mungkin sedikit berubah ketika pengoptimal kueri itu sendiri berkembang, atau ketika statistik database diperbarui. Anda dapat meminimalkan potensi regresi performa ketika pengoptimal kueri atau statistik database berubah dengan menggunakan opsi kueri.
Memvisualisasikan dan menyesuaikan struktur rencana eksekusi kueri
Untuk menganalisis masalah performa kueri, Anda dapat memvisualisasikan dan menyesuaikan struktur rencana eksekusi kueri menggunakan visualisasi paket kueri.
Menggunakan API operasi untuk mengelola operasi yang berjalan lama
Untuk panggilan metode tertentu, Spanner akan membuat operasi yang berjalan lama, yang mungkin memerlukan waktu lama untuk diselesaikan. Misalnya, saat Anda memulihkan database, Spanner akan membuat operasi yang berjalan lama untuk melacak progres pemulihan. Untuk membantu Anda memantau dan mengelola operasi yang berjalan lama, Spanner menyediakan API operasi. Untuk informasi selengkapnya, lihat Mengelola operasi yang berjalan lama.
Ikuti praktik terbaik untuk pemuatan massal
Spanner mendukung beberapa opsi untuk memuat data dalam jumlah besar secara massal. Performa operasi pemuatan massal bergantung pada faktor-faktor seperti partisi, jumlah permintaan tulis, dan ukuran setiap permintaan. Untuk memuat data dalam jumlah besar secara efisien, ikuti praktik terbaik pemuatan massal.
Memantau dan mengontrol pemakaian CPU
Pemakaian CPU instance Spanner dapat memengaruhi latensi permintaan. Server backend yang kelebihan beban dapat menyebabkan latensi permintaan yang lebih tinggi. Spanner memberikan metrik penggunaan CPU untuk membantu Anda menyelidiki penggunaan CPU yang tinggi. Untuk aplikasi yang sensitif terhadap performa, Anda mungkin perlu mengurangi pemakaian CPU dengan meningkatkan kapasitas komputasi.
Menganalisis dan mengatasi masalah latensi
Saat klien melakukan panggilan prosedur jarak jauh ke Spanner, permintaan API akan disiapkan terlebih dahulu oleh library klien. Kemudian, permintaan akan melewati Google Front End dan frontend Cloud Spanner API sebelum mencapai database Spanner. Untuk menganalisis dan mengatasi masalah latensi, Anda harus mengukur dan menganalisis latensi untuk setiap segmen jalur yang dilalui permintaan API. Untuk mengetahui informasi selengkapnya, lihat Panduan latensi menyeluruh Spanner.
Meluncurkan aplikasi setelah database mencapai status warm
Seiring dengan berkembangnya database Spanner, database ini membagi ruang kunci data Anda menjadi bagian. Setiap pemisahan adalah rentang baris yang berisi subset dari tabel Anda. Untuk menyeimbangkan keseluruhan beban pada database, Spanner secara dinamis memindahkan setiap bagian secara independen dan menetapkannya ke server yang berbeda. Jika bagian didistribusikan di beberapa server, database dianggap dalam status warm. Database yang hangat dapat memaksimalkan paralelisme dan memberikan peningkatan performa. Sebelum meluncurkan aplikasi, kami merekomendasikan Anda untuk memanaskan database dengan pemuatan data uji.
Langkah selanjutnya
Tinjau praktik terbaik untuk mengoptimalkan performa resource komputasi, penyimpanan, jaringan, dan analisis Anda:
- Mengoptimalkan performa komputasi.
- Mengoptimalkan performa penyimpanan.
- Mengoptimalkan performa jaringan.
- Mengoptimalkan performa analisis.