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 instance Anda.

Bagaimana cara memantau latensi replikasi?

Memorystore for Valkey memiliki metrik /instance/replication/maximum_offset_diff. Metrik ini memantau perbedaan offset replikasi maksimum (dalam byte) untuk node di instance 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 Valkey dapat memberi tahu Anda melalui pemberitahuan.

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

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

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

Apa yang harus Anda lakukan jika terjadi latensi replikasi antara instance utama dan replikanya?

Mungkin ada latensi replikasi yang signifikan jika instance utama memiliki terlalu banyak operasi tulis, dan replika tidak dapat mengejar untuk mereplikasi operasi ini. Untuk mengatasi masalah ini, sebaiknya skalakan kapasitas instance dengan meningkatkan jumlah shard untuk instance.

Skenario penggunaan CPU

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

Apa yang harus Anda lakukan jika buffer output instance Anda kehabisan ruang?

Jika buffer output instance Memorystore for Valkey Anda kehabisan ruang, lakukan hal berikut:

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

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

Sebaiknya pantau maxmemory dan memori yang digunakan instance Anda. Hal ini membantu Anda mengetahui apakah instance Anda mencapai kapasitas instance 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 instance Anda?

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

Skenario pengelolaan memori

Bagian ini menjelaskan masalah pengelolaan memori yang mungkin dialami instance Anda.

Metrik mana yang dapat Anda gunakan untuk menentukan bahwa instance Anda mengalami tekanan memori?

Untuk memantau penggunaan memori untuk instance Memorystore for Valkey, sebaiknya lihat metrik /instance/memory/maximum_utilization. Jika penggunaan memori instance mendekati 80% dan Anda memperkirakan penggunaan data akan meningkat, maka tingkatkan ukuran instance untuk meningkatkan performa dan memberi ruang bagi data baru.

Skenario pemantauan

Bagian ini menjelaskan masalah pemantauan yang mungkin dialami instance Anda.

Bagaimana cara menyiapkan pemberitahuan untuk Memorystore for Valkey?

Anda dapat menggunakan Cloud Monitoring untuk menetapkan pemberitahuan guna memberi tahu Anda jika ada metrik yang melebihi nilai minimum yang Anda tetapkan untuk instance Anda. Untuk mengetahui informasi selengkapnya tentang cara menetapkan pemberitahuan di Cloud Monitoring, lihat Menetapkan pemberitahuan Monitoring untuk penggunaan memori.

Skenario pengelolaan koneksi

Bagian ini menjelaskan masalah pengelolaan koneksi yang mungkin dialami instance Anda.

Jika Anda mencapai batas koneksi atau menerima waktu tunggu koneksi, apa yang harus Anda lakukan?

Saat Anda mencapai batas koneksi, klien Anda akan gagal terhubung ke server Anda. Hal ini dikenal sebagai penolakan koneksi.

Jika hal ini terjadi, lakukan hal berikut:

Skenario waktu tunggu

Bagian ini menjelaskan masalah waktu tunggu yang mungkin dialami instance Anda.

Jika Anda menerima waktu tunggu I/O, apa yang harus Anda lakukan?

Jika operasi baca atau tulis di Memorystore for Valkey gagal diselesaikan dalam waktu yang ditentukan, waktu tunggu I/O akan terjadi. Waktu tunggu ini mungkin terjadi karena berbagai alasan. Misalnya, satu atau beberapa node instance Anda mungkin kelebihan beban.

Jika Anda menerima waktu tunggu I/O, lakukan hal berikut:

  • Gunakan metrik instance/cpu/maximum_utilization untuk menentukan penggunaan CPU untuk node di instance Anda, dari 0,0 (0%) hingga 1,0 (100%). Sebaiknya semua node memiliki persentase penggunaan CPU kurang dari 80%. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik penggunaan CPU.
  • Saat klien terputus dari server karena server mengalami waktu tunggu, coba lagi dengan backoff eksponensial dan dengan Jitter. Hal ini membantu menghindari beberapa klien yang kelebihan beban server secara bersamaan.

Skenario error konektivitas

Bagian ini menjelaskan masalah konektivitas yang mungkin dialami instance Anda.

Error koneksi yang disebabkan oleh aturan firewall

Aturan firewall dapat menyebabkan error koneksi dengan memblokir port yang digunakan oleh Memorystore for Valkey. Anda harus mengizinkan semua port untuk kedua endpoint Private Service Connect instance Anda. Untuk mengetahui informasi selengkapnya tentang endpoint, lihat Alamat jaringan yang dicadangkan.

Error koneksi yang disebabkan oleh kebijakan organisasi

Anda dapat memiliki kebijakan organisasi yang memblokir koneksi Private Service Connect ke instance Memorystore for Valkey Anda.

Jika kebijakan organisasi Anda menggunakan kebijakan .restrictPrivateServiceConnectProducer, izinkan nomor folder 672235397475, yang merupakan folder khusus untuk Memorystore for Valkey. Contoh:

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

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 Valkey. 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.

Menangani error untuk instance Mode Cluster Dinonaktifkan

  • Jika aplikasi terhubung ke endpoint baca instance yang tidak memiliki replika baca, koneksi akan ditutup dan pesan error ERR no replicas found akan muncul. Dalam hal ini, coba hubungkan aplikasi ke endpoint utama atau tambahkan replika baca ke instance.

  • Jika terjadi failover, koneksi yang ada dari aplikasi Anda akan ditutup dan pesan error ERR role change occurred akan muncul. Anda juga akan melihat pesan error ini jika aplikasi Anda terhubung ke endpoint baca instance, dan semua replika baca instance gagal. Dalam hal ini, aplikasi harus mencoba kembali koneksi dengan backoff eksponensial.

Skenario persistensi

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

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

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

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