Redis için Azure Cache sunucu tarafı sorunlarını giderme

Bu bölümde, redya ya da barındıran sanal makineler için Azure önbelleğindeki bir koşul nedeniyle oluşan sorun giderme sorunları ele alınmaktadır.

Not

Bu kılavuzdaki sorun giderme adımlarından bazıları Redsıs komutları çalıştırma ve çeşitli performans ölçümlerini izleme yönergelerini içerir. Daha fazla bilgi ve yönergeler için ek bilgi bölümündeki makalelere bakın.

Redis sunucusunda bellek baskısı

Sunucu tarafında bellek baskısı, isteklerin işlenmesini geciktirebileceği tüm performans sorunlarına yol açar. Bellek baskısı ne zaman olursa, sistem diske veri sayfası verebilir. Bu sayfa hatalı , sistemin önemli ölçüde yavaşlamasına neden olur. Bu bellek basıncının birkaç olası nedeni vardır:

  • Önbellek, maksimum kapasitesinin yakınında verilerle doldurulmuştur.
  • Redsıs yüksek bellek parçalanması görüyor. Bu parçalanma çoğunlukla büyük nesneler depolanmasından kaynaklanır çünkü redin küçük nesneler için iyileştirildi.

Redin, bu sorunu belirlemenize yardımcı olabilecek Info komutu aracılığıyla iki istatistik ortaya çıkarır: "used_memory" ve "used_memory_rss". Portalı kullanarak bu ölçümleri görüntüleyebilirsiniz .

Bellek kullanımını iyi durumda tutmaya yardımcı olmak için yapabileceğiniz birkaç değişiklik vardır:

Yüksek CPU kullanımı veya sunucu yükü

Yüksek sunucu yükü veya CPU kullanımı, sunucunun istekleri zamanında işleyemediği anlamına gelir. Sunucunun yanıt vermesi yavaş olabilir ve istek ücretleri ile devam edemiyor.

CPU veya sunucu yükü gibi ölçümleri izleme. Cpu kullanımında zaman aşımına karşılık gelen ani artışları izleyin.

Yüksek sunucu yükünü azaltmak için birkaç değişiklik yapabilirsiniz:

  • Aşağıda not alan uzun süre çalışan komutlar veya yüksek bellek baskısı nedeniyle sayfa hatası gibi ANI CPU artışlarına neyin neden olduğunu araştırın.
  • Olası etkiler hakkında erken bilgi için CPU veya sunucu yükü gibi ölçümler hakkında uyarılar oluşturun.
  • Daha fazla CPU kapasitesiyle daha büyük bir önbellek boyutuna ölçeklendirin.

Uzun süre çalışan komutlar

Bazı Redis komutlarını yürütmek diğerlerine göre daha pahalıdır. Redis komutları belgeleri, her komutun zaman karmaşıklığını gösterir. Redis komut işlemesi tek iş parçacıklı olduğundan, çalışması zaman alan bir komut, ondan sonra gelen diğer tüm komutu engelleyebilir. Performans etkilerini anlamak için Redis sunucunuza vermenizi gereken komutları gözden geçirmeniz gerekir. Örneğin, KEYS komutu genellikle bunun bir O(N) işlemi olduğunu bilmeden kullanılır. CPU ani artışlarını azaltmak için SCAN kullanarak ANAHTARLAR'ı önlersiniz.

SLOWLOG komutunu kullanarak sunucuya karşı yürütülen pahalı komutları ölçebilirsiniz.

Sunucu tarafı bant genişliği sınırlaması

Farklı önbellek boyutları farklı ağ bant genişliği kapasitelerine sahiptir. Sunucu kullanılabilir bant genişliğini aşarsa veriler istemciye bu kadar hızlı gönderilmez. Sunucu istemciye yeterince hızlı veri iteleyemey olduğundan, istemci istekleri zaman zaman uzamadı.

Sunucu tarafı bant genişliği miktarını görmek için "Önbellek Okuma" ve "Önbellek Yazma" ölçümleri kullanılabilir. Bu ölçümleri portalda görüntüebilirsiniz.

Ağ bant genişliği kullanımının maksimum kapasiteye yakın olduğu durumların hafifletilmesi için:

  • Ağ talebini azaltmak için istemci çağrısı davranışını değiştirme.
  • Olası etkileri hakkında önceden bilgi sahibi olmak için bellek okuma veya bellek yazma gibi ölçümlerle ilgili uyarılar oluşturun.
  • Daha fazla ağ bant genişliği kapasitesine sahip daha büyük bir önbellek boyutuna ölçeklendirin .

Ek bilgiler