Teljesítménytesztelés

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 redis-benchmarkról szól.

A redis-benchmark segédprogram használata

  1. Telepítse nyílt forráskód Redis-kiszolgálót egy teszteléshez használható ügyfél virtuális gépre. A Redis-benchmark segédprogram a nyílt forráskód Redis-disztribúcióba van beépítve. A nyílt forráskód lemezkép telepítésével kapcsolatos útmutatásért kövesse a Redis dokumentációját.

  2. A teszteléshez használt ügyfél virtuális gépnek ugyanabban a régióban kell lennie, mint az Azure Cache for Redis-példánynak.

  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 tűzfalbeállításokat , hogy az ügyfél virtuális gépe hozzáférhessen az Azure Cache for Redis-példányhoz.

  5. Ha TLS/SSL-t használ a gyorsítótárpéldányon, hozzá kell adnia a paramétert a --tls redis-benchmark parancshoz, vagy proxyt kell használnia, például a stunnelt.

  6. Redis-benchmark Alapértelmezés szerint a 6379-s portot használja. A paraméter használatával -p felülbírálhatja ezt a beállítást. -pHa SSL-t/TLS-t (6380-os portot) használ, vagy vállalati szintet használ (10000-s port).

  7. Ha fürtözést használó Azure Cache for Redis-példányt használ, hozzá kell adnia a paramétert a --clusterredis-benchmark parancshoz. A Vállalati fürtkezelési szabályzatot használó vállalati szintű gyorsítótárak nem kizárólagos gyorsítótárként kezelhetők, és nincs szükség erre a beállításra.

  8. Indítás redis-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 redis-benchmark dokumentációját és a redis-benchmark példák szakaszait .

Teljesítményértékelési javaslatok

  • Fontos, hogy ne csak állandó állapotú körülmények között tesztelje a gyorsítótár teljesítményét. Tesztelje feladatátvételi feltételek mellett is, és mérje meg a gyorsítótár cpu-/kiszolgálói terhelését ebben az időszakban. A feladatátvételt az elsődleges csomópont újraindításával indíthatja el. A feladatátvételi feltételek mellett végzett teszteléssel megtekintheti az alkalmazás átviteli sebességét és késését a feladatátvételi feltételek során. A feladatátvétel történhet frissítések vagy nem tervezett események során. Ideális esetben még a feladatátvétel során sem szeretné 80%-nál nagyobbra látni a cpu-/kiszolgálói terhelés csúcsát, mivel ez befolyásolhatja a teljesítményt.

  • Fontolja meg a Nagyvállalati és Prémium szintű Azure Cache for Redis-példányok használatát. Ezek a gyorsítótárméretek jobb hálózati késéssel és átviteli sebességgel rendelkeznek, mivel jobb hardveren futnak.

  • A Vállalati szint általában a legjobb teljesítményt nyújtja, mivel a Redis Enterprise lehetővé teszi, hogy az alapvető Redis-folyamat több vCPU-t használjon. A nyílt forráskód Redisen alapuló rétegek, például a Standard és a Premium, szegmensenként csak egy vCPU-t használhatnak a Redis-folyamathoz.

  • Az Enterprise Flash-szint teljesítményértékelése nehéz lehet, mert egyes kulcsok a DRAM-on vannak tárolva, míg mások NVMe flash lemezen vannak tárolva. A DRAM-teljesítményteszt kulcsai majdnem olyan gyorsak, mint egy vállalati szintű példány, de az NVMe flash lemezen lévő kulcsok lassabbak. Mivel az Enterprise Flash 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. Fontolja meg a -r paraméterrel, hogy véletlenszerűen ki legyen választva, hogy mely kulcsok érhetők el.

  • A TLS/SSL használata csökkenti az átviteli teljesítményt, ami jól látható a példa teljesítményértékelési adataiban az alábbi táblázatokban.

  • Annak ellenére, hogy a Redis-kiszolgálók egyszálasak, a vertikális felskálázás általában javítja az átviteli teljesítményt. A rendszerfolyamatok az extra vCPU-kat használhatják a Redis-folyamat által használt vCPU megosztása helyett. A vertikális felskálázás különösen hasznos az Enterprise és az Enterprise Flash szinteken, mivel a Redis Enterprise nem korlátozódik egyetlen szálra. További információkért tekintse meg a vállalati szintű ajánlott eljárásokat.

  • A Prémium szinten a horizontális felskálázás, a fürtözés általában ajánlott a felskálázás előtt. A fürtözés lehetővé teszi, hogy a Redis-kiszolgáló több vCPU-t használjon az adatok skálázásával. Ebben az esetben a szegmensek hozzáadásakor az átviteli sebességnek nagyjából lineárisan kell növekednie.

Példák a Redis-benchmarkra

Előzetes tesztelés beállítása: Készítse elő a gyorsítótárpéldányt a késés és az átviteli sebesség teszteléséhez szükséges adatokkal:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t SET -n 10 -d 1024

A késés tesztelése: GET-kérelmek tesztelése 1k hasznos adat használatával:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -d 1024 -P 50 -c 4

Az átviteli sebesség tesztelése: Folyamatalapú GET-kérések 1k hasznos adattal:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

Alapszintű, standard vagy prémium szintű gyorsítótár átviteli sebességének tesztelése TLS használatával: Folyamatalapú GET-kérelmek 1k hasznos adattal:

redis-benchmark -h yourcache.redis.cache.windows.net -p 6380 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --tls

Nagyvállalati vagy Vállalati Flash-gyorsítótár átviteli sebességének tesztelése TLS nélkül OSS-fürtmóddal: Folyamatalapú GET-kérelmek 1k hasznos adattartalommal:

redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50 -c 50 --cluster

Példa teljesítménymutató-adatokra

Az alábbi táblázatok a Standard, Premium, Enterprise és Enterprise Flash gyorsítótárak különböző méreteinek tesztelése során megfigyelt maximális átviteli sebességértékeket mutatják. Egy IaaS Azure-beli virtuális gépről használtuk redis-benchmark az Azure Cache for Redis-végponton. Az átviteli sebességszámok csak a GET parancsokhoz tartoznak. Az Standard kiadás T-parancsok általában alacsonyabb átviteli sebességgel rendelkeznek. Ezek a számok az átviteli sebességre vannak optimalizálva. A valós átviteli sebesség elfogadható késési feltételek mellett alacsonyabb lehet.

Az alapszintű, standard és prémium szintű szintek átviteli sebességének összehasonlításához a következő konfigurációt használták:

redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t  GET -n 1000000 -d 1024 -P 50  -c 50

Figyelemfelhívá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. Ezek a számok változhatnak, hiszen rendszeresen közzétesszük az újabb eredményeket.

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 egyetlen régióban a régebbi generációs gyorsítótár-hardvereket tükrözik. A gyakorlatban jobb vagy eltérő eredményeket láthat.

Standard csomag

Példány Méret vCPU-k Várható hálózati sávszélesség (Mbps) GET kérések másodpercenként SSL nélkül (1 kB értékméret) GET kérések másodpercenként SSL használatával (1 kB-os értékméret)
C0 250 MB Megosztott 100 15 000 7500
C1 1 GB 0 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 1000 102,000 93,000
C6 53 GB 8 2000 126,000 120 000

Prémium szintű csomag

Példány Méret vCPU-k Várható hálózati sávszélesség (Mbps) GET kérések másodpercenként SSL nélkül (1 kB értékméret) GET kérések másodpercenként SSL használatával (1 kB-os értékméret)
P1 6 GB 2 1500 180,000 172,000
P2 13 GB 4 3000 350,000 341,000
P3 26 GB 4 3000 350,000 341,000
P4 53 GB 8 6000 400,000 373,000
P5 120 GB 32 6000 400,000 373,000

Fontos

A P5-példányok a Kelet-Kína és Kína északi régióiban 20 magot használnak, nem 32 magot.

Enterprise > Enterprise Flash-szintek

Az Enterprise és az Enterprise Flash szintek a következő fürtszabályzatok közül választhatnak: 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. További információt a Vállalati fürtözés című témakörben talál. Mindkét fürtszabályzat teljesítménymutatói az alábbi táblázatokban láthatók.

A következő konfigurációt használták az enterprise és enterprise flash szintek átviteli sebességének összehasonlításához:

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

Feljegyzés

Ez a konfiguráció majdnem megegyezik az alapszintű, standard és prémium szintű szintek összehasonlításához használt konfigurációval. Az előző konfiguráció azonban nem tudta teljes mértékben kihasználni a nagyvállalati szintek nagyobb számítási teljesítményét. A teljes teljesítmény bemutatása érdekében további kérések és szálak lettek hozzáadva ehhez a konfigurációhoz.

Vállalati fürtszabályzat

Példány Méret vCPU-k Várható hálózati sávszélesség (Mbps) GET kérések másodpercenként SSL nélkül (1 kB értékméret) GET kérések másodpercenként SSL használatával (1 kB-os értékméret)
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 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

OSS-fürtszabályzat

Példány Méret vCPU-k Várható hálózati sávszélesség (Mbps) GET kérések másodpercenként SSL nélkül (1 kB értékméret) GET kérések másodpercenként SSL használatával (1 kB-os értékméret)
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 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

Enterprise & Enterprise Flash Tiers – Vertikális felskálázás

A nagyobb gyorsítótárméretre való áttéréssel a vertikális felskálázás mellett a teljesítmény is növelhető a horizontális felskálázással. A vállalati szinteken a horizontális felskálázást a gyorsítótárpéldány kapacitásának növelésének nevezzük. A gyorsítótárpéldány alapértelmezés szerint két jelentésű elsődleges és replikacsomópont kapacitásával rendelkezik. A négy kapacitású vállalati gyorsítótárpéldány azt jelzi, hogy a példányt két tényezővel skálázták fel. A horizontális felskálázás több memóriához és vCPU-hoz biztosít hozzáférést. Az alapvető Redis-folyamat által az egyes gyorsítótárméretekben és -kapacitásokban használt virtuális processzorok számát a vállalati szintek ajánlott eljárásainak oldalán találja. A horizontális felskálázás az OSS-fürtszabályzat használatakor a leghatékonyabb.

Az alábbi táblázatok a GET kéréseket jelenítik meg másodpercenként különböző kapacitásokban, SSL és 1 kB-os értékméret használatával.

Horizontális felskálázás – Vállalati fürtszabályzat

Példány 2. kapacitás 4. kapacitás 6. kapacitás
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
Példány 3. kapacitás 9. kapacitás
F300 390,000 640,000
F700 370,000 610,000
F1500 390,000 670,000

Horizontális felskálázás – OSS-fürtszabályzat

Példány 2. kapacitás 4. kapacitás 6. kapacitás
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
Példány 3. kapacitás 9. kapacitás
F300 1,200,000 2,600,000
F700 1,200,000 2,600,000
F1500 1,100,000 2,800,000

Következő lépések