Jika penggunaan memori suatu instance Tair (Redis OSS-compatible) tiba-tiba melonjak, Anda dapat merujuk pada topik ini untuk menganalisis masalah tersebut.
Deskripsi masalah
Suatu instance Tair (Redis OSS-compatible) mengalami peningkatan signifikan dalam penggunaan memori, bahkan mencapai 100%.
Penyebab
Peningkatan mendadak dalam penggunaan memori dapat disebabkan oleh alasan berikut:
Sejumlah besar data baru ditulis dalam waktu singkat.
Sejumlah besar koneksi baru dibuat dalam waktu singkat.
Akses mendadak menghasilkan sejumlah besar lalu lintas yang melebihi lebar pita jaringan, menyebabkan penumpukan di buffer input dan output.
Klien tidak dapat mengimbangi kecepatan pemrosesan Tair (Redis OSS-compatible), sehingga menyebabkan penumpukan di buffer output.
Solusi
Identifikasi penyebab peningkatan mendadak dalam penggunaan memori dan gunakan solusi yang disarankan untuk menyelesaikan masalah tersebut.
Periksa apakah sejumlah besar data baru ditulis
Metode pemecahan masalah:
Di halaman Performance Monitor, periksa lalu lintas arah masuk dan permintaan tulis per detik (QPS) dari instance tersebut. Jika lalu lintas arah masuk dan QPS tulis mengikuti tren yang sama dengan penggunaan memori, peningkatan mendadak dalam penggunaan memori disebabkan oleh sejumlah besar data yang ditulis.
Solusi:
Konfigurasikan nilai time-to-live (TTL) yang sesuai untuk key agar secara otomatis menghapus key yang tidak diperlukan lagi, atau hapus key yang tidak diperlukan secara manual.
Tingkatkan spesifikasi instance dengan menambah kapasitas memori untuk mengurangi dampak peningkatan mendadak dalam penggunaan memori. Untuk informasi lebih lanjut, lihat Ubah konfigurasi suatu instance.
Jika instance Anda adalah instance standar dan penggunaan memori tetap tinggi setelah Anda menambah kapasitas memori, Anda dapat meningkatkan instance ke instance kluster. Dengan cara ini, Anda dapat mendistribusikan data di beberapa shard data untuk mengurangi tekanan memori pada shard data individu. Untuk informasi lebih lanjut, lihat Ubah konfigurasi suatu instance.
Periksa apakah sejumlah besar koneksi baru dibuat
Metode pemecahan masalah:
Di halaman Performance Monitor, lihat jumlah koneksi ke instance. Jika jumlah koneksi tiba-tiba meningkat dan mengikuti tren yang sama dengan penggunaan memori, peningkatan mendadak dalam penggunaan memori disebabkan oleh sejumlah besar koneksi baru.
Solusi:
Periksa apakah ada kebocoran koneksi.
Konfigurasikan periode timeout koneksi untuk secara otomatis menutup koneksi yang tidak aktif. Untuk informasi lebih lanjut, lihat Tentukan periode timeout untuk koneksi klien.
Periksa apakah lalu lintas mendadak menyebabkan penumpukan di buffer input dan output
Metode pemecahan masalah:
Periksa apakah penggunaan lalu lintas arah masuk dan arah keluar instance telah mencapai 100%.
Jalankan perintah
MEMORY STATSuntuk memeriksa apakah clients.normal menggunakan jumlah memori yang berlebihan.Catatanclients.normal mencerminkan total memori yang digunakan oleh buffer input dan output untuk semua koneksi klien normal.
Solusi:
Periksa penyebab lonjakan lalu lintas.
Tingkatkan lebar pita jaringan instance. Untuk informasi lebih lanjut, lihat Secara manual tingkatkan bandwidth suatu instance dan Aktifkan penskalaan otomatis bandwidth.
Tingkatkan spesifikasi instance guna memastikan penggunaan buffer input dan output yang optimal. Untuk informasi lebih lanjut, lihat Ubah konfigurasi suatu instance.
Periksa apakah masalah performa sisi klien menyebabkan penumpukan di buffer output
Metode pemecahan masalah:
Di redis-cli, jalankan perintah MEMORY DOCTOR untuk melihat nilai dari big_client_buf. Jika big_client_buf disetel ke 1, setidaknya satu klien memiliki buffer output yang besar yang mengonsumsi sejumlah besar memori.
Solusi:
Jalankan perintah CLIENT LIST untuk memeriksa klien mana yang memiliki buffer output besar yang mengonsumsi sejumlah besar memori (omem). Periksa apakah aplikasi klien memiliki masalah performa.