Halaman ini menjelaskan perilaku cluster Anda di Memorystore for Redis Cluster selama penskalaan.
Anda dapat menskalakan kapasitas untuk cluster dengan cara berikut:
Anda dapat mengubah jumlah shard untuk cluster. Ini adalah penskalaan horizontal. Anda dapat menskalakan cluster secara horizontal dengan salah satu cara berikut:
Perluas penyebaran skala: meningkatkan kapasitas cluster, yang memberi cluster lebih banyak memori dan daya pemrosesan untuk menangani volume data atau traffic yang lebih besar. Kapasitas cluster Anda ditentukan oleh jumlah shard di cluster Anda.
Dengan melakukan penskalaan cluster, aplikasi Anda dapat menangani peningkatan permintaan tanpa penurunan performa. Untuk menskalakan cluster, tambahkan shard ke cluster.
Penskalaan: mengurangi kapasitas cluster, yang akan mengurangi daya pemrosesan dan jumlah memori yang tersedia untuk menyimpan data. Hal ini terjadi saat permintaan data aplikasi Anda menurun dan Anda perlu menurunkan penggunaan resource untuk menghemat biaya. Untuk menurunkan skala cluster, kurangi jumlah shard dalam cluster.
Anda dapat mengubah jenis node untuk cluster Anda. Ini disebut penskalaan vertikal. Anda dapat menskalakan cluster secara vertikal dengan salah satu cara berikut:
- Penskalaan vertikal: meningkatkan kapasitas cluster Anda. Kapasitas
cluster Anda ditentukan oleh jenis node cluster Anda. Untuk menskalakan cluster, ubah jenis node ke jenis node yang lebih besar. Misalnya, tingkatkan skala cluster Anda
dari jenis node
redis-standard-smallke jenis noderedis-highmem-medium. Perkecil skala: mengurangi kapasitas cluster Anda. Untuk menskalakan cluster ke bawah, ubah jenis node ke jenis node yang lebih kecil. Misalnya, turunkan skala cluster Anda dari jenis node
redis-highmem-mediumke jenis noderedis-standard-small.
- Penskalaan vertikal: meningkatkan kapasitas cluster Anda. Kapasitas
cluster Anda ditentukan oleh jenis node cluster Anda. Untuk menskalakan cluster, ubah jenis node ke jenis node yang lebih besar. Misalnya, tingkatkan skala cluster Anda
dari jenis node
Dampak penskalaan
Selama operasi penskalaan, ketersediaan cluster Anda tidak terpengaruh. Namun, saat Anda mengubah jumlah shard di cluster, Memorystore for Redis Cluster akan menyeimbangkan kembali ruang kunci cluster. Hal ini dapat menyebabkan peningkatan latensi selama operasi penskalaan.
Selain itu, dampak penskalaan cluster secara vertikal dengan mengubah jenis node mirip dengan yang terjadi pada operasi pemeliharaan.
Skenario kegagalan
Jika Anda mengalami error selama operasi penskalaan, kemungkinan hal itu disebabkan oleh salah satu skenario berikut:
Anda ingin memperbarui jumlah shard untuk cluster, tetapi Anda tidak memiliki cukup memori kosong untuk jenis node
redis-shared-core-nanountuk cluster Anda.Untuk mengatasi masalah ini, Anda dapat menskalakan cluster Anda atau mengosongkan memori dari node cluster Anda. Untuk mengosongkan memori, lakukan hal berikut:
- Hubungkan ke cluster.
- Untuk mendapatkan detail tentang cluster, termasuk alamat IP dan nomor port, gunakan perintah
gcloud redis clusters describe. - Catat alamat IP dan nomor port cluster.
Untuk mendapatkan informasi tentang node cluster, gunakan perintah berikut:
redis-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
Ganti IP_ADDRESS dan PORT_NUMBER dengan nilai yang Anda catat di langkah sebelumnya.
Catat alamat IP dan nomor port node yang tidak memiliki ruang kosong yang cukup. ID node ini cocok dengan ID yang muncul dalam error.
Untuk terhubung ke node ini, gunakan perintah berikut:
redis-cli -h IP_ADDRESS -p PORT_NUMBER
Ganti IP_ADDRESS dan PORT_NUMBER dengan nilai yang Anda catat di langkah sebelumnya.
Pada perintah, masukkan perintah
info memory.Dalam output, nilai untuk parameter
used_memorydanmaxmemoryakan muncul.used_memoryadalah jumlah memori yang digunakan node danmaxmemoryadalah jumlah memori yang tersedia untuk node.Bagi nilai parameter
used_memorydengan nilai parametermaxmemory, dan verifikasi bahwa hasil baginya lebih besar dari 98%.Untuk mengosongkan ruang bagi node, hapus beberapa kunci node.
Masukkan kembali perintah
info memory. Dalam output, nilai parameterused_memorylebih kecil.Bagi nilai parameter
used_memorydengan nilai parametermaxmemory, dan verifikasi bahwa hasil baginya sekarang kurang dari 98%. Jika tidak, hapus kunci lainnya.Untuk node lain yang tidak memiliki ruang kosong yang cukup, ulangi langkah 4 - 11 dari prosedur ini.
Anda melakukan penskalaan ke jumlah shard yang lebih kecil yang tidak memiliki kapasitas untuk menyimpan semua kunci yang disimpan Memorystore for Redis Cluster di cluster asli. Untuk mengatasinya, lakukan penskalaan ke jumlah shard yang lebih besar yang dapat menyimpan semua kunci yang disimpan. Untuk mengetahui informasi selengkapnya tentang cara meningkatkan jumlah shard untuk cluster Anda, lihat Menskalakan jumlah shard.
Anda melakukan penskalaan ke jenis node yang lebih kecil yang tidak memiliki kapasitas untuk menyimpan semua data yang disimpan Memorystore for Redis Cluster dalam jenis node asli. Jika hal ini terjadi, Memorystore for Redis Cluster akan memberikan jenis node yang direkomendasikan untuk memperkecil skala secara vertikal.
Anda memperbarui jenis node untuk cluster dan mengganti setelan default untuk jenis node asli atau setelan ini sudah diganti. Namun, jenis node yang baru dan diskalakan tidak mendukung nilai untuk setelan default atau setelan tidak valid untuk jenis node. Jika hal ini terjadi, Memorystore for Redis Cluster akan menampilkan error. Untuk mengatasinya, ubah setelan secara manual agar valid untuk jenis node baru.
Anda menskalakan cluster selama periode tekanan penulisan yang tinggi (misalnya, selama pengujian beban). Untuk mengatasinya, lakukan penskalaan selama periode traffic cluster rendah.
Anda memiliki slot yang berisi kunci besar, dan Anda ingin memigrasikan kunci ini ke node lain. Namun, node ini tidak memiliki memori yang cukup untuk mendukung kunci. Anda tidak dapat mengupdate cluster. Untuk mengatasinya, kurangi ukuran kunci agar kurang dari 128 MB. Kemudian, coba lagi operasi update.
Nomor slot yang dimiliki oleh node cluster tidak diketahui, tetapi hanya rentang slot yang diketahui. Memorystore for Redis Cluster menampilkan pesan error. Jika hal ini terjadi, kurangi ukuran kunci dan coba lagi operasi update.
Anda meningkatkan kapasitas cluster dengan melakukan penskalaan horizontal ke jumlah shard yang lebih kecil. Namun, Memorystore for Redis Cluster tidak memiliki memori yang cukup untuk mengakomodasi permintaan ini. Untuk mengatasi hal ini, kurangi kapasitas cluster Anda dengan melakukan penskalaan ke dalam jumlah shard yang lebih besar dan asli.
Praktik terbaik
Untuk membantu Anda menskalakan kapasitas cluster, serta meningkatkan kecepatan dan keandalan penskalaan cluster, lakukan penskalaan selama periode traffic rendah, kapan pun Anda bisa. Untuk mempelajari cara memantau traffic cluster, lihat Memantau cluster.