Memecahkan masalah

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

Skenario replikasi

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

Bagaimana cara memantau jeda replikasi?

Memorystore for Valkey memiliki metrik /instance/replication/maximum_offset_diff. Metrik ini memantau perbedaan offset replikasi maksimum (dalam byte) untuk node dalam instance primer.

Dengan menjaga perbedaan offset replikasi tetap rendah, replika dapat melakukan operasi sinkronisasi inkremental lebih sering dan dengan biaya yang 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 notifikasi.

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 batasnya menjadi kurang dari 64 MB.

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

Apa yang Anda lakukan jika ada jeda replikasi antara instance utama dan replikanya?

Mungkin ada jeda 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 Anda menskalakan kapasitas instance dengan meningkatkan jumlah shard untuk instance.

Skenario penggunaan CPU

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

Apa yang 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.

Jika memori instance Anda penuh, dan ada operasi tulis baru yang masuk, 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 set 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 pemakaian CPU yang tinggi atau sumber daya instance habis (misalnya, karena memiliki terlalu banyak koneksi), instance mungkin berperilaku tidak semestinya dan metrik eksternal mungkin tidak ada.

Bagaimana cara mengisolasi sumber latensi instance Anda?

Untuk menentukan apakah latensi yang Anda alami berasal dari instance, aplikasi klien, atau lingkungan jaringan Anda, gunakan alat valkey-cli untuk menjalankan pengujian latensi berkelanjutan.

Untuk mengisolasi sumber latensi instance Anda, lakukan hal berikut:

  1. Hubungkan ke VM Compute Engine yang berada di region dan jaringan VPC yang sama dengan instance Anda.

  2. Jika belum diinstal, instal alat valkey-cli di VM Anda.

    • Untuk VM berbasis Debian atau Ubuntu, jalankan perintah berikut:

      sudo apt-get install valkey-tools
      
    • Untuk VM berbasis RHEL atau CentOS, jalankan perintah berikut:

      sudo yum install valkey-tools
      
  3. Untuk mengukur latensi instance dalam milidetik, jalankan perintah berikut:

    redis-cli --latency -h ENDPOINT_ADDRESS -p PORT
    

    Jika instance Anda menggunakan enkripsi saat transit, tambahkan tanda --tls dan tentukan certificate authority (CA) Anda untuk terhubung.

    Lakukan penggantian berikut:

    • ENDPOINT_ADDRESS: alamat IP endpoint instance Anda.
    • PORT: nomor port yang dicadangkan untuk endpoint instance Anda. Biasanya, nomor port ini adalah 6379.
  4. Biarkan perintah berjalan selama beberapa menit. Alat ini terus-menerus melakukan ping ke server dan menghitung nilai latensi minimum, maksimum, dan rata-rata.

  5. Untuk menghentikan perintah dan melihat hasilnya, tekan Ctrl+C.

Jika perintah menghasilkan latensi rata-rata yang rendah secara konsisten (biasanya 1 milidetik atau kurang), berarti instance dalam kondisi baik dan merespons dengan cepat.

Jika perintah menunjukkan latensi rendah secara konsisten, tetapi aplikasi klien Anda masih mengalami penundaan, masalah berikut mungkin menyebabkan latensi:

  • Jaringan: Traffic yang dirutekan di berbagai region atau zona antara klien dan instance Anda dapat menyebabkan penundaan jaringan yang signifikan.
  • Klien: Penggunaan CPU atau memori yang tinggi pada klien, kumpulan koneksi yang habis, atau hambatan logika aplikasi dapat meningkatkan total waktu pulang pergi yang dialami klien.

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 menyediakan 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 menyetel pemberitahuan yang akan memberi tahu Anda jika ada metrik yang melebihi batas yang Anda tetapkan untuk instance Anda. Untuk mengetahui informasi selengkapnya tentang cara menyetel pemberitahuan di Cloud Monitoring, lihat Menyetel 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 gagal terhubung ke server Anda. Hal ini dikenal sebagai penolakan koneksi.

Jika 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 akan Anda lakukan?

Jika operasi baca atau tulis di Memorystore for Valkey gagal diselesaikan dalam waktu yang ditentukan, maka akan terjadi waktu tunggu I/O habis. Waktu tunggu ini dapat 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 pemakaian CPU untuk node di instance Anda, dari 0,0 (0%) hingga 1,0 (100%). Sebaiknya semua node memiliki persentase pemanfaatan CPU kurang dari 80%. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik penggunaan CPU.
  • Saat klien terputus dari server karena batas waktu server habis, coba lagi dengan backoff eksponensial dan dengan Jitter. Hal ini membantu menghindari beberapa klien membebani server secara bersamaan.

Skenario error konektivitas

Bagian ini menjelaskan masalah konektivitas yang mungkin dialami instance Anda.

Error koneksi yang disebabkan oleh aturan firewall

Jika Anda tidak mengizinkan port yang benar di firewall, instance Anda mungkin mengalami error koneksi karena firewall dapat memblokir port yang digunakan Memorystore for Valkey.

Untuk semua endpoint Private Service Connect instance, Anda harus mengizinkan port TCP 6379, serta 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 dapat memiliki kebijakan organisasi yang memblokir koneksi Private Service Connect ke instance Memorystore for Valkey.

Jika kebijakan organisasi Anda menggunakan kebijakan .restrictPrivateServiceConnectProducer policy, masukkan nomor folder 672235397475 ke daftar yang diizinkan, 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, maka masukkan SERVICE_PRODUCERS ke daftar yang diizinkan. 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 konfigurasikan aplikasi klien Anda untuk mendeteksi koneksi yang tidak responsif ke Memorystore for Valkey. Saat koneksi yang tidak responsif terdeteksi, klien harus meresetnya. Untuk membangun aplikasi yang tangguh, kami merekomendasikan konfigurasi klien berikut:

  • Konfigurasi parameter keep-alive TCP: tetapkan parameter TCP keepalive time, TCP keepalive interval, dan TCP keepalive probes sehingga klien mendeteksi dan menghentikan koneksi yang tidak responsif secara proaktif, bahkan saat koneksi tidak ada aktivitas. Misalnya, jika Anda menyetel parameter TCP keepalive time ke 30 detik, TCP keepalive interval ke 10 detik, dan TCP keepalive probes ke 3, maka 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 15 detik, klien akan mereset koneksi yang tidak responsif yang memiliki permintaan yang belum selesai setelah 15 detik.

Menangani error untuk instance Cluster Mode Disabled

  • 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 dari instance, dan semua replika baca dari instance tersebut gagal. Dalam hal ini, aplikasi harus mencoba lagi 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 merebut 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 kehabisan disk, menyebabkan kegagalan penulisan, dan memblokir operasi yang memerlukan pembuatan replika dan sinkronisasi penuh.

Memorystore for Valkey menerapkan batas pengamanan untuk mengatur throughput penulisan. Hal ini memastikan penulisan ulang AOF dapat mengimbangi workload penulisan tinggi yang berkelanjutan.