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.

Képernyőkép az Azure Web PubSub kiszolgálóbetöltési metrikájáról a Portálon. A metrika azt mutatja, hogy a kiszolgáló terhelése körülbelül 8 százalékos kihasználtságú.

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.v1tá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 küldés csoportnak munkafolyamatot bemutató diagram.

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.

A felsőbb rétegbeli webhook

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.

A Web PubSub szolgáltatás rest API-kat használó általános munkafolyamatát bemutató ábra.

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: