Penskalaan otomatis
Halaman ini menjelaskan cara kerja penskalaan otomatis. Sebelum membaca halaman ini, Anda harus sudah memahami Ringkasan Bigtable dan Instance, cluster, dan node .
Di Bigtable, instance adalah penampung untuk cluster, yang merupakan resource khusus lokasi yang menangani permintaan. Setiap cluster memiliki satu atau beberapa node, yang merupakan resource komputasi yang digunakan untuk mengelola data Anda. Saat membuat cluster di instance, Anda dapat memilih alokasi node manual atau penskalaan otomatis.
Dengan alokasi node manual, jumlah node dalam cluster tetap konstan hingga Anda mengubahnya. Saat penskalaan otomatis diaktifkan, Bigtable terus memantau cluster dan otomatis menyesuaikan jumlah node dalam cluster jika diperlukan. Penskalaan otomatis berfungsi di cluster HDD dan SSD, di semua region Bigtable.
Anda dapat mengonfigurasi penskalaan otomatis di konsol Google Cloud, menggunakan gcloud
, atau menggunakan library klien Cloud Bigtable untuk Java.
Kapan harus menggunakan penskalaan otomatis
Sebaiknya aktifkan penskalaan otomatis dalam sebagian besar kasus. Manfaat penskalaan otomatis meliputi hal berikut:
- Biaya - Penskalaan otomatis dapat membantu Anda mengoptimalkan biaya karena Bigtable mengurangi jumlah node di cluster Anda jika memungkinkan. Hal ini dapat membantu Anda menghindari penyediaan berlebih.
- Performa - Penskalaan otomatis memungkinkan Bigtable otomatis menambahkan node ke cluster saat beban kerja berubah atau ada peningkatan persyaratan penyimpanan data. Hal ini membantu mempertahankan tujuan performa beban kerja dengan memastikan bahwa cluster memiliki node yang cukup untuk memenuhi target penggunaan CPU dan persyaratan penyimpanan.
- Otomatisasi - Penskalaan otomatis mengurangi kompleksitas pengelolaan. Anda tidak perlu memantau dan menskalakan ukuran cluster secara manual atau menulis aplikasi untuk melakukan tugas ini, karena layanan Bigtable menanganinya untuk Anda.
Penskalaan otomatis saja mungkin tidak berfungsi dengan baik untuk jenis workload berikut, karena walaupun Bigtable menambahkan node dengan cepat saat traffic meningkat, perlu waktu untuk menyeimbangkan node tambahan.
- Traffic burst
- Workload batch mendadak
Jika lonjakan penggunaan dapat diprediksi atau dijadwalkan secara rutin, Anda dapat menggunakan penskalaan otomatis dan menyesuaikan setelan sebelum lonjakan yang direncanakan. Lihat Penundaan saat node melakukan rebalans untuk mengetahui detailnya.
Cara kerja penskalaan otomatis
Penskalaan otomatis adalah proses penskalaan, atau perubahan ukuran, cluster secara otomatis dengan menambahkan atau menghapus node. Saat Anda mengaktifkan penskalaan otomatis, Bigtable akan otomatis menyesuaikan ukuran cluster untuk Anda. Saat kebutuhan penyimpanan atau workload cluster berfluktuasi, Bigtable akan meningkatkan skala, menambahkan node ke cluster, atau menurunkan skala, menghapus node dari cluster.
Penskalaan otomatis Bigtable menentukan jumlah node yang diperlukan, berdasarkan dimensi berikut:
- Target penggunaan CPU
- Target penggunaan penyimpanan
- Jumlah minimum node
- Jumlah maksimum node
Setiap dimensi penskalaan menghasilkan jumlah node yang direkomendasikan, dan Bigtable secara otomatis menggunakan jumlah tertinggi. Artinya, misalnya, jika cluster Anda memerlukan 10 node untuk memenuhi target penggunaan penyimpanan, tetapi 12 node untuk memenuhi target penggunaan CPU, Bigtable akan menskalakan cluster menjadi 12 node.
Saat jumlah node berubah, Bigtable akan terus mengoptimalkan penyimpanan, menyeimbangkan ulang data di seluruh node, untuk memastikan traffic tersebar secara merata dan tidak ada node yang kelebihan beban.
Setelah cluster diskalakan, Bigtable akan otomatis menyeimbangkan kembali node di cluster Anda untuk performa yang optimal. Semua permintaan terus menjangkau cluster saat penskalaan dan penyeimbangan ulang sedang berlangsung. Lihat Batasan skalabilitas untuk mengetahui informasi selengkapnya.
Jika cluster telah diskalakan ke jumlah maksimum node dan target penggunaan CPU terlampaui, permintaan mungkin memiliki latensi tinggi atau gagal. Jika kluster telah diskalakan ke jumlah node maksimum dan batas penggunaan penyimpanan terlampaui, permintaan tulis akan gagal. Lihat Penyimpanan per node untuk mengetahui detail selengkapnya tentang batas penyimpanan.
Saat node ditambahkan ke cluster kecil, seperti cluster satu node, Anda mungkin mengamati peningkatan latensi sementara saat cluster melakukan rebalanse. Hal ini karena node tambahan secara proporsional menggandakan ukuran cluster. Demikian pula, jika ukuran cluster berkurang dari dua node menjadi satu node, beberapa latensi mungkin terjadi.
Saat cluster diskalakan, node dihapus dengan kecepatan yang lebih lambat daripada saat menskalakan, untuk mencegah dampak pada latensi. Lihat batasan penskalaan untuk mengetahui detail selengkapnya.
Parameter penskalaan otomatis
Saat membuat atau mengedit cluster dan memilih penskalaan otomatis, Anda menentukan nilai untuk target penggunaan CPU, node min, dan node maks. Anda dapat mengonfigurasi target penggunaan penyimpanan atau membiarkannya tetap pada setelan default, yaitu 50% (2,5 TB untuk SSD dan 8 TB untuk HDD).
Parameter | Deskripsi |
---|---|
Target penggunaan CPU |
Persentase kapasitas CPU cluster. Dapat berkisar antara 10% hingga 80%. Jika penggunaan CPU cluster melebihi target yang telah Anda tetapkan, Bigtable akan segera menambahkan node ke cluster. Jika penggunaan CPU jauh lebih rendah dari target, Bigtable akan menghapus node. Untuk panduan, lihat Menentukan target penggunaan CPU. |
Jumlah node minimum |
Jumlah node terendah yang akan digunakan Bigtable untuk menskalakan cluster. Nilai ini harus lebih besar dari nol dan tidak boleh lebih rendah dari 10% nilai yang Anda tetapkan untuk jumlah maksimum node. Misalnya, jika jumlah maksimum node adalah 40, jumlah minimum node harus minimal 4. Persyaratan 10% adalah batas yang ketat. Untuk panduan, lihat Menentukan jumlah minimum node. |
Jumlah node maksimum |
Jumlah node tertinggi yang ingin Anda izinkan untuk diskalakan oleh cluster. Nilai ini harus lebih besar dari nol dan sama dengan atau lebih besar dari jumlah minimum node. Nilai tidak boleh lebih dari 10 kali jumlah yang Anda pilih untuk jumlah minimum node. Persyaratan 10x ini adalah batas keras. Untuk panduan, lihat Menentukan jumlah node maksimum. |
Target penggunaan penyimpanan |
Jumlah maksimum terabyte per node yang dapat Anda simpan sebelum Bigtable diskalakan. Target ini memastikan bahwa Anda selalu memiliki node yang memadai untuk menangani fluktuasi jumlah data yang Anda simpan. Untuk mendapatkan panduan, lihat Menentukan target penggunaan penyimpanan. |
Konfigurasi penskalaan otomatis
Bagian ini menjelaskan cara memilih parameter penskalaan otomatis. Setelah menetapkan nilai awal, pantau cluster Anda dan sesuaikan jumlahnya jika perlu.
Menentukan target penggunaan CPU
Dasari target penggunaan CPU pada beban kerja unik Anda. Target optimal untuk cluster Anda bergantung pada persyaratan latensi dan throughput beban kerja Anda. Untuk informasi selengkapnya, lihat Merencanakan kapasitas Bigtable.
Secara umum, jika Anda mengamati latensi yang terlalu tinggi, Anda harus menurunkan target penggunaan CPU.
Menentukan target penggunaan penyimpanan
Jika aplikasi Anda sensitif terhadap latensi, pertahankan penggunaan penyimpanan di bawah 60%. Jika aplikasi Anda tidak sensitif terhadap latensi, Anda dapat memilih target penggunaan penyimpanan sebesar 70% atau lebih. Untuk informasi selengkapnya, lihat Merencanakan kapasitas Bigtable.
Untuk penskalaan otomatis, penggunaan penyimpanan dinyatakan sebagai jumlah byte penyimpanan per node, bukan sebagai persentase. Target penggunaan penyimpanan ditentukan per node, tetapi diterapkan ke seluruh cluster. Batas kapasitas untuk node adalah 5 TB per node untuk penyimpanan SSD dan 16 TB per node untuk penyimpanan HDD.
Tabel berikut menunjukkan jumlah target untuk persentase target penggunaan penyimpanan yang umum. Konsol Google Cloud menerima nilai dalam TB per node, dan library klien gcloud CLI, API, dan Cloud Bigtable menerima nilai bilangan bulat dalam GiB per node.
Persentase | SSD | HDD |
---|---|---|
80% | 4 TB atau 4.096 GiB | 12,8 TB atau 13.107 GiB |
70% | 3,5 TB atau 3.584 GiB | 11,2 TB atau 11.468 GiB |
60% | 3 TB atau 3.072 GiB | 9,6 TB atau 9.830 GiB |
50% | 2,5 TB atau 2.560 GiB | 8 TB atau 8.192 GiB |
Menentukan jumlah maksimum node
Nilai yang Anda pilih sebagai jumlah maksimum node harus berupa jumlah node yang diperlukan cluster untuk menangani traffic terberat beban kerja Anda, meskipun Anda tidak mengharapkan untuk mencapai volume tersebut sebagian besar waktu. Bigtable tidak pernah diskalakan ke lebih banyak node daripada yang diperlukan. Anda juga dapat menganggap angka ini sebagai jumlah node tertinggi yang bersedia Anda bayar. Lihat Parameter penskalaan otomatis untuk mengetahui detail tentang nilai yang diterima.
Jumlah maksimum harus memungkinkan target penggunaan CPU yang ditetapkan oleh Anda dan target penggunaan penyimpanan yang ditetapkan oleh Bigtable.
Jika Anda mengubah cluster dari alokasi manual menjadi penskalaan otomatis, temukan jumlah node tertinggi yang dimiliki cluster selama sebulan terakhir atau lebih. Jumlah maksimum penskalaan otomatis Anda setidaknya harus sama dengan jumlah tersebut.
Jika Anda mengaktifkan penskalaan otomatis untuk cluster baru di instance yang ada, gunakan metrik dari cluster lain di instance sebagai panduan Anda.
Jika memiliki workload baru dan tidak yakin bagaimana workload tersebut akan berkembang, Anda dapat memperkirakan jumlah node yang diperlukan untuk memenuhi target penggunaan penyimpanan bawaan, lalu menyesuaikan jumlahnya nanti.
Untuk mendapatkan angka ini, estimasi jumlah data yang ingin Anda simpan di kluster, lalu bagi angka tersebut dengan target pemanfaatan penyimpanan untuk jenis penyimpanan yang Anda gunakan.
Misalnya, jika Anda menyimpan 10 TB di cluster SSD, Anda dapat membagi 10 TB dengan 2,5 TB, yang merupakan target penggunaan penyimpanan yang ditetapkan secara default untuk cluster SSD yang menggunakan penskalaan otomatis. Hasilnya adalah 4, yang berarti 4 adalah jumlah node yang dapat menangani jumlah data tersebut, dan maksimumnya harus lebih tinggi dari itu.
Dengan menggunakan formula yang sama, contoh berikut menunjukkan jumlah node yang mungkin Anda butuhkan untuk beberapa contoh jumlah penyimpanan:
Penyimpanan SSD per cluster | Jumlah maksimum node terkecil |
---|---|
25 TB | 10 |
35 TB | 14 |
50 TB | 20 |
Setelah cluster Anda aktif dan berjalan dengan penskalaan otomatis diaktifkan, monitor
cluster dan pastikan nilai yang Anda pilih untuk jumlah maksimum node setidaknya sama tinggi dengan recommended number of nodes for CPU target
dan recommended number of nodes for storage target
.
Menentukan jumlah minimum node
Anda dapat menetapkan minimum serendah 1 untuk memastikan Bigtable Anda dapat diskalakan ke ukuran terkecil dan paling hemat biaya jika memungkinkan. Cluster tidak pernah menjadi terlalu kecil karena Bigtable secara otomatis mencegah jumlah node turun di bawah minimum yang diperlukan untuk mempertahankan target penggunaan CPU dan penyimpanan. Lihat Parameter penskalaan otomatis untuk mengetahui detail tentang nilai yang diterima.
Namun, dalam banyak kasus, Anda sebaiknya menetapkan nilai ini ke lebih dari satu. Pilih angka yang lebih tinggi atau naikkan jumlah minimum node untuk situasi berikut:
- Anda memiliki acara mendatang, seperti Cyber Monday, saat Anda memperkirakan traffic akan meningkat untuk sementara, dan Anda ingin memastikan Anda memiliki kapasitas yang memadai.
- Aplikasi Anda mengirim traffic yang tidak stabil. Saat node baru ditambahkan, Bigtable akan otomatis menyeimbangkan ulang ke node baru. Karena proses ini dapat memerlukan waktu beberapa menit, sebaiknya Anda mengambil pendekatan konservatif dan memilih minimum yang lebih tinggi sehingga cluster Anda dapat menampung lonjakan dengan lancar.
- Anda meningkatkan jumlah maksimum node. Jumlah minimum harus selalu sepuluh persen atau kurang dari jumlah maksimum node. Misalnya, jika menetapkan maksimum ke 30, Anda harus menetapkan minimum setidaknya ke 3.
Jika Anda meningkatkan nilai untuk jumlah node minimum cluster, Bigtable akan langsung mencoba menskalakan cluster ke minimum baru. Namun, batasan standar berlaku; jika zona kehabisan node, node tambahan tidak disediakan untuk memenuhi jumlah minimum yang dikonfigurasi. Bigtable terus mencoba menambahkan node dan membuat entri log audit untuk setiap upaya yang gagal hingga berhasil menskalakan cluster ke jumlah minimum node baru. Bigtable tidak mengubah nilai yang dikonfigurasi dalam situasi ini. Akibatnya, Anda mungkin mengamati bahwa jumlah node cluster kurang dari minimum hingga penskalaan selesai.
Menyesuaikan setelan
Pantau penggunaan node dan sesuaikan setelan jika perlu, terutama setelah Anda mengaktifkan penskalaan otomatis untuk pertama kalinya.
Akun untuk replikasi
Dalam instance yang menggunakan replikasi, setelan dan aktivitas penskalaan otomatis setiap cluster sepenuhnya independen dari setelan dan aktivitas untuk cluster lain dalam instance. Anda harus mengonfigurasi mode penskalaan untuk setiap cluster dalam instance.
Secara umum, untuk instance yang direplikasi, Anda harus mengaktifkan penskalaan otomatis untuk setiap cluster dalam instance. Konfigurasi penskalaan otomatis Anda sering kali akan sama untuk setiap cluster dalam instance, tetapi mungkin berbeda bergantung pada kasus penggunaan, beban kerja, dan persyaratan performa untuk setiap cluster.
Karena cluster dalam instance yang direplikasi melakukan beberapa pekerjaan tambahan untuk mengelola replikasi, Anda harus memilih jumlah maksimum node yang lebih tinggi untuknya daripada yang Anda pilih untuk instance satu cluster. Untuk mempelajari lebih lanjut, lihat Replikasi dan performa.
Kontrol akses
Untuk mengonfigurasi penskalaan otomatis, Anda harus menjadi akun utama dalam peran yang memiliki izin create
dan update
untuk cluster dan instance yang Anda konfigurasi.
Pemantauan
Bigtable menyediakan beberapa metrik untuk membantu Anda memahami cara kerja penskalaan otomatis Bigtable saat meningkatkan dan menurunkan skala untuk memenuhi persyaratan beban kerja. Metrik ini juga dapat membantu Anda mengukur apakah setelan Anda sudah optimal untuk memenuhi persyaratan biaya dan beban kerja bisnis Anda. Misalnya, jika Anda mengamati bahwa jumlah node untuk cluster sering kali mendekati jumlah maksimum node, Anda dapat mempertimbangkan untuk menaikkan jumlah maksimum. Untuk mempelajari lebih lanjut cara memantau resource Bigtable, lihat Memantau instance.
Metrik berikut ditampilkan dalam grafik di halaman ringkasan cluster di konsol Google Cloud. Anda juga dapat melihat metrik ini menggunakan Cloud Monitoring.
bigtable.googleapis.com/cluster/autoscaling/min_node_count
bigtable.googleapis.com/cluster/autoscaling/max_node_count
bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_cpu
bigtable.googleapis.com/cluster/autoscaling/recommended_node_count_for_storage
Logging
Bigtable memunculkan log audit peristiwa sistem setiap kali menskalakan cluster. Entri log mirip dengan yang berikut ini:
Grew from 9 to 10 nodes to maintain CPU utilization at 60%.
Anda dapat melihat log aktivitas sistem penskalaan otomatis di halaman ringkasan cluster Bigtable di konsol Google Cloud. Anda juga dapat melihatnya menggunakan Logs Explorer:
Buka Logs Explorer:
Pilih project Google Cloud yang sesuai.
Di kolom Query, masukkan kode berikut:
resource.type="audited_resource" resource.labels.service="bigtableadmin.googleapis.com" resource.labels.method="AutoscaleCluster"
Klik Run query.
Panel Query results menampilkan log selama satu jam terakhir.
Untuk mempelajari lebih lanjut cara melihat log, lihat Cloud Logging.