Teljesítménymutató az Azure Web PubSub Service-hez
Az Azure Web PubSub Service használatának egyik fő előnye a könnyű skálázás. Nagy léptékű forgatókönyvekben a teljesítmény fontos tényező.
Ebben az útmutatóban bemutatjuk a Web PubSub szolgáltatás teljesítményét befolyásoló tényezőket. A különböző használati esetek jellemző teljesítményét ismertetjük.
Gyors értékelés metrikák használatával
Mielőtt áttekintené a teljesítményt befolyásoló tényezőket, először bemutatunk egy egyszerű módszert a szolgáltatás nyomásának monitorozására. A portálon van egy Kiszolgálóbetöltés nevű metrika.
Az Azure Web PubSub szolgáltatás számítási terhelését mutatja. Tesztelheti a saját forgatókönyvét, és ellenőrizheti ezt a metrikát, hogy eldöntse, felskáláz-e. Az Azure Web PubSub szolgáltatás késése alacsony marad, ha a kiszolgáló terhelése 70% alatt van.
Feljegyzés
Ha az 50-es vagy annál nagyobb egységet használja, és a forgatókönyv főként kis csoportoknak küldi el (20-os csoportméret <), ellenőriznie kell, hogy a kis csoportnak küld-e referenciaként. Ezekben a forgatókönyvekben nagy útválasztási költségek merülnek fel, amelyek nem szerepelnek a kiszolgáló terhelésében.
Az alábbiakban részletes fogalmakat talál a teljesítmény kiértékeléséhez.
Kifejezésdefiníciók
Bejövő: A bejövő üzenet az Azure Web PubSub Service-nek.
Kimenő: Az Azure Web PubSub Service kimenő üzenete.
Sávszélesség: Az összes üzenet teljes mérete 1 másodperc alatt.
Áttekintés
Ez az útmutató a következő kérdésekre ad választ:
Mi az Azure Web PubSub Service jellemző teljesítménye az egyes egységek méretéhez?
Megfelel az Azure Web PubSub Service az üzenet átviteli sebességére vonatkozó követelményeknek (például másodpercenként 100 000 üzenet küldése)?
Az én esetemben hogyan választhatom ki a megfelelő egységméretet?
Ezeknek a kérdéseknek a megválaszolásához ez az útmutató először magas szintű magyarázatot ad a teljesítményt befolyásoló tényezőkről. Ezután bemutatja a maximális bejövő és kimenő üzeneteket a tipikus használati esetekhez: Küldés csoportoknak a Web PubSub alprotocolon, az upstreamen és a rest API-on keresztül.
Ez az útmutató nem fedi le az összes forgatókönyvet (és a különböző használati eseteket, üzenetméreteket, üzenetküldési mintákat stb.). A teljesítménykorlátozás megértéséhez azonban alapvető információkat nyújt.
Teljesítményelemzés
Ez a szakasz a teljesítményértékelés módszertanát ismerteti, majd felsorolja a teljesítményt befolyásoló összes tényezőt. Végül olyan módszereket biztosít, amelyekkel kiértékelheti a teljesítménykövetelményeket.
Módszertan
Az átviteli sebesség és a késés a teljesítmény-ellenőrzés két jellemző aspektusa. A maximális átviteli sebesség (bejövő és kimenő sávszélesség) a maximálisan elért átviteli sebesség, ha az üzenetek 99%-a 1 másodpercnél kisebb késéssel rendelkezik. Ez nem egy kemény korlát.
Teljesítménytényezők
Elméletileg az Azure Web PubSub Service kapacitását számítási erőforrások korlátozzák: CPU, memória és hálózat. Például az Azure Web PubSub Service-hez való további kapcsolatok miatt a szolgáltatás több memóriát használ. Nagyobb üzenetforgalom esetén (például minden üzenet nagyobb, mint 2048 bájt), az Azure Web PubSub Service-nek több processzorciklust kell fordítania a forgalom feldolgozásához.
Az üzenet-útválasztás költsége a teljesítményt is korlátozza. Az Azure Web PubSub Service üzenetközvetítőként játszik szerepet, amely egy ügyfélcsoport között irányítja az üzenetet. Egy másik forgatókönyv vagy API eltérő útválasztási szabályzatot igényel.
Visszhang esetén az ügyfél üzenetet küld a felsőbb rétegnek, a felsőbb réteg pedig visszaküldi az üzenetet az ügyfélnek. Ez a minta a legalacsonyabb útválasztási költséggel rendelkezik. A közvetítéshez, a csoportosításhoz és a kapcsolatra való küldéshez azonban az Azure Web PubSub Service-nek a belső elosztott adatstruktúrán keresztül kell megkeresnie a célkapcsolatokat. Ez az extra feldolgozás több processzort, memóriát és hálózati sávszélességet használ. Ennek eredményeképpen a teljesítmény lassabb.
Összefoglalva, a következő tényezők befolyásolják a bejövő és kimenő kapacitást:
Egység mérete (CPU/memória)
Kapcsolatok száma
Üzenet mérete
Üzenetküldési sebesség
Használati eset (útválasztási költség)
Megfelelő egységméret megkeresése
Hogyan értékelheti ki a bejövő/kimenő kapacitást, vagy hogy melyik egységméret felel meg egy adott használati esetnek?
Minden egységméret saját maximális bejövő sávszélességet és kimenő sávszélességet biztosít. A zökkenőmentes felhasználói élmény nem garantált, ha a bejövő vagy kimenő forgalom meghaladja a küszöbértéket.
inboundBandwidth = inboundConnections * messageSize / sendInterval
outboundBandwidth = outboundConnections * messageSize / sendInterval
- bejövő Csatlakozás ions: Az üzenetet küldő kapcsolatok száma.
- kimenő Csatlakozás ions: Az üzenetet fogadó kapcsolatok száma.
- messageSize: Egyetlen üzenet mérete (átlagos érték). Az 1024 bájtnál kisebb kis méretű üzenetek teljesítménybeli hatása hasonló az 1024 bájtos üzenethez.
- sendInterval: Az üzenetek küldésének időköze. Az 1 másodperc például azt jelenti, hogy másodpercenként egy üzenetet küld. A kisebb időköz azt jelenti, hogy több üzenetet küldünk egy adott időszakban. A 0,5 másodperc például két üzenetet jelent másodpercenként.
- Csatlakozás ions: Az Azure Web PubSub Service véglegesített maximális küszöbértéke az egyes egységek méretéhez. a küszöbértéket meghaladó Csatlakozás szabályozva lesznek.
Tegyük fel, hogy a felsőbb réteg elég erős, és nem a teljesítmény szűk keresztmetszete. Ezután ellenőrizze az egységméretek maximális bejövő és kimenő sávszélességét.
Esettanulmány
A következő szakaszok három tipikus használati eseten mennek keresztül: küldés csoportoknak a Web PubSub-alprotocolon keresztül, a CloudEvent aktiválása és a rest API meghívása. Minden forgatókönyv esetében a szakasz az Azure Web PubSub Service aktuális bejövő és kimenő kapacitását sorolja fel. Emellett a teljesítményt befolyásoló fő tényezőket is ismerteti.
Minden használati esetben az alapértelmezett üzenetméret 2048 bájt, az üzenetküldési időköz pedig 1 másodperc.
Küldés csoportoknak a Web PubSub alprotocolon keresztül
A szolgáltatás egy adott alprotocolt json.webpubsub.azure.v1
támogat, amely lehetővé teszi az ügyfelek számára, hogy közvetlenül tegyenek közzé vagy iratkozzanak fel a felsőbb rétegbeli kiszolgálóra való oda-vissza utazás helyett. Ez a forgatókönyv hatékony, mivel nincs kiszolgáló, és az összes forgalom az ügyfél-szolgáltatás WebSocket-kapcsolaton megy keresztül.
A csoporttagság és a csoportszám két tényező, amelyek befolyásolják a teljesítményt. Az elemzés egyszerűsítése érdekében kétféle csoportot határozunk meg:
- Nagy csoport: A csoport száma mindig 10. A csoporttagok száma egyenlő (maximális kapcsolatszám) / 10. Például az 1. egység esetében, ha 1000 kapcsolatszám van, akkor minden csoportnak 1000/10 = 100 tagja van.
- Kis csoport: Minden csoportnak 10 kapcsolata van. A csoport száma egyenlő (maximális kapcsolatszám) / 10. Például az 1. egység esetében, ha 1000 kapcsolatszám van, akkor 1000 / 10 = 100 csoportunk van.
A Küldés csoporthoz útválasztási költséggel jár az Azure Web PubSub Service-nek, mert elosztott adatstruktúrán keresztül kell megtalálnia a célkapcsolatokat. A küldési kapcsolatok növekedésével a költségek növekednek.
Nagy csoport
A nagy csoportnak való küldésnél a kimenő sávszélesség szűk keresztmetszetté válik, mielőtt eléri az útválasztási költségkorlátot. Az alábbi táblázat a maximális kimenő sávszélességet sorolja fel.
Küldés nagy csoportnak | 1. egység | 2. egység | 10. egység | 50. egység | 100. egység | Egység 200 | 500- os egység | Egység 1000 |
---|---|---|---|---|---|---|---|---|
Kapcsolatok | 1000 | 2000 | 10,000. | 50 000 | 100 000 | 200,000 | 500,000 | 1,000,000 |
Csoporttagok száma | 100 | 200 | 1000 | 5000 | 10,000. | 5000 | 10,000. | 20000 |
Csoportszám | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 |
Bejövő üzenetek másodpercenként | 30 | 30 | 30 | 30 | 30 | 30 | 30 | 30 |
Bejövő sávszélesség | 60 KBps | 60 KBps | 60 KBps | 60 KBps | 60 KBps | 60 KBps | 60 KBps | 60 KBps |
Kimenő üzenetek másodpercenként | 3000 | 6000 | 30 000 | 150,000 | 300,000 | 600,000 | 1,500,000 | 3,000,000 |
Kimenő sávszélesség | 6 MBps | 12 MBps | 60 MBps | 300 MBps | 600 MBps | 1200 MBps | 3000 MBps | 6000 MBps |
Kis csoport
Az útválasztási költség jelentős, ha sok kis csoportnak küld üzenetet. Az Azure Web PubSub Service implementációja jelenleg az 50. egységnél éri el az útválasztási költségkorlátot. A processzor és a memória további hozzáadása nem segít, ezért a Unit 100 nem tud tovább fejlődni a tervezéssel. Ha több bejövő sávszélességre van szüksége, fel kell skáláznia a Premium_P2 (100. egység>) használatához.
Küldés kis csoportnak | 1. egység | 2. egység | 10. egység | 50. egység | 100. egység | Egység 200 | 500- os egység | Egység 1000 |
---|---|---|---|---|---|---|---|---|
Kapcsolatok | 1000 | 2000 | 10,000. | 50 000 | 100 000 | 200,000 | 500,000 | 1,000,000 |
Csoporttagok száma | 10 | 10 | 10 | 10 | 10 | 10 | 10 | 10 |
Csoportszám | 100 | 200 | 1000 | 5000 | 10,000. | 20000 | 50 000 | 100 000 |
Bejövő üzenetek másodpercenként | 200 | 400 | 2000 | 10,000. | 10,000. | 20000 | 50 000 | 100 000 |
Bejövő sávszélesség | 400 KBps | 800 KBps | 4 MBps | 20 MBps | 20 MBps | 40 MBps | 100 MBps | 200 MBps |
Kimenő üzenetek másodpercenként | 2000 | 4 000 | 20000 | 100 000 | 100 000 | 200,000 | 500,000 | 1,000,000 |
Kimenő sávszélesség | 4 MBps | 8 MBps | 40 MBps | 200 MBps | 200 MBps | 400 MBps | 1000 MBps | 2000 MBps |
Feljegyzés
A táblázatban felsorolt csoportszám és csoporttagok száma nem szigorú korlát. Ezek a paraméterértékek egy stabil teljesítményteszt-forgatókönyv létrehozásához vannak kiválasztva.
Felhőesemény aktiválása
A Service a CloudEvents HTTP protokoll használatával kézbesíti az ügyféleseményeket a felsőbb rétegbeli webhooknak.
Minden eseményhez HTTP POST-kérést fogalmaz meg a regisztrált upstream felé, és HTTP-választ vár.
Feljegyzés
A Web PubSub a HTTP 2.0-t is támogatja a felsőbb rétegbeli események kézbesítéséhez. Az alábbi eredmény HTTP 1.1 használatával lett tesztelve. Ha az alkalmazáskiszolgáló támogatja a HTTP 2.0-t, a teljesítmény jobb lesz.
Echo
Ebben az esetben az alkalmazáskiszolgáló visszaírja az eredeti üzenetet a HTTP-válaszba. Az echo viselkedése azt határozza meg, hogy a maximális bejövő sávszélesség egyenlő-e a maximális kimenő sávszélességével. További részletekért tekintse meg az alábbi táblázatot.
Echo | 1. egység | 2. egység | 10. egység | 50. egység | 100. egység | Egység 200 | 500- os egység | Egység 1000 |
---|---|---|---|---|---|---|---|---|
Kapcsolatok | 1000 | 2000 | 10,000. | 50 000 | 100 000 | 200,000 | 500,000 | 1,000,000 |
Bejövő/kimenő üzenetek másodpercenként | 500 | 1000 | 5000 | 25 000 | 50 000 | 100 000 | 250 000 | 500,000 |
Bejövő/kimenő sávszélesség | 1 MBps | 2 MBps | 10 MBps | 50 MBps | 100 MBps | 200 MBps | 500 MBps | 1000 MBps |
REST API
Az Azure Web PubSub hatékony API-kat biztosít az ügyfelek kezeléséhez és valós idejű üzenetek küldéséhez.
Küldés a felhasználónak a REST API-val
A teljesítményteszt felhasználóneveket rendel az összes ügyfélhez, mielőtt elkezdenének csatlakozni az Azure Web PubSub Service-hez.
Küldés a felhasználónak a REST API-val | 1. egység | 2. egység | 10. egység | 50. egység | 100. egység | Egység 200 | 500- os egység | Egység 1000 |
---|---|---|---|---|---|---|---|---|
Kapcsolatok | 1000 | 2000 | 10,000. | 50 000 | 100 000 | 200,000 | 500,000 | 1,000,000 |
Bejövő/kimenő üzenetek másodpercenként | 180 | 360 | 1800 | 9 000 | 18000 | 36,000 | 90,000 | 180,000 |
Bejövő/kimenő sávszélesség | 360 KBps | 720 KBps | 3,6 MBps | 18 MBps | 36 MBps | 72 MBps | 180 MBps | 360 MBps |
Szórás REST API-val
A sávszélesség ugyanaz, mint a nagy csoportnak való küldésnél.
Szórás REST API-val | 1. egység | 2. egység | 10. egység | 50. egység | 100. egység | Egység 200 | 500- os egység | Egység 1000 |
---|---|---|---|---|---|---|---|---|
Kapcsolatok | 1000 | 2000 | 10,000. | 50 000 | 100 000 | 200,000 | 500,000 | 1,000,000 |
Bejövő üzenetek másodpercenként | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 |
Kimenő üzenetek másodpercenként | 3000 | 6000 | 30 000 | 150,000 | 300,000 | 600,000 | 1,500,000 | 3,000,000 |
Bejövő sávszélesség | 6 KBps | 6 KBps | 6 KBps | 6 KBps | 6 KBps | 6 KBps | 6 KBps | 6 KBps |
Kimenő sávszélesség | 6 MBps | 12 MBps | 60 MBps | 300 MBps | 600 MBps | 1200 MBps | 3000 MB | 6000 MB |
Következő lépések
Használja ezeket az erőforrásokat a saját alkalmazás létrehozásához: