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


Javaslatok a skálázás és a particionálás optimalizálásához

Az Azure Well-Architected Framework teljesítményhatékonysági ellenőrzőlistájára vonatkozó javaslatra vonatkozik:

PE:05 Optimalizálja a skálázást és a particionálást. Megbízható és szabályozott skálázás és particionálás beépítése. A számítási feladat skálázási egységeinek kialakítása a skálázási és particionálási stratégia alapja.

Ez az útmutató a számítási feladatok skálázására és particionálására vonatkozó javaslatokat ismerteti. A skálázás lehetővé teszi a számítási feladatokhoz lefoglalt erőforrások igény szerinti növelését vagy csökkentését. A particionálás magában foglalja a számítási feladat kisebb, kezelhető egységekre való felosztását az adatok és a feldolgozás több erőforrás közötti elosztásához. A nem skálázható vagy particionált számítási feladatok gyenge teljesítményt tapasztalhatnak a nagy igényű időszakokban és a kihasználatlan kapacitásban alacsony igényű időszakokban.

Definíciók

Időszak Definíció
Automatikus méretezés Olyan szolgáltatás, amely automatikusan módosítja egy szolgáltatás kapacitáskorlátait az előre meghatározott konfigurációk alapján, így szükség szerint vertikálisan fel- vagy leskálázható.
Kapacitás Egy adott szolgáltatás vagy szolgáltatás felső korlátja vagy maximális kapacitása.
Ügyfél-affinitás (munkamenet-affinitás) A kérések szándékos átirányítása egyetlen ügyfélről egyetlen kiszolgálópéldányra a konzisztens munkamenet-kezelés biztosítása érdekében.
Konzisztencia (elosztott adatbázis) Az elosztott adatbázis több csomópontja közötti adategyenleg, biztosítva, hogy minden replika azonos adatokkal rendelkezzen egy adott időpontban.
Konzisztencia (relációs adatbázis) Egy tranzakció tulajdonsága, amely egy adatbázist hoz létre egy érvényes állapotból egy másikba, megőrizve az adatok integritását.
Konzisztenciaszint Egy konfiguráció, amely meghatározza, hogy az adatok hogyan és mikor replikálódnak egy elosztott adatbázisrendszerben, meghatározva a konzisztencia és a teljesítmény közötti kompromisszumot.
Adatzárolás Az ugyanazon adatok egyidejű frissítésének megakadályozására szolgáló mechanizmus.
Horizontális skálázás Egy skálázási módszer, amely egy adott típusú erőforrás példányait adja hozzá.
Optimista egyidejűség Olyan adatbázisok frissítésének módszere, amelyek pillanatképeket használnak a frissítésekhez a hagyományos zárolási mechanizmusok helyett.
Particionálás Az adatok külön adattárakba való fizikai felosztásának folyamata.
Méretezhetőség A számítási feladatok kapacitáskorlátainak dinamikus módosítására való képessége a változó igényeknek megfelelően.
Skálázási egység Erőforráscsoport, amely arányosan skálázható együtt.
Állapot affinitása Az ügyfél munkamenet-adatainak tárolása egyetlen kiszolgálón, hogy ugyanaz a kiszolgáló kezelje az ugyanazon ügyféltől érkező további kéréseket.
Vertikális skálázás Skálázási módszer, amely számítási kapacitást ad hozzá a meglévő erőforrásokhoz.

Kulcsfontosságú tervezési stratégiák

A skálázás és a particionálás egyaránt hozzájárul a teljesítményhatékonysághoz azáltal, hogy biztosítja az erőforrások hatékony felhasználását, és a számítási feladat képes kezelni a különböző terheléseket. Ezek a gyakorlatok különösen fontosak olyan felhőkörnyezetekben, ahol az alkalmazásoknak rugalmasnak és alkalmazkodónak kell lenniük a változó igényekhez. A skálázás lehetővé teszi a számítási feladatok kapacitásának bővítését a növekvő igények kielégítéséhez. A particionálással hatékonyan oszthat fel feladatokat vagy adatokat, hogy kezelni tudja ezeket a növekvő igényeket. Mindkét folyamat alapja a számítási feladat skálázási egységeinek kialakítása. Ez határozza meg, hogy a számítási feladat hogyan növekedjen és ossza el a feladatokat. A skálázás és particionálás megbízható és ellenőrzött megközelítésének beépítésével elkerülhetők a számítási feladatok potenciális hatékonysági hiányosságai.

Skálázás optimalizálása

A skálázás optimalizálása a kiszolgálók, példányok vagy erőforrások számának a számítási feladatok ingadozó igényeinek megfelelően történő módosításának folyamata. Biztosítja, hogy a számítási feladat képes legyen kezelni a megnövekedett forgalmat vagy igényeket anélkül, hogy teljesítménycsökkenést vagy állásidőt tapasztal.

Skálázási stratégia kiválasztása

A skálázási stratégia kiválasztásához el kell döntenie a vertikális vagy horizontális módszereket, hogy a számítási feladatok kapacitását a saját igényei alapján növelhesse. A megfelelő stratégia kiválasztása biztosítja, hogy az erőforrásokat hatékonyan igazítsák a számítási feladatok igényeinek megfelelően, túlhasználás vagy pazarlás nélkül. A megfelelő skálázási stratégia kiválasztásához ismernie kell a vertikális és horizontális skálázás használati eseteit, valamint azt, hogy ezek hogyan felelnek meg a számítási feladatok igényeinek.

A vertikális skálázás ismertetése. A vertikális skálázással növelheti egyetlen erőforrás kapacitását, például nagyobb kiszolgálóra vagy példányméretre frissíthet. A vertikális skálázás akkor hasznos, ha a számítási feladat nagyobb feldolgozási teljesítményt, memóriát vagy más erőforrásokat használhat egyetlen példányon belül. A vertikális skálázás olyan számítási feladatokhoz megfelelő, amelyek nem könnyen oszthatók kisebb részekre, vagy ha az alkalmazásarchitektúra nem támogatja a horizontális skálázást.

A horizontális skálázás ismertetése. A horizontális skálázás használatával további példányokat vagy erőforrásokat adhat hozzá a számítási feladatok több kiszolgáló közötti elosztásához. A horizontális skálázás olyan előnyöket kínál, mint a nagyobb rugalmasság, a megnövekedett kapacitás, valamint a megnövekedett forgalom vagy számítási feladatok igényeinek kezelése. Hatékony a több csomóponton való futtatásra tervezett natív felhőalkalmazások esetében. A horizontális skálázás olyan számítási feladatokhoz megfelelő, amelyek egymástól függetlenül futtatható kisebb részekre oszthatók.

A számítási feladat ismertetése. A vertikális vagy vízszintes skálázás alkalmassága a számítási feladat egyedi jellemzőitől és követelményeitől függ. A teljesítmény rendszeres monitorozása és tesztelése az alábbi területeken segíthet a skálázási stratégia optimalizálásában az idő múlásával:

  • Követelmények: Megismerheti a számítási feladat konkrét követelményeit olyan tényezők figyelembevételével, mint az erőforrásigények, a méretezhetőségi igények és a számítási feladat korlátai.

  • Skálázási egységek: Skálázásiegység-kialakítás létrehozása azoknak az összetevőknek, amelyeknek együtt kell skálázniuk. Például 100 virtuális géphez két üzenetsorra és három tárfiókra lehet szükség a további számítási feladatok kezeléséhez. A skálázási egység 100 virtuális gép, két üzenetsor és három tárfiók lenne. A kapacitáshasználat ingadozását tapasztaló összes összetevőt egymástól függetlenül kell skálázni.

  • Architektúra: Értékelje az alkalmazásarchitektúra kialakítását. Előfordulhat, hogy egyes alkalmazások horizontális skálázásra vannak tervezve, olyan állapot nélküli összetevőkkel, amelyek egyszerűen eloszthatók több példány között. Más alkalmazások állapotalapú összetevőkkel vagy függőségekkel rendelkezhetnek, amelyek megfelelőbbé teszik a vertikális skálázást. Értékelje ki a számítási feladat méretezhetőségi és rugalmassági követelményeit.

Skálázható infrastruktúra tervezése

Az infrastruktúra méretezésre való tervezése egy olyan architektúra létrehozásának folyamata, amely képes kezelni a növekvő igényeket és számítási feladatokat erőforrások igény szerinti hozzáadásával vagy módosításával. Olyan megoldások tervezését és megvalósítását foglalja magában, amelyek horizontálisan vagy függőlegesen skálázhatók a növekedéshez. A stratégiák közé tartozik a szűk keresztmetszetté váló singletonok elkerülése és az alkalmazásösszetevők elkülönítése a független skálázhatóság biztosítása érdekében. Amikor skálázhatóvá tervez egy számítási feladatot, az hatékonyan eloszthatja a számítási feladatokat több erőforrás között, ami megakadályozza a szűk keresztmetszeteket, és maximalizálja az erőforrás-kihasználtságot.

Kerülje a szimpla dobozokat. Ne használjon egyetlen központosított erőforrást a teljes számítási feladathoz. Ehelyett ossza el a számítási feladatokat több erőforrás között a jobb méretezhetőség, hibatűrés és teljesítmény érdekében. Ismerjen meg néhány konkrét példát és kialakítási szempontot, hogy elkerülje a számítási feladatok erőforrásainak egyszeri használatát:

  • Üzenetsor-alapú terhelésszintezés: Ahelyett, hogy egyetlen üzenetsorra támaszkodik az üzenetek feldolgozásához, fontolja meg a számítási feladat több üzenetsor közötti particionálását a feldolgozási terhelés elosztásához. Jobb méretezhetőséget és párhuzamos feldolgozást biztosít.

  • Adatfeldolgozás: A singleton minták gyakran megjelennek olyan adatfeldolgozási forgatókönyvekben, ahol a feldolgozás nem csúful ki. A hosszan futó tevékenységeket kisebb tevékenységekre bonthatja, amelyek jobban skálázhatók a számítási feladatok több erőforrás közötti elosztásához és a párhuzamosság előnyeinek kihasználásához.

  • Tervezési minták: Az olyan tervezési minták, mint a kifúvás/ventilátor vagy acsövek és a szűrők segíthetnek elkerülni a munkafolyamatokban a szimpla dobozokat. Ezek a minták lehetővé teszik a feldolgozási feladatok több erőforrás közötti elosztását, és elősegítik a méretezhetőséget és a rugalmasságot.

Összetevők leválasztása. Az alkalmazásösszetevők szétválasztása fontos szempont a skálázhatóság kialakításában. Ez magában foglalja az alkalmazás kisebb, független összetevőkre való lebontását, amelyek a számítási feladatok adott követelményei alapján egymástól függetlenül működhetnek és méretezhetők. Ha például egy összetevőnek több erőforrásra van szüksége a megnövekedett kereslet miatt, az összetevőt anélkül méretezheti, hogy az hatással van a többire. Ez a rugalmasság biztosítja a hatékony erőforrás-kiosztást, és megakadályozza a szűk keresztmetszeteket. Az összetevők leválasztásával elkülönítheti a hibákat, és minimálisra csökkentheti a teljes alkalmazásra gyakorolt hatást. Ha az egyik összetevő meghibásodik, a többi összetevő továbbra is egymástól függetlenül működhet.

A leválasztott összetevők könnyebben karbantarthatóak és frissíthetők. Az egyik összetevő módosítása vagy frissítése nem érinti a többit, mert függetlenek. A méretezhetőség érdekében kövesse az alábbi irányelveket az alkalmazás-összetevők szétválasztásához:

  • A problémák elkülönítése: Az alkalmazás felelősségeinek és funkcióinak azonosítása. Ossza fel a felelősségi köröket külön összetevőkre az egyes feladatok alapján. Előfordulhat például, hogy külön összetevőkkel rendelkezik a felhasználói hitelesítéshez, az adatfeldolgozáshoz és a felhasználói felülethez.

  • Laza összekapcsolás: Tervezzen az összetevőket úgy, hogy jól meghatározott interfészeken és protokollokon keresztül kommunikáljanak egymással. Ez a kialakítás csökkenti az összetevők közötti függőségeket, és lehetővé teszi az egyes összetevők könnyebb cseréjét vagy skálázását.

  • Aszinkron kommunikáció: Az összetevők további leválasztásához használjon aszinkron kommunikációs mintákat, például üzenetsorokat vagy eseményvezérelt architektúrákat. Ezek a minták lehetővé teszik, hogy az összetevők a saját tempójukban egymástól függetlenül dolgozzák fel a feladatokat, ezáltal javítva az általános méretezhetőséget.

  • Mikroszolgáltatások: Fontolja meg olyan mikroszolgáltatások implementálását, amelyek kis méretű, független szolgáltatások, amelyek adott üzleti funkciókra összpontosítanak. Az egyes mikroszolgáltatások egymástól függetlenül fejleszthetők, helyezhetők üzembe és méretezhetők, így nagyobb rugalmasságot és méretezhetőséget biztosítanak.

Skálázható alkalmazás tervezése

A számítási feladatok skálázása során a terhelés elosztására kell megterveznie az alkalmazást. Csak azért, mert további replikákat adhat hozzá az infrastruktúra szintjén, még nem jelenti azt, hogy az alkalmazás használhatja a replikákat. Az alkalmazások méretezésre való tervezése az alkalmazások strukturálásáról szól, így a számítási feladatok erőforrások közötti elosztásával képes kezelni a megnövekedett igényeket. Ha lehetséges, kerülje azokat a megoldásokat, amelyek ügyfél-affinitást, adatzárolást vagy állapot-affinitást igényelnek egyetlen példányhoz. Egy ügyfelet vagy folyamatot olyan erőforráshoz szeretne irányítani, amely rendelkezik elérhető kapacitással. Az alkalmazás méretezhetőségének kialakításához vegye figyelembe a következő stratégiákat:

A kiszolgálóoldali munkamenet állapotának megszüntetése. Ha lehetséges, állapot nélküli alkalmazásokat kell terveznie. Állapotalapú alkalmazások esetén a kiszolgálón kívüli állapottárolót kell használnia. A munkamenet állapotának kiszervezése a munkamenet-adatok alkalmazáskiszolgálón vagy tárolón kívüli tárolásának gyakorlata. A munkamenet állapotának külsősítésével több kiszolgáló vagy szolgáltatás között oszthatja el a munkamenet-adatokat, így zökkenőmentes munkamenet-kezelést tehet lehetővé elosztott környezetben. A munkamenet állapotának külsősítésekor vegye figyelembe a következőket:

  • Értékelje ki a munkamenet követelményeit. Megismerheti a tárolni és kezelni kívánt munkamenet-adatokat. Fontolja meg a munkamenet-attribútumokat, a munkamenet-időtúllépéseket, valamint a munkamenet-replikáció vagy -megőrzés bármilyen konkrét követelményét. Határozza meg a munkamenet-állapot méretét, valamint az olvasási és írási műveletek gyakoriságát.

  • Válasszon egy megoldást. Válasszon ki egy olyan tárolási megoldást, amely megfelel a teljesítményre és a méretezhetőségre vonatkozó igényeknek. A lehetőségek közé tartozik az elosztott gyorsítótár, az adatbázis vagy a munkamenet-állapot szolgáltatás használata. A választáskor vegye figyelembe az olyan tényezőket, mint az adatkonzisztencia, a késés és a méretezhetőség.

  • Állítsa be az alkalmazást. Frissítse az alkalmazást a kiválasztott munkamenetállapot-tárolási megoldás használatára. Előfordulhat, hogy módosítania kell az alkalmazás konfigurációs fájljait vagy kódját a külső tárolási szolgáltatáshoz való csatlakozáshoz.

  • Frissítse a logikát. Módosítsa az alkalmazás munkamenet-kezelési logikáját a munkamenet-adatok külső tárolási megoldásból való tárolásához és lekéréséhez. Előfordulhat, hogy a tárolási megoldás által biztosított API-kat vagy kódtárakat kell használnia a munkamenet állapotának kezeléséhez.

Szüntesse meg az ügyfél-affinitást. Az ügyfél-affinitást munkamenet-affinitásnak vagy ragadós munkamenetnek is nevezik. Ha megszünteti az ügyfél-affinitást, egyenletesen osztja el az ügyfélkéréseket több replika vagy kiszolgáló között anélkül, hogy az ügyféltől érkező összes kérést ugyanarra a replikára irányítanák. Ez a konfiguráció javíthatja az alkalmazások méretezhetőségét és teljesítményét azáltal, hogy lehetővé teszi, hogy az elérhető replikák feldolgozzák a kéréseket.

Tekintse át a terheléselosztási algoritmust. A terheléselosztási algoritmusok nem szándékos és mesterséges ügyfél-rögzítést okozhatnak, ha túl sok kérést küldenek egy háttérpéldánynak. Rögzítés akkor fordulhat elő, ha az algoritmus úgy van beállítva, hogy mindig ugyanarra a felhasználóra küldjön kéréseket ugyanarra a példányra. Akkor is előfordulhat, ha a kérések túl hasonlóak egymáshoz.

Adatzárolás megszüntetése. Az adatzárolás biztosítja a konzisztenciát, de teljesítménybeli hátrányokkal is rendelkezik. Zárolási eszkalációkat okozhat, és negatív hatással lehet az egyidejűségre, a késésre és a rendelkezésre állásra. Az adatzárolás megszüntetéséhez optimista egyidejűséget kell alkalmaznia. A nem relációs adatbázisoknak optimista egyidejűség-vezérlést kell használniuk, és a megfelelő konzisztenciaszinttel kell rendelkezniük. Az adatparticionálási stratégiának támogatnia kell az egyidejűségi igényeket is.

Dinamikus szolgáltatásfelderítés használata. A dinamikus szolgáltatásfelderítés a szolgáltatások automatikus észlelésének és regisztrálásának folyamata egy elosztott rendszerben. Lehetővé teszi, hogy az ügyfelek anélkül fedezhessék fel az elérhető szolgáltatásokat, hogy szorosan összekapcsolják őket bizonyos példányokkal. Az ügyfeleknek nem szabad közvetlen függőséget vállalniuk a számítási feladat adott példányán. A függőségek elkerülése érdekében proxyt kell használnia az ügyfélkapcsolatok elosztásához és újraelosztásához. A proxy közvetítőként működik az ügyfelek és a szolgáltatások között, és olyan absztrakciós réteget biztosít, amely lehetővé teszi a szolgáltatások hozzáadását vagy eltávolítását az ügyfelek befolyásolása nélkül.

Háttérfeladatok használata. Ha egy alkalmazás skálázva van, egyre több számítási feladatot vagy több egyidejű kérést képes kezelni. Az intenzív feladatok háttérfeladatként való kiszervezése lehetővé teszi, hogy a fő alkalmazás anélkül kezelje a felhasználói kéréseket, hogy az erőforrás-igényes műveletek túlterhelik azt. A tevékenységek háttérfeladatként való kiszervezéséhez kövesse az alábbi lépéseket:

  1. Keresse meg az alkalmazásban azokat a processzorigényes és I/O-igényes feladatokat, amelyeket ki lehet terhelni. Ezek a feladatok általában nagy számítási feladatokat vagy külső erőforrásokkal, például adatbázisokkal vagy hálózati műveletekkel való interakciókat foglalnak magukban.

  2. Az alkalmazás megtervezése háttérfeladatok támogatására. Válassza le az intenzív feladatokat a fő alkalmazáslogikától, és biztosítson egy mechanizmust a háttérfeladatok elindításához és kezeléséhez.

  3. Háttérfeladat-feldolgozás implementálása a megfelelő technológiákkal vagy keretrendszerekkel. Ide tartoznak a programozási nyelv vagy a platform által biztosított szolgáltatások, például az aszinkron programozás, a szálkezelés vagy a feladatsorok. Intenzív műveleteket tartalmaz különálló tevékenységekben vagy szálakban, ezek a tevékenységek futtathatók egyidejűleg vagy meghatározott időközönként történő futtatásra ütemezve.

  4. A háttérfeladatok elosztása, ha sok van belőlük, vagy ha a tevékenységek jelentős időt vagy erőforrásokat igényelnek. Egy lehetséges megoldásért tekintse meg a versengő fogyasztók mintáját.

Skálázás konfigurálása

A skálázás konfigurálása a paraméterek beállításának és módosításának folyamata, hogy dinamikusan lefoglalja az erőforrásokat a számítási feladatok igényei alapján. Olyan stratégiákat foglal magában, mint az automatikus skálázási funkciók használata, a szolgáltatások skálázási határainak megértése és a hasznos terhelési metrikák implementálása. A megfelelő konfiguráció biztosítja, hogy az alkalmazások a hatékonyság maximalizálása mellett reagáljanak a különböző igényekre. A skálázás konfigurálásakor vegye figyelembe a következő stratégiákat:

Szolgáltatások használata automatikus skálázással. Az automatikus skálázási funkció automatikusan skálázza az infrastruktúrát az igényeknek megfelelően. Szolgáltatásként nyújtott platform (PaaS) ajánlatok használata beépített automatikus skálázási funkciókkal. A PaaS egyszerű skálázása jelentős előnyt jelent. A virtuális gépek horizontális felskálázásához például külön terheléselosztóra, ügyfélkérés-kezelésre és külsőleg tárolt állapotra van szükség. A PaaS-ajánlatok a legtöbb ilyen feladatot kezelik.

Korlátozza az automatikus skálázást. Állítsa be az automatikus skálázási korlátokat a túlméretezés minimalizálása érdekében, amely szükségtelen költségeket eredményezhet. Néha nem lehet skálázási korlátokat beállítani. Ezekben az esetekben riasztásokat kell beállítania, hogy értesítést küldhessenek arról, ha az összetevő eléri a maximális méretkorlátot és túlméretezi a méretet.

A szolgáltatásskálázás határainak megismerése. Ha tisztában van a szolgáltatásméretezési korlátokkal, a növekményekkel és a korlátozásokkal, megalapozott döntéseket hozhat a szolgáltatás kiválasztásakor. A skálázási határok határozzák meg, hogy a választott szolgáltatás képes-e kezelni a várt számítási feladatokat, hatékonyan skálázni, és teljesíteni az alkalmazás teljesítménykövetelményeit. Megfontolandó skálázási határok:

  • Skálázási korlátok: A skálázási korlátok a helyek vagy szolgáltatások által kezelhető maximális kapacitások. Fontos ismerni ezeket a korlátokat, hogy a szolgáltatás el tudja fogadni a várt számítási feladatokat, és a teljesítménycsökkenés nélkül kezelje a csúcshasználatot. Minden erőforrásnak felső korlátja van. Ha túl kell lépnie a méretezési korlátokon, particionálja a számítási feladatot.

  • Skálázási növekmények: A szolgáltatások meghatározott növekményeken skálázhatók. A számítási szolgáltatások például példányok és podok szerint skálázhatók, míg az adatbázisok példányok, tranzakciós egységek és virtuális magok szerint skálázhatók. Fontos megérteni ezeket a növekményeket az erőforrás-kiosztás optimalizálása és az erőforrás-feltöltés megakadályozása érdekében.

  • Skálázási korlátozások: Egyes szolgáltatások lehetővé teszik a vertikális fel- vagy felskálázást, de korlátozzák a skálázás automatikus megfordításának képességét. Manuálisan kell skáláznia, vagy előfordulhat, hogy újra üzembe kell helyeznie egy új erőforrást. Ezek a korlátozások gyakran a számítási feladat védelmét szolgálják. A leskálázás vagy a skálázás hatással lehet a számítási feladat rendelkezésre állására és teljesítményére. A szolgáltatások bizonyos korlátozásokat vagy korlátozásokat kényszeríthetnek ki annak biztosítása érdekében, hogy a számítási feladat elegendő erőforrással rendelkezzen a hatékony működéshez. Ezek a korlátozások hatással lehetnek az adatkonzisztenciára és a szinkronizálásra, különösen az elosztott rendszerekben. Előfordulhat, hogy a szolgáltatás rendelkezik olyan mechanizmusokkal, amelyek kezelik az adatreplikálást és a konzisztenciát a vertikális fel- vagy kiskálázás során, de előfordulhat, hogy nem nyújtanak ugyanolyan szintű támogatást a le- vagy leskálázáshoz.

Használjon értelmes terhelési metrikákat. A skálázásnak értelmes terhelési metrikákat kell használnia skálázási eseményindítókként. A hasznos terhelési metrikák közé tartoznak az egyszerű metrikák, például a CPU vagy a memória. Emellett fejlettebb metrikákat is tartalmaznak, például az üzenetsor mélységét, az SQL-lekérdezéseket, az egyéni metrikák lekérdezéseit és a HTTP-üzenetsor hosszát. Fontolja meg az egyszerű és speciális terhelési metrikák kombinációjának használatát a skálázási eseményindítóként.

Használjon puffert. A puffer nem használt kapacitás, amely a kereslet kiugró értékeinek kezelésére használható. Jól megtervezett számítási feladatokra vonatkozó tervek a számítási feladatok váratlan kiugrásaihoz. Adjon hozzá egy puffert a horizontális és függőleges skálázás tüskéinek kezeléséhez.

Tiltsa meg a befúvatást. A flapping egy hurokfeltétel, amely akkor fordul elő, ha egy skálázási esemény ellentétes skálázási eseményt aktivál, és folyamatos oda-vissza skálázási műveletet hoz létre. Ha például a skálázás csökkenti a példányok számát, előfordulhat, hogy a processzorhasználat növekszik a többi példányban, ami horizontális felskálázási eseményt vált ki. A vertikális felskálázási esemény viszont a processzorhasználat csökkenését okozza, és megismétli a folyamatot.

A felskálázás elkerülése érdekében fontos, hogy megfelelő margót válasszon a felskálázási és a vertikális felskálázási küszöbértékek között. A gyakori és szükségtelen felskálázási és vertikális felskálázási műveleteket megakadályozhatja olyan küszöbértékek beállításával, amelyek jelentős különbséget jelentenek a processzorhasználatban.

Üzembehelyezési bélyegek használata. Vannak olyan technikák, amelyek megkönnyítik a számítási feladatok skálázását. Az Üzembe helyezési bélyegek mintával egyszerűen skálázhat egy számítási feladatot egy vagy több skálázási egység hozzáadásával.

Kockázat: Bár a skálázás segít optimalizálni a költségeket azáltal, hogy a kapacitást az igényeknek megfelelően módosítja, a magas kereslet hosszú időszakaiban általánosan megnövekedett költségeket eredményezhet.

Skálázás tesztelése

A skálázás tesztelése magában foglalja a különböző számítási feladatok forgatókönyveinek szimulálását egy ellenőrzött környezetben annak kiértékeléséhez, hogy a számítási feladatok hogyan reagálnak a különböző igényszintekre. Segít hatékonyan skálázni a számítási feladatokat, maximalizálva a teljesítmény hatékonyságát a különböző terhelések során.

Gondoskodnia kell arról, hogy a számítási feladatok valós körülmények között hatékonyan skálázhatók. Alapvető fontosságú, hogy terhelés- és stresszteszteket végezzen olyan környezetben, amely tükrözi az éles környezetét. Ezek a nem éles környezetekben végzett tesztek lehetővé teszik a vertikális és vízszintes skálázási stratégiák kiértékelését, valamint annak meghatározását, hogy melyik optimalizálja a leghatékonyabban a teljesítményt. Íme egy ajánlott módszer a skálázás tesztelésére:

  • Számítási feladatok forgatókönyveinek definiálása. Azonosítsa a tesztelni kívánt főbb számítási feladatok forgatókönyveit, például a felhasználói forgalom növelését, az egyidejű kéréseket, az adatmennyiséget vagy az erőforrás-használatot.

  • Éles tesztkörnyezet használata. Hozzon létre egy külön tesztelési környezetet, amely az infrastruktúra, a konfiguráció és az adatok szempontjából nagyon hasonlít az éles környezetre.

  • Teljesítménymetrikák beállítása. Határozza meg a mérendő teljesítménymetrikákat, például a válaszidőt, az átviteli sebességet, a processzor- és memóriahasználatot, valamint a hibaarányokat.

  • Tesztesetek fejlesztése. Különböző számítási feladatok forgatókönyveit szimuláló teszteseteket fejleszthet, amelyek fokozatosan növelik a terhelést a teljesítmény különböző szinteken történő értékeléséhez.

  • Tesztek végrehajtása és monitorozása. Futtassa a teszteket a megadott tesztesetekkel, és gyűjtse össze a teljesítményadatokat minden terhelési szinten. Monitorozza a számítási feladatok viselkedését, az erőforrás-felhasználást és a teljesítménycsökkenést.

  • A skálázás elemzése és optimalizálása. Elemezze a teszteredményeket a teljesítmény szűk keresztmetszeteinek, skálázhatósági korlátainak vagy fejlesztési területeinek azonosításához. Optimalizálja a konfigurációt, az infrastruktúrát vagy a kódot a méretezhetőség és a teljesítmény növelése érdekében. A skálázás befejezéséhez időre van szükség, ezért tesztelje a skálázási késések hatásait.

  • Függőségek kezelése. Potenciális függőségi problémák keresése. A számítási feladatok egyik területén történő skálázás vagy particionálás teljesítményproblémákat okozhat egy függőségben. A számítási feladatok állapotalapú részei, például az adatbázisok a függőségi teljesítményproblémák leggyakoribb okai. Az adatbázisok gondos tervezést igényelnek a horizontális skálázáshoz. Érdemes megfontolnia a mértékeket, például az optimista egyidejűséget vagy az adatparticionálást, hogy nagyobb átviteli sebességet biztosíthasson az adatbázis számára.

  • A módosítások után próbálkozzon újra. Ismételje meg a skálázhatósági teszteket az optimalizálások implementálása után, hogy ellenőrizze a fejlesztéseket, és biztosítsa, hogy a számítási feladat hatékonyan tudja kezelni a várt számítási feladatokat.

Kompromisszum: Vegye figyelembe a számítási feladat költségvetési korlátozásait és költséghatékonysági céljait. A vertikális skálázás nagyobb költségekkel járhat, mivel nagyobb és hatékonyabb erőforrásokra van szükség. A horizontális skálázás költségmegtakarítást kínál kisebb példányok használatával, amelyek igény szerint hozzáadhatók vagy eltávolíthatók.

Partíciós számítási feladat

A particionálás egy nagy adatkészlet vagy számítási feladat kisebb, kezelhetőbb részekre, úgynevezett partíciókra való felosztásának folyamata. Az egyes partíciók az adatok vagy számítási feladatok egy részét tartalmazzák, és általában külön tárolják vagy dolgozzák fel. A particionálás lehetővé teszi a párhuzamos feldolgozást, és csökkenti a versengést. A számítási feladat kisebb egységekre való felosztása lehetővé teszi, hogy az alkalmazás egymástól függetlenül dolgozza fel az egyes egységeket. Az eredmény az erőforrások jobb felhasználása és a gyorsabb feldolgozási idő. A particionálás emellett segít elosztani az adatokat több tárolóeszköz között, csökkentve az egyes eszközök terhelését, és javítja az általános teljesítményt.

A particionálás ismertetése

Az ön által használt konkrét particionálási megközelítés a használt adatok vagy számítási feladatok típusától és a használt technológiától függ. A particionálás néhány gyakori stratégiája a következők:

  • Horizontális particionálás: Ebben a megközelítésben az adathalmaz vagy a számítási feladat meghatározott feltételek, például értéktartományok vagy adott attribútumok alapján oszlik meg. Minden partíció tartalmazza a megadott feltételeknek megfelelő adatok egy részét.

  • Függőleges particionálás: Ebben a megközelítésben az adathalmaz vagy a számítási feladat adott attribútumok vagy oszlopok alapján van osztva. Minden partíció az oszlopok vagy attribútumok egy részhalmazát tartalmazza, így hatékonyabb hozzáférést tesz lehetővé a szükséges adatokhoz.

  • Funkcionális particionálás: Ebben a megközelítésben az adatokat vagy számítási feladatokat a végrehajtandó adott függvények vagy műveletek alapján osztják el. Minden partíció tartalmazza az adott függvényhez szükséges adatokat vagy összetevőket, amelyek lehetővé teszik az optimalizált feldolgozást és teljesítményt.

Particionálás megtervezése

A particionálás során fontos figyelembe venni az olyan tényezőket, mint az adatterjesztés, a lekérdezési minták, az adatnövekedés és a számítási feladatokra vonatkozó követelmények. A megfelelő tervezés és tervezés elengedhetetlen a particionálás hatékonyságának biztosításához és a teljesítmény hatékonyságának maximalizálásához. Ha utógondolatként kezeli a particionálást, az nagyobb kihívást jelent, mert már rendelkezik egy élő számítási feladat karbantartásával. Előfordulhat, hogy módosítania kell az adathozzáférési logikát, nagy mennyiségű adatot kell elosztania a partíciók között, és támogatnia kell a folyamatos használatot az adatterjesztés során.

Particionálás implementálása

Fontos elemezni az adatok jellemzőit, a hozzáférési mintákat, az egyidejűségi követelményeket és a méretezhetőségi célokat, amikor eldönti, hogy milyen típusú particionálást szeretne használni. Minden particionálási típusnak megvannak a maga előnyei és szempontjai. Íme néhány tényező, amelyet figyelembe kell venni az egyes particionálási típusokhoz:

  • A horizontális particionálás akkor megfelelő, ha az adatokat több erőforrás vagy kiszolgáló között szeretné elosztani a jobb skálázhatóság és teljesítmény érdekében. Akkor hatékony, ha a számítási feladat minden partíción egymástól függetlenül párhuzamosítható és feldolgozható. Fontolja meg a horizontális particionálást, ha több felhasználónak vagy folyamatnak egyszerre kell tudnia elérni vagy frissíteni az adathalmazt.

  • A függőleges particionálás akkor megfelelő, ha bizonyos attribútumokat vagy oszlopokat gyakran érnek el, míg másokhoz ritkábban férnek hozzá. A vertikális particionálás a szükségtelen adatlekérés minimalizálásával teszi lehetővé a szükséges adatokhoz való hatékony hozzáférést.

  • A funkcionális particionálás akkor megfelelő, ha a különböző függvények az adatok különböző részhalmazait igénylik, és egymástól függetlenül feldolgozhatók. A funkcionális particionálás optimalizálhatja a teljesítményt azáltal, hogy lehetővé teszi az egyes partíciók számára, hogy adott műveleteket összpontosítsanak.

Particionálás tesztelése és optimalizálása

Tesztelje a particionálási sémát a stratégia hatékonyságának és hatékonyságának ellenőrzéséhez, hogy módosíthassa a teljesítményt. Mérje meg az olyan tényezőket, mint a válaszidő, az átviteli sebesség és a méretezhetőség. Hasonlítsa össze az eredményeket a teljesítménycélokkal, és azonosítsa a szűk keresztmetszeteket vagy problémákat. Az elemzés alapján azonosítsa a lehetséges optimalizálási lehetőségeket. Előfordulhat, hogy újra el kell terjesztenie az adatokat a partíciók között, módosítania kell a partícióméreteket, vagy módosítania kell a particionálási feltételeket.

Kompromisszum: A particionálás összetettebbé teszi a számítási feladatok tervezését és fejlesztését. A particionáláshoz beszélgetésekre és tervezésre van szükség a fejlesztők és az adatbázis-rendszergazdák között.

Kockázat: A particionálás olyan lehetséges problémákat vezet be, amelyeket figyelembe kell venni és kezelni kell, beleértve a következőket:

  • Adateltérés: A particionálás adateltéréshez vezethet, ha egyes partíciók a többihez képest aránytalan mennyiségű adatot vagy számítási feladatot kapnak. Az adateltérés teljesítménybeli kiegyensúlyozatlanságot és nagyobb versengést eredményezhet adott partíciókon.

  • Lekérdezési teljesítmény: A rosszul megtervezett particionálási sémák negatív hatással lehetnek a lekérdezési teljesítményre. Ha a lekérdezéseknek több partíción keresztül kell hozzáférnie az adatokhoz, előfordulhat, hogy további koordinációt és kommunikációt igényelnek a partíciók között, ami nagyobb késéshez vezet.

Azure-beli facilitálás

A skálázás optimalizálása. Az Azure rendelkezik a vertikális és vízszintes skálázást támogató infrastruktúra-kapacitással. Az Azure-szolgáltatások különböző teljesítményszintekkel rendelkeznek, más néven termékváltozatokkal. A termékváltozatok lehetővé teszik a vertikális skálázást. Az Azure számos erőforrása támogatja az automatikus skálázást vagy más helyszíni méretezési lehetőségeket. Egyes erőforrások speciális metrikákat vagy egyéni bemeneteket támogatnak a skálázási viselkedés finomhangolásának támogatásához. Az Azure legtöbb skálázási implementációja korlátokat állíthat be, és támogathatja a változáshoz szükséges megfigyelhetőséget.

Az Azure Monitor lehetővé teszi különböző metrikák és feltételek monitorozását az alkalmazásokban és az infrastruktúrában. A Monitorral automatikus skálázási műveleteket indíthat el előre meghatározott szabályok alapján. A Azure Kubernetes Service (AKS) esetében például a Monitorral engedélyezheti a podok automatikus horizontális skálázását (HPA) és a fürt automatikus skálázását. A Monitor monitorozási és riasztási képességeivel hatékonyan megkönnyítheti a skálázást az Azure-ban, és biztosíthatja, hogy az alkalmazások és az infrastruktúra dinamikusan alkalmazkodjon az igényekhez.

Egyéni automatikus skálázást is létrehozhat az Azure-ban. Az automatikus skálázási funkcióval nem rendelkező erőforrások figyelése területen riasztásokat használhat. Ezek a riasztások beállíthatók lekérdezésalapú vagy metrikaalapúként, és műveleteket hajthatnak végre Azure Automation használatával. Az Automation platformot biztosít a PowerShell- és Python-kód azure-beli, felhőbeli és helyszíni környezetekben való üzemeltetéséhez és futtatásához. Olyan funkciókat kínál, mint a runbookok igény szerinti vagy ütemezés szerinti üzembe helyezése, a futtatási előzmények és a naplózás, az integrált titkos kódok tárolója és a forrásvezérlés integrációja.

Alkalmazás méretezésre való tervezése: Íme néhány módszer, amellyel az Azure megkönnyíti az alkalmazások skálázásának tervezését;

  • Adatzárolás megszüntetése: Az Azure SQL Database-ben engedélyezheti az optimalizált zárolást, hogy javítsa a szigorú konzisztenciát igénylő adatbázisok teljesítményét.

  • Háttérfeladatok használata: Az Azure szolgáltatásokkal és útmutatással szolgál a háttérfeladatok megvalósításához. További információ: Háttérfeladatok.

  • Terheléselosztás implementálása: Az Azure olyan terheléselosztókat biztosít, amelyek nem igényelnek ügyfél-affinitást. Ezek a terheléselosztók közé tartozik az Azure Front Door, a Azure Application Gateway és a Azure Load Balancer.

Számítási feladatok particionálása: Az Azure különböző particionálási stratégiákat kínál a különböző adattárakhoz. Ezek a stratégiák segítenek javítani a teljesítményt és a méretezhetőséget azáltal, hogy az adatokat több partíció között terjesztik. További információ: Adatpartíciós stratégiák.

Teljesítményhatékonyság ellenőrzőlista

Tekintse meg a javaslatok teljes készletét.