Halaman ini memperkenalkan alat Autoscaler untuk Spanner (Autoscaler), sebuah 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 informasi tentang men-deploy alat Autoscaler, lihat artikel berikut:
- 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 dalam men-deploy Autoscaler ke salah satu runtime yang didukung di setiap topologi yang berbeda.
Autoscaler
Alat Autoscaler berguna untuk mengelola pemanfaatan 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:
- Maksimum yang direkomendasikan untuk pemakaian CPU.
- Batas yang direkomendasikan untuk penyimpanan per node.
Plus atau minus margin yang dapat dikonfigurasi.
Dengan menggunakan deployment Spanner penskalaan otomatis, infrastruktur Anda dapat otomatis beradaptasi dan diskalakan untuk memenuhi persyaratan beban tanpa memerlukan banyak intervensi. Penskalaan otomatis juga menyesuaikan ukuran infrastruktur yang disediakan, yang dapat membantu Anda meminimalkan biaya yang dikeluarkan.
Arsitektur
Autoscaler memiliki dua komponen utama, Poller dan Scaler. Meskipun Anda dapat men-deploy Autoscaler dengan berbagai konfigurasi ke beberapa runtime dalam beberapa topologi dengan berbagai konfigurasi, fungsi komponen inti ini tetap 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 untuk setiap instance Spanner sehingga hanya poin data yang paling relevan yang dievaluasi dan dikirim ke Scaler. Pra-pemrosesan yang dilakukan oleh Poller juga menyederhanakan proses evaluasi nilai minimum untuk instance Spanner regional, dual-region, dan multi-region.
Scaler
Scaler mengevaluasi titik data yang diterima dari komponen Poller, dan menentukan apakah Anda perlu menyesuaikan jumlah node atau unit pemrosesan dan, jika ya, seberapa banyak. membandingkan nilai metrik dengan nilai minimum, plus atau minus margin yang diizinkan, dan menyesuaikan jumlah node atau unit pemrosesan berdasarkan metode penskalaan yang dikonfigurasi. Untuk mengetahui detail selengkapnya, lihat Metode penskalaan.
Selama alur, alat Autoscaler menulis ringkasan rekomendasi dan tindakannya ke Cloud Logging untuk pelacakan dan audit.
Fitur penskala otomatis
Bagian ini menjelaskan fitur utama alat Autoscaler.
Mengelola beberapa instance
Alat Autoscaler dapat mengelola beberapa instance Spanner di beberapa project. Instance multi-regional, dual-region, dan regional memiliki nilai minimum penggunaan yang berbeda yang digunakan saat melakukan 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%, dengan plus atau minus margin yang diizinkan. Untuk mengetahui informasi selengkapnya tentang berbagai nilai minimum untuk penskalaan, lihat Peringatan untuk pemakaian CPU yang tinggi.
Parameter konfigurasi independen
Setiap instance Spanner yang diskalakan otomatis dapat memiliki satu atau beberapa jadwal polling. Setiap jadwal polling memiliki serangkaian parameter konfigurasi sendiri.
Parameter ini menentukan faktor berikut:
- Jumlah minimum dan maksimum node atau unit pemrosesan yang mengontrol seberapa kecil atau besar instance Anda, sehingga membantu Anda mengontrol biaya yang dikeluarkan.
- Metode penskalaan yang digunakan untuk menyesuaikan instance Spanner khusus untuk workload Anda.
- Periode tunggu agar Spanner dapat mengelola pemisahan data.
Metode penskalaan
Alat Autoscaler menyediakan tiga metode penskalaan yang berbeda untuk penskalaan naik dan turun instance Spanner Anda: bertahap, linear, dan langsung. Setiap metode dirancang untuk mendukung berbagai jenis workload. Anda dapat menerapkan satu atau beberapa metode ke setiap instance Spanner yang disesuaikan skalanya 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. Hal ini akan menyediakan kapasitas untuk memperlancar semuanya dengan satu peristiwa penskalaan otomatis.
Diagram berikut menunjukkan pola beban dengan beberapa dataran tinggi atau langkah beban, dengan setiap langkah memiliki beberapa puncak kecil. Pola ini sangat cocok untuk metode bertahap.
Saat batas beban terlampaui, metode ini menyediakan dan menghapus node atau unit pemrosesan menggunakan jumlah tetap yang dapat dikonfigurasi. Misalnya, tiga node ditambahkan atau dihapus untuk setiap tindakan penskalaan. Dengan mengubah konfigurasi, Anda dapat menambahkan atau menghapus peningkatan kapasitas yang lebih besar 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 pemanfaatan di bawah batas penskalaan. Jumlah node atau unit pemrosesan yang ditambahkan atau dihapus di setiap peristiwa penskalaan tidak dibatasi pada jumlah langkah tetap.
Pola beban contoh dalam diagram berikut menunjukkan peningkatan dan penurunan beban yang besar dan tiba-tiba. Fluktuasi ini tidak dikelompokkan dalam langkah-langkah yang dapat dibedakan seperti pada diagram sebelumnya. Pola ini mungkin lebih baik ditangani menggunakan penskalaan linear.
Alat Autoscaler menggunakan rasio penggunaan yang diamati terhadap batas 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 ditujukan untuk mendukung workload batch yang memerlukan jumlah node yang lebih tinggi 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 besar yang direncanakan, yang kapasitas pra-penyediaannya dilakukan oleh Autoscaler menggunakan metode langsung.
Setelah beban kerja batch selesai dan penggunaan kembali ke tingkat normal, bergantung pada konfigurasi Anda, penskalaan linear atau bertahap diterapkan untuk menurunkan skala instance secara otomatis.
Konfigurasi
Alat Autoscaler memiliki berbagai opsi konfigurasi yang dapat Anda gunakan untuk mengelola penskalaan deployment Spanner Anda. Meskipun parameter fungsi Cloud Run dan GKE serupa, keduanya disediakan secara berbeda. Untuk mengetahui 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 dengan lebih baik kapan dan bagaimana instance Spanner Anda dikelola. Bagian berikut memperkenalkan pilihan kontrol ini.
Nilai minimum kustom
Alat Autoscaler menentukan jumlah node atau unit pemrosesan yang akan ditambahkan atau dikurangi dari 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 nilai minimum yang lebih tinggi. Perubahan 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 sendiri yang digunakan untuk menentukan kapan harus melakukan penskalaan masuk dan keluar. 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 besar dari batas atas atau lebih kecil dari batas bawah.
Tujuan parameter ini adalah untuk menghindari pemicuan peristiwa penskalaan otomatis untuk fluktuasi workload kecil di sekitar nilai minimum, sehingga mengurangi jumlah fluktuasi dalam tindakan Autoscaler. Bersama-sama, nilai minimum dan margin menentukan rentang berikut, sesuai dengan nilai metrik yang Anda inginkan:
[threshold - margin, threshold + margin]
Semakin kecil margin, semakin sempit rentangnya, sehingga menghasilkan probabilitas yang lebih tinggi bahwa peristiwa penskalaan otomatis dipicu.
Menentukan parameter margin untuk metrik bersifat opsional, dan secara default adalah lima poin persentase di atas dan di bawah parameter.
Pemisahan data
Spanner menetapkan rentang data yang disebut pemisahan ke node atau subbagian node yang disebut unit pemrosesan. Node atau unit pemrosesan secara independen mengelola dan menyajikan data dalam pemisahan yang dialokasikan. Pemisahan data dibuat berdasarkan beberapa faktor, termasuk volume data dan pola akses. Untuk mengetahui detail selengkapnya, lihat Spanner - schema and data model.
Data diatur ke dalam pemisahan dan Spanner secara otomatis mengelola pemisahan. Jadi, saat alat Autoscaler menambahkan atau menghapus node atau unit pemrosesan, alat tersebut perlu memberikan waktu yang cukup bagi backend Spanner untuk menetapkan ulang dan mengatur ulang pemisahan saat kapasitas baru ditambahkan atau dihapus dari instance.
Alat Autoscaler menggunakan periode tunggu pada peristiwa penskalaan dan penurunan skala untuk mengontrol seberapa cepat alat tersebut dapat menambahkan atau menghapus node atau unit pemrosesan dari instance. Metode ini memberikan waktu yang diperlukan bagi instance untuk mengatur ulang hubungan antara node komputasi atau unit pemrosesan dan pemisahan data. Secara default, periode tunggu penskalaan dan penurunan skala ditetapkan ke nilai minimum berikut:
- Nilai peningkatan skala: 5 menit
- Nilai pengurangan skala: 30 menit
Untuk mengetahui informasi selengkapnya tentang rekomendasi penskalaan dan periode pendinginan, lihat Menskalakan Instance Spanner.
Harga
Konsumsi resource alat Autoscaler kecil dalam hal komputasi, memori, dan penyimpanan. Bergantung pada konfigurasi Autoscaler Anda, saat di-deploy ke fungsi Cloud Run, pemanfaatan resource Autoscaler biasanya berada di Paket Gratis layanan dependennya (fungsi Cloud Run, Cloud Scheduler, Pub/Sub, dan Firestore).
Gunakan Kalkulator Harga untuk membuat perkiraan biaya lingkungan Anda, berdasarkan penggunaan yang Anda proyeksikan.
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 pemakaian CPU dan metrik latensi Spanner.
- Pelajari praktik terbaik untuk desain skema Spanner guna menghindari hotspot dan untuk memuat data ke Spanner.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.