Megosztás a következőn keresztül:


Teljesítménytesztelés az Azure Managed Redis használatával

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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Ha TLS/SSL-t használ a gyorsítótárpéldányon, hozzá kell adnia a --tls paramétereket a --tls-skip-verify memtier_benchmark parancshoz.

  6. memtier_benchmark Alapértelmezés szerint a 6379-s portot használja. A paraméterrel felülbírálhatja ezt a -p 10000 beállítást, mivel az AMR ehelyett az 10000-as portot használja.

  7. Az OSS-fürtszabályzatot használó összes Azure Managed Redis-példányhoz hozzá kell adnia a paramétert a --cluster-mode memtier-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.

  8. Indítás memtier_benchmark a 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

Következő lépések