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
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.
Test için kullanılan istemci VM,Redis için Azure Cache örneğiniz ile aynı bölgede olmalıdır.
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.
İ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.
Önbellek örneğinizde TLS/SSL kullanıyorsanız, parametresini
--tls
redis-benchmark komutunuza eklemeniz veya stunnel gibi bir ara sunucu kullanmanız gerekir.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
.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.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 |