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