Bagikan melalui


Memecahkan masalah server Azure Cache for Redis

Bagian ini membahas pemecahan masalah yang disebabkan oleh kondisi di server Azure Cache for Redis atau mesin virtual yang menghostingnya.

Catatan

Beberapa langkah pemecahan masalah dalam panduan ini menyertakan petunjuk untuk menjalankan perintah Redis dan memantau beragam metrik performa. Untuk informasi dan instruksi lebih lanjut, lihat artikel di bagian Informasi tambahan.

Beban server tinggi

Beban server yang tinggi berarti server Redis sibuk dan tidak dapat memenuhi permintaan, yang menyebabkan waktu tunggu habis. Periksa metrik Beban Server pada cache Anda dengan memilih Pemantauan dari menu Sumber Daya di sebelah kiri. Anda melihat grafik Beban Server di panel kerja di bawah Insight. Atau, tambahkan satu set metrik ke Beban Server di bawah Metrik.

Berikut adalah beberapa opsi yang perlu dipertimbangkan untuk beban server yang tinggi.

Peningkatan skala atau peluasan skala

Perluas skala untuk menambahkan lebih banyak pecahan, sehingga beban didistribusikan ke beberapa proses Redis. Selain itu, pertimbangkan untuk meningkatkan ke ukuran cache yang lebih besar dengan lebih banyak inti CPU. Untuk informasi selengkapnya, lihat Tanya Jawab Umum perencanaan Azure Cache for Redis.

Perubahan cepat dalam jumlah koneksi klien

Untuk informasi selengkapnya, lihat Menghindari lonjakan koneksi klien.

Perintah yang berjalan lama atau mahal

Bagian ini dipindahkan. Untuk informasi selengkapnya, lihat Perintah yang berjalan lama.

Penskalaan

Operasi penskalaan membutuhkan CPU dan memori yang intensif karena dapat melibatkan pemindahan data di sekitar node dan perubahan topologi kluster. Untuk informasi selengkapnya, lihat Penskalaan.

Pemeliharaan server

Jika Azure Cache for Redis Anda mengalami failover, semua koneksi klien dari node yang turun akan ditransfer ke node yang masih berjalan. Beban server dapat melonjak karena peningkatan koneksi. Anda dapat mencoba me-reboot aplikasi klien Anda sehingga semua koneksi klien dibuat ulang dan didistribusikan kembali di antara dua node.

Penggunaan memori tinggi

Tekanan memori pada server dapat menyebabkan berbagai masalah performa yang menunda pemrosesan permintaan. Ketika tekanan memori hit, sistem akan mem-page data ke disk, yang menyebabkan sistem melambat secara signifikan.

Berikut adalah beberapa kemungkinan penyebab tekanan memori:

  • Cache diisi dengan data mendekati kapasitas maksimumnya
  • Server Redis melihat fragmentasi memori yang tinggi

Fragmentasi kemungkinan disebabkan ketika pola beban menyimpan data dengan variasi ukuran yang tinggi. Misalnya, fragmentasi mungkin terjadi saat data tersebar dalam ukuran 1 KB dan 1 MB. Saat kunci 1 KB dihapus dari memori yang ada, kunci 1 MB tidak dapat masuk ke dalamnya sehingga menyebabkan fragmentasi. Demikian pula, jika kunci 1 MB dihapus dan kunci 1,5 MB ditambahkan, itu tidak dapat masuk ke dalam memori reklamasi yang ada. Hal ini menyebabkan memori bebas yang tidak terpakai dan menghasilkan lebih banyak fragmentasi.

Jika nilai used_memory_rss lebih tinggi dari 1,5 kali metrik used_memory, ada fragmentasi dalam memori. Fragmentasi dapat menyebabkan masalah ketika:

  1. Penggunaan memori mendekati batas memori maksimum untuk cache, atau
  2. UsedMemory_RSS lebih tinggi dari batas Memori Maks, yang berpotensi mengakibatkan kesalahan halaman dalam memori.

Jika cache terfragmentasi dan berjalan di bawah tekanan memori tinggi, sistem melakukan failover untuk mencoba memulihkan memori Resident Set Size (RSS).

Redis memperlihatkan dua statistik, used_memory dan used_memory_rss, melalui perintah INFO yang dapat membantu Anda mengidentifikasi masalah ini. Anda dapat melihat metrik ini menggunakan portal.

Validasi bahwa nilai maxmemory-reserved dan maxfragmentationmemory-reserved ditetapkan dengan benar.

Ada beberapa kemungkinan perubahan yang dapat Anda lakukan untuk membantu menjaga penggunaan memori tetap sehat:

Untuk rekomendasi tentang manajemen memori, lihat Praktik terbaik untuk manajemen memori.

Perintah jangka panjang

Bagian ini dipindahkan. Untuk informasi selengkapnya, lihat Perintah yang berjalan lama.

Batasan bandwidth sisi server

Bagian ini dipindahkan. Untuk informasi selengkapnya, lihat Batasan bandwidth jaringan.

Informasi Tambahan