All Products
Search
Document Center

Tair (Redis® OSS-Compatible):Saran untuk menangani event Latency umum

Last Updated:Mar 29, 2026

Gunakan referensi ini untuk mengidentifikasi akar penyebab event latency Redis dan menerapkan perbaikan yang sesuai.

Sebelum Anda mulai

Periksa penyebab umum berikut sebelum menyelidiki event spesifik:

  1. Perintah lambat. Perintah yang memindai semua kunci (misalnya, KEYS) memblokir thread utama. Tinjau log kueri lambat untuk menemukannya. Lihat Kueri log kueri lambat.

  2. Kunci besar. Kunci besar memperlambat proses penggantian (eviction) dan kedaluwarsa (expiration). Gunakan analisis kunci offline untuk mengidentifikasinya. Lihat Gunakan fitur analisis kunci offline.

  3. Penggunaan memori tinggi. Saat memori yang terpakai melebihi batas maxmemory, siklus eviction berjalan secara sering. Lihat Ubah konfigurasi instans.

Latar Belakang

Redis 2.8.13 memperkenalkan pemantauan latency, yang mengumpulkan data dari 160 detik terakhir dan hanya mencatat event dengan latency tertinggi setiap detik.

Tair (Redis OSS-compatible) menyediakan latency insights, alternatif lanjutan yang mencatat hingga 27 event beserta durasi eksekusi semua perintah serta menyimpan statistik latency selama tiga hari terakhir. Untuk nama event dan ambang batas latency-nya, lihat Event khusus umum.

Event latency umum

Beberapa event memiliki hubungan induk-anak:

  • AofWrite adalah event induk. Setiap kali data ditulis ke file hanya-tambah (append-only file/AOF), Redis mencatat AofWrite bersamaan dengan tepat satu dari tiga event anak: AofWriteAlone, AofWriteActiveChild, atau AofWritePendingFsync. Untuk menemukan penyebab spesifik, analisis event anak tersebut.

  • EvictionCycle adalah event induk untuk proses eviction. Analisis EvictionDel dan EvictionLazyFree secara bersamaan untuk menentukan faktor yang menyebabkan latency pada proses eviction.

EventApa yang diukurPenyebab umumYang harus dilakukan
EvictionCycleWaktu untuk satu siklus eviction penuh, termasuk pemilihan kunci, penghapusan, dan penantian thread latar belakangBerbagai faktor — analisis EvictionDel dan EvictionLazyFree untuk mengidentifikasi penyebabnyaTinjau penggunaan kunci dan optimalkan data bisnis. Jika eviction terjadi secara sering, tingkatkan kapasitas instans agar penggunaan memori tetap di bawah batas maxmemory.
EvictionDelWaktu untuk menghapus kunci selama siklus evictionKunci besar sedang diganti (evicted)Hindari kunci besar. Aktifkan eviction asinkron dengan mengatur lazyfree-lazy-eviction ke yes. Jika eviction terjadi secara sering, tingkatkan kapasitas instans.
EvictionLazyFreeWaktu menunggu thread latar belakang melepaskan memoriTidak ada kunci yang dapat diganti saat thread latar belakang sedang membebaskan memori (misalnya, saat menghapus kunci besar)Sesuaikan kebijakan eviction memori menggunakan parameter maxmemory-policy. Jika eviction terjadi secara sering, tingkatkan kapasitas instans.
ExpireCycleWaktu untuk satu siklus kedaluwarsa kunciKunci besar sedang dihapusHindari kunci besar. Aktifkan expiration asinkron dengan mengatur lazyfree-lazy-expire ke yes. Bersihkan data yang telah kedaluwarsa secara berkala di Konsol.
ExpireDelWaktu untuk menghapus kunci selama siklus kedaluwarsaKunci besar sedang dihapusHindari kunci besar.
AofWriteTotal waktu untuk menulis data ke AOFBerbagai faktor — analisis AofWriteAlone, AofWriteActiveChild, dan AofWritePendingFsync untuk mengidentifikasi penyebabnyaJika persistensi data tidak diperlukan, nonaktifkan AOF dengan mengatur appendonly ke no.
AofWriteAloneWaktu untuk penulisan AOF tanpa proses anak konkuren atau fsync tertundaVolume tulis besar atau bottleneck performa diskJika AOF tidak diperlukan, atur appendonly ke no.
AofWriteActiveChildWaktu untuk penulisan AOF saat proses anak juga sedang menulis ke diskI/O disk proses anak bersaing dengan penulisan AOFJika AOF tidak diperlukan, atur appendonly ke no.
AofWritePendingFsyncWaktu untuk penulisan AOF saat fsync latar belakang sedang berlangsungfsync latar belakang bersaing dengan penulisan AOFJika AOF tidak diperlukan, atur appendonly ke no.
CommandsWaktu untuk perintah reguler (tidak dikategorikan sebagai fast)Perintah yang melakukan traversal seluruh data, seperti KEYSTinjau log kueri lambat untuk menemukan perintah yang berjalan lama. Gunakan analisis kunci offline untuk memeriksa adanya kunci besar.
FastCommandWaktu untuk perintah cepat dengan kompleksitas O(1) atau O(log N)Perintah cepat yang menyalin volume data besar (misalnya, GET pada kunci besar)Identifikasi dan lakukan pemisahan kunci besar. Lihat Identifikasi dan tangani kunci besar dan hotkey.
ForkWaktu untuk memanggil fork()Penulisan ulang AOF (AOF rewrites)Jika persistensi data tidak diperlukan, nonaktifkan AOF dengan mengatur appendonly ke no.

Langkah selanjutnya