Halaman ini memperkenalkan alat Autoscaler untuk Spanner (Autoscaler), yaitu alat open source yang dapat Anda gunakan sebagai alat pendamping untuk Spanner. Alat ini memungkinkan Anda meningkatkan atau mengurangi kapasitas komputasi secara otomatis di satu atau beberapa instance Spanner berdasarkan jumlah kapasitas yang digunakan.
Untuk mengetahui informasi selengkapnya tentang penskalaan di Spanner, lihat Penskalaan otomatis Spanner. Untuk mengetahui informasi tentang cara men-deploy alat Autoscaler, lihat referensi berikut:
- Men-deploy alat Autoscaler untuk Spanner ke fungsi Cloud Run.
- Deploy alat Autoscaler untuk Spanner ke Google Kubernetes Engine (GKE).
Halaman ini menyajikan fitur, arsitektur, dan konfigurasi tingkat tinggi Autoscaler. Topik ini memandu Anda melakukan deployment Autoscaler ke salah satu runtime yang didukung di setiap topologi yang berbeda.
Autoscaler
Alat Autoscaler berguna untuk mengelola penggunaan dan performa deployment Spanner Anda. Untuk membantu Anda menyeimbangkan kontrol biaya dengan kebutuhan performa, alat Autoscaler memantau instance Anda dan secara otomatis menambahkan atau menghapus node atau unit pemrosesan untuk membantu memastikan bahwa instance tersebut tetap berada dalam parameter berikut:
- Nilai maksimum yang direkomendasikan untuk penggunaan CPU.
- Batas yang direkomendasikan untuk penyimpanan per node.
Plus atau minus margin yang dapat dikonfigurasi.
Dengan menggunakan deployment Spanner penskalaan otomatis, infrastruktur Anda dapat beradaptasi dan diskalakan secara otomatis untuk memenuhi persyaratan beban dengan sedikit atau tanpa intervensi. Penskalaan otomatis juga menyesuaikan ukuran infrastruktur yang disediakan, yang dapat membantu Anda meminimalkan tagihan yang timbul.
Arsitektur
Autoscaler memiliki dua komponen utama, yaitu Poller dan Scaler. Meskipun Anda dapat men-deploy Autoscaler dengan konfigurasi yang bervariasi ke beberapa runtime di beberapa topologi dengan konfigurasi yang bervariasi, fungsi komponen inti ini sama.
Bagian ini menjelaskan kedua komponen ini dan tujuannya secara lebih mendetail.
Poller
Poller mengumpulkan dan memproses metrik deret waktu untuk satu atau beberapa instance Spanner. Poller memproses data metrik terlebih dahulu untuk setiap instance Spanner sehingga hanya titik data yang paling relevan yang dievaluasi dan dikirim ke Scaler. Prapemrosesan yang dilakukan oleh Poller juga menyederhanakan proses evaluasi nilai minimum untuk instance Spanner regional, dual-region, dan multi-region.
Pengatur skala
Scaler mengevaluasi titik data yang diterima dari komponen Poller, dan menentukan apakah Anda perlu menyesuaikan jumlah node atau unit pemrosesan, dan jika ya, berapa banyak. Fungsi ini membandingkan nilai metrik dengan nilai minimum, ditambah atau dikurangi margin yang diizinkan, dan menyesuaikan jumlah node atau unit pemrosesan berdasarkan metode penskalaan yang dikonfigurasi. Untuk detail selengkapnya, lihat Metode penskalaan.
Sepanjang alur, alat Autoscaler menulis ringkasan rekomendasi dan tindakannya ke Cloud Logging untuk pelacakan dan audit.
Fitur autoscaler
Bagian ini menjelaskan fitur utama alat Autoscaler.
Mengelola beberapa instance
Alat Autoscaler dapat mengelola beberapa instance Spanner di beberapa project. Instance multi-regional, region ganda, dan regional semuanya memiliki nilai minimum penggunaan yang berbeda yang digunakan saat penskalaan. Misalnya, deployment multi-region dan dual-region diskalakan pada penggunaan CPU prioritas tinggi sebesar 45%, sedangkan deployment regional diskalakan pada penggunaan CPU prioritas tinggi sebesar 65%, baik ditambah maupun dikurangi margin yang diizinkan. Untuk informasi selengkapnya tentang berbagai nilai minimum untuk penskalaan, lihat Notifikasi untuk penggunaan CPU yang tinggi.
Parameter konfigurasi independen
Setiap instance Spanner yang diskalakan otomatis dapat memiliki satu atau beberapa jadwal polling. Setiap jadwal polling memiliki kumpulan parameter konfigurasinya sendiri.
Parameter ini menentukan faktor berikut:
- Jumlah minimum dan maksimum node atau unit pemrosesan yang mengontrol ukuran instance Anda, baik besar maupun kecil, sehingga membantu Anda mengontrol tagihan yang timbul.
- Metode penskalaan yang digunakan untuk menyesuaikan instance Spanner khusus untuk beban kerja Anda.
- Periode tunggu untuk memungkinkan Spanner mengelola pemisahan data.
Metode penskalaan
Alat Autoscaler menyediakan tiga metode penskalaan yang berbeda untuk penskalaan instance Spanner ke atas dan ke bawah: stepwise, linear, dan direct. Setiap metode dirancang untuk mendukung berbagai jenis beban kerja. Anda dapat menerapkan satu atau beberapa metode ke setiap instance Spanner yang diskalasikan secara otomatis saat Anda membuat jadwal polling independen.
Bagian berikut berisi informasi lebih lanjut tentang metode penskalaan ini.
Bertahap
Penskalaan bertahap berguna untuk workload yang memiliki puncak kecil atau beberapa puncak. Autoscaler menyediakan kapasitas untuk merampingkan semuanya dengan satu peristiwa penskalaan otomatis.
Diagram berikut menunjukkan pola beban dengan beberapa dataran atau langkah beban, dengan setiap langkah memiliki beberapa puncak kecil. Pola ini sangat cocok untuk metode bertahap.
Saat nilai minimum beban terlampaui, metode ini akan menyediakan dan menghapus node atau unit pemrosesan menggunakan jumlah tetap, tetapi dapat dikonfigurasi. Misalnya, tiga node ditambahkan atau dihapus untuk setiap tindakan penskalaan. Dengan mengubah konfigurasi, Anda dapat mengizinkan penambahan kapasitas yang lebih besar atau penghapusan kapasitas kapan saja.
Linear
Penskalaan linear paling baik digunakan dengan pola beban yang berubah secara bertahap atau memiliki beberapa puncak besar. Metode ini menghitung jumlah minimum node atau unit pemrosesan yang diperlukan untuk menjaga penggunaan di bawah nilai minimum penskalaan. Jumlah node atau unit pemrosesan yang ditambahkan atau dihapus dalam setiap peristiwa penskalaan tidak terbatas pada jumlah langkah tetap.
Contoh pola beban dalam diagram berikut menunjukkan peningkatan dan penurunan beban yang besar dan tiba-tiba. Fluktuasi ini tidak dikelompokkan dalam langkah-langkah yang dapat dikenali seperti dalam diagram sebelumnya. Pola ini mungkin lebih baik ditangani menggunakan penskalaan linear.
Alat Autoscaler menggunakan rasio penggunaan yang diamati terhadap nilai minimum penggunaan untuk menghitung apakah akan menambahkan atau mengurangi node atau unit pemrosesan dari jumlah total saat ini.
Rumus untuk menghitung jumlah node atau unit pemrosesan baru adalah sebagai berikut:
newSize = currentSize * currentUtilization / utilizationThreshold
Langsung
Penskalaan langsung memberikan peningkatan kapasitas secara langsung. Metode ini dimaksudkan untuk mendukung beban kerja batch dengan jumlah node yang lebih tinggi dan telah ditentukan sebelumnya yang diperlukan secara berkala sesuai jadwal dengan waktu mulai yang diketahui. Metode ini menskalakan instance hingga jumlah maksimum node atau unit pemrosesan yang ditentukan dalam jadwal, dan dimaksudkan untuk digunakan selain metode linear atau bertahap.
Diagram berikut menggambarkan peningkatan beban yang besar dan telah direncanakan, yang kapasitasnya disediakan sebelumnya oleh Autoscaler untuk menggunakan metode langsung.
Setelah beban kerja batch selesai dan penggunaan kembali ke tingkat normal, bergantung pada konfigurasi Anda, penskalaan linear atau bertahap akan diterapkan untuk menskalakan instance ke bawah secara otomatis.
Konfigurasi
Alat Autoscaler memiliki berbagai opsi konfigurasi yang dapat Anda gunakan untuk mengelola penskalaan deployment Spanner. Meskipun fungsi Cloud Run dan parameter GKE serupa, keduanya disediakan secara berbeda. Untuk informasi selengkapnya tentang cara mengonfigurasi alat Autoscaler, lihat Mengonfigurasi deployment fungsi Cloud Run dan Mengonfigurasi deployment GKE.
Konfigurasi lanjutan
Alat Autoscaler memiliki opsi konfigurasi lanjutan yang memungkinkan Anda mengontrol waktu dan cara pengelolaan instance Spanner dengan lebih tepat. Bagian berikut memperkenalkan pilihan kontrol ini.
Batas kustom
Alat Autoscaler menentukan jumlah node atau unit pemrosesan yang akan ditambahkan atau dikurangi ke instance menggunakan nilai minimum Spanner yang direkomendasikan untuk metrik beban berikut:
- CPU dengan prioritas tinggi
- CPU rata-rata penggiliran 24 jam
- Pemanfaatan penyimpanan
Sebaiknya gunakan nilai minimum default seperti yang dijelaskan dalam Membuat pemberitahuan untuk metrik Spanner. Namun, dalam beberapa kasus, Anda mungkin ingin mengubah nilai minimum yang digunakan oleh alat Autoscaler. Misalnya, Anda dapat menggunakan nilai minimum yang lebih rendah agar alat Autoscaler bereaksi lebih cepat daripada untuk nilai minimum yang lebih tinggi. Modifikasi ini membantu mencegah notifikasi dipicu pada nilai minimum yang lebih tinggi.
Metrik kustom
Meskipun metrik default di alat Autoscaler menangani sebagian besar skenario performa dan penskalaan, ada beberapa kasus saat Anda mungkin perlu menentukan metrik Anda sendiri yang digunakan untuk menentukan kapan harus menskalakan ke atas dan ke bawah. Untuk skenario ini,
Anda menentukan metrik kustom dalam konfigurasi menggunakan properti
metrics
.
Margin
Margin menentukan batas atas dan bawah di sekitar nilai minimum. Alat Autoscaler hanya memicu peristiwa penskalaan otomatis jika nilai metrik lebih dari batas atas atau kurang dari batas bawah.
Tujuan parameter ini adalah untuk menghindari peristiwa penskalaan otomatis dipicu untuk fluktuasi beban kerja kecil di sekitar nilai minimum, sehingga mengurangi jumlah fluktuasi dalam tindakan Autoscaler. Batas dan margin bersama-sama menentukan rentang berikut, sesuai dengan nilai metrik yang Anda inginkan:
[threshold - margin, threshold + margin]
Makin kecil margin, makin sempit rentangnya, sehingga makin tinggi probabilitas peristiwa penskalaan otomatis dipicu.
Menentukan parameter margin untuk metrik bersifat opsional, dan secara default ditetapkan ke lima poin persentase sebelum dan di bawah parameter.
Pemisahan data
Spanner menetapkan rentang data yang disebut pemisahan ke node atau subdivisi node yang disebut unit pemrosesan. Node atau unit pemrosesan secara independen mengelola dan menyalurkan data dalam bagian yang dialokasikan. Pembagian data dibuat berdasarkan beberapa faktor, termasuk volume data dan pola akses. Untuk mengetahui detail selengkapnya, lihat Spanner - skema dan model data.
Data diatur ke dalam bagian dan Spanner secara otomatis mengelola bagian tersebut. Jadi, saat alat Autoscaler menambahkan atau menghapus node atau unit pemrosesan, alat tersebut harus memberi backend Spanner waktu yang cukup untuk menetapkan ulang dan mengatur ulang pemisahan saat kapasitas baru ditambahkan atau dihapus dari instance.
Alat Autoscaler menggunakan periode tunggu pada peristiwa penskalaan naik dan penskalaan turun untuk mengontrol seberapa cepat alat ini dapat menambahkan atau menghapus node atau unit pemrosesan dari instance. Metode ini memungkinkan instance memiliki waktu yang diperlukan untuk mengatur ulang hubungan antara catatan komputasi atau unit pemrosesan dan pemisahan data. Secara default, periode cooldown penskalaan ke atas dan penskalaan ke bawah ditetapkan ke nilai minimum berikut:
- Nilai penskalaan: 5 menit
- Nilai penskalaan ke bawah: 30 menit
Untuk informasi selengkapnya tentang rekomendasi penskalaan dan periode tunggu, lihat Menskalakan Instance Spanner.
Harga
Konsumsi resource alat Autoscaler relatif kecil dalam hal komputasi, memori, dan penyimpanan. Bergantung pada konfigurasi Autoscaler Anda, saat di-deploy ke fungsi Cloud Run, penggunaan resource Autoscaler biasanya berada dalam Paket Gratis dari layanan dependennya (fungsi Cloud Run, Cloud Scheduler, Pub/Sub, dan Firestore).
Gunakan Kalkulator Harga untuk membuat perkiraan biaya lingkungan, berdasarkan penggunaan yang Anda perkirakan.
Langkah berikutnya
- Pelajari cara men-deploy alat Autoscaler ke fungsi Cloud Run.
- Pelajari cara men-deploy alat Autoscaler ke GKE.
- Baca selengkapnya tentang nilai minimum yang direkomendasikan Spanner.
- Baca selengkapnya tentang metrik penggunaan CPU dan metrik latensi Spanner.
- Pelajari praktik terbaik untuk desain skema Spanner untuk menghindari hotspot dan memuat data ke Spanner.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.