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


A Service Fabric-fürt kiegyensúlyozása

A Service Fabric-fürt Resource Manager támogatja a dinamikus terhelésváltozásokat, reagálva a csomópontok vagy szolgáltatások hozzáadására vagy eltávolítására. Emellett automatikusan kijavítja a kényszerek megsértését, és proaktívan kiegyensúlyozhatja a fürtöt. De milyen gyakran hajtják végre ezeket a műveleteket, és mi váltja ki őket?

A fürt Resource Manager három különböző munkakategóriát hajt végre:

  • Elhelyezés – ez a szakasz a hiányzó állapotalapú replikák vagy állapot nélküli példányok elhelyezésével foglalkozik. Az elhelyezés magában foglalja az új szolgáltatásokat, valamint az állapotalapú replikák vagy a sikertelen állapot nélküli példányok kezelését is. A replikák vagy példányok törlése és elvetése itt lesz kezelve.
  • Kényszerellenőrzések – ez a szakasz ellenőrzi és kijavítja a rendszeren belüli különböző elhelyezési korlátozások (szabályok) megsértését. Ilyen például annak biztosítása, hogy a csomópontok ne legyenek kapacitáson túl, és hogy a szolgáltatás elhelyezési kényszerei teljesülnek.
  • Kiegyensúlyozás – ez a szakasz ellenőrzi, hogy szükség van-e újraegyensúlyozásra a különböző metrikákhoz konfigurált kívánt egyensúlyi szint alapján. Ha igen, megpróbál megtalálni egy kiegyensúlyozottabb elrendezést a fürtben.

Fürt Resource Manager időzítők konfigurálása

A kiegyensúlyozás körüli vezérlők első készlete az időzítők készlete. Ezek az időzítők szabályozzák, hogy a fürt Resource Manager milyen gyakran vizsgálja meg a fürtöt, és milyen korrekciós műveleteket hajt végre.

A fürt Resource Manager által elvégezhető különböző korrekciók mindegyikét egy másik időzítő vezérli, amely szabályozza a gyakoriságát. Amikor minden időzítő aktiválódik, a tevékenység ütemezése történik. Alapértelmezés szerint a Resource Manager:

  • megvizsgálja az állapotát, és frissítéseket alkalmaz (például rögzíti, hogy egy csomópont leállt) másodpercenként 1/10-ként
  • beállítja az elhelyezés-ellenőrzési jelzőt másodpercenként
  • másodpercenként beállítja a kényszerellenőrzési jelzőt
  • a kiegyensúlyozási jelzőt öt másodpercenként állítja be

Az időzítőket szabályozó konfigurációra az alábbiakban talál példákat:

ClusterManifest.xml:

        <Section Name="PlacementAndLoadBalancing">
            <Parameter Name="PLBRefreshGap" Value="0.1" />
            <Parameter Name="MinPlacementInterval" Value="1.0" />
            <Parameter Name="MinConstraintCheckInterval" Value="1.0" />
            <Parameter Name="MinLoadBalancingInterval" Value="5.0" />
        </Section>

a ClusterConfig.json használatával önálló üzemelő példányokhoz vagy Az Azure által üzemeltetett fürtökhöz készült Template.json használatával:

"fabricSettings": [
  {
    "name": "PlacementAndLoadBalancing",
    "parameters": [
      {
          "name": "PLBRefreshGap",
          "value": "0.10"
      },
      {
          "name": "MinPlacementInterval",
          "value": "1.0"
      },
      {
          "name": "MinConstraintCheckInterval",
          "value": "1.0"
      },
      {
          "name": "MinLoadBalancingInterval",
          "value": "5.0"
      }
    ]
  }
]

Ma a fürt Resource Manager egyszerre csak egy ilyen műveletet hajt végre, egymás után. Ezért nevezzük ezeket az időzítőket "minimális időközöknek" és az időzítők "jelölők beállításának" kikapcsolásakor végrehajtott műveleteket. A fürt Resource Manager például a fürt kiegyensúlyozása előtt gondoskodik a függőben lévő szolgáltatások létrehozására vonatkozó kérelmekről. Ahogy a megadott alapértelmezett időintervallumok alapján látható, a fürt Resource Manager mindent megvizsgál, amit gyakran el kell végeznie. Ez általában azt jelenti, hogy az egyes lépések során végrehajtott módosítások halmaza kicsi. A kis méretű, gyakori módosítások lehetővé teszik, hogy a fürt Resource Manager reagáljon, amikor dolgok történnek a fürtben. Az alapértelmezett időzítők kötegelést biztosítanak, mivel sok azonos típusú esemény általában egyszerre fordul elő.

Ha például a csomópontok meghibásodnak, egyszerre teljes tartalék tartományokat is végrehajthatnak. Ezek a hibák a PLBRefreshGap utáni következő állapotfrissítés során lesznek rögzítve. A javítások a következő elhelyezési, kényszerellenőrzési és kiegyensúlyozási futtatások során lesznek meghatározva. Alapértelmezés szerint a fürt Resource Manager nem vizsgálja át a fürt többórás módosításait, és egyszerre próbálja kezelni az összes módosítást. Ha így tesz, az adatváltozások kirobbanásához vezet.

A fürt Resource Manager további információkra is szüksége van annak megállapításához, hogy a fürt kiegyensúlyozatlan-e. Ehhez két másik konfigurációs részünk van: BalancingThresholds és ActivityThresholds.

Kiegyensúlyozási küszöbértékek

A kiegyensúlyozási küszöbérték az újraegyensúlyozás aktiválásának fő vezérlője. A metrikák kiegyensúlyozási küszöbértéke egy arány. Ha a metrika terhelése a leginkább betöltött csomóponton a legkevésbé betöltött csomópont terhelésével elosztva meghaladja a metrika BalancingThreshold értékét, akkor a fürt kiegyensúlyozatlan. Ennek eredményeként a rendszer a fürt Resource Manager következő ellenőrzésekor aktiválódik. A MinLoadBalancingInterval időzítő határozza meg, hogy a fürt Resource Manager milyen gyakran ellenőrizze, hogy szükség van-e újraegyensúlyozásra. Az ellenőrzés nem jelenti azt, hogy bármi történik.

A kiegyensúlyozási küszöbértékek metrikaonként vannak meghatározva a fürtdefiníció részeként. A metrikákkal kapcsolatos további információkért tekintse meg a metrikákról szóló cikket.

ClusterManifest.xml

    <Section Name="MetricBalancingThresholds">
      <Parameter Name="MetricName1" Value="2"/>
      <Parameter Name="MetricName2" Value="3.5"/>
    </Section>

a ClusterConfig.json használatával önálló üzemelő példányokhoz vagy Az Azure által üzemeltetett fürtökhöz készült Template.json használatával:

"fabricSettings": [
  {
    "name": "MetricBalancingThresholds",
    "parameters": [
      {
          "name": "MetricName1",
          "value": "2"
      },
      {
          "name": "MetricName2",
          "value": "3.5"
      }
    ]
  }
]

A csomópontok kiegyensúlyozási küszöbértékét bemutató ábra

Ebben a példában minden szolgáltatás egy metrika egy egységét fogyasztja. A felső példában egy csomópont maximális terhelése öt, a minimum kettő. Tegyük fel, hogy a metrika kiegyensúlyozási küszöbértéke három. Mivel a fürtben az arány 5/2 = 2,5, és kevesebb, mint a megadott három kiegyensúlyozási küszöbérték, a fürt kiegyensúlyozott. A fürt Resource Manager ellenőrzésekor nincs kiegyensúlyozás.

Az alsó példában egy csomópont maximális terhelése 10, míg a minimum kettő, ami öt arányt eredményez. Az öt nagyobb, mint az adott metrika kijelölt három kiegyensúlyozási küszöbértéke. Ennek eredményeképpen az újraegyensúlyozási futtatás a következő alkalommal lesz ütemezve, amikor a kiegyensúlyozó időzítő aktiválódik. Ilyen helyzetben a terhelések általában a 3. csomópontra vannak elosztva. Mivel a Service Fabric-fürt Resource Manager nem kapzsi megközelítést használ, bizonyos terhelések a 2. csomópontra is eloszthatók.

Egy kiegyensúlyozási küszöbértékre válaszul végrehajtott műveletet ábrázoló ábra.

Megjegyzés

A "kiegyensúlyozás" két különböző stratégiát kezel a fürt terhelésének kezelésére. A fürt Resource Manager által használt alapértelmezett stratégia a terhelés elosztása a fürt csomópontjai között. A másik stratégia a töredezettségmentesítés. A töredezettségmentesítés ugyanazon kiegyensúlyozási futtatás során történik. A kiegyensúlyozási és töredezettségmentesítési stratégiák különböző metrikákhoz használhatók ugyanazon a fürtön belül. Egy szolgáltatás rendelkezhet kiegyensúlyozási és töredezettségmentesítési metrikákkal is. Töredezettségmentesítési metrikák esetén a fürt terheléseinek aránya akkor aktiválja az újraegyensúlyozást, ha az a kiegyensúlyozási küszöbérték alatt van.

A kiegyensúlyozási küszöbérték alá kerülés nem explicit cél. A kiegyensúlyozási küszöbértékek csak egy eseményindítók. A kiegyensúlyozás futtatásakor a fürt Resource Manager határozza meg, hogy milyen fejlesztéseket hajthat végre, ha vannak ilyenek. Csak azért, mert a kiegyensúlyozási keresés elindul, nem jelent semmit. Előfordulhat, hogy a fürt kiegyensúlyozatlan, de túl korlátozott a javításhoz. Alternatív megoldásként a fejlesztések túl költséges mozgásokat igényelnek).

Tevékenység küszöbértékei

Néha, bár a csomópontok viszonylag kiegyensúlyozatlanok, a fürt teljes terhelése alacsony. A terhelés hiánya átmeneti lemerítés lehet, vagy azért, mert a fürt új, és csak a csizma van leképezve. Mindkét esetben előfordulhat, hogy nem szeretne időt tölteni a fürt kiegyensúlyozásával, mert kevés a nyerés. Ha a fürt kiegyensúlyozáson esett át, akkor a hálózati és számítási erőforrásokat arra költenénk, hogy nagy abszolút különbség nélkül mozogjanak a dolgok között. A szükségtelen áthelyezések elkerülése érdekében van egy másik, tevékenységküszöbök néven ismert vezérlő is. A tevékenység küszöbértékei lehetővé teszik a tevékenységek abszolút alsó határának megadását. Ha egyetlen csomópont sem lépi túl ezt a küszöbértéket, a rendszer akkor sem aktiválja a kiegyensúlyozást, ha a kiegyensúlyozási küszöbérték teljesül.

Tegyük fel, hogy megtartjuk a metrika három kiegyensúlyozási küszöbértékét. Tegyük fel, hogy a tevékenység küszöbértéke 1536. Az első esetben, amíg a fürt kiegyensúlyozatlan a kiegyensúlyozási küszöbérték szerint, nincs olyan csomópont, amely megfelel a tevékenység küszöbértékének, így semmi sem történik. Az alsó példában az 1. csomópont túllépi a tevékenység küszöbértékét. Mivel a kiegyensúlyozási küszöbértéket és a metrika tevékenységküszöbét is túllépi, a rendszer ütemezi a kiegyensúlyozást. Példaként tekintsük meg a következő diagramot:

Egy csomóponttevékenység küszöbértékét bemutató ábra.

A kiegyensúlyozási küszöbértékekhez hasonlóan a tevékenység küszöbértékei is metrikánként vannak meghatározva a fürtdefiníción keresztül:

ClusterManifest.xml

    <Section Name="MetricActivityThresholds">
      <Parameter Name="Memory" Value="1536"/>
    </Section>

a ClusterConfig.json használatával önálló üzemelő példányokhoz vagy Az Azure által üzemeltetett fürtökhöz készült Template.json használatával:

"fabricSettings": [
  {
    "name": "MetricActivityThresholds",
    "parameters": [
      {
          "name": "Memory",
          "value": "1536"
      }
    ]
  }
]

A kiegyensúlyozás és a tevékenység küszöbértékei is egy adott metrikához vannak kötve – a rendszer csak akkor aktiválja a kiegyensúlyozást, ha ugyanazon metrika esetében a kiegyensúlyozási küszöbértéket és a tevékenység küszöbértékét is túllépi.

Megjegyzés

Ha nincs megadva, egy metrika kiegyensúlyozási küszöbértéke 1, a tevékenység küszöbértéke pedig 0. Ez azt jelenti, hogy a fürt Resource Manager megpróbálja tökéletesen egyensúlyban tartani ezt a metrikát az adott terheléshez. Egyéni metrikák használata esetén javasoljuk, hogy explicit módon határozza meg a saját kiegyensúlyozási és tevékenységi küszöbértékeit a metrikákhoz.

Szolgáltatások kiegyensúlyozása

Az, hogy a fürt kiegyensúlyozatlan-e, fürtszintű döntés-e. Ezt azonban kijavítjuk az egyes szolgáltatásreplikák és -példányok áthelyezésével. Ennek van értelme, igaz? Ha a memória egy csomóponton halmozott fel, több replika vagy példány is hozzájárulhat hozzá. Az egyensúlyhiány kijavításához szükség lehet az állapotalapú replikák vagy állapot nélküli példányok áthelyezésére, amelyek az egyensúlytalan metrikát használják.

Időnként azonban egy olyan szolgáltatás, amely önmagában nem volt egyensúlyban, áthelyezik (ne feledje a helyi és globális súlyok korábbi megvitatását). Miért helyeznének át egy szolgáltatást, ha a szolgáltatás összes metrikája kiegyensúlyozott? Lássunk egy példát:

  • Tegyük fel, hogy négy szolgáltatás létezik: Service 1, Service 2, Service 3 és Service 4.
  • Az 1. szolgáltatás az 1. és a 2. metrika metrikákat jelenti.
  • A 2. szolgáltatás a 2. és a 3. metrika metrikákat jelenti.
  • A 3. szolgáltatás a 3. és a 4. metrika metrikákat jelenti.
  • A 4. szolgáltatás a 99-ik metrika metrikát jelenti.

Nincs igazán négy független szolgáltatásunk, három szolgáltatásunk van, amelyek kapcsolódnak, és amelyek önállóan vannak kikapcsolva.

A szolgáltatások egymással való elosztását bemutató ábra.

Emiatt a lánc miatt előfordulhat, hogy az 1–4. metrikák egyensúlytalansága miatt az 1–3. szolgáltatáshoz tartozó replikák vagy példányok mozoghatnak. Azt is tudjuk, hogy az 1., 2. vagy 3. metrikák egyensúlyhiánya nem okozhat mozgásokat a 4. szolgáltatásban. Nincs értelme, mivel a 4. szolgáltatáshoz tartozó replikák vagy példányok áthelyezése egyáltalán nem befolyásolja az 1–3. metrikák egyensúlyát.

A fürt Resource Manager automatikusan kitalálja, hogy mely szolgáltatások kapcsolódnak. A szolgáltatások metrikáinak hozzáadása, eltávolítása vagy módosítása hatással lehet a kapcsolatukra. Előfordulhat például, hogy a 2. kiegyensúlyozási szolgáltatás két futtatása között frissült a 2. metrika eltávolítása érdekében. Ez megszakítja az 1. szolgáltatás és a 2. szolgáltatás közötti láncot. Most a kapcsolódó szolgáltatások két csoportja helyett három van:

Diagram, amely azt mutatja, hogy a fürt Resource Manager határozza meg, hogy mely szolgáltatások kapcsolódnak.

Fürt kiegyensúlyozása csomóponttípusonként

Ahogy azt a korábbi szakaszokban ismertettük, az újraegyensúlyozás fő vezérlői a tevékenység küszöbértékei, a kiegyenlítési küszöbértékek és az időzítők. A Service Fabric-fürt Resource Manager részletesebb vezérlést biztosít az újraegyensúlyozás aktiválásához a csomóponttípusonkénti paraméterek megadásával, és csak a kiegyensúlyozatlan csomóponttípusokon való mozgás engedélyezésével. A csomóponttípusonkénti kiegyensúlyozás fő előnye, hogy lehetővé teszi a teljesítmény javítását azoknál a csomóponttípusoknál, amelyek szigorúbb kiegyensúlyozási szabályokat igényelnek anélkül, hogy más csomóponttípusok teljesítménycsökkenése lenne. A funkció két fő részből áll:

  • Az egyensúlyhiány észlelése csomóponttípusonként történik. Korábban az egyensúlyhiány globális számítása minden csomóponttípusra ki lesz számítva. Ha az összes csomóponttípus kiegyensúlyozott, a CRM nem aktiválja a kiegyensúlyozási fázist. Ellenkező esetben, ha legalább egy csomóponttípus kiegyensúlyozatlan, kiegyensúlyozási fázisra van szükség.
  • A kiegyensúlyozás csak olyan csomóponttípusokon helyezi át a replikákat, amelyek kiegyensúlyozatlanok, más csomóponttípusokat a kiegyensúlyozási fázis nem érint.

A csomóponttípusonkénti kiegyensúlyozás hatása egy fürtre

A fürt csomóponttípusonkénti kiegyensúlyozása során a Service Fabric-fürt Resource Manager kiszámítja az egyes csomóponttípusok egyensúlyhiány-állapotát. Ha legalább egy csomóponttípus kiegyensúlyozatlan, a rendszer elindítja a kiegyensúlyozási fázist. A kiegyensúlyozási fázis nem helyezi át a replikákat a kiegyensúlyozatlan csomóponttípusokon, ha a kiegyensúlyozás ideiglenesen szünetel ezeken a csomóponttípusokon (például a minimális kiegyensúlyozási időköz nem telt el egy korábbi kiegyensúlyozási fázis óta). Az egyensúlytalan állapot észlelése a klasszikus fürtegyensúlyozáshoz már rendelkezésre álló közös mechanizmusokat használja, de javítja a konfiguráció részletességét és rugalmasságát. Az egyensúlyozás csomóponttípusonkénti kiegyensúlyozásához használt mechanizmusokat az alábbi listában találja:

  • A csomóponttípusonkénti metrikaegyensúlyozási küszöbértékek olyan értékek, amelyek hasonló szerepet töltenek be, mint a klasszikus kiegyensúlyozásban használt globálisan meghatározott kiegyensúlyozási küszöbérték. A minimális és a maximális metrikaterhelés aránya az egyes csomóponttípusokhoz lesz kiszámítva. Ha egy csomóponttípusnak ez az aránya magasabb, mint a csomóponttípus meghatározott kiegyensúlyozási küszöbértéke, a csomóponttípus kiegyensúlyozatlanként van megjelölve. A metrikatevékenység küszöbértékeinek csomóponttípusonkénti konfigurálásáról további információt a csomóponttípusonkénti kiegyensúlyozási küszöbértékeket ismertető szakaszban talál.
  • A csomóponttípusonkénti metrikatevékenység-küszöbértékek olyan értékek, amelyek hasonló szerepet játszanak a klasszikus kiegyensúlyozásban használt globálisan meghatározott tevékenységküszöbhöz. A rendszer minden csomóponttípushoz kiszámítja a maximális metrikaterhelést. Ha egy csomóponttípus maximális terhelése meghaladja az adott csomóponttípus meghatározott tevékenységküszöbét, a csomóponttípus kiegyensúlyozatlanként van megjelölve. A metrikatevékenység-küszöbértékek csomóponttípusonkénti konfigurálásáról a tevékenység küszöbértékei csomópontonként című szakaszban talál további információt.
  • A csomóponttípusonkénti minimális kiegyensúlyozási időköz a globálisan meghatározott minimális kiegyensúlyozási időközhöz hasonló szerepkörrel rendelkezik. Minden csomóponttípus esetében a fürt Resource Manager megőrzi az utolsó kiegyensúlyozás időbélyegét. Két egymást követő kiegyensúlyozási fázis nem hajtható végre csomóponttípuson a megadott minimális kiegyensúlyozási időközön belül. A csomóponttípusonkénti minimális kiegyensúlyozási időköz konfigurációjával kapcsolatos további részletekért tekintse meg a csomóponttípusonkénti minimális kiegyensúlyozási időközt ismertető szakaszt.

A csomóponttípusonkénti kiegyensúlyozás ismertetése

A csomóponttípusonkénti kiegyensúlyozás engedélyezéséhez engedélyezni kell a SeparateBalancingStrategyPerNodeType paramétert egy fürtjegyzékben. Emellett engedélyezni kell az alkonfigurálási funkciót is. Példa egy fürtjegyzék elhelyezési és terheléselosztási szakaszára a funkció engedélyezéséhez:

<Section Name="PlacementAndLoadBalancing">
    <Parameter Name="SeparateBalancingStrategyPerNodeType" Value="true" />
    <Parameter Name="SubclusteringEnabled" Value="true" />
    <Parameter Name="SubclusteringReportingPolicy" Value="1" />
</Section>

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

"fabricSettings": [
  {
    "name": "PlacementAndLoadBalancing",
    "parameters": [
      {
          "name": "SeparateBalancingStrategyPerNodeType",
          "value": "true"
      },
      {
          "name": "SubclusteringEnabled",
          "value": "true"
      },
      {
          "name": "SubclusteringReportingPolicy",
          "value": "1"
      },
    ]
  }
]

Ahogy azt az előző szakaszban leírtuk, a küszöbértékek és az időközök csomóponttípusonként határozhatók meg. Az adott paraméter frissítésével kapcsolatos további részletekért tekintse meg a következő szakaszokat:

Kiegyensúlyozási küszöbértékek csomóponttípusonként

A metrikaelosztási küszöbérték csomóponttípusonként határozható meg a kiegyensúlyozási konfiguráció részletességének növelése érdekében. A kiegyensúlyozási küszöbértékek lebegőpontos típusúak, mivel az adott csomóponttípuson belül a maximális és minimális terhelési érték arányának küszöbértékét jelölik. A kiegyensúlyozási küszöbértékek a PlacementAndLoadBalancingOverrides szakaszban vannak meghatározva az egyes csomóponttípusokhoz:

<NodeTypes>
    <NodeType Name="NodeType1">
        <PlacementAndLoadBalancingOverrides>
            <MetricBalancingThresholdsPerNodeType>
                <BalancingThreshold Name="Metric1" Value="2.5">
                <BalancingThreshold Name="Metric2" Value="4">
                <BalancingThreshold Name="Metric3" Value="3.25">
            </MetricBalancingThresholdsPerNodeType>
        </PlacementAndLoadBalancingOverrides>
    </NodeType>
</NodeTypes>

Ha egy metrika kiegyensúlyozási küszöbértéke nincs megadva csomóponttípushoz, a küszöbérték örökli a globálisan definiált metrikaelosztási küszöbértéket a PlacementAndLoadBalancing szakaszban. Ellenkező esetben, ha egy metrika kiegyensúlyozási küszöbértéke nincs meghatározva sem csomóponttípushoz, sem globálisan a PlacementAndLoadBalancing szakaszban, a küszöbérték alapértelmezett értéke egy lesz.

Tevékenység küszöbértékei csomóponttípusonként

A metrikatevékenység küszöbértéke csomóponttípusonként határozható meg a kiegyensúlyozási konfiguráció részletességének növelése érdekében. A tevékenység küszöbértékei egész típusúak, mivel az adott csomóponttípuson belül a maximális terhelési érték küszöbértékét jelölik. A tevékenység küszöbértékei a PlacementAndLoadBalancingOverrides szakaszban vannak meghatározva az egyes csomóponttípusokhoz:

<NodeTypes>
    <NodeType Name="NodeType1">
        <PlacementAndLoadBalancingOverrides>
            <MetricActivityThresholdsPerNodeType>
                <ActivityThreshold Name="Metric1" Value="500">
                <ActivityThreshold Name="Metric2" Value="40">
                <ActivityThreshold Name="Metric3" Value="1000">
            </MetricActivityThresholdsPerNodeType>
        </PlacementAndLoadBalancingOverrides>
    </NodeType>
</NodeTypes>

Ha egy metrika tevékenységküszöbe nincs megadva csomóponttípushoz, a küszöbérték örökli az Értéket a metrikatevékenység globálisan definiált küszöbértékéből a PlacementAndLoadBalancing szakaszban. Ellenkező esetben, ha egy metrika tevékenységküszöbe nincs meghatározva sem csomóponttípusra, sem globálisan az PlacementAndLoadBalancing szakaszban, a küszöbérték alapértelmezett értéke nulla lesz.

Minimális kiegyensúlyozási időköz csomóponttípusonként

Csomóponttípusonként minimális kiegyensúlyozási időköz definiálható a kiegyensúlyozási konfiguráció részletességének növelése érdekében. A minimális kiegyensúlyozási időköz egész típusú, mivel ez azt a minimális időtartamot jelöli, amelyet két egymást követő kiegyensúlyozási kör előtt kell átadni egy adott csomóponttípuson. A minimális kiegyensúlyozási időköz a PlacementAndLoadBalancingOverrides szakaszban van meghatározva az egyes csomóponttípusokhoz:

<NodeTypes>
    <NodeType Name="NodeType1">
        <PlacementAndLoadBalancingOverrides>
            <MinLoadBalancingIntervalPerNodeType>100</MinLoadBalancingIntervalPerNodeType>
        </PlacementAndLoadBalancingOverrides>
    </NodeType>
</NodeTypes>

Ha a csomóponttípushoz nincs megadva minimális kiegyensúlyozási időköz, az intervallum a Globálisan definiált minimális kiegyensúlyozási időközből örökli az Értéket a PlacementAndLoadBalancing szakaszban. Ellenkező esetben, ha a minimális időköz nincs meghatározva sem csomóponttípushoz, sem globálisan az PlacementAndLoadBalancing szakaszban, a minimális intervallum alapértelmezett értéke nulla lesz, ami azt jelzi, hogy nincs szükség szünetre az egymást követő kiegyensúlyozási körök között.

Példák

1\. példa

Vegyünk egy esetet, amikor egy fürt két csomóponttípust tartalmaz, az A csomóponttípust és a B csomóponttípust. Minden szolgáltatás ugyanazt a metrikát jelenti, és fel van osztva ezek között a csomóponttípusok között, így a terhelési statisztikák eltérnek tőlük. A példában az A csomóponttípus maximális terhelése 300 és minimum 100, a B csomóponttípus maximális terhelése 700, minimális terhelése pedig 500:

Diagram egy csomóponttípus-kiegyensúlyozási küszöbértékre két csomóponttípussal.

Az ügyfél azt észlelte, hogy a két csomóponttípus számítási feladatainak eltérő kiegyensúlyozási igényei vannak, és úgy döntött, hogy csomóponttípusonként eltérő kiegyensúlyozási és tevékenységküszöböket állít be. Az A csomóponttípus kiegyensúlyozási küszöbértéke 2,5, a tevékenység küszöbértéke pedig 50. A B csomóponttípus esetében az ügyfél a kiegyensúlyozási küszöbértéket 1,2-esre, a tevékenység küszöbértékét pedig 400-ra állítja be.

Ebben a példában a fürt egyensúlyhiányának észlelése során mindkét csomóponttípus megsérti a tevékenység küszöbértékét. Az A csomóponttípus maximális terhelése 300-ra magasabb, mint az 50-es tevékenység küszöbértéke. A B csomóponttípus maximális terhelése 700-nál magasabb, mint a meghatározott 400-ra vonatkozó tevékenységküszöb. Az A csomóponttípus megsérti a kiegyensúlyozási küszöbérték feltételeit, mivel a maximális és minimális terhelés aktuális aránya 3, a kiegyensúlyozási küszöbérték pedig 2,5. Ellenkezőleg, a B csomóponttípus nem sérti a kiegyensúlyozási küszöbérték feltételeit, mivel a csomóponttípus maximális és minimális terhelésének aktuális aránya 1,2, a kiegyensúlyozási küszöbérték azonban 1,4. A kiegyensúlyozás csak az A csomóponttípusú replikákhoz szükséges, és az egyetlen olyan replikakészlet, amely mozgásra jogosult lesz a kiegyensúlyozási fázisban, az A csomóponttípusba helyezett replikák.

2\. példa

Vegyünk egy esetet, amikor egy fürt három csomóponttípust tartalmaz, az A, B és C csomóponttípust. Minden szolgáltatás ugyanazt a metrikát jelenti, és fel van osztva ezek között a csomóponttípusok között, így a terhelési statisztikák eltérnek tőlük. A példában az A csomóponttípus maximális terhelése 600 és minimum 100, a B csomóponttípus maximális terhelése 900, minimális terhelése 100, a C csomóponttípus maximális terhelése 600, minimális terhelése pedig 300:

Diagram egy három csomóponttípussal rendelkező csomóponttípus kiegyensúlyozási küszöbértékére.

Az ügyfél azt észlelte, hogy az ilyen csomóponttípusok számítási feladatainak eltérő kiegyensúlyozási igényei vannak, és úgy döntött, hogy csomóponttípusonként eltérő kiegyensúlyozási és tevékenységküszöböket állít be. Az A csomóponttípus kiegyensúlyozási küszöbértéke 5, a tevékenység küszöbértéke pedig 700. A B csomóponttípus esetében az ügyfél a kiegyensúlyozási küszöbértéket 10-esre, a tevékenység küszöbértékét pedig 200-ra állítja be. A C csomóponttípus esetében az ügyfél a kiegyensúlyozási küszöbértéket 2-esre, a tevékenység küszöbértékét pedig 300-ra állítja be.

Az A csomóponttípus maximális terhelése 600-nál alacsonyabb, mint a meghatározott tevékenység küszöbértéke 700, így az A csomóponttípus nem lesz kiegyensúlyozott. A B csomóponttípus maximális terhelése 900-nál magasabb, mint a 200-ra meghatározott tevékenységküszöb. A B csomóponttípus megsérti a tevékenység küszöbértékére vonatkozó feltételeket. A C csomóponttípus maximális terhelése 600-nál magasabb, mint a meghatározott tevékenységküszöb 300. A C csomóponttípus megsérti a tevékenység küszöbértékére vonatkozó feltételeket. A B csomóponttípus nem sérti a kiegyensúlyozási küszöbérték feltételeit, mivel a csomóponttípus maximális és minimális terhelésének aktuális aránya 9, a kiegyensúlyozási küszöbérték azonban 10. A C csomóponttípus megsérti a kiegyensúlyozási küszöbértékre vonatkozó feltételeket, mivel a maximális és minimális terhelés aktuális aránya 2, a kiegyensúlyozási küszöbérték pedig 2. A kiegyensúlyozás csak a C csomóponttípusú replikákhoz szükséges, és az egyetlen olyan replikakészlet, amely mozgásra jogosult lesz a kiegyensúlyozási fázisban, a C csomóponttípusba helyezett replikák.

Következő lépések

  • A metrikák segítségével a Service Fabric-fürt erőforrás-kezelője kezeli a fürtben lévő felhasználást és kapacitást. A metrikákkal és azok konfigurálásával kapcsolatos további információkért tekintse meg a metrikákról szóló cikket
  • Az áthelyezési költség a fürt Resource Manager jelzi, hogy bizonyos szolgáltatások áthelyezése drágább, mint mások. A mozgási költségekről további információt a szállítási költségről szóló cikkben talál.
  • A fürt Resource Manager számos olyan szabályozással rendelkezik, amelyek konfigurálhatók a fürt adatváltozásának lassítására. Ezek általában nem szükségesek, de ha szüksége van rájuk, megismerheti őket a speciális szabályozásról szóló cikk
  • A fürt Resource Manager képes felismerni és kezelni az alkonyatolást. Az elhelyezési korlátozások és a kiegyensúlyozás használatakor az alkonyatolás merülhet fel. Ha meg szeretné tudni, hogy az alkonyatolás milyen hatással lehet a kiegyensúlyozásra és annak kezelésére, tekintse meg az alkonyatolásról szóló cikket.