Halaman ini menjelaskan perilaku cluster Anda di Memorystore for Redis Cluster selama penskalaan.
Anda dapat menskalakan kapasitas cluster dengan cara berikut:
Anda dapat mengubah jumlah shard untuk cluster Anda. Ini adalah penskalaan horizontal. Anda dapat menskalakan cluster secara horizontal dengan salah satu cara berikut:
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 dalam cluster Anda.
Dengan menskalakan cluster, aplikasi Anda dapat menangani peningkatan permintaan tanpa penurunan performa. Untuk menskalakan cluster, tambahkan shard ke cluster.
Penskalaan ke dalam: 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 memperkecil skala cluster, kurangi jumlah shard dalam cluster.
Anda dapat mengubah jenis node untuk cluster Anda. Ini adalah penskalaan vertikal. Anda dapat menskalakan cluster secara vertikal dengan salah satu cara berikut:
- Peningkatan skala: meningkatkan kapasitas cluster Anda. Kapasitas cluster Anda ditentukan oleh jenis node cluster Anda. Untuk meningkatkan skala 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 menurunkan skala cluster, ubah jenis node ke jenis node yang lebih kecil. Misalnya, turunkan skala cluster Anda dari jenis node
redis-highmem-mediumke jenis noderedis-standard-small.
- Peningkatan skala: meningkatkan kapasitas cluster Anda. Kapasitas cluster Anda ditentukan oleh jenis node cluster Anda. Untuk meningkatkan skala 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 akan terpengaruh. Namun, saat Anda mengubah jumlah shard di cluster, Memorystore for Redis Cluster akan menyeimbangkan kembali keyspace 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 tidak memiliki memori kosong yang cukup untuk jenis node
redis-shared-core-nanountuk cluster Anda.Untuk mengatasi masalah ini, Anda dapat meningkatkan skala cluster 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 cukup ruang kosong. 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 prompt, 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 pastikan 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 pastikan hasil baginya sekarang kurang dari 98%. Jika tidak, hapus lebih banyak kunci.Untuk node lain yang tidak memiliki cukup ruang kosong, ulangi langkah 4 - 11 dari prosedur ini.
Anda melakukan penskalaan ke jumlah shard yang lebih kecil yang tidak memiliki kapasitas untuk menampung semua kunci yang disimpan Memorystore for Redis Cluster di cluster asli. Untuk mengatasinya, skalakan ke jumlah shard yang lebih besar yang dapat menampung 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 menampung semua data yang disimpan Memorystore for Redis Cluster dalam jenis node aslinya. Jika hal ini terjadi, Memorystore for Redis Cluster akan memberi Anda jenis node yang direkomendasikan untuk memperkecil skala secara vertikal.
Anda telah memperbarui jenis node untuk cluster dan menimpa setelan default untuk jenis node asli atau setelan ini sudah ditimpa. Namun, jenis node baru yang diskalakan tidak mendukung nilai untuk setelan default atau setelan tersebut 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 tulis 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 tersebut. Anda tidak dapat mengupdate cluster. Untuk mengatasinya, kurangi ukuran kunci sehingga 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 penyebaran skala 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 jumlah shard asli yang lebih besar.
Praktik terbaik
Untuk membantu Anda menskalakan kapasitas cluster, sebaiknya ikuti praktik terbaik berikut:
- Pilih waktu untuk menskalakan: untuk meningkatkan kecepatan dan keandalan penskalaan cluster, skalakan selama periode traffic rendah. Untuk mempelajari cara memantau traffic cluster, lihat Memantau cluster.
- Coba lagi saat Anda tidak dapat melakukan penskalaan: ketersediaan resource sering berubah. Jika Anda tidak dapat menskalakan cluster karena batasan resource sementara, coba skalakan cluster nanti.