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
Telepítse nyílt forráskód Redis-kiszolgálót a teszteléshez használható ügyfél virtuális gépekre. 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.
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.
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 tűzfalbeállításokat , hogy az ügyfél virtuális gépe hozzáférhessen az Azure Cache for Redis-példányhoz.
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.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.-p
Ha SSL-t/TLS-t (6380-os portot) használ, vagy vállalati szintet használ (10000-s port).Ha fürtözést használó Azure Cache for Redis-példányt használ, hozzá kell adnia a paramétert a
--cluster
redis-benchmark
parancshoz. A fürtözést használó vállalati szintű gyorsítótárak nemclustered gyorsítótárként kezelhetők, és nincs szükség erre a beállításra.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.
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.
C0 és C1 Standard gyorsítótárakon, miközben a virtuális gépeken belső Defender-vizsgálat fut, előfordulhat, hogy a kiszolgáló terhelésének rövid kiugrásait nem a gyorsítótár-kérelmek növekedése okozza. A kérések nagyobb késést tapasztalnak, míg a belső Defender-vizsgálatok naponta néhányszor futnak ezeken a szinteken. A C0- és C1-szintek gyorsítótárai csak egyetlen maggal rendelkeznek a többfeladatos használathoz, elosztva a belső Defender-vizsgálat és a Redis-kérések kiszolgálásának munkáját. Csökkentheti a hatást, ha több processzormaggal, például C2-vel egy magasabb szintű ajánlatra skáláz.
A magasabb szinteken a gyorsítótár nagyobb mérete segít kezelni a késéssel kapcsolatos problémákat. A C2 szinten akár 2000 ügyfélkapcsolatot is támogat.
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. IaaS Azure-beli virtuális gépet használtunk redis-benchmark
az memtier-benchmark
Azure Cache for Redis-végponton. Az átviteli sebességszámok csak a GET parancsokhoz tartoznak. A SET-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.
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.
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
Standard szintű Redis-teljesítménytesztek
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ű Redis-teljesítménytesztek
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ó: Fürtözés . 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-os értékméret) |
GET kérések másodpercenként SSL használatával (1 kB é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-os értékméret) |
GET kérések másodpercenként SSL használatával (1 kB é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. A horizontális skálázási konfigurációban részletes információkat talál arról, hogy az alapvető Redis-folyamat hány vCPU-t használ az egyes gyorsítótárméreteken és -kapacitásokon. 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
másodpercenkénti kéréseket jelenítik meg 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 |