Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 genellikle memtier olarak adlandırılan memtier_benchmark odaklanmaktadır.
memtier_benchmark yardımcı programını kullanma
Test için kullanabileceğiniz bir istemci sanal makinelerine (VM) memtier yükleyin. açık kaynak görüntüsünü yükleme yönergeleri için Memtier belgelerini izleyin.
Test için kullanılan istemci sanal makinesi (VM), Azure Yönetilen Redis (AMR) ö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'nin Azure Yönetilen Redis örneğinize erişebildiğinden emin olmak için ağ yalıtımınızı ve VM güvenlik duvarı ayarlarınızı yapılandırın.
Önbellek örneğinizde TLS/SSL kullanıyorsanız ve
--tlsparametrelerini memtier_benchmark komutunuza eklemeniz--tls-skip-verifygerekir.memtier_benchmarkvarsayılan olarak 6379 numaralı bağlantı noktasını kullanır.-p 10000AMR bunun yerine 10000 numaralı bağlantı noktasını kullandığından bu ayarı geçersiz kılmak için parametresini kullanın.OSS küme ilkesini kullanan tüm Azure Yönetilen Redis örnekleri için parametresini
--cluster-modememtier komutunuza eklemeniz gerekir. Kurumsal küme ilkesini kullanan AMR örnekleri, kümelenmemiş önbellekler olarak kabul edilebilir ve bu ayara gerek yoktur.VM'nin CLI veya kabuğundan başlatın
memtier_benchmark. Aracı yapılandırma ve çalıştırma yönergeleri için Memtier belgelerine bakın.
Karşılaştırma önerileri
İhtiyacınız olan performansı alamıyorsanız ölçeği daha gelişmiş bir katmana genişletmeyi deneyin. Dengeli katmanında genellikle Bellek için İyileştirilmiş katmanın iki katı sayıda vCPU bulunur ve İşlem için İyileştirilmiş katmanında genellikle Dengeli katmanın iki katı sayıda vCPU bulunur. Azure Yönetilen Redis, topluluk Redis yerine Redis Enterprise üzerinde oluşturulduğundan, temel Redis işlemi birden çok vCPU kullanabilir. Sonuç olarak, daha fazla vCPU'ya sahip örnekler önemli ölçüde daha iyi aktarım hızı performansına sahiptir.
Daha büyük bellek boyutlarına kadar ölçeklendirme, performansı artırarak daha fazla vCPU da ekler. Ancak, daha büyük bellek boyutlarına kadar ölçeklendirme genellikle daha yüksek performanslı bir katman kullanmaktan daha az etkilidir. Her boyut ve katman için mevcut vCPU'ların ayrıntılı dökümünü görmek için Katmanlar ve SKU'lara bakın.
Bazı anahtarlar DRAM'da, bazıları ise NVMe flash diskte depolandığından Flash için İyileştirilmiş katmanı karşılaştırmak zor olabilir. DRAM'de bulunan anahtarlar neredeyse diğer Azure Yönetilen Redis örnekleri kadar hızlı karşılaştırmalı ancak NVMe flash disk üzerindeki anahtarlar daha yavaştır. Flash İyileştirilmiş katmanı en çok kullanılan anahtarları akıllı bir şekilde DRAM'a yerleştirdiğinden, kıyaslama yapılandırmanızın beklediğiniz gerçek kullanımla eşleştiğinden emin olun.
TLS/SSL kullanmak aktarım hızı performansını düşürür, ancak üretim için en iyi yöntem olarak kesinlikle önerilir.
Karşılaştırmadan önce Redis örneğini verilerle doldurmak önemlidir. Boş bir önbellekte karşılaştırma yapmak, uygulamada görebileceğinizden çok daha iyi sonuçlar üretir.
Kullanılan bağlantı sayısının kıyaslama üzerinde önemli bir etkisi vardır. Çok fazla bağlantı kullanılması önbelleğin performansını düşürmeye başlar. Çok az bağlantı kullanılması önbelleğin tam performansını göstermez. Gerçek uygulama gereksinimlerinize göre bağlantı sayısını yapılandırmanızı öneririz. İstemci sayısını iş parçacığı sayısıyla çarparak toplam bağlantı sayısını belirlersiniz.
İşlem hattı yapılandırmasının performans testi üzerinde önemli bir etkisi vardır. İşlem hattı ayarını daha büyük olacak şekilde ayarlarsanız daha fazla aktarım hızı, ancak daha kötü gecikme süresi görürsünüz. Daha fazla bilgi için bkz . kanal oluşturma.
memtier_benchmark örnekleri
Uyarı
Bu örnekte, OSS küme ilkesi ve TLS kullanılarak İşlem için İyileştirilmiş X3 örneğinde karşılaştırma gösterilmektedir.
Test öncesi kurulum: Önbellek örneğini test için gereken verilerle hazırlayın. Örneğin verilerle yüklenmesi, sonuçların gerçek dünya koşullarını daha doğru yansıtmasını sağlar. parametresi, {number-of-keys} AMR örneğinizin boyutuna ve her anahtarın boyutuna göre belirlenmelidir. Örnek yaklaşık %75 dolu olarak doldurularak arabelleklerin hesaplanmış olması iyi bir kuraldır. Şu formülü kullanabilirsiniz: numberOfKeysToSet = (<TotalCacheSizeInBytes> * 0.75) / (1024 + 300). Örneğin, daha önce gösterildiği gibi 1.024 baytlık anahtar boyutları kullanarak İşlem İçin İyileştirilmiş X3 örneğinde karşılaştırmalar yaparsanız bu anlamına gelir {number-of-keys} = (3 * 1000000000 * 0.75) / (1024 + 300). Sonuç yaklaşık 1.699.396 tuşa eşittir.
memtier_benchmark -h {your-cache-name}.{region}.redis.azure.net -p 10000 -a {your-access-key} --hide-histogram --pipeline=10 --clients=50 --threads=6 --key-maximum=1699396 -n allkeys --key-pattern=P:P --ratio=1:0 --data-size=1024 --tls --cluster-mode
Uyarı
Bu örnekte , --tlsve --tls-skip-verify bayrakları kullanılır--cluster-mode. Azure Yönetilen Redis'i TLS dışı modda kullanıyorsanız veya sırasıyla Kurumsal küme ilkesini kullanıyorsanız bunlara ihtiyacınız yoktur.
Aktarım hızını test etmek için: Bu komut, 1k yük ile işlem hattına alınmış GET isteklerini test eder. Önbellek örneğinizden ne kadar okuma aktarım hızı bekleyebileceğinizi test etmek için bu komutu kullanın. Bu örnekte TLS ve OSS küme ilkesini kullandığınız varsayılır.
--key-pattern=R:R parametresi, anahtarlara rastgele erişilmesini sağlar ve karşılaştırmanın gerçekçiliğini artırır. Bu test beş dakika boyunca çalışır.
memtier_benchmark -h {your-cache-name}.{region}.redis.azure.net -p 10000 -a {your-access-key} --hide-histogram --pipeline=10 --clients=50 --threads=6 -d 1024 --key-maximum=1699396 --key-pattern=R:R --ratio=0:1 --distinct-client-seed --test-time=300 --json-out-file=test_results.json --tls --tls-skip-verify --cluster-mode
Örnek performans karşılaştırma verileri
Aşağıdaki tabloda, tüm okuma komutlarının ve 1 KB yükün iş yüküyle Azure Yönetilen Redis örneklerinin çeşitli boyutlarını test ederken gözlemlediğimiz en iyi aktarım hızı gösterilmektedir. İş yükü, bağlantı sayısı (memtier_benchmark için gerekli olan farklı iş parçacığı ve istemci sayısı) dışında tüm SKU'larda aynıdır. Azure Yönetilen Redis örneğinden en iyi şekilde yararlanmak için SKU başına bağlantı sayısı seçilir. IaaS Azure VM'sinden Azure Yönetilen Redis uç noktasına karşı memtier_benchmark örneklermemtier_benchmarkmemtier komutlarını kullanarak 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. Gerçek dünya performansı Redis yapılandırmasına ve komutlarına göre değişir. Bu sayılar garanti değil, referans noktası olarak sağlanır.
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. Performans, farklı bağlantı sayısı, yük boyutu, yürütülen komutlar vb. gibi çeşitli nedenlerle farklılık gösterebilir.
Ö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 belirli bir nesil önbellek donanımını yansıtır. Uygulamada, özellikle ağ bant genişliğiyle farklı sonuçlar görebilirsiniz.
Azure Yönetilen Redis 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ümesi protokolunu kullanır. Özellikle yüksek performans gerektiren durumlarda çoğu durumda OSS küme ilkesini kullanmanızı öneririz. Daha fazla bilgi için bkz . Kümeleme.
| GB cinsinden boyut | Bellek Optimizeli GET istekleri saniye başına | Balanced için saniyede GET istekleri | Compute Optimized için saniye başına GET istekleri |
|---|---|---|---|
| 0,5 | - | 120.000 | - |
| 1 | - | 120.000 | - |
| 3 | - | 230,000 | 480.000 |
| 6 | - | 230,000 | 480.000 |
| 12 | 230,000 | 480.000 | 810,000 |
| yirmi dört | 480.000 | 810,000 | 1,600,000 |
| 60 | 810,000 | 1,500,000 | 2,000,000 |
| 120 | 1,500,000 | 2,000,000 | 2,900,000 |
Aşağıdaki tabloda, aktarım hızı sayılarını üretmek için kullanılan memtier_benchmark iş parçacığı sayısı ve istemci sayısına göre bağlantı sayısı listelenmiştir. Yukarıda belirtildiği gibi, bağlantı sayısının değiştirilmesi performansın değişmesine neden olabilir.
| GB cinsinden boyut | Bellek İçin İyileştirilmiş İstemciler/İş Parçacıkları/Bağlantı Sayısı | İstemciler/İşlemler/Dengeleme için Bağlantı Sayısı | Hesaplama İçin Optimize Edilmiş İstemciler/İş Parçacıkları/Bağlantı Sayısı |
|---|---|---|---|
| 0,5 | - | 10/4/40 | - |
| 1 | - | 10/4/40 | - |
| 3 | - | 10/4/40 | 10/8/80 |
| 6 | - | 10/4/40 | 10/8/80 |
| 12 | 10/4/40 | 10/8/80 | 10/16/160 |
| yirmi dört | 10/8/80 | 10/16/160 | 20/16/320 |
| 60 | 10/16/160 | 20/16/320 | 20/32/640 |
| 120 | 20/16/320 | 20/32/640 | 20/64/1280 |