Performans testi

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ı, redis dağıtımının açık kaynak 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 redis-benchmark parametresini --cluster eklemeniz gerekir. Kurumsal kümeleme ilkesini kullanan kurumsal katman önbellekleri, kümelenmemiş önbellekler olarak kabul edilebilir ve bu ayar gerekmez.

  8. VM'nin CLI veya kabuğundan başlatın redis-benchmark . 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ı yalnızca kararlı durum koşullarında test etmek ö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. Birincil düğümü yeniden başlatarak yük devretme 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. Yük devretme, güncelleştirmeler sırasında veya planlanmamış bir olay sırasında gerçekleşebilir. İdeal olarak, performansı etkileyebileceği için yük devretme sırasında bile CPU/Sunucu Yükü'ne %80'den fazla yük yük bindiğini görmek istemezsiniz.

  • Kurumsal ve Premium katmanını Redis için Azure Cache örnekleri 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. Hangi anahtarlara erişilir rastgele seçmek için parametresini -r 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ıklı olsa da ölçeği artırma, 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çeği artırmak özellikle Kurumsal ve Kurumsal Flash katmanlarında yararlıdır. Daha fazla bilgi için bkz . Kurumsal katman en iyi yöntemleri.

  • 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 artış nedeniyle 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. IaaS Azure VM'sinden Redis için Azure Cache uç noktasına karşı kullandıkredis-benchmark. 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.

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

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.

Standart katmanı

Örnek Size vCPU sayısı 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 1 GB 1 500 38,000 20,720
C2 2.5 GB 2 500 41,000 37,000
C3 6 GB 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

Premium katmanı

Örnek Size vCPU sayısı 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 6 GB 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 120 GB 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 ilkesi 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 . Enterprise'da Kümeleme. Her iki küme ilkesi için karşılaştırmalar 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ı. Tam performansı göstermek için bu yapılandırmaya ek istekler ve iş parçacıkları eklendi.

Kurumsal Küme İlkesi

Örnek Size vCPU sayısı 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 Kategori 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 1455 GB 32 12,800 530,000 390,000

İşletim Sistemi Küme İlkesi

Örnek Size vCPU sayısı 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 Kategori 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 1455 GB 32 12,800 1,600,000 1,110,000

Kurumsal ve Kurumsal Flash Katmanları - Ölçeği Genişletildi

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 kapasiteye sahip bir Kurumsal önbellek örneği, örneğin ölçeğinin iki faktöre göre genişletildiğini gösterir. Ölçeği genişletme, daha fazla belleğe ve vCPU'ya erişim sağlar. Çekirdek Redis işlemi tarafından her önbellek boyutunda ve kapasitede kaç vCPU kullanıldığına ilişkin ayrıntılar Kurumsal katmanlar en iyi yöntemler sayfasında bulunabilir. Ölçeği genişletme en çok OSS küme ilkesi kullanılırken etkilidir.

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

Ölçeği genişletme - 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

Ölçeği genişletme - OSS küme ilkesi

Ö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