Tentang menskalakan kapasitas instance

Halaman ini menjelaskan perilaku instance Memorystore for Redis Cluster Anda selama penskalaan.

Anda dapat menskalakan kapasitas instance dengan cara berikut:

  • Anda dapat mengubah jumlah shard untuk instance Anda. Ini adalah penskalaan horizontal. Anda dapat menskalakan instance secara horizontal dengan salah satu cara berikut:

    • Penskalaan horizontal: meningkatkan kapasitas instance Anda, yang memberi instance lebih banyak memori dan daya pemrosesan untuk menangani volume data atau traffic yang lebih besar. Kapasitas instance Anda ditentukan oleh jumlah shard di instance Anda.

      Dengan menskalakan instance secara horizontal, aplikasi Anda dapat menangani peningkatan permintaan tanpa penurunan performa. Untuk menskalakan instance secara horizontal, tambahkan shard ke instance.

    • Penskalaan vertikal: mengurangi kapasitas instance Anda, yang 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 menskalakan instance secara vertikal, kurangi jumlah shard di instance.

  • Anda dapat mengubah jenis node untuk instance Anda. Ini adalah penskalaan vertikal. Anda dapat menskalakan instance secara vertikal dengan salah satu cara berikut:

    • Penskalaan vertikal: meningkatkan kapasitas instance Anda. Kapasitas instance Anda ditentukan oleh jenis node instance Anda. Untuk menskalakan instance secara vertikal, ubah jenis node ke jenis node yang lebih besar. Misalnya, tingkatkan skala instance Anda dari jenis node redis-standard-small ke jenis node redis-highmem-medium.
    • Perkecil skala: mengurangi kapasitas instance Anda. Untuk menskalakan instance secara vertikal, ubah jenis node ke jenis node yang lebih kecil. Misalnya, turunkan skala instance Anda dari jenis node redis-highmem-medium ke jenis node redis-standard-small.

Dampak penskalaan

Selama operasi penskalaan, ketersediaan instance Anda tidak terpengaruh. Namun, saat Anda mengubah jumlah shard di instance Anda, Memorystore for Redis Cluster akan menyeimbangkan kembali keyspace instance. Hal ini dapat menyebabkan peningkatan latensi selama operasi penskalaan.

Selain itu, dampak penskalaan instance secara vertikal dengan mengubah jenis node mirip dengan apa yang terjadi pada operasi pemeliharaan.

Skenario kegagalan

Jika Anda mengalami error selama operasi penskalaan, kemungkinan besar hal ini disebabkan oleh salah satu skenario berikut:

  • Anda ingin memperbarui jumlah shard untuk instance Anda, tetapi Anda tidak memiliki cukup memori kosong untuk jenis node redis-shared-core-nano untuk instance Anda.

    Untuk mengatasi masalah ini, Anda dapat meningkatkan skala instance atau mengosongkan memori dari node instance Anda. Untuk mengosongkan memori, lakukan hal berikut:

    1. Hubungkan ke instance Memorystore for Redis Cluster.
    2. Untuk mendapatkan detail tentang instance, termasuk alamat IP dan nomor port, gunakan perintah gcloud redis clusters describe.
    3. Catat alamat IP dan nomor port instance.
    4. Untuk mendapatkan informasi tentang node instance, gunakan perintah berikut:

      redis-cli -h IP_ADDRESS -p PORT_NUMBER cluster nodes
      

      Ganti IP_ADDRESS dan PORT_NUMBER dengan nilai yang Anda catat pada langkah sebelumnya.

    5. Catat alamat IP dan nomor port node yang tidak memiliki cukup ruang kosong. ID node ini cocok dengan ID yang muncul dalam error.

    6. Untuk menghubungkan 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 pada langkah sebelumnya.

    7. Pada perintah, masukkan perintah info memory.

      Dalam output, nilai untuk parameter used_memory dan maxmemory akan muncul. used_memory adalah jumlah memori yang digunakan node dan maxmemory adalah jumlah memori yang tersedia untuk node.

    8. Bagi nilai parameter used_memory dengan nilai parameter maxmemory, dan pastikan hasil bagi lebih besar dari 98%.

    9. Untuk mengosongkan ruang bagi node, hapus beberapa kunci node.

    10. Masukkan perintah info memory lagi. Dalam output, nilai parameter used_memory lebih kecil.

    11. Bagi nilai parameter used_memory dengan nilai parameter maxmemory, dan pastikan hasil bagi sekarang kurang dari 98%. Jika tidak, hapus lebih banyak kunci.

    12. Untuk node lain yang tidak memiliki cukup ruang kosong, ulangi langkah 4-11 dari prosedur ini.

  • Anda menskalakan ke jumlah shard yang lebih kecil yang tidak memiliki kapasitas untuk menyimpan semua kunci yang disimpan Memorystore for Redis Cluster di instance asli. Untuk mengatasi hal ini, skala ke jumlah shard yang lebih besar yang dapat menyimpan semua kunci yang disimpan. Untuk mengetahui informasi selengkapnya tentang cara meningkatkan jumlah shard untuk instance Anda, lihat Menskalakan jumlah shard.

  • Anda menskalakan 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 memberi Anda jenis node yang direkomendasikan untuk memperkecil skala secara vertikal.

  • Anda memperbarui jenis node untuk instance Anda dan Anda menimpa setelan default setelan untuk jenis node asli atau setelan ini sudah ditimpa. Namun, jenis node baru yang 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 mengatasi hal ini, ubah setelan secara manual agar valid untuk jenis node baru.

  • Anda menskalakan instance selama periode tekanan tulis yang tinggi (misalnya, selama pengujian beban). Untuk mengatasi hal ini, skala selama periode traffic instance yang 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 memperbarui cluster. Untuk mengatasi hal ini, kurangi ukuran kunci sehingga kurang dari 128 MB. Kemudian, coba lagi operasi pembaruan.

  • Nomor slot yang dimiliki 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 pembaruan.

  • Anda meningkatkan kapasitas cluster dengan menskalakan secara horizontal ke jumlah shard yang lebih kecil. Namun, Memorystore for Redis Cluster tidak memiliki cukup memori untuk mengakomodasi permintaan ini. Untuk mengatasi hal ini, kurangi kapasitas cluster dengan menskalakan secara vertikal ke jumlah shard asli yang lebih besar.

Praktik terbaik

Untuk membantu Anda menskalakan kapasitas instance, dan untuk meningkatkan kecepatan dan keandalan penskalaan instance, skalakan instance selama periode traffic rendah, kapan pun Anda bisa. Untuk mempelajari cara memantau traffic instance, lihat Memantau cluster.