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, ataustandard-large, tetapkan nilai minimum kurang dari 64 MB.Jika jenis node adalah
highmem-xlargeatauhighmem-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-lrumaxmemory.
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:
- Gunakan metrik
/instance/node/stats/rejected_connections_countuntuk menentukan jumlah koneksi yang ditolak Memorystore for Valkey karena node instance mencapai batas klien maksimum. - Gunakan metrik
/instance/node/clients/connected_clientsuntuk menentukan jumlah klien yang terhubung ke node instance. Dengan begitu, Anda dapat melihat apakah semua node dalam instance berada di bawah batas. - Hentikan koneksi yang bocor atau tidak diinginkan menggunakan perintah
client kill. - Kurangi jumlah koneksi atau ukuran kumpulan di aplikasi klien. Untuk mengetahui informasi selengkapnya, lihat dokumentasi yang terkait dengan aplikasi klien.
- Sesuaikan batas klien maksimum. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi instance.
- Tingkatkan skala instance Anda ke jenis node yang lebih besar sehingga instance Anda memiliki batas koneksi yang lebih tinggi.
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_utilizationuntuk 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, danTCP keepalive probessehingga klien mendeteksi dan menghapus koneksi yang tidak responsif secara proaktif, bahkan saat koneksi tidak aktif. Misalnya, jika Anda menetapkan parameterTCP keepalive timeke 30 detik,TCP keepalive intervalke 10 detik, danTCP keepalive probeske 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 foundakan 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 occurredakan 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.