Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Redis-példány teljesítményének tesztelése bonyolult feladat lehet. A Redis-példányok teljesítménye változó lehet olyan paraméterektől függően, mint az ügyfelek száma, az adatértékek mérete és a pipelining használata. Az átviteli sebesség és a késés optimalizálása között kompromisszum is lehet.
Szerencsére számos eszköz létezik a Redis teljesítményértékelésének megkönnyítésére. A két legnépszerűbb eszköz a redis-benchmark és a memtier-benchmark . Ez a cikk a memtier_benchmark, más néven memtier-ről szól.
A memtier_benchmark segédprogram használata
Telepítse a memtiert egy teszteléshez használható ügyfél virtuális gépekre (VM-ekre). Kövesse a Memtier dokumentációját a nyílt forráskód lemezkép telepítésével kapcsolatos utasításokért.
A teszteléshez használt ügyfél virtuális gépnek (VM) ugyanabban a régióban kell lennie, mint az Azure Managed Redis (AMR) példánya.
Győződjön meg arról, hogy a használt ügyfél virtuális gép legalább annyi számítási és sávszélességű , mint a tesztelt gyorsítótárpéldány.
Konfigurálja a hálózatelkülönítési és virtuálisgép-tűzfalbeállításokat, hogy az ügyfél virtuális gép hozzáférhessen az Azure Managed Redis-példányhoz.
Ha TLS/SSL-t használ a gyorsítótárpéldányon, hozzá kell adnia a
--tlsparamétereket a--tls-skip-verifymemtier_benchmark parancshoz.memtier_benchmarkAlapértelmezés szerint a 6379-s portot használja. A paraméterrel felülbírálhatja ezt a-p 10000beállítást, mivel az AMR ehelyett az 10000-as portot használja.Az OSS-fürtszabályzatot használó összes Azure Managed Redis-példányhoz hozzá kell adnia a paramétert a
--cluster-modememtier-parancshoz. A vállalati fürtszabályzatot használó AMR-példányok nemclustered gyorsítótárként kezelhetők, és nincs szükség erre a beállításra.Indítás
memtier_benchmarka virtuális gép parancssori felületéről vagy rendszerhéjából. Az eszköz konfigurálására és futtatására vonatkozó utasításokért tekintse meg a Memtier dokumentációját.
Teljesítményértékelési javaslatok
Ha nem kapja meg a szükséges teljesítményt, próbálkozzon a vertikális felskálázással egy fejlettebb szintre. A kiegyensúlyozott szint általában kétszer annyi vCPU-val rendelkezik, mint a memóriaoptimalizált szint, a számítási optimalizált szint pedig általában kétszer annyi vCPU-val, mint a kiegyensúlyozott szint. Mivel az Azure Managed Redis a Közösségi Redis helyett a Redis Enterprise-ra épül, az alapvető Redis-folyamat több virtuális processzort is képes használni. Ennek eredményeképpen a több vCPU-val rendelkező példányok jelentősen jobb átviteli teljesítménnyel rendelkeznek.
A nagyobb memóriaméretekre való felskálázás további virtuális processzorokat is hozzáad, ami növeli a teljesítményt. A nagyobb memóriaméretekre való skálázás azonban általában kevésbé hatékony, mint egy nagyobb teljesítményű szint használata. Az egyes méretekhez és szintekhez elérhető vCPU-k részletes lebontásához tekintse meg a szinteket és az SKU-kat.
A flashoptimalizált szint teljesítményértékelése nehéz lehet, mert egyes kulcsok a DRAM-on vannak tárolva, míg néhányat NVMe flash lemezen tárolnak. A DRAM-teljesítményteszt kulcsai majdnem olyan gyorsak, mint a többi Azure Managed Redis-példány, de az NVMe flash lemezen lévő kulcsok lassabbak. Mivel a Flash-optimalizált szint intelligensen helyezi el a leggyakrabban használt kulcsokat a DRAM-ba, győződjön meg arról, hogy a teljesítményteszt konfigurációja megfelel a várt tényleges használatnak.
A TLS/SSL használata csökkenti az átviteli teljesítményt, de éles környezetben ajánlott eljárásként ajánlott.
Fontos, hogy a teljesítménymérés előtt először töltse ki a Redis-példányt adatokkal. Az üres gyorsítótárak teljesítményértékelése sokkal jobb eredményeket eredményez, mint a gyakorlatban.
A használt kapcsolatok száma jelentős hatással van a teljesítménytesztre. Ha túl sok kapcsolatot használ, az rontja a gyorsítótár teljesítményét. Ha túl kevés kapcsolatot használ, az nem mutatja a gyorsítótár teljes teljesítményét. Javasoljuk a kapcsolatok számának konfigurálását a tényleges alkalmazásigények alapján. A kapcsolatok teljes számát úgy határozhatja meg, hogy megszorozza az ügyfelek számát a szálak számával.
A folyamatkonfiguráció jelentős hatással van a teljesítménytesztelésre. Ha nagyobbra állítja a folyamatbeállítást, nagyobb átviteli sebességet, de rosszabb késést fog látni. További információkért lásd a csőhálózat-készítést.
memtier_benchmark példák
Megjegyzés:
Ez a példa az OSS-fürtszabályzat és a TLS használatával végzett számítási optimalizált X3-példányok teljesítményértékelését mutatja be.
Tesztelés előtti beállítás: A gyorsítótárpéldány előkészítése a teszteléshez szükséges adatokkal. A példány adatokkal való betöltése biztosítja, hogy az eredmények pontosabban tükrözzék a valós körülményeket. A {number-of-keys} paramétert az AMR-példány mérete és az egyes kulcsok mérete határozza meg. Egy jó hüvelykujj szabály, hogy töltse ki a példány nagyjából 75%, amely a pufferek. Ezt a képletet használhatja: numberOfKeysToSet = (<TotalCacheSizeInBytes> * 0.75) / (1024 + 300). Ha például egy számításoptimalizált X3-példányon méri a teljesítményt, az 1024 bájtos kulcsméreteket használ, ahogy azt korábban is láthattuk, ez azt jelenti {number-of-keys} = (3 * 1000000000 * 0.75) / (1024 + 300). Az eredmény körülbelül 1 699 396 billentyűnek felel meg.
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
Megjegyzés:
Ez a példa a , --tlsés --tls-skip-verify a --cluster-modejelzőket használja. Ezekre nincs szükség, ha az Azure Managed Redist nem TLS módban használja, vagy ha nagyvállalati fürtszabályzatot használ.
Az átviteli sebesség tesztelése: Ez a parancs 1k hasznos adattal teszteli a folyamatalapú GET-kérelmeket. Ezzel a paranccsal tesztelheti, hogy mennyi olvasási átviteli sebesség várható a gyorsítótárpéldánytól. Ez a példa feltételezi, hogy TLS-t és OSS-fürtszabályzatot használ. A --key-pattern=R:R paraméter biztosítja a kulcsok véletlenszerű elérését, ami növeli a teljesítményteszt realizmusát. Ez a teszt öt percig fut.
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
Példa teljesítménymutató-adatokra
Az alábbi táblázat az Azure Managed Redis-példányok különböző méreteinek tesztelése során megfigyelt optimális átviteli sebességet mutatja be az összes olvasási parancsot és 1KB hasznos adatmennyiséget tartalmazó számítási feladattal. A számítási feladat minden termékváltozatban azonos, kivéve a kapcsolatszámot (azaz a memtier_benchmark által megkövetelt eltérő szál- és ügyfélszámot). A kapcsolatszám termékváltozatonként van kiválasztva az Azure Managed Redis-példány optimális kihasználásához. Egy IaaS Azure-beli virtuális gépről használtuk memtier_benchmark az Azure Managed Redis-végponton, a memtier_benchmark példák szakaszában látható memtier-parancsok használatával. Az átviteli sebességszámok csak a GET parancsokhoz tartoznak. A SET-parancsok általában alacsonyabb átviteli sebességgel rendelkeznek. A valós teljesítmény a Redis konfigurációja és parancsai alapján változik. Ezek a számok referenciapontként vannak megadva, nem garanciaként.
Figyelmeztetés
Ezek az értékek nem garantáltak, és ezekhez a számokhoz nincs SLA. Határozottan javasoljuk, hogy saját teljesítménytesztelést végezzen az alkalmazás megfelelő gyorsítótárméretének meghatározásához. A teljesítmény különböző okokból változhat, például a különböző kapcsolatok száma, a hasznos adatok mérete, a végrehajtott parancsok stb.
Fontos
A Microsoft rendszeresen frissíti a gyorsítótárpéldányokban használt mögöttes virtuális gépet. Ez módosíthatja a teljesítmény jellemzőit gyorsítótárról gyorsítótárra, régióról régióra. Az ezen az oldalon található példa teljesítményértékelési értékei egy adott generációs gyorsítótár-hardvert tükröznek egyetlen régióban. A gyakorlatban különböző eredményeket láthat, különösen a hálózati sávszélességgel.
Az Azure Managed Redis számos fürtszabályzatot kínál: Enterprise és OSS. A vállalati fürtszabályzat egy egyszerűbb konfiguráció, amely nem követeli meg, hogy az ügyfél támogassa a fürtözést. Az OSS-fürtszabályzat viszont a Redis-fürtprotokoll használatával támogatja a magasabb átviteli sebességet. A legtöbb esetben az OSS fürtszabályzat használatát javasoljuk, különösen akkor, ha nagy teljesítményt igényel. További információ: Fürtözés.
| Méret GB-ban | Másodpercenkénti GET kérések memóriaoptimalizált rendszerekhez | GET kérések másodpercenként a Balancedhez | GET kérések másodpercenként Compute Optimized részére |
|---|---|---|---|
| 0,5 | - | 120 000 | - |
| 1 | - | 120 000 | - |
| 3 | - | 230,000 | 480 000 |
| 6 | - | 230,000 | 480 000 |
| 12 | 230,000 | 480 000 | 810,000 |
| 24 | 480 000 | 810,000 | 1,600,000 |
| 60 | 810,000 | 1,500,000 | 2,000,000 |
| Százhúsz | 1,500,000 | 2,000,000 | 2,900,000 |
Az alábbi táblázat felsorolja a kapcsolatszámot a memtier_benchmark szál- és kliensszám alapján, amelyek az átviteli sebesség eredményeit előállították. Ahogy fentebb említettük, a kapcsolatszám módosítása eltérő teljesítményt eredményezhet.
| Méret GB-ban | Ügyfelek/szálak/Kapcsolatok száma memória optimalizálásához | Kiegyensúlyozott ügyfelek/szálak/kapcsolatszám | Kliens/szálak/kapcsolatok száma a számítási optimalizálthoz |
|---|---|---|---|
| 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 |
| 24 | 10/8/80 | 10/16/160 | 20/16/320 |
| 60 | 10/16/160 | 20/16/320 | 20/32/640 |
| Százhúsz | 20/16/320 | 20/32/640 | 20/64/1280 |