Performans Testleri

Önemli

Redis için Azure Cache, tüm SKU'lar için kullanımdan kaldırma zaman çizelgesini duyurdu. Mevcut Redis için Azure Cache örneklerinizi en kısa sürede Azure Yönetilen Redis'e taşımanızı öneririz.

Geçiş kılavuzu:

Kullanımdan kaldırma hakkında daha fazla bilgi için:

Redis örneğinin performansını test etme karmaşık bir görev olabilir. Redis örneğinin performansı, istemci sayısı, veri değerlerinin boyutu ve kanal oluşturmanın kullanılıp kullanılmadığı gibi parametrelere göre farklılık gösterebilir. Ayrıca aktarım hızını veya gecikme süresini iyileştirme arasında bir denge olabilir.

Neyse ki Redis karşılaştırmasını kolaylaştırmak için çeşitli araçlar mevcuttur. En popüler araçlardan ikisi redis-benchmark ve memtier-benchmark'dır. Bu makale redis-benchmark'a odaklanır.

redis-benchmark yardımcı programını kullanma

  1. açık kaynak Redis sunucusunu test için kullanabileceğiniz bir istemci sanal makinelerine (VM) yükleyin. Redis-benchmark yardımcı programı, açık kaynak Redis dağıtımına yerleşiktir. açık kaynak görüntüsünü yükleme yönergeleri için Redis belgelerini izleyin.

  2. Test için kullanılan istemci VM,Redis için Azure Cache örneğiniz ile aynı bölgede olmalıdır.

  3. Kullandığınız istemci VM'sinin en az test edilen önbellek örneği kadar işlem ve bant genişliğine sahip olduğundan emin olun.

  4. İstemci VM'sinin Redis için Azure Cache örneğine erişebildiğinden emin olmak için ağ yalıtımı ve güvenlik duvarı ayarlarınızı yapılandırın.

  5. Önbellek örneğinizde TLS/SSL kullanıyorsanız, parametresini --tls redis-benchmark komutunuza eklemeniz veya stunnel gibi bir ara sunucu kullanmanız gerekir.

  6. Redis-benchmark varsayılan olarak 6379 numaralı bağlantı noktasını kullanır. -p Bu ayarı geçersiz kılmak için parametresini kullanın. SSL/TLS (bağlantı noktası 6380) veya Kurumsal katmanı (bağlantı noktası 10000) kullanıyorsanız kullanmanız gerekir -p.

  7. Kümeleme kullanan bir Redis için Azure Cache örneği kullanıyorsanız komutunuza --cluster parametresini redis-benchmark eklemeniz gerekir. Kurumsal Kümeleme kullanan kurumsal katman önbellekleri, kümelenmemiş önbellekler olarak kabul edilebilir ve bu ayara gerek yoktur.

  8. VM'deki CLI veya kabuktan redis-benchmark çalıştırın. Aracı yapılandırma ve çalıştırma yönergeleri için redis-benchmark belgelerine ve redis-benchmark örnekleri bölümlerine bakın.

Karşılaştırma önerileri

  • Önbelleğinizin performansını sadece kararlı durum koşullarında test etmemek önemlidir. Yük devretme koşulları altında da test edin ve bu süre boyunca önbelleğinizdeki CPU/Sunucu Yükünü ölçün. Yük devretmeyi, birincil düğümü yeniden başlatarak başlatabilirsiniz. Yük devretme koşulları altında test etmek, yük devretme koşulları sırasında uygulamanızın aktarım hızını ve gecikme süresini görmenize olanak tanır. Hata toleransı, güncelleştirmeler sırasında veya planlanmamış bir olay sırasında gerçekleşebilir. İdealde, performansı etkileyebileceği için yük devretme sırasında bile CPU/Sunucu Yükü'nün %80'den fazla olmaması gerekir.

  • Azure Cache for Redis'in Enterprise ve Premium katmanlarını kullanmayı göz önünde bulundurun. Bu önbellek boyutları daha iyi bir donanım üzerinde çalıştığından daha iyi ağ gecikme süresine ve aktarım hızına sahiptir.

  • Redis Enterprise, çekirdek Redis işleminin birden çok vCPU kullanmasına izin verdiğinden, Kurumsal katmanı genellikle en iyi performansa sahiptir. Standart ve Premium gibi açık kaynak Redis'i temel alan katmanlar, parça başına Redis işlemi için yalnızca bir vCPU kullanabilir.

  • Bazı anahtarlar DRAM'da, bazıları ise NVMe flash diskte depolandığından Kurumsal Flash katmanını karşılaştırmak zor olabilir. DRAM üzerindeki anahtarlar neredeyse Kurumsal katman örneği kadar hızlıdır, ancak NVMe flash disk üzerindeki anahtarlar daha yavaştır. Enterprise Flash katmanı en çok kullanılan anahtarları akıllıca DRAM'a yerleştirdiğinden, karşılaştırma yapılandırmanızın beklediğiniz gerçek kullanımla eşleştiğinden emin olun. -r parametresini hangi anahtarlara erişileceğini rastgele seçmek için kullanmayı göz önünde bulundurun.

  • TLS/SSL kullanıldığında aktarım hızı performansı düşer ve bu performans aşağıdaki tablolardaki örnek karşılaştırma verilerinde açıkça görülebilir.

  • Redis sunucusu tek iş parçacığına sahip olsa da ölçek büyütme, aktarım hızı performansını geliştirme eğilimindedir. Sistem işlemleri, Redis işlemi tarafından kullanılan vCPU'yu paylaşmak yerine fazladan vCPU'ları kullanabilir. Redis Enterprise tek bir iş parçacığıyla sınırlı olmadığından, ölçeklendirme Enterprise ve Enterprise Flash katmanlarında özellikle yararlıdır.

  • Premium katmanında ölçeği genişletme ve kümeleme genellikle ölçeği artırmadan önce önerilir. Kümeleme, Redis sunucusunun verileri parçalayarak daha fazla vCPU kullanmasına olanak tanır. Bu durumda parçalar eklenirken aktarım hızı kabaca doğrusal olarak artmalıdır.

  • C0 ve C1 Standart önbelleklerinde, VM'lerde dahili Defender taraması çalışırken, önbellek isteklerindeki bir artıştan kaynaklanmayan sunucu yükünde kısa ani artışlar görebilirsiniz. İç Defender taramaları günde birkaç kez bu katmanlarda çalıştırılırken istekler için daha yüksek gecikme süresi görürsünüz. C0 ve C1 katmanlarında önbellekler, dahili Defender tarama ve Redis istekleri sunma işini bölen çoklu görev için yalnızca tek bir çekirdek içerir. C2 gibi birden çok CPU çekirdeğine sahip daha yüksek bir katman teklifine ölçeklendirerek etkisini azaltabilirsiniz.

    Daha yüksek katmanlardaki artan önbellek boyutu, gecikme sorunlarını gidermeye yardımcı olur. Ayrıca, C2 düzeyinde 2.000 istemci bağlantısına kadar destek alırsınız.

Redis-benchmark örnekleri

Test öncesi kurulum: Önbellek örneğini gecikme süresi ve aktarım hızı testi için gereken verilerle hazırlayın:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t SET -n 10 -d 1024

Gecikme süresini test etmek için: 1k yükü kullanarak GET isteklerini test edin:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -d 1024 -P 50 -c 4

Aktarım hızını test etmek için: 1k yük ile işlem hattı oluşturulan GET istekleri:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

TLS kullanarak Temel, Standart veya Premium katman önbelleğinin aktarım hızını test etmek için: 1k yük ile işlem hattı oluşturulan GET istekleri:

redis-benchmark -h yourcache.redis.cache.windows.net -p 6380 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --tls

OSS Küme Modu'nu kullanarak TLS olmadan Kurumsal veya Kurumsal Flash önbelleğin aktarım hızını test etmek için: 1k yük ile işlem hattı oluşturulan GET istekleri:

redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --cluster

Örnek performans karşılaştırma verileri

Aşağıdaki tablolarda Standart, Premium, Kurumsal ve Kurumsal Flash önbelleklerinin çeşitli boyutları test edilirken gözlemlenen maksimum aktarım hızı değerleri gösterilmektedir. Bir IaaS Azure VM'sinden, Redis için Azure Cache uç noktasına karşı redis-benchmark ve memtier-benchmark kullandık. Aktarım hızı numaraları yalnızca GET komutları içindir. GENELLIKLE SET komutlarının aktarım hızı daha düşüktür. Bu sayılar aktarım hızı için iyileştirilmiştir. Kabul edilebilir gecikme koşulları altında gerçek dünya aktarım hızı daha düşük olabilir.

Dikkat

Bu değerler garanti değildir ve bu sayılar için SLA yoktur. Uygulamanız için doğru önbellek boyutunu belirlemek için kendi performans testinizi gerçekleştirmenizi kesinlikle öneririz. Biz düzenli aralıklarla yeni sonuçlar gönderdikçe bu sayılar değişebilir.

Önemli

Microsoft, önbellek örneklerinde kullanılan temel VM'yi düzenli aralıklarla güncelleştirir. Bu, performans özelliklerini önbellekten önbelleğe ve bölgeden bölgeye değiştirebilir. Bu sayfadaki örnek karşılaştırma değerleri, tek bir bölgedeki eski nesil önbellek donanımlarını yansıtır. Uygulamada daha iyi veya farklı sonuçlar görebilirsiniz.

Temel, Standart ve Premium katmanları için aktarım hızını karşılaştırmak için aşağıdaki yapılandırma kullanılmıştır:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

Standart katman Redis karşılaştırmaları

Örnek Boyut vCPU'ler Beklenen ağ bant genişliği (Mb/sn) SSL olmadan saniye başına GET istekleri (1 kB değer boyutu) SSL ile saniye başına GET istekleri (1 kB değer boyutu)
C0 250 MB Paylaşılan 100 15.000 7.500
C1 1GB 1 500 38,000 20,720
C2 2,5 GB 2 500 41,000 37,000
C3 6GB 4 1000 100.000 90,000
C4 13 GB 2 500 60.000 55,000
C5 26 GB 4 1.000 102,000 93,000
C6 53 GB 8 2.000 126,000 120.000

Redis Premium katmanı performans testleri

Örnek Boyut vCPU'ler Beklenen ağ bant genişliği (Mb/sn) SSL olmadan saniye başına GET istekleri (1 kB değer boyutu) SSL ile saniye başına GET istekleri (1 kB değer boyutu)
P1 6GB 2 1.500 180,000 172,000
P2 13 GB 4 3.000 350,000 341,000
P3 26 GB 4 3.000 350,000 341,000
P4 53 GB 8 6.000 400,000 373,000
P5 120GB 32 6.000 400,000 373,000

Önemli

Çin Doğu ve Çin Kuzey bölgelerindeki P5 örnekleri 32 çekirdek değil 20 çekirdek kullanır.

Kurumsal ve Kurumsal Flash katmanları

Kurumsal ve Kurumsal Flash katmanları bir küme politikası seçeneği sunar: Kurumsal ve OSS. Kurumsal küme ilkesi, istemcinin kümelemesi desteklemesini gerektirmeyen daha basit bir yapılandırmadır. Öte yandan OSS küme ilkesi, daha yüksek aktarım hızını desteklemek için Redis küme protokolunu kullanır. Çoğu durumda OSS küme ilkesini kullanmanızı öneririz. Daha fazla bilgi için bkz . Kümeleme . Her iki küme politikası için benchmark/ölçeklendirme işaretleri aşağıdaki tablolarda gösterilmiştir.

Kurumsal ve Kurumsal flash katmanları için aktarım hızını karşılaştırmak için aşağıdaki yapılandırma kullanılmıştır:

redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t GET -n 10000000 -d 1024 -P 50 -c 50 --threads 32

Not

Bu yapılandırma, Temel, Standart ve Premium katmanlarını karşılaştırmak için kullanılan yapılandırmayla neredeyse aynıdır. Ancak önceki yapılandırma, Kurumsal katmanların daha yüksek işlem performansını tam olarak kullanmamıştı. Maksimum performansı ortaya koymak için bu yapılandırmaya ek istekler ve iş parçacıkları eklendi.

Kurumsal Küme İlkesi
Örnek Boyut vCPU'ler Beklenen ağ bant genişliği (Mb/sn) GET SSL olmadan saniye başına istek sayısı (1 kB değer boyutu) GET SSL ile saniye başına istek sayısı (1 kB değer boyutu)
E10 12 GB 4 4.000 300,000 207,000
E20 25 GB 4 4.000 680,000 480,000
E50 50 GB 8 8,000 1,200,000 900,000
E100 100 GB 16 10.000 1,700,000 1.650.000
F300 384 GB 8 3,200 500,000 390,000
F700 715 GB 16 6,400 500,000 370,000
F1500 1 455 GB 32 12,800 530,000 390,000
Açık Kaynak Yazılım Küme İlkesi
Örnek Boyut vCPU'ler Beklenen ağ bant genişliği (Mb/sn) GET SSL olmadan saniye başına istek sayısı (1 kB değer boyutu) GET SSL ile saniye başına istek sayısı (1 kB değer boyutu)
E10 12 GB 4 4.000 1,400,000 1.000.000
E20 25 GB 4 4.000 1,200,000 900,000
E50 50 GB 8 8,000 2,300,000 1,700,000
E100 100 GB 16 10.000 3,000,000 2,500,000
F300 384 GB 8 3,200 1,500,000 1,200,000
F700 715 GB 16 6,400 1,600,000 1,200,000
F1500 1 455 GB 32 12,800 1,600,000 1,110,000

Kurumsal ve Flash Katmanları - Yatayda Ölçeklendirildi

Daha büyük önbellek boyutuna geçerek ölçeği artırmanın yanı sıra ölçeği genişleterek performansı artırabilirsiniz. Kurumsal katmanlarda ölçeği genişletme, önbellek örneğinin kapasitesini artırma olarak adlandırılır. Bir önbellek örneğinin varsayılan olarak iki kapasitesi vardır; yani birincil ve çoğaltma düğümü. Dört kapasiteli bir Kurumsal önbellek örneği, önbellek örneğinin iki katına çıkacak şekilde ölçeklendirildiğini gösterir. Ölçeği genişletme, daha fazla belleğe ve vCPU'lara erişim sağlar. Çekirdek Redis işlemi tarafından her önbellek boyutu ve kapasitesinde kaç vCPU kullanıldığına ilişkin ayrıntılar Parçalama yapılandırmasında bulunabilir. OSS küme ilkesi kullanıldığında ölçek genişletme en etkilidir.

Aşağıdaki tablolarda SSL ve 1 kB değer boyutu kullanılarak farklı kapasitelerde saniye başına istekler gösterilmektedir GET .

Yatay ölçekleme - Kurumsal küme ilkesi
Örnek Kapasite 2 Kapasite 4 Kapasite 6
E10 200,000 830,000 930,000
E20 480,000 710,000 950,000
E50 900,000 1,110,000 1,200,000
E100 1,600,000 1,120,000 1,200,000
Örnek Kapasite 3 Kapasite 9
F300 390,000 640,000
F700 370,000 610,000
F1500 390,000 670.000
Yatay ölçekleme - OSS küme politikası
Örnek Kapasite 2 Kapasite 4 Kapasite 6
E10 1.000.000 1,900,000 2,500,000
E20 900,000 1,700,000 2,300,000
E50 1,700,000 3,000,000 3,900,000
E100 2,500,000 4,400,000 4,900,000
Örnek Kapasite 3 Kapasite 9
F300 1,200,000 2,600,000
F700 1,200,000 2,600,000
F1500 1,100,000 2,800,000

Sonraki adımlar