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


A Service Fabric-fürt Resource Manager szabályozása

A fürt akkor is megszakadhat, ha megfelelően konfigurálta a Fürterőforrás-kezelőt. Lehetnek például egyidejű csomópont- és hibatartományhibák – mi történne, ha ez egy frissítés során történne? A fürterőforrás-kezelő mindig megpróbál mindent kijavítani, a fürt erőforrásait használva megpróbálja átrendezni és kijavítani a fürtöt. A szabályozások segítenek a háttérrendszer biztosításában, hogy a fürt erőforrásokat használva stabilizálódjon – a csomópontok visszatérnek, a hálózati partíciók helyreállnak, a javított bitek üzembe helyezhetők.

Az ilyen helyzetek elhárításához a Service Fabric-fürt Resource Managere több szabályozást is tartalmaz. Ezek a szabályozások meglehetősen nagy kalapácsok. Ezek általában nem módosíthatók gondos tervezés és tesztelés nélkül.

Ha módosítja a Fürterőforrás-kezelő szabályozását, a várt tényleges terhelésre kell hangolnia őket. Előfordulhat, hogy szükség van néhány szabályozásra, még akkor is, ha ez azt jelenti, hogy bizonyos helyzetekben a fürt stabilizálása hosszabb időt vesz igénybe. A szabályozások helyes értékeinek meghatározásához tesztelés szükséges. A szabályozásnak elég magasnak kell lennie ahhoz, hogy a fürt ésszerű idő alatt reagálhasson a változásokra, és elég alacsony ahhoz, hogy ténylegesen megakadályozza a túl sok erőforrás-felhasználást.

A legtöbb alkalommal, amikor láttuk, hogy az ügyfelek szabályozásokat használnak, annak oka az volt, hogy már erőforrás-korlátozással rendelkező környezetben voltak. Ilyen lehet például az egyes csomópontok vagy lemezek korlátozott hálózati sávszélessége, amelyek az átviteli sebesség korlátozása miatt nem tudnak több állapotalapú replikát párhuzamosan létrehozni. Szabályozások nélkül a műveletek túlterhelhetik ezeket az erőforrásokat, ami a műveletek sikertelen vagy lassú működését okozhatja. Ezekben az esetekben az ügyfelek szabályozást alkalmaztak, és tudták, hogy meghosszabbítják azt az időtartamot, amellyel a fürt stabil állapotot érhet el. Az ügyfelek azt is megértették, hogy a szabályozás alatt alacsonyabb általános megbízhatóság mellett futhatnak.

A szabályozások konfigurálása

A Service Fabric két mechanizmussal rendelkezik a replikamozgások számának szabályozására. A Service Fabric 5.7 előtti alapértelmezett mechanizmus a szabályozást az engedélyezett lépések abszolút számaként jelöli. Ez nem működik minden méretű fürt esetében. A nagy fürtök esetében az alapértelmezett érték túl kicsi lehet, ami jelentősen lelassítja a kiegyensúlyozást még akkor is, ha szükséges, miközben a kisebb fürtökre nincs hatása. Ezt a korábbi mechanizmust felváltotta a százalékalapú szabályozás, amely jobban skálázható dinamikus fürtökkel, amelyekben a szolgáltatások és csomópontok száma rendszeresen változik.

A szabályozások a fürtök replikáinak százalékos arányán alapulnak. A százalékalapú szabályozások lehetővé teszik a szabály kifejezését: "a replikák több mint 10%-át ne helyezze át 10 perc alatt", például.

A százalékalapú szabályozás konfigurációs beállításai a következők:

  • GlobalMovementThrottleThresholdPercentage – A fürtben bármikor engedélyezett mozgások maximális száma a fürt replikáinak százalékos arányában kifejezve. A 0 nem jelez korlátot. Az alapértelmezett érték 0. Ha ez a beállítás és a GlobalMovementThrottleThreshold is meg van adva, akkor a rendszer a konzervatívabb korlátot használja.
  • GlobalMovementThrottleThresholdPercentageForPlacement – Az elhelyezési fázisban engedélyezett mozgások maximális száma, a fürt replikáinak teljes számának százalékában kifejezve. A 0 nem jelez korlátot. Az alapértelmezett érték 0. Ha ez a beállítás és a GlobalMovementThrottleThresholdForPlacement is meg van adva, akkor a rendszer a konzervatívabb korlátot használja.
  • GlobalMovementThrottleThresholdPercentageForBalancing – A kiegyensúlyozási fázisban engedélyezett mozgások maximális száma, a fürt replikáinak teljes számának százalékában kifejezve. A 0 nem jelez korlátot. Az alapértelmezett érték 0. Ha ez a beállítás és a GlobalMovementThrottleThresholdForBalancing is meg van adva, akkor a rendszer a konzervatívabb korlátot használja.

A szabályozás százalékos értékének megadásakor az 5%-ot 0,05-ként kell megadnia. A szabályozások szabályozásának időköze a Másodpercben megadott GlobalMovementThrottleCountingInterval.

<Section Name="PlacementAndLoadBalancing">
     <Parameter Name="GlobalMovementThrottleThresholdPercentage" Value="0" />
     <Parameter Name="GlobalMovementThrottleThresholdPercentageForPlacement" Value="0" />
     <Parameter Name="GlobalMovementThrottleThresholdPercentageForBalancing" Value="0" />
     <Parameter Name="GlobalMovementThrottleCountingInterval" Value="600" />
</Section>

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

"fabricSettings": [
  {
    "name": "PlacementAndLoadBalancing",
    "parameters": [
      {
          "name": "GlobalMovementThrottleThresholdPercentage",
          "value": "0.0"
      },
      {
          "name": "GlobalMovementThrottleThresholdPercentageForPlacement",
          "value": "0.0"
      },
      {
          "name": "GlobalMovementThrottleThresholdPercentageForBalancing",
          "value": "0.0"
      },
      {
          "name": "GlobalMovementThrottleCountingInterval",
          "value": "600"
      }
    ]
  }
]

Alapértelmezett számalapú szabályozások

Ez az információ abban az esetben jelenik meg, ha régebbi fürtökkel rendelkezik, vagy továbbra is megőrzi ezeket a konfigurációkat az azóta frissített fürtökben. Általában ajánlott ezeket felváltani a fenti százalékos alapú szabályozásokkal. Mivel a százalékalapú szabályozás alapértelmezés szerint le van tiltva, ezek a szabályozások a fürt alapértelmezett szabályozásai maradnak, amíg le nem tiltják őket, és a százalékalapú szabályozásokra nem cserélik őket.

  • GlobalMovementThrottleThreshold – ez a beállítás szabályozza a fürtben egy bizonyos idő alatt végzett mozgások teljes számát. Az idő másodpercben van megadva a GlobalMovementThrottleCountingInterval értékként. A GlobalMovementThrottleThreshold alapértelmezett értéke 1000, a GlobalMovementThrottleCountingInterval alapértelmezett értéke pedig 600.
  • MovementPerPartitionThrottleThreshold – ez a beállítás szabályozza egy adott szolgáltatáspartíció mozgásainak teljes számát. Az idő másodpercben van megadva a MovementPerPartitionThrottleCountingInterval értékként. A MovementPerPartitionThrottleThreshold alapértelmezett értéke 50, a MovementPerPartitionThrottleCountingInterval alapértelmezett értéke pedig 600.

Ezeknek a szabályozásoknak a konfigurációja ugyanazt a mintát követi, mint a százalékalapú szabályozás.

Következő lépések

  • A fürterőforrás-kezelő hogyan kezeli és egyensúlyozza a fürt terhelését, tekintse meg a terheléselosztásról szóló cikket
  • 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