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


Metrikák és terhelés töredezettsége a Service Fabricben

A Service Fabric-fürt Resource Managerének alapértelmezett stratégiája a fürt terhelésmetrikáinak kezelésére a terhelés elosztása. A csomópontok egyenletes kihasználtságának biztosítása elkerüli a gyakori és hideg helyeket, amelyek versengéshez és felesleges erőforrásokhoz vezetnek. A számítási feladatok fürtben való elosztása a túlélési hibák szempontjából is a legbiztonságosabb, mivel biztosítja, hogy egy hiba ne vegye ki egy adott számítási feladat nagy részét.

A Service Fabric-fürt Resource Managere más stratégiát támogat a terhelés kezelésére, azaz a töredezettségmentesítésre. A töredezettségmentesítés azt jelenti, hogy ahelyett, hogy egy metrika kihasználtságát megpróbálná elosztani a fürtben, konszolidálva lesz. A konszolidálás csak az alapértelmezett kiegyensúlyozási stratégia inverziója – a metrikaterhelés átlagos szórásának minimalizálása helyett a Fürterőforrás-kezelő megpróbálja növelni.

Mikor érdemes töredezettségmentesítést használni?

A fürt terhelésének elosztása az egyes csomópontok erőforrásainak egy részét használja fel. Egyes számítási feladatok kivételesen nagy szolgáltatásokat hoznak létre, és a csomópontok többségét vagy egészét felhasználják. Ezekben az esetekben előfordulhat, hogy nagy számítási feladatok létrehozásakor nincs elegendő hely egyetlen csomóponton sem a futtatáshoz. A nagy számítási feladatok nem okoznak problémát a Service Fabricben; Ezekben az esetekben a Fürterőforrás-kezelő megállapítja, hogy át kell szerveznie a fürtöt, hogy helyet biztosítson ennek a nagy számítási feladatnak. Addig azonban a számítási feladatnak várnia kell a fürtben való ütemezésre.

Ha sok szolgáltatást és állapotot kell áthelyezni, akkor hosszú időt vehet igénybe, amíg a nagy számítási feladat a fürtbe kerül. Ez akkor valószínűbb, ha a fürt más számítási feladatai is nagyok, ezért az átrendezés hosszabb időt vesz igénybe. A Service Fabric csapata a forgatókönyv szimulációiban mért létrehozási időt. Megállapítottuk, hogy a nagy szolgáltatások létrehozása sokkal tovább tartott, amint a fürt kihasználtsága 30% és 50% között lett. A forgatókönyv kezeléséhez kiegyensúlyozási stratégiaként bevezettük a töredezettségmentesítést. Megállapítottuk, hogy a nagy számítási feladatok esetében, különösen azoknál, ahol a létrehozási idő fontos volt, a töredezettségmentesítés valóban segítette az új számítási feladatok ütemezését a fürtben.

A töredezettségmentesítési metrikákat úgy konfigurálhatja, hogy a fürterőforrás-kezelő proaktív módon próbálja meg a szolgáltatások terhelését kevesebb csomópontba tömöríteni. Ez segít biztosítani, hogy a fürt átrendezése nélkül szinte mindig legyen hely a nagy szolgáltatások számára. A fürt átrendezése nem teszi lehetővé a nagy számítási feladatok gyors létrehozását.

A legtöbb embernek nincs szüksége töredezettségmentesítésre. A szolgáltatások általában kicsik, ezért nem nehéz helyet találni számukra a fürtben. Ha lehetséges az átszervezés, az is gyorsan megy, mert a legtöbb szolgáltatás kicsi, és gyorsan és párhuzamosan áthelyezhető. Ha azonban nagy szolgáltatásokkal rendelkezik, és gyorsan létre kell hoznia őket, akkor a töredezettségmentesítési stratégia az Ön számára készült. A következő lépésben a töredezettségmentesítés használatának kompromisszumait tárgyaljuk.

Töredezettségmentesítési kompromisszumok

A töredezettségmentesítés növelheti a hibák hatását, mivel több szolgáltatás fut a sikertelen csomópontokon. A töredezettségmentesítés is növelheti a költségeket, mivel a fürt erőforrásait tartalékban kell tartani, és nagy számítási feladatok létrehozására kell várni.

Az alábbi ábra két fürt vizuális ábrázolását mutatja be, az egyik töredezett, a másik pedig nem.

Kiegyensúlyozott és töredezett fürtök összehasonlítása

A kiegyensúlyozott esetben vegye figyelembe az egyik legnagyobb szolgáltatásobjektum elhelyezéséhez szükséges mozgások számát. A töredezett fürtben a nagy számítási feladat négy vagy öt csomópontra helyezhető anélkül, hogy várnia kellene a többi szolgáltatás áthelyezésére.

Töredezettségmentesítés előnyei és hátrányai

Mik azok a fogalmi kompromisszumok? Íme egy gyors táblázat a megfontolandó dolgokról:

Töredezettségmentesítés előnyei Töredezettségmentesítési hátrányok
Lehetővé teszi a nagy szolgáltatások gyorsabb létrehozását Kevesebb csomópontra koncentrálja a terhelést, növelve a versengést
Alacsonyabb adatáthelyezést tesz lehetővé a létrehozás során A hibák több szolgáltatást is érinthetnek, és több változáshoz vezethetnek
Lehetővé teszi a követelmények részletes leírását és a tér helyrehozását Összetettebb általános Resource Management-konfiguráció

A töredezett és a normál metrikákat ugyanabban a fürtben kombinálhatja. A fürterőforrás-kezelő megpróbálja a lehető legnagyobb mértékben konszolidálni a töredezettségmentesítési metrikákat, miközben terjeszti a többit. A töredezettségmentesítési és kiegyensúlyozási stratégiák keverésének eredményei számos tényezőtől függenek, például:

  • a kiegyensúlyozási metrikák száma és a töredezettségmentesítési metrikák száma
  • Az, hogy egy szolgáltatás mindkét metrikatípust használja-e
  • a metrika súlyozása
  • aktuális metrikabetöltések

A szükséges pontos konfiguráció meghatározásához kísérletezni kell. Javasoljuk a számítási feladatok alapos mérését, mielőtt engedélyezi a töredezettségmentesítési metrikákat az éles környezetben. Ez különösen igaz a töredezettségmentesítés és a kiegyensúlyozott metrikák egyazon szolgáltatáson belüli keverésekor.

Töredezettségmentesítési metrikák konfigurálása

A töredezettségmentesítési metrikák konfigurálása globális döntés a fürtben, és a töredezettségmentesítéshez egyéni metrikák is kiválaszthatók. Az alábbi konfigurációs kódrészletek bemutatják, hogyan konfigurálhatók a metrikák a töredezettségmentesítéshez. Ebben az esetben a "Metric1" töredezettségmentesítési metrikaként van konfigurálva, míg a "Metric2" továbbra is normálisan lesz kiegyensúlyozott.

ClusterManifest.xml:

<Section Name="DefragmentationMetrics">
    <Parameter Name="Metric1" Value="true" />
    <Parameter Name="Metric2" Value="false" />
</Section>

ClusterConfig.json önálló üzemelő példányokhoz vagy azure-beli üzemeltetett fürtökhöz készült Template.json:

"fabricSettings": [
  {
    "name": "DefragmentationMetrics",
    "parameters": [
      {
          "name": "Metric1",
          "value": "true"
      },
      {
          "name": "Metric2",
          "value": "false"
      }
    ]
  }
]

Következő lépések

  • A Fürterőforrás-kezelő számos lehetőséget kínál a fürt leírására. Ha többet szeretne megtudni róluk, tekintse meg ezt a cikket egy Service Fabric-fürt leírásáról
  • A metrikák segítségével a Service Fabric-fürt erőforrás-kezelője kezeli a fürt fogyasztását és kapacitását. Ha többet szeretne megtudni a metrikákról és azok konfigurálásáról, tekintse meg ezt a cikket