Azure Yönetilen Redis için bellek yönetimi

Bu makalede, Azure Yönetilen Redis önbelleğinin etkin bellek yönetimi ele alınacağız.

Bellek kullanımının nasıl bildirildiği hakkında bilgi edinme

Kullanılan Bellek ölçümü, tüm parçalar dahil olmak üzere veritabanınız tarafından tüketilen toplam belleği raporlar. Yüksek Kullanılabilirlik etkinleştirildiğinde, bu ölçüm hem birincil hem de çoğaltma parçaları tarafından kullanılan belleği içerir. Bu, bildirilen değerin gerçek veri kümenizin kabaca iki katı boyutunda olabileceği anlamına gelir.

Örneğin, Yüksek Kullanılabilirlik etkinleştirilmiş bir önbellekte 10 GB veri depolarsanız , Kullanılan Bellek ölçümü yaklaşık 20 GB raporlar.

Kullanılan Bellek ölçümü bellek parçalanması içermez. Ayırıcı ek yükü nedeniyle sunucudaki gerçek fiziksel bellek tüketimi daha yüksek olabilir. Her ölçümün neler içerdiği hakkında daha fazla bilgi için bkz. izleme verileri başvurusu.

Kapasite planlaması için tahmini bellek

İhtiyacınız olan belleği planlarken, değerlerinizin yalnızca ham boyutunun ötesinde bu faktörleri hesaba katın:

  • Anahtar başına ek yük: Redis'te depolanan her anahtar iç meta verileri (işaretçiler, tür bilgileri, süre sonu izleme) içerir. Bu ek yük genellikle anahtar adı uzunluğuna ve değer türüne bağlı olarak anahtar başına 50 ila 100 bayttır. Çok sayıda küçük anahtar için bu ek yük önemli olabilir.
  • Anahtar adları: Anahtar adlarınızı depolamak için kullanılan bellek büyük ölçekte birikir. Daha kısa anahtar adları bellek kullanımını azaltmaya yardımcı olur.
  • Süre sonu izleme: TTL kümesine sahip anahtarlar, süre sonu kayıt defteri için ek bellek tüketir.
  • Yüksek Kullanılabilirlik çoğaltması: Yüksek Kullanılabilirlik etkinleştirildiğinde veri kümesi çoğaltılır. Kullanılan Bellek ölçümü hem birincil hem de çoğaltma belleğini yansıtır, ancak SKU bellek sınırı bunun için zaten kullanılmaktadır. Çoğaltmaya uyum sağlamak için daha büyük bir SKU seçmeniz gerekmez; gerçek veri kümesi boyutunuz temelinde bir SKU seçin.

Belirli bir anahtarın tam bellek maliyetini denetlemek için Redis MEMORY USAGE komutunu kullanın:

MEMORY USAGE <your_key_name>

Bu komut, tüm iç ek yük dahil olmak üzere bir anahtar tarafından tüketilen toplam baytları döndürür. Anahtar başına bellek tahminlerinizi gerçek kullanıma göre doğrulamak için bunu kullanın.

Çıkarma ilkesi

Uygulamanız için çalışan bir çıkarma ilkesiseçin. Azure Yönetilen Redis için varsayılan ilke volatile-lru'dır; bu da yalnızca EXPIRE gibi bir komutla ayarlanmış TTL değerine sahip anahtarların çıkarma için uygun olduğu anlamına gelir. Anahtarların hiçbiri TTL değerine sahip değilse, sistem hiçbir anahtarı çıkarmaz. Eğer sistemin bellek baskısı altında herhangi bir anahtarın çıkarılmasına izin vermesini istiyorsanız, allkeys-lru politikasını değerlendirin.

Anahtar süre sonu

Anahtarlarınızda bir süre sonu değeri ayarlayın. Süre sonu, bellek baskısı olana kadar beklemek yerine anahtarları proaktif olarak kaldırır. Çıkarma işlemi bellek baskısı nedeniyle gerçekleştiğinde sunucunuzda daha fazla yüke neden olabilir. Daha fazla bilgi için EXPIRE ve EXPIREAT komutlarının belgelerine bakın.

Bellek kullanımını izleyin

Ham Kullanılan Bellek yerine Kullanılan Bellek Yüzdesi ölçümünü izlemenizi öneririz. Yüzde ölçümü, Yüksek Kullanılabilirlik çoğaltması da dahil olmak üzere SKU'nuzun toplam bellek sınırını zaten hesaplıyor, dolayısıyla çoğaltma belleği için zihinsel olarak ayarlamaya gerek kalmadan kapasiteye ne kadar yakın olduğunuzun basit bir görünümünü sağlar.

Bellek yetersiz olmadığından ve sorunları görmeden önce önbelleğinizi ölçeklendirme şansına sahip olduğunuzdan emin olmak için Kullanılan Bellek Yüzdesi'ne uyarı ekleyin. Kullanılan Bellek Yüzdeniz tutarlı olarak 75%üzerindeyse, daha yüksek bir katmana ölçeklendirerek belleğinizi artırmayı göz önünde bulundurun. Katmanlar hakkında bilgi için bkz . Mimari.