Redis için Azure Cache sunucusu sorunlarını giderme
Bu bölümde, bir Redis için Azure Cache sunucusundaki veya onu barındıran sanal makinelerin herhangi birinde bulunan koşulların neden olduğu sorun giderme sorunları açıklanmıştır.
- Yüksek sunucu yükü
- Yüksek bellek kullanımı
- Uzun süre çalışan komutlar
- Sunucu tarafı bant genişliği sınırlaması
Not
Bu kılavuzdaki sorun giderme adımlarından bazıları Redis komutlarını çalıştırma ve çeşitli performans ölçümlerini izleme yönergelerini içerir. Daha fazla bilgi ve yönergeler için Ek bilgiler bölümündeki makalelere bakın.
Yüksek sunucu yükü
Yüksek sunucu yükü Redis sunucusunun meşgul olduğu ve isteklere yetişemediği anlamına gelir; bu da zaman aşımlarına yol açar. Sol taraftaki Kaynak menüsünden İzleme'yi seçerek önbelleğinizdeki Sunucu Yükü ölçümünü denetleyin. İçgörüler'in altındaki çalışma bölmesinde Sunucu Yükü grafiğini görürsünüz. Ya da Ölçümler'in altında Sunucu Yükü'ne bir ölçüm kümesi ekleyin.
Aşağıda, yüksek sunucu yükü için dikkate alınması gereken bazı seçenekler yer alır.
Ölçeği artırma veya genişletme
Daha fazla parça eklemek için ölçeği genişleterek yükün birden çok Redis işlemine dağıtıldığına dikkat edin. Ayrıca daha fazla CPU çekirdeğiyle daha büyük bir önbellek boyutuna ölçeklendirmeyi de göz önünde bulundurun. Daha fazla bilgi için bkz. Redis için Azure Cache planlama hakkında SSS.
İstemci bağlantısı sayısındaki hızlı değişiklikler
Daha fazla bilgi için bkz . İstemci bağlantısında ani artışlardan kaçınma.
Uzun süre çalışan veya pahalı komutlar
Bu bölüm taşındı. Daha fazla bilgi için bkz . Uzun süre çalışan komutlar.
Ölçeklendirme
Verileri düğümler arasında taşımayı ve küme topolojisini değiştirmeyi içerebileceğinden ölçeklendirme işlemleri CPU ve bellek açısından yoğundur. Daha fazla bilgi için bkz . Ölçeklendirme.
Hizmet bakımı
Redis için Azure Cache yük devretme işlemi Redis için Azure Cache, kapanan düğümden gelen tüm istemci bağlantıları çalışmakta olan düğüme aktarılır. Artan bağlantılar nedeniyle sunucu yükünde ani artış olabilir. tüm istemci bağlantılarının yeniden oluşturulması ve iki düğüm arasında yeniden dağıtılması için istemci uygulamalarınızı yeniden başlatmayı deneyebilirsiniz.
Yüksek bellek kullanımı
Sunucudaki bellek baskısı, isteklerin işlenmesini geciktiren çeşitli performans sorunlarına yol açabilir. Bellek baskısıyla karşılaşıldığında sistem verileri diskte sayfalar ve bu da sistemin önemli ölçüde yavaşlamasına neden olur.
Bellek baskısının bazı olası nedenleri şunlardır:
- Önbellek, maksimum kapasiteye yakın verilerle doldurulur
- Redis sunucusu yüksek bellek parçalanması görüyor
Büyük olasılıkla bir yük deseni büyük ölçüde yüksek varyasyona sahip verileri depoladığında parçalanmanın nedeni olabilir. Örneğin, veriler 1 KB ve 1 MB boyuta yayıldığında parçalanma oluşabilir. Mevcut bellekten 1 KB'lık bir anahtar silindiğinde, 1 MB'lık anahtar buna sığamaz ve parçalanmalara neden olur. Benzer şekilde, 1 MB anahtar silinirse ve 1,5 MB anahtar eklenirse, mevcut geri kazanılabilir belleğe sığamaz. Bu, kullanılmayan boş belleğe neden olur ve daha fazla parçalanmayla sonuçlanır.
Değer ölçümün used_memory_rss
1,5 katının used_memory
üzerindeyse bellekte parçalanma olur. Parçalanma şu durumlarda sorunlara neden olabilir:
- Bellek kullanımı, önbellek için maksimum bellek sınırına yakın veya
UsedMemory_RSS
Maksimum Bellek sınırından yüksek olduğundan bellekte hataya neden olabilir.
Önbellek parçalanmışsa ve yüksek bellek baskısı altında çalışıyorsa sistem, Yerleşik Küme Boyutu (RSS) belleğini kurtarmayı denemek için yük devretme yapar.
Redis, used_memory
bu sorunu belirlemenize yardımcı olabilecek BİlGİ komutu aracılığıyla ve used_memory_rss
olmak üzere iki istatistik sunar. Portalı kullanarak bu ölçümleri görüntüleyebilirsiniz .
ve maxfragmentationmemory-reserved
değerlerinin maxmemory-reserved
uygun şekilde ayarlandığını doğrulayın.
Bellek kullanımını iyi durumda tutmaya yardımcı olmak için yapabileceğiniz birkaç değişiklik vardır:
- Bir bellek ilkesi yapılandırın ve anahtarlarınızda süre sonu sürelerini ayarlayın. Ortamınızda parçalanma varsa bu ilke yeterli olmayabilir.
- Bellek parçalanmasını telafi edecek kadar büyük bir maxmemory-reserved değeri yapılandırın.
- Olası etkileri hakkında önceden bilgi sahibi olmak için kullanılan bellek gibi ölçümlerle ilgili uyarılar oluşturun.
- Daha fazla bellek kapasitesiyle daha büyük bir önbellek boyutuna ölçeklendirin. Daha fazla bilgi için bkz. Redis için Azure Cache planlama hakkında SSS.
Bellek yönetimiyle ilgili öneriler için bkz. Bellek yönetimi için en iyi yöntemler.
Uzun süre çalışan komutlar
Bu bölüm taşındı. Daha fazla bilgi için bkz . Uzun süre çalışan komutlar.
Sunucu tarafı bant genişliği sınırlaması
Bu bölüm taşındı. Daha fazla bilgi için bkz . Ağ bant genişliği sınırlaması.