Memecahkan masalah

Halaman ini menjelaskan berbagai skenario error, dan memberikan panduan untuk mengatasi error.

Skenario replikasi

Bagian ini menjelaskan masalah replikasi yang mungkin terjadi pada cluster Anda.

Bagaimana cara memantau jeda replikasi?

Memorystore for Redis Cluster memiliki metrik /cluster/replication/maximum_offset_diff. Metrik ini memantau perbedaan offset replikasi maksimum (dalam byte) untuk node di cluster utama.

Dengan menjaga perbedaan offset replikasi tetap rendah, replika dapat melakukan operasi sinkronisasi inkremental lebih sering dan dengan biaya lebih rendah daripada operasi sinkronisasi penuh.

Sebaiknya tetapkan nilai minimum untuk metrik maximum_offset_diff. Jika nilai minimum terlampaui, Memorystore for Redis Cluster dapat memberi tahu Anda melalui pemberitahuan.

Berdasarkan jenis node untuk cluster Anda, sebaiknya tetapkan nilai minimum sebagai berikut:

  • Jika jenis node adalah redis-shared-core-nano, redis-standard-small, redis-highmem-medium, redis-highcpu-medium, atau redis-standard-large, tetapkan nilai minimum agar kurang dari 64 MB.

  • Jika jenis node adalah redis-highmem-xlarge atau redis-highmem-2xlarge, tetapkan nilai minimum agar kurang dari 1 GB.

Skenario error konektivitas

Bagian ini menjelaskan masalah konektivitas yang mungkin dialami cluster Anda.

Error koneksi yang disebabkan oleh aturan firewall

Aturan firewall dapat menyebabkan error koneksi dengan memblokir port yang digunakan Memorystore for Redis Cluster. Untuk kedua endpoint Private Service Connect cluster Anda, izinkan port TCP 11000 hingga 13047. Untuk mengetahui informasi selengkapnya tentang endpoint ini, lihat Alamat jaringan yang dicadangkan.

Error koneksi yang disebabkan oleh kebijakan organisasi

Anda mungkin memiliki kebijakan organisasi yang memblokir koneksi Private Service Connect ke cluster Anda.

Jika kebijakan organisasi Anda menggunakan kebijakan .restrictPrivateServiceConnectProducer, izinkan folder 961333125034, yang merupakan folder khusus untuk Memorystore for Redis Cluster. Contoh:

name: organizations/Consumer-org-1/policies/compute.restrictPrivateServiceConnectProducer
spec:
    rules:
      - values:
          allowedValues:
          - under:folders/961333125034

Jika kebijakan organisasi Anda menggunakan kebijakan .disablePrivateServiceConnectCreationForConsumers, izinkan SERVICE_PRODUCERS. Contoh:

name: organizations/Consumer-org-1/policies/compute.disablePrivateServiceConnectCreationForConsumers
spec:
    rules:
      - values:
          allowedValues:
          - SERVICE_PRODUCERS

Error koneksi yang disebabkan oleh koneksi yang tidak responsif

Sebaiknya konfigurasi aplikasi klien Anda untuk mendeteksi koneksi yang tidak responsif ke Memorystore for Redis Cluster. Saat koneksi yang tidak responsif terdeteksi, klien harus meresetnya. Untuk membuat aplikasi yang tangguh, sebaiknya gunakan konfigurasi klien berikut:

  • Konfigurasi parameter TCP keep-alive: tetapkan parameter TCP keepalive time, TCP keepalive interval, dan TCP keepalive probes sehingga klien mendeteksi dan menghapus koneksi yang tidak responsif secara proaktif, bahkan saat koneksi tidak aktif. Misalnya, jika Anda menetapkan parameter TCP keepalive time ke 30 detik, TCP keepalive interval ke 10 detik, dan TCP keepalive probes ke 3, klien akan mereset koneksi tidak aktif yang tidak responsif dalam waktu satu menit.
  • Konfigurasi waktu tunggu pengguna TCP: tetapkan waktu tunggu ini di klien Anda untuk mereset koneksi yang memiliki permintaan yang belum selesai dan berhenti merespons. Misalnya, jika Anda menetapkan waktu tunggu ke 15 detik, klien akan mereset koneksi yang tidak responsif yang memiliki permintaan yang belum selesai setelah 15 detik.

Skenario penggunaan CPU

Bagian ini menjelaskan masalah penggunaan CPU yang mungkin dialami cluster Anda.

Buffer output cluster Anda kehabisan ruang

Jika buffer output cluster Anda kehabisan ruang, lakukan hal berikut:

  • Tetapkan nilai yang lebih kecil untuk parameter maxmemory.
  • Gunakan kebijakan allkeys-lru maxmemory.

Saat memori cluster Anda penuh, dan ada operasi tulis baru, Memorystore for Redis Cluster akan mengeluarkan kunci untuk memberi ruang bagi operasi tulis, berdasarkan kebijakan maxmemory cluster Anda. Kebijakan allkeys-lru mengeluarkan kunci yang paling lama tidak digunakan (LRU) dari seluruh kumpulan kunci.

Sebaiknya pantau maxmemory dan memori yang digunakan cluster Anda. Hal ini membantu Anda mengetahui apakah cluster Anda mencapai kapasitas cluster yang disediakan. Selain itu, dengan mengurangi nilai untuk parameter maxmemory, Anda akan mendapatkan lebih banyak ruang untuk overhead.

Mengapa metrik eksternal mungkin tidak ada untuk cluster Anda?

Jika cluster Anda mengalami penggunaan CPU yang tinggi atau resource cluster habis (misalnya, karena memiliki terlalu banyak koneksi), cluster mungkin berperilaku tidak normal dan metrik eksternal mungkin tidak ada.

Skenario persistensi

Bagian ini menjelaskan masalah persistensi yang mungkin terjadi pada cluster Anda.

Traffic tulis Anda melebihi kemampuan Memorystore for Redis Cluster untuk memadatkan dan mengklaim kembali ruang melalui penulisan ulang AOF

Jika situasi ini terjadi, File Hanya Tambahan (AOF) akan bertambah lebih cepat daripada yang dapat dikelola oleh proses penulisan ulang. Hal ini menyebabkan disk habis, menyebabkan kegagalan tulis, dan memblokir operasi yang memerlukan pembuatan replika dan sinkronisasi penuh.

Memorystore for Redis Cluster menerapkan batasan untuk mengatur throughput tulis. Hal ini memastikan bahwa penulisan ulang AOF dapat mengikuti beban kerja tulis tinggi yang berkelanjutan.