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


Elosztott alkalmazások teljesítményének finomhangolása

Ebben a sorozatban számos felhőalapú alkalmazási forgatókönyvet ismertetünk, amelyek bemutatják, hogyan diagnosztizálja a fejlesztői csapat a teljesítményproblémákat terhelési tesztek és metrikák használatával. Ezek a cikkek a tényleges terhelési teszteket ismertetik, amelyeket a példaalkalmazások fejlesztése során hajtottunk végre. A forgatókönyvek kódja elérhető a GitHubon.

Forgatókönyvek:

Mi az a teljesítmény?

A teljesítményt gyakran az átviteli sebességgel, a válaszidővel és a rendelkezésre állással mérik. A teljesítménybeli céloknak üzleti műveleteken kell alapulniuk. Az ügyfelek felé irányuló feladatokra szigorúbb követelmények vonatkozhatnak, mint az üzemeltetési feladatokra, például a jelentések készítésére.

Olyan szolgáltatásiszint-célkitűzést (SLO-t) szeretnénk definiálni, amely meghatározza az egyes számítási feladatok teljesítménycélját. Ezt a célkitűzést általában úgy éri el, hogy egy teljesítménycélt fő teljesítménymutatókra (KPI-kre) bont, például:

  • Adott kérések késése vagy válaszideje
  • A másodpercenként végrehajtott kérések száma
  • A kivételek előfordulásának gyakorisága a rendszerben.

A teljesítménycéloknak expliciten tartalmazniuk kell célterhelést. Emellett nem minden felhasználó kap pontosan ugyanazt a teljesítményt, még akkor sem, ha egyszerre fér hozzá a rendszerhez, és ugyanazt a munkát végzi. Ezért az SLO-t százalékok formájában kell kifejezni.

Az SLO például a következő lehet: "Az ügyfélkérések válasza 500 ms @ P90-en belül, legfeljebb 25 K kérés/másodperc betöltésekor".

Az elosztott rendszerek teljesítményhangolási kihívásai

Az elosztott alkalmazások teljesítményproblémáinak diagnosztizálása nagy kihívást jelenthet. Íme néhány a kihívások közül:

  • Egyetlen üzleti tranzakcióban vagy műveletben általában a rendszer több összetevője vesz részt. Esetenként nehéz átfogó képet kialakítani az egyes műveletekről.

  • Az erőforrás-felhasználás több csomópontra oszlik el. A konzisztens áttekintéshez a naplókat és a metrikákat egy helyen kell összesíteni.

  • A felhő rugalmas skálázást tesz lehetővé. Az automatikus skálázás fontos a terhelési csúcsok kezeléséhez, azonban elfedheti a problémákat. Emellett esetenként nehéz eldönteni, mikor melyik összetevőt érdemes skálázni.

  • A számítási feladatok gyakran nem skálázhatók magok vagy szálak között. Fontos megérteni a számítási feladatok követelményeit, és jobban optimalizált méreteket keresni. Egyes méretek korlátozott magokat és letiltott hipertreadingot kínálnak az egymagos orientált és a magonkénti licencelt számítási feladatok javítása érdekében.

  • Az egymásra épülő hibák a kiindulási problémánál magasabb szinten is okozhatnak meghibásodást. Emiatt előfordulhat, hogy a probléma első jele egy másik összetevőben jelenik meg, mint ahonnan a probléma kiindult.

Általános ajánlott eljárások

A teljesítményhangolás egyszerre művészet és tudomány, de rendszerszintű megközelítéssel tudományosabbá tehető. Íme néhány ajánlott eljárás:

  • Engedélyezze a telemetriát a metrikák gyűjtéséhez. Tagolja a kódot. Kövesse a monitorozás ajánlott eljárásait. Használjon korreláló nyomkövetést, hogy megtekinthesse a tranzakciók összes lépését.

  • Monitorozza a 90/95/99 százalékos értékeket, ne csak az átlagot. Az átlag elfedheti a kiugró értékeket. A metrikák mintavételi sebessége is fontos. Ha a mintavételi sebesség túl alacsony, az elfedheti a problémákat jelző csúcsokat vagy kiugró értékeket.

  • Egyszerre egy szűk keresztmetszetet teszteljen. Alakítson ki egy hipotézist, és egyszerre egy változó módosításával tesztelje. Ha megszüntet egy szűk keresztmetszetet, az gyakran felfed további szűk keresztmetszeteket magasabb vagy alacsonyabb szinten.

  • A hibák és újrapróbálkozások jelentős hatással lehetnek a teljesítményre. Ha azt látja, hogy a háttérszolgáltatások szabályozják a rendszert, vertikálisan felskálázhatja vagy optimalizálhatja a használatot (például adatbázis-lekérdezések finomhangolásával).

  • Keressen gyakori teljesítménnyel kapcsolatos kizárási mintákat.

  • Keressen lehetőségeket a párhuzamosításra. Az üzenetsorok és az adatbázisok a szűk keresztmetszetek gyakori forrásai. Mindkét esetben segíthet a horizontális skálázás. További információért tekintse meg a horizontális, vertikális vagy funkcionális adatparticionálást ismertető témakört. Keressen olyan gyakori hozzáférésű partíciókat, amelyek kiegyensúlyozatlan olvasási vagy írási terhelésre utalhatnak.

Következő lépések

Tekintse át a teljesítményhangolási forgatókönyveket