Teljesítményhatékonyság tervezési alapelvei
A teljesítményhatékonyság azt jelenti, hogy a számítási feladat képes alkalmazkodni az igények változásaihoz. A számítási feladatoknak képesnek kell lenniük a terhelés növekedésének kezelésére anélkül, hogy veszélyeztetné a felhasználói élményt. Ezzel szemben , ha csökken a terhelés, a számítási feladatnak meg kell őriznie az erőforrásait. A kapacitás, amely az erőforrások rendelkezésre állását (CPU és memória) jelzi, jelentős tényező.
A számítási feladatok tervezése nem csak az előre kiosztott kapacitásra támaszkodhat, amely egy bizonyos korlátig garantálja a teljesítményt. Ha túllépi ezt a korlátot, előfordulhat, hogy a számítási feladat teljesítményproblémákkal rendelkezik, vagy akár kimaradásokat tapasztal. Ha a terhelés ezen korlát alatt van, az erőforrások továbbra is szükségtelenül futnak, ami költségekkel jár.
Átfogó stratégiára van szüksége a teljesítménycélok időbeli fenntartásához. A teljesítménnyel kapcsolatos szempontok nem lehetnek a tervezési folyamat utógondolatai, csak akkor kezelhetők, ha problémák merülnek fel az éles környezetben. Ehelyett olyan gondolkodásmódot kell kialakítania, amelyben a teljesítmény a tervezés korai szakaszától kezdve kulcsfontosságú szempont. Kezdetben a rendszer létrehozása konkrét teljesítménycélok nélkül. Innen azonban tesztelje és mérje a teljesítményt a fejlesztés minden szakaszában, hogy biztosítsa a haladást és a hatékonyságot. Ezeknek a céloknak a folyamatos optimalizálása a folyamat során, és az éles környezetből levont tanulságok beépítése jelentősen csökkentheti a lehetséges problémákat.
Ezek a tervezési alapelvek segíthetnek felépíteni az erőforrások kapacitásának kezelésére vonatkozó stratégiát , hogy megfelelően megfeleljenek az üzleti követelményeknek a várt használathoz. Emellett csökkentse a hulladékot csúcsidőn kívül. Miután eldöntötte a stratégiát, a Teljesítményhatékonyság ellenőrzőlistával szilárdíthatja meg a tervet.
A teljesítményhatékonyság a számítási feladatok erőforrásainak hatékony használatáról szól. Jó stratégia nélkül előfordulhat, hogy nem tudja előre látni és kielégíteni a felhasználói igényeket. Előfordulhat, hogy a hosszú távú előrejelzés és az előre kiépített kapacitás megközelítéséhez kell folyamodnia, amely nem teszi lehetővé a felhőplatform teljes kihasználását.
Reális teljesítménycélok egyeztetése
Meg van határozva a kívánt felhasználói élmény, és van egy stratégia, amely egy teljesítménytesztet dolgoz ki, és méri a célokat az előre meghatározott üzleti követelményeknek megfelelően. |
---|
Teljesítmény szempontjából ideális, ha jól meghatározott teljesítménycélokkal rendelkezik a tervezési folyamat elindításához. Ezeknek a céloknak a beállításához ismernie kell az üzleti követelményeket és a számítási feladat várható szolgáltatásminőségét. Határozza meg az elvárásokat az üzleti érdekelt felekkel együttműködve. Ahelyett, hogy csak a technikai metrikákra összpontosítanál, határozd meg a főbb folyamatok felhasználói élményére gyakorolt elfogadható hatásokat.
Körkörös függőség van. Nem mérheti meg, amit nem definiált, és nem definiálható mérés nélkül. Ezért fontos a számítási feladatok teljesítményének mérése is, amíg el nem éri az elfogadható küszöbértékek megfelelő meghatározását kollektív szerződéssel.
Erős korreláció van a teljesítmény és a megbízhatósági célok között, ami segít meghatározni a szolgáltatás minőségét a teljesítmény, a rendelkezésre állás és a rugalmasság szempontjából. Egyértelmű definíció nélkül kihívást jelent a teljesítmény mérése, riasztása és tesztelése. Miután meghatározta a célokat, és az idő múlásával azonosította a tényleges számokat, automatizálást implementálhat ezen célok folyamatos teszteléséhez.
Tartsa be a célokat makrószinten definiáló ajánlott eljárásokat, még akkor is, ha közelítő vagy tartományon belüli.
Módszer | Előnyök |
---|---|
Készüljön fel a hatékony tárgyalásra a technikai fogalmak megismerésével, a rendelkezésre álló infrastruktúrával való tervezési lehetőségek feltárásával, és adott esetben a konkrét kísérletezés eredményeinek felhasználásával. Az előzményadatok használatával áttekintheti a használati mintákat és a szűk keresztmetszeteket. Betekintést nyerhet a külső tényezőkbe, például a piacelemzésből, a szakértőkből és az iparági szabványokból származó információkba. |
Gyakorlati megállapítások alapján megalapozott döntéseket hozhat . A teljesítménycélok a megvalósíthatóságon, az iparági ajánlott eljárásokon és az aktuális piaci trendeken alapuló felhasználói élményre összpontosítanak. |
Együttműködjön az üzleti tulajdonosokkal, hogy megismerje a felhasználói ígéreteket a minőség és a jogszabályi megfelelőség tekintetében, ha vannak ilyenek. Tág perspektívát tartson fenn , és ebben a szakaszban ne merüljön fel részletes részletekbe. A befektetések alapján explicit módon határozza meg, hogy mi az elfogadható teljesítmény. Az üzleti környezet és a várható növekedés megismerése. |
Elkerülheti azokat a feltételezéseket , amelyek esetleg nem összhangban lehetnek az üzleti célokkal. Emellett a számítási feladatokért felelős csapaton belül is egyértelművé és motiváltabbá teszi a munkát. Ha üzleti kontextusba helyezi a funkcionális és nem funkcionális követelményeket, felfedheti az Azure Well-Architected egyéb pilléreinek tervezési változásait , és segíthet a megalapozott kompromisszumok kialakításában. A paraméterek korai definiálása segít elkerülni a lehetséges megoldások későbbi újratervezésével kapcsolatos költségeket. Lehetővé teszi, hogy a teljesítménycélok lefedhessék a jövőbeli előrejelzéseket, így a jelenlegi erőfeszítéseket hosszú távú célokhoz igazíthatja. |
Azonosítsa a számítási feladat folyamatait , és rangsorolja a folyamatokat az architekturális diagramon. Az egyes folyamatok teljesítménytűrését aspirációstól az elfogadhatatlan teljesítményig terjedő tartományként definiálhatja. Értékelje ki az egyes folyamatok belépési és kilépési pontjait, figyelembe véve az elérési út kritikusságát, a használati gyakoriságot és az architektúra intenzitását. |
A folyamatok rangsorolásával az erőforrásokat olyan kritikus területekre összpontosíthatja , amelyek a legnagyobb hatással vannak a felhasználói és üzleti eredményekre. A rendszer részeire és függőségeire lebontva megismerheti az egyes összetevők működését és a teljesítményre gyakorolt hatását. A lehetséges problémákról is tudomást szerez. Segít a teljesítmény-alapkonfiguráció és a meghajtóoptimalizálás kialakításában. |
Teljesítménymodell létrehozásának megkezdése Fontolja meg, hogy a használati minták szezonális vagy napi változatokat mutatnak-e. Az üzleti költségek, műveletek és kritikusság tényezője. Iparági szabványok használatával számszerűsíthet metrikákat és összesítési módszereket, például percentiliseket. Értékelje ki az üzleti korlátozások által támasztott keresleti és kínálati elvárásokat és korlátozásokat. Növekedési kilátások beépítése. |
A teljesítménymodell betekintést nyújt az erőforrások optimális felhasználásába , és segít a stratégiai tervezésben. Az iparági szabványok segítenek a teljesítményértékelésben. A jövőbeli ellenőrzés biztosítja, hogy a teljesítménycélok relevánsak maradjanak, és alkalmazkodjanak a változásokhoz. |
Tervezés a kapacitáskövetelményeknek való megfelelés érdekében
Biztosítson elegendő kínálatot a várható kereslet kielégítéséhez. |
---|
Fontos, hogy proaktívan mérje a teljesítményt. A teljesítmény mérése magában foglalja az alapkonfigurációk mérését , és előzetes ismeretekkel rendelkezik arról, hogy a rendszer mely összetevői jelenthetnek kihívást. Ezt teljes teljesítményteszt vagy részletes optimalizálás nélkül érheti el. A kezdeti lépések végrehajtásával a fejlesztési életciklus korai szakaszában létrehozza a hatékony teljesítménykezelés alapjait.
Vizsgálja meg a rendszer egészét, ahelyett, hogy az egyes összetevőkre összpontosítanál. Ebben a szakaszban kerülje a finomhangolást. A teljesítmény részletes javítása más területeken is kompromisszumokat eredményez. Ahogy halad végig az életcikluson, és elkezdi a felhasználói elfogadás tesztelését, vagy az éles környezet felé halad, gyorsan azonosíthatja, hogy mely területekre van szükség további optimalizáláshoz.
Módszer | Előny |
---|---|
Értékelje ki az azonosított folyamatok rugalmassági követelményeit . Megismerheti a technológiai veremben implementálható tervezési mintákat, figyelembe véve az alkalmazást és a mögöttes számítási és adatrétegeket. |
Skálázhatósági követelményeket határozhat meg olyan meglévő összetevőkre, amelyeknek nagyobb kapacitásra van szükségük, valamint azokra a területekre, ahol további összetevőkre van szükség a terhelés elosztásához. Tisztában van a rendszer lehetséges szűk keresztmetszetével és a kompenzáló vezérlők tervezésével, például gyorsítótárazási képességekkel a késés és a rendszerterhelés csökkentése érdekében. |
Válassza ki a megfelelő erőforrásokat a technológiai veremben, amely lehetővé teszi a teljesítménycélok teljesítését és a rendszerrel való integrálást. Fontolja meg a skálázhatósági követelmények teljesítésére alkalmas funkciókat. A váratlan túlfeszültségek hatékony kezelése érdekében keresse meg a megfelelő egyensúlyt az erőforrás-kiosztás és a rendszerkövetelmények között. |
Az erőforrások különböző képességeinek elemzésével gondoskodhat arról, hogy minden összetevő hozzájáruljon a rendszer általános működéséhez és teljesítményéhez. Kihasználhatja azokat a beépített képességeket, amelyek automatikusan aktiválják a skálázási műveleteket. Az erőforrások jobb méretezése túlméretezés nélkül is képes kielégíteni az igények változásait, ami költségmegtakarítást eredményez. |
Végezze el a kapacitástervezést az igények és a kiválasztott erőforrások képességei alapján a teljesítménymodell bővítéséhez. Prediktív modellezési technikákkal előrejelezheti a kapacitás várható változásait, amelyek kiszámítható és váratlan változások esetén fordulhatnak elő. A műszaki követelményekké lefordítható teljesítménycélok meghatározása. |
Az erőforrásokat hatékonyan használhatja és kielégítheti az igényeket túlbontás nélkül, így elkerülheti a felesleges költségeket. Tisztában van azzal, hogy a tervezési lehetőségek hogyan befolyásolják a teljesítményt. |
Implementáljon egy megvalósíthatósági igazolást , amely érvényesíti a műszaki követelményeket és a tervezési lehetőségeket. | A koncepció igazolása fontos szerepet játszott a terv érvényesítésében annak megállapításában, hogy a rendszer képes-e teljesíteni a teljesítménycélokat, és hogy ezek a célok reálisak-e. A várható terhelés alapján ellenőrizheti, hogy a várható kapacitás megfelel-e a teljesítménycéloknak. Emellett ellenőrizze a tervezési lehetőségek költségkövetkezményeit. |
Dokumentálja a teljesítménytesztelési stratégiát. Belefoglalhatja a használati eseteket, a különböző módszertanokat és a teszttervek ütemezését. A teljesítményteszt-terv által felvázolt műveletfolyamat definiálása. A tesztesetek osztályozása és rangsorolása a tervben. Összpontosítson azokra az esetekre, amelyek értékes betekintést nyújtanak a teljesítménycélokba, és összehangolják a kapacitástervezést. |
Győződjön meg arról, hogy a rendszer megfelelő aspektusait teszteli. Az erőforrásokat hatékonyan lefoglalhatja, és a teszteket az üzleti prioritásoknak és követelményeknek megfelelően végezheti el. |
Dokumentálja a teljesítményfigyelési stratégiát. Mérje fel a metrikákat különböző absztrakciós szinteken az egyes azonosított folyamatokhoz. |
A fejlesztési ciklus során nyomon követheti a teljesítménycélok elérésének előrehaladását . |
Teljesítmény elérése és fenntartása
Védelem a teljesítménycsökkenés ellen, miközben a rendszer használatban van, és ahogy fejlődik. |
---|
A fejlesztés nem egyszeri munka. Ez egy folyamatban lévő folyamat. A funkciók változásának várható teljesítménye. A felhasználói minták és profilok eltérőek, sőt más Azure-Well-Architected pillérek optimalizálása is változik. Bármilyen módosítás megterhelheti a számítási feladatok erőforrásait.
Óvja a rendszert a változásoktól , hogy ne csúsztassa vissza a teljesítménycélokat. A tesztelés és a figyelés integrálása a fejlesztési folyamatba. Tesztelje a rendszer teljesítményét éles környezetben valós terheléssel, és szimulálja ezt a terhelést az éles üzem előtti automatizált teszteléssel. Mindkét esetben ellenőrzési célból ellenőrzési eljárásokat kell alkalmaznia.
A fejlesztési életciklus során különböző típusú teszteket végezzen különböző szakaszokban. A kezdeti szakaszokban tesztelje a megvalósíthatósági igazolást, és győződjön meg arról, hogy a teljesítményeredmények nem teljesen váratlanok. A fejlesztés előrehaladtával végezzen manuális, alacsony munkaigényű teszteket a teljesítménytesztek létrehozásához. A buildelési szakaszban kezdje el az automatizált rutinteljesítmény-tesztek fejlesztését, amelyek kiértékelik a késést, a stresszszinteket, a terhelési kapacitást és a teszttervekben meghatározott egyéb jellemzőket.
A monitorozásnak ennek az erőfeszítésnek szerves részét kell képeznie, nem pedig elkülönített gyakorlatnak. Láthatja , hogy a rendszer és erőforrásai hogyan teljesítenek az idő múlásával. Ezután finomhangolhatja őket az érték maximalizálása érdekében, és gondoskodhat arról, hogy továbbra is megfeleljenek a teljesítményszabványoknak.
Ne feledje, hogy a teljesítménycélok időbeli eltérést mutatnak a változásokra reagálva. Frissítse a teljesítménymodellt a tesztelt és figyelt metrikák alapján. Egyértelműen jelezheti a folyamatok teljesítményére gyakorolt megnövekedett, csökkentett vagy nem befolyásolható hatást.
Mindig készen áll arra, hogy újratárgyalja és visszaállítsa az üzleti érdekeltekkel kapcsolatos elvárásokat.
Módszer | Előny |
---|---|
Rutinteljesítmény-tesztek integrálása az Azure Pipelinesban. Válassza ki a teszteket integráló folyamatokat. Ezzel szemben válassza ki a folyamatokba integrálható teszteszközöket. |
Az automatizált tesztek időt takaríthatnak meg, és olyan konzisztenciát biztosítanak, amely megkönnyíti a regressziók vagy fejlesztések észlelését. Ezek az összetevők lehetővé teszik az eltérések és az időbeli eltérés folyamatos monitorozását, így konzisztens teljesítményt és minőséget tarthat fenn. |
Alakosítsa a teljesítményteszteket minőségi kapukként , amelyek jóváhagyhatják vagy elutasíthatják a kiadási előléptetést és az éles környezetben történő végső üzembe helyezést. | Ezek az ellenőrzőpontok biztosítják, hogy az üzembe helyezés minden fázisa megfeleljen a szükséges teljesítményszabványoknak , mielőtt továbblép a következőre. Az ellenőrzőpontok segítenek megakadályozni a nem szándékos teljesítményregressziót. Ha például a teljesítmény jelentősen elmarad az elvárásoktól, a fejlesztésig blokkolhatja a kiadást. |
Állítson be egy megismételhető folyamatot az éles valós tranzakciók monitorozásához és a teljesítménycélokhoz való eltérésekhez. Szintetikus tranzakciók használata éles környezetben. Monitorozási riasztások beállítása a teljesítményregressziókhoz. |
Szeretne betekintést nyerni a rendszer tényleges teljesítményébe valós terhelés alatt , amely teszteken keresztül nem szimulálható. Ezután proaktívan azonosíthatja a problémákat és a fejlesztési területeket, például a lehetséges szűk keresztmetszeteket, az alacsony kihasználtságú erőforrásokat és egyéb aggályokat. |
Tekintse át a teljesítményteszt eredményeit és az adatok aprólékos figyelését és optimalizálását, amíg meg nem felel a teljesítménycéloknak. Rangsorolja az ezekből a felülvizsgálatokból származó műveleteket, és adja hozzá őket a hátralékhoz a tervezett végrehajtáshoz. |
A teszteredmények alapján rögzítheti és összehasonlíthatja az adatokat, és megkezdheti a trendek elemzését. Az optimalizálási erőfeszítések adatvezéreltek. |
Olyan kódolási képességeket fejleszthet, amelyek a teljesítményre összpontosítanak. Olyan kódolási szabványokkal rendelkezik, amelyek példát mutatnak a teljesítményalapú kódolási mintákra. |
A teljesítményproblémákkal nem rendelkező kódok hatékonyabbá tehetik a tesztelési ciklusokat , mivel a tesztek a jelentősebb problémákra összpontosíthatnak. A kódolási minták segítenek elkerülni az átdolgozást, és egységesen tartja a kódolási stílust. |
Kezelje a teljesítmény erózióját a használat növekedésével, a funkciók változásának és az adatok időbeli növekedésével a teljesítmény fenntartása érdekében. Ha a finomhangolás csak rövid távú előnyökkel jár, állítsa alaphelyzetbe az elvárásokat, és hozzon létre új célokat. |
Megőrizheti a teljesítmény állapotát, mielőtt a teljesítménycsökkenés olyan problémákká alakul, amelyek negatívan befolyásolják a felhasználói élményt az elfogadható tartományon túl. A célok módosítása alaphelyzetbe állítja a teljesítménymodellt, és nem pazarolja az időt a kapacitását elérő rendszer optimalizálására. |
Hatékonyság növelése az optimalizálással
A számítási feladatok értékének növelése érdekében javítsa a rendszerhatékonyságot a meghatározott teljesítménycélok között. |
---|
A kezdeti fázisban meghatározott célok a felhasználói élmény ésszerű szintjén alapulnak, figyelembe véve a különböző korlátozásokat. A felhasználói élmény további javítása érdekében újra kell értékelnie és módosítania kell a célokat. A felhasználói élmény további javítása érdekében egyértelmű ismeretekre van szükség a rendszer használatáról, fejlődéséről, valamint arról, hogy a platform vagy technológia hogyan változott az idők során. A monitorozás, az optimalizálás, a tesztelés és az üzembe helyezés ciklusa folyamatos folyamat.
A hatékonyságoptimalizálási erőfeszítések lehetővé teszik, hogy a számítási feladatok alacsonyabb erőforrás-használattal működjenek. Ezek miatt a számítási feladat túlterhelt, tartalék kapacitással rendelkező állapotban lehet. Használja ezt a kapacitást a rendszer megbízhatóságának javításához. A rendszer költségeinek javítására szolgáló kapacitás megszüntetése. Vagy használja újra a kapacitást a meglévő erőforrások új termékfunkcióinak támogatásához.
Amikor a rendszer hatékonyságot nyer, használja ki a lehetőséget, hogy új teljesítménycélokat állítson be és tartson fenn.
Módszer | Előny |
---|---|
Dedikált ciklusokat rendelhet a teljesítményoptimalizáláshoz a nem funkcionális követelmények és a funkcionális területek optimalizálása érdekében. Ennek az optimalizálásnak a célja az erőforrások, a kód, az adatmegőrzés, az adatbázis-lekérdezések és mások. | A teljesítményalapú optimalizálás kultúráját építheti ki. A csapat elszámoltatható marad a teljesítményminták proaktív monitorozása és az alkalmazás finomhangolása érdekében. |
Az architektúra továbbfejlesztése új tervezési mintákkal és összetevőkkel, amelyek növelhetik a teljesítményt oly módon, hogy korábban nem volt figyelembe véve a korlátozott idő vagy a költségvetés miatt. | Az új kialakítás és összetevők optimalizálhatják a rendszert, ami jobb felhasználói élményt eredményez. Használhat például gyorsítótárazást, vagy hozzáadhat egy tartalomkézbesítési hálózati összetevőt. Ez hosszú távú költségelőnyökhöz is vezethet. |
Monitorozási eszközökkel elemezheti az előzmény trendeket , és azonosíthatja azokat a folyamatokat és kód-megvalósítási útvonalakat, amelyek a teljesítményoptimalizálási erőfeszítésekből a legjobban profitálnának. Ehhez az alkalmazásteljesítmény-monitorozási (APM) eszközöket és profilkészítőket javasoljuk. A művelet gyakori elérési útjainak és a rendszer egyéb lehetséges szűk keresztmetszeteinek azonosítása. |
Az ismétlődő problémás területek azonosításakor a csapat oda összpontosíthat, ahol a legnagyobb a nyereség. |
A teljesítmény növelését célzó technológiai innovációkkal naprakészen tarthatja az aktuális és naprakész állapotot . Használja ki a függő keretrendszerekhez és kódtárakhoz kiadott új verziókat. Ehhez hasonlóan a platformerőforrások új funkcióit is használhatja a frissítésük és a javításuk során. |
Az új technológia bevezetése gyakran motiváló tényező lehet, ha a fejlesztés lehetőségeit keresi. Ezekkel a frissítésekkel a múltban lassú kód is gyorsabb lehet. Azt is tudni szeretné, hogy egyes frissítések milyen negatív hatással vannak a teljesítményre. |