Uw Service Fabric-cluster verdelen

Het Service Fabric-cluster Resource Manager ondersteunt wijzigingen in dynamische belasting, waarbij wordt gereageerd op toevoegingen of verwijderingen van knooppunten of services. Ook worden beperkingen automatisch gecorrigeerd en wordt het cluster proactief opnieuw in balans gebracht. Maar hoe vaak worden deze acties uitgevoerd en wat activeert ze?

Er zijn drie verschillende werkcategorieën die door het cluster Resource Manager worden uitgevoerd:

  • Plaatsing: deze fase heeft betrekking op het plaatsen van stateful replica's of staatloze exemplaren die ontbreken. Plaatsing omvat zowel nieuwe services als het verwerken van stateful replica's of staatloze exemplaren die zijn mislukt. Het verwijderen en verwijderen van replica's of exemplaren worden hier afgehandeld.
  • Beperkingscontroles: in deze fase worden schendingen van de verschillende plaatsingsbeperkingen (regels) binnen het systeem gecontroleerd en gecorrigeerd. Voorbeelden van regels zijn zaken als ervoor zorgen dat de capaciteit van knooppunten niet wordt overschreden en dat aan de plaatsingsbeperkingen van een service wordt voldaan.
  • Balanceren: in deze fase wordt gecontroleerd of herverdeling is vereist op basis van het geconfigureerde gewenste saldoniveau voor verschillende metrische gegevens. Als dat het zo is, wordt geprobeerd een rangschikking in het cluster te vinden die evenwichtiger is.

Timers voor cluster-Resource Manager configureren

De eerste set besturingselementen rond balanceren is een set timers. Deze timers bepalen hoe vaak het cluster Resource Manager het cluster onderzoekt en corrigerende acties onderneemt.

Elk van deze verschillende typen correcties die het cluster Resource Manager kan aanbrengen, wordt beheerd door een andere timer die de frequentie bepaalt. Wanneer elke timer wordt geactiveerd, wordt de taak gepland. De Resource Manager standaard:

  • scant de status en past elke 1/10e van een seconde updates toe (zoals opnemen dat een knooppunt offline is)
  • stelt de vlag voor plaatsingscontrole elke seconde in
  • stelt de controlevlag van de beperking elke seconde in
  • stelt de balanceringsvlag elke vijf seconden in

Hieronder ziet u voorbeelden van de configuratie die deze timers beheert:

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>

via ClusterConfig.json voor zelfstandige implementaties of Template.json voor door Azure gehoste clusters:

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

Op dit moment voert het cluster Resource Manager slechts één van deze acties tegelijk uit, opeenvolgend. Daarom verwijzen we naar deze timers als 'minimale intervallen' en de acties die worden uitgevoerd wanneer de timers afgaan als 'instellingsvlagwoorden'. De cluster-Resource Manager zorgt bijvoorbeeld voor aanvragen die in behandeling zijn om services te maken voordat het cluster wordt verdelen. Zoals u kunt zien aan de standaardtijdsintervallen die zijn opgegeven, scant het cluster Resource Manager op alles wat het regelmatig moet doen. Normaal gesproken betekent dit dat de set wijzigingen die tijdens elke stap worden aangebracht, klein is. Kleine, frequente wijzigingen zorgen ervoor dat de cluster Resource Manager reageert wanneer er dingen gebeuren in het cluster. De standaardtimers bieden batchverwerking, omdat veel van dezelfde typen gebeurtenissen vaak tegelijkertijd plaatsvinden.

Wanneer knooppunten bijvoorbeeld mislukken, kunnen ze dit hele foutdomeinen tegelijk doen. Al deze fouten worden vastgelegd tijdens de volgende statusupdate na de PLBRefreshGap. De correcties worden bepaald tijdens de volgende plaatsing, beperkingscontrole en balanceringsuitvoeringen. Standaard scant de cluster Resource Manager geen uren aan wijzigingen in het cluster door en probeert alle wijzigingen in één keer op te pakken. Dit zou leiden tot bursts van verloop.

De cluster-Resource Manager heeft ook aanvullende informatie nodig om te bepalen of het cluster onevenwichtig is. Hiervoor hebben we twee andere configuratieonderdelen: BalancingThresholds en ActivityThresholds.

Drempelwaarden voor evenwicht

Een balanceringsdrempel is het belangrijkste besturingselement voor het activeren van herverdeling. De drempelwaarde voor de verdeling van een metrische waarde is een verhouding. Als de belasting voor een metrische waarde op het meest geladen knooppunt gedeeld door de hoeveelheid belasting op het minst belaste knooppunt groter is dan de BalancingThreshold van dat metrische gegeven, is het cluster onevenwichtig. Als gevolg hiervan wordt de volgende keer dat het cluster Resource Manager controleert, de taakverdeling geactiveerd. De MinLoadBalancingInterval-timer definieert hoe vaak het cluster Resource Manager moet controleren of herverdeling nodig is. Controleren betekent niet dat er iets gebeurt.

Drempelwaarden voor verdeling worden gedefinieerd op basis van metrische gegevens als onderdeel van de clusterdefinitie. Raadpleeg het artikel met metrische gegevens voor meer informatie over metrische gegevens.

ClusterManifest.xml

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

via ClusterConfig.json voor zelfstandige implementaties of Template.json voor door Azure gehoste clusters:

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

Diagram met een voorbeeld van een drempelwaarde voor knooppuntverdeling

In dit voorbeeld gebruikt elke service één eenheid van bepaalde metrische gegevens. In het bovenste voorbeeld is de maximale belasting op een knooppunt vijf en het minimum twee. Stel dat de drempelwaarde voor de verdeling voor deze metrische waarde drie is. Omdat de verhouding in het cluster 5/2 = 2,5 is en dat kleiner is dan de opgegeven drempelwaarde voor het verdelen van drie, wordt het cluster evenwichtig verdeeld. Er wordt geen verdeling geactiveerd wanneer het cluster Resource Manager wordt gecontroleerd.

In het onderste voorbeeld is de maximale belasting op een knooppunt 10, terwijl het minimum twee is, wat resulteert in een verhouding van vijf. Vijf is groter dan de aangewezen drempelwaarde voor de verdeling van drie voor dat metrische gegeven. Als gevolg hiervan wordt een herverdelingsuitvoering gepland wanneer de balanceringstimer de volgende keer wordt geactiveerd. In een situatie als deze wordt bepaalde belasting meestal gedistribueerd naar knooppunt 3. Omdat het Service Fabric-cluster Resource Manager geen hebzuchtige benadering gebruikt, kan bepaalde belasting ook worden gedistribueerd naar knooppunt 2.

Diagram met een actie die is uitgevoerd als reactie op een drempelwaarde voor de verdeling.

Notitie

'Balanceren' verwerkt twee verschillende strategieën voor het beheren van de belasting in uw cluster. De standaardstrategie die de Cluster Resource Manager gebruikt, is het verdelen van de belasting over de knooppunten in het cluster. De andere strategie is defragmentatie. Defragmentatie wordt uitgevoerd tijdens dezelfde taakverdeling. De strategieën voor balanceren en defragmenteren kunnen worden gebruikt voor verschillende metrische gegevens binnen hetzelfde cluster. Een service kan metrische gegevens voor zowel balancering als defragmentatie hebben. Voor metrische defragmentatiegegevens activeert de verhouding van de belasting in het cluster herverdeling wanneer deze onder de drempelwaarde voor de verdeling is.

Het is geen expliciet doel om onder de drempelwaarde voor de verdeling te komen. Drempelwaarden voor het balanceren zijn slechts een trigger. Wanneer de verdeling wordt uitgevoerd, bepaalt de cluster-Resource Manager welke verbeteringen er kunnen worden aangebracht, indien van toepassing. Het feit dat een evenwichtszoekopdracht wordt gestart, betekent niet dat er iets komt. Soms is het cluster onevenwichtig, maar te beperkt om te corrigeren. De verbeteringen vereisen ook bewegingen die te duur zijn).

Activiteitsdrempels

Hoewel knooppunten relatief onevenwichtig zijn, is de totale belasting in het cluster soms laag. Het gebrek aan belasting kan een tijdelijke dip zijn of omdat het cluster nieuw is en alleen wordt opgestart. In beide gevallen wilt u misschien geen tijd besteden aan het verdelen van het cluster, omdat er weinig te winnen is. Als het cluster in evenwicht is, besteedt u netwerk- en rekenresources om dingen te verplaatsen zonder dat er een groot absoluut verschil wordt gemaakt. Om onnodige verplaatsingen te voorkomen, is er een ander besturingselement dat drempelwaarden voor activiteit wordt genoemd. Met Activiteitsdrempels kunt u een absolute ondergrens voor activiteit opgeven. Als er geen knooppunt boven deze drempelwaarde is, wordt de verdeling niet geactiveerd, zelfs niet als de drempelwaarde voor het balanceren wordt bereikt.

Stel dat we de drempelwaarde voor het balanceren van drie behouden voor dit metrische gegeven. Stel ook dat we een drempelwaarde voor activiteiten hebben van 1536. In het eerste geval, terwijl het cluster onevenwichtig is volgens de balanceringsdrempel, voldoet er geen knooppunt aan die activiteitsdrempelwaarde, dus gebeurt er niets. In het onderste voorbeeld heeft Knooppunt 1 de drempelwaarde voor activiteit overschreden. Omdat zowel de drempelwaarde voor de verdeling als de activiteitsdrempel voor de metrische waarde worden overschreden, wordt de verdeling gepland. Laten we als voorbeeld het volgende diagram bekijken:

Diagram met een voorbeeld van een drempelwaarde voor knooppuntactiviteit.

Activiteitsdrempels worden, net als drempelwaarden voor het verdelen, gedefinieerd per metrische waarde via de clusterdefinitie:

ClusterManifest.xml

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

via ClusterConfig.json voor zelfstandige implementaties of Template.json voor door Azure gehoste clusters:

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

Drempelwaarden voor balancing en activiteit zijn beide gekoppeld aan een specifieke metrische waarde. De verdeling wordt alleen geactiveerd als zowel de drempelwaarde voor het balanceren als de activiteitsdrempelwaarde voor hetzelfde metrische gegeven worden overschreden.

Notitie

Als u dit niet opgeeft, is de drempelwaarde voor de verdeling voor een metrische waarde 1 en is de drempelwaarde voor activiteit 0. Dit betekent dat de cluster-Resource Manager dat metrische gegeven perfect in balans probeert te houden voor elke bepaalde belasting. Als u aangepaste metrische gegevens gebruikt, is het raadzaam dat u expliciet uw eigen drempelwaarden voor balans en activiteit voor uw metrische gegevens definieert.

Services samen in balans brengen

Of het cluster uit balans is of niet, is een beslissing voor het hele cluster. We lossen dit echter op door afzonderlijke servicereplica's en exemplaren te verplaatsen. Dit is logisch, toch? Als geheugen op één knooppunt is gestapeld, kunnen meerdere replica's of exemplaren hieraan bijdragen. Als u de onevenwichtigheid kunt herstellen, moet u mogelijk stateful replica's of stateless exemplaren verplaatsen die gebruikmaken van de metrische waarde voor onevenwichtigheid.

Af en toe wordt een service die zelf niet in evenwicht was, verplaatst (denk aan de bespreking van lokale en wereldwijde gewichten eerder). Waarom zou een service worden verplaatst als alle metrische gegevens van die service zijn verdeeld? Laten we een voorbeeld bekijken:

  • Stel dat er vier services zijn: Service 1, Service 2, Service 3 en Service 4.
  • Service 1 rapporteert metrische gegevens metrische gegevens 1 en metrisch 2.
  • Service 2 rapporteert metrische gegevens Metrische gegevens 2 en 3.
  • Service 3 rapporteert metrische gegevens Metrische gegevens 3 en 4.
  • Service 4 rapporteert metrische waarde 99.

We hebben niet echt vier onafhankelijke services, we hebben drie gerelateerde services en één die zelfstandig is uitgeschakeld.

Diagram waarin wordt getoond hoe services in balans kunnen worden gebracht.

Vanwege deze keten is het mogelijk dat een onevenwichtigheid in metrische gegevens 1-4 ertoe kan leiden dat replica's of exemplaren van services 1-3 worden verplaatst. We weten ook dat een onevenwichtigheid in metrische gegevens 1, 2 of 3 geen bewegingen in Service 4 kan veroorzaken. Het heeft geen zin omdat het verplaatsen van de replica's of exemplaren die behoren tot Service 4 absoluut niets kan doen om de balans van metrische gegevens 1-3 te beïnvloeden.

Het cluster Resource Manager automatisch uit welke services zijn gerelateerd. Het toevoegen, verwijderen of wijzigen van de metrische gegevens voor services kan van invloed zijn op hun relaties. Tussen twee uitvoeringen van de balanceringsservice 2 kan bijvoorbeeld zijn bijgewerkt om metrische waarde 2 te verwijderen. Hiermee wordt de keten tussen Service 1 en Service 2 verbroken. In plaats van twee groepen gerelateerde services zijn er nu drie:

Diagram waarin wordt getoond dat Cluster Resource Manager bepaalt welke services zijn gerelateerd.

Verdeling van een cluster per knooppunttype

Zoals we in de vorige secties hebben beschreven, zijn de belangrijkste besturingselementen voor het activeren van herverdeling activiteitsdrempels, evenwichtsdrempels en timers. Het Service Fabric-cluster Resource Manager biedt meer gedetailleerde controle over het activeren van herverdeling door parameters per knooppunttype op te geven en alleen verplaatsing toe te staan op onevenwichtige knooppunttypen. Het belangrijkste voordeel van balanceren per knooppunttype is dat de prestaties kunnen worden verbeterd voor knooppunttypen waarvoor strengere regels voor balanceren zijn vereist, zonder dat de prestaties van andere knooppunttypen afnemen. De functie bestaat uit twee hoofdonderdelen:

  • Detectie van onevenwichtigheid wordt uitgevoerd per knooppunttype. Voorheen werd de globale berekening van onevenwichtigheid berekend voor elk knooppunttype. Als alle knooppunttypen in balans zijn, wordt de taakverdelingsfase niet geactiveerd. Als er anders ten minste één knooppunttype onevenwichtig is, is de balanceringsfase nodig.
  • Bij het balanceren worden replica's alleen verplaatst op knooppunttypen die onevenwichtig zijn. Andere knooppunttypen worden niet beïnvloed door de balanceringsfase.

Hoe de verdeling per knooppunttype van invloed is op een cluster

Tijdens het verdelen van een cluster per knooppunttype berekent het Service Fabric-cluster Resource Manager de onbalansstatus voor elk knooppunttype. Als ten minste één knooppunttype onevenwichtig is, wordt de balanceringsfase geactiveerd. Met de taakverdelingsfase worden geen replica's verplaatst op knooppunttypen die onevenwichtig zijn, wanneer het balanceren tijdelijk wordt onderbroken op deze knooppunttypen (bijvoorbeeld het minimale balanceringsinterval is niet verstreken sinds een vorige balanceringsfase). De detectie van een onevenwichtige status maakt gebruik van algemene mechanismen die al beschikbaar zijn voor klassieke clusterverdeling, maar verbetert de configuratiegranulariteit en flexibiliteit. De mechanismen die worden gebruikt voor het balanceren per knooppunttype om onevenwichtigheid te detecteren, staan in de onderstaande lijst:

  • Drempelwaarden voor metrische verdeling per knooppunttype zijn waarden die een vergelijkbare rol hebben als de globaal gedefinieerde balanceringsdrempel die wordt gebruikt in klassieke balancering. De verhouding van minimale en maximale metrische belasting wordt berekend voor elk knooppunttype. Als die verhouding van een knooppunttype hoger is dan de gedefinieerde drempelwaarde voor de verdeling van het knooppunttype, wordt het knooppunttype gemarkeerd als onevenwichtig. Voor meer informatie over de configuratie van drempelwaarden voor metrische activiteit per knooppunttype, raadpleegt u de sectie Drempelwaarden voor verdeling per knooppunttype.
  • Drempelwaarden voor metrische activiteit per knooppunttype zijn waarden die een vergelijkbare rol hebben als de globaal gedefinieerde activiteitsdrempelwaarde die wordt gebruikt bij klassieke verdeling. De maximale metrische belasting wordt berekend voor elk knooppunttype. Als de maximale belasting van een knooppunttype hoger is dan de gedefinieerde activiteitsdrempelwaarde voor dat knooppunttype, wordt het knooppunttype gemarkeerd als onevenwichtig. Raadpleeg de sectie activity-thresholds-per-node-type voor meer informatie over de configuratie van metrische activiteitsdrempels per knooppunttype.
  • Het minimale balanceringsinterval per knooppunttype heeft een rol die vergelijkbaar is met het globaal gedefinieerde minimale balanceringsinterval. Voor elk knooppunttype behoudt de cluster-Resource Manager de tijdstempel van de laatste verdeling. Twee opeenvolgende balanceringsfasen kunnen niet worden uitgevoerd op een knooppunttype binnen het gedefinieerde minimale balanceringsinterval. Voor meer informatie over de configuratie van het minimale balanceringsinterval per knooppunttype, raadpleegt u de sectie met het minimale balanceringsinterval per knooppunttype.

De verdeling per knooppunttype beschrijven

Als u balancering per knooppunttype wilt inschakelen, moet parameter SeparateBalancingStrategyPerNodeType zijn ingeschakeld in een clustermanifest. Bovendien moet de subclusterfunctie ook zijn ingeschakeld. Voorbeeld van de sectie PlacementAndLoadBalancing van een clustermanifest voor het inschakelen van de functie:

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

ClusterConfig.json voor zelfstandige implementaties of Template.json voor door Azure gehoste clusters:

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

Zoals we in de vorige sectie hebben beschreven, kunnen drempelwaarden en intervallen per knooppunttype worden opgegeven. Raadpleeg de volgende secties voor meer informatie over het bijwerken van specifieke parameters:

Drempelwaarden voor verdeling per knooppunttype

De drempelwaarde voor metrische verdeling kan per knooppunttype worden gedefinieerd om de granulariteit van de balanceringsconfiguratie te verhogen. Evenwichtsdrempels hebben het type drijvende komma, omdat ze een drempelwaarde vertegenwoordigen voor de verhouding van de maximale en minimale belastingswaarde binnen een bepaald knooppunttype. Drempelwaarden voor de verdeling worden gedefinieerd in de sectie PlacementAndLoadBalancingOverrides voor elk knooppunttype:

<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>

Als de drempelwaarde voor het verdelen van een metrische waarde niet is gedefinieerd voor een knooppunttype, neemt drempelwaarde de waarde over van de drempelwaarde voor metrische verdeling die globaal is gedefinieerd in de sectie PlacementAndLoadBalancing . Als de drempelwaarde voor het verdelen van een metrische waarde niet is gedefinieerd voor een knooppunttype of globaal in een sectie PlacementAndLoadBalancing , heeft drempelwaarde de standaardwaarde van één.

Activiteitsdrempels per knooppunttype

Drempelwaarde voor metrische activiteit kan per knooppunttype worden gedefinieerd om de granulariteit van de balanceringsconfiguratie te vergroten. Activiteitsdrempels hebben het type geheel getal, omdat ze een drempelwaarde vertegenwoordigen voor de maximale belastingswaarde binnen een bepaald knooppunttype. Activiteitsdrempels worden gedefinieerd in de sectie PlacementAndLoadBalancingOverrides voor elk knooppunttype:

<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>

Als de activiteitsdrempelwaarde voor een metrische waarde niet is gedefinieerd voor een knooppunttype, neemt drempelwaarde de waarde over van de metrische activiteitsdrempel die globaal is gedefinieerd in de sectie PlacementAndLoadBalancing . Als de activiteitsdrempelwaarde voor een metrische waarde niet is gedefinieerd voor een knooppunttype of globaal in een sectie PlacementAndLoadBalancing , heeft drempelwaarde de standaardwaarde nul.

Minimaal evenwichtsinterval per knooppunttype

Er kan per knooppunttype een minimaal evenwichtsinterval worden gedefinieerd om de granulariteit van de balanceringsconfiguratie te vergroten. Minimaal evenwichtsinterval heeft het type geheel getal, omdat dit de minimale hoeveelheid tijd vertegenwoordigt die moet worden verstreken voor twee opeenvolgende balanceringsrondes op hetzelfde knooppunttype. Het minimale balanceringsinterval wordt gedefinieerd in de sectie PlacementAndLoadBalancingOverrides voor elk knooppunttype:

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

Als er geen minimaal balanceringsinterval is gedefinieerd voor een knooppunttype, neemt interval de waarde over van het minimale balanceringsinterval dat globaal is gedefinieerd in de sectie PlacementAndLoadBalancing . Anders, als minimaal interval niet is gedefinieerd voor een knooppunttype of globaal in een sectie PlacementAndLoadBalancing , heeft minimaal interval de standaardwaarde nul , wat aangeeft dat pauze tussen opeenvolgende balanceringsrondes niet vereist is.

Voorbeelden

Voorbeeld 1

Laten we eens kijken naar een geval waarin een cluster twee knooppunttypen bevat: knooppunttype A en knooppunttype B. Alle services rapporteren dezelfde metrische gegevens en ze zijn verdeeld over deze knooppunttypen, waardoor belastingstatistieken voor hen verschillend zijn. In het voorbeeld heeft het knooppunttype A een maximale belasting van 300 en minimaal 100, en het knooppunttype B heeft een maximale belasting van 700 en een minimale belasting van 500:

Diagram met een voorbeeld van een drempelwaarde voor de verdeling van knooppunttypen met twee knooppunttypen.

De klant heeft gedetecteerd dat werkbelastingen van twee knooppunttypen verschillende balanceringsbehoeften hebben en heeft besloten om verschillende drempelwaarden voor verdeling en activiteit per knooppunttype in te stellen. De drempelwaarde voor het balanceren van knooppunttype A is 2,5 en de drempelwaarde voor activiteit is 50. Voor knooppunttype B heeft de klant de drempelwaarde voor de verdeling ingesteld op 1,2 en de activiteitsdrempelwaarde op 400.

Tijdens de detectie van onevenwichtigheid voor het cluster in dit voorbeeld, schenden beide knooppunttypen de activiteitsdrempelwaarde. De maximale belasting van knooppunttype A van 300 is hoger dan de gedefinieerde activiteitsdrempelwaarde van 50. De maximale belasting van knooppunttype B van 700 is hoger dan de gedefinieerde activiteitsdrempelwaarde van 400. Knooppunttype A is in strijd met de criteria voor de drempelwaarde voor de verdeling, omdat de huidige verhouding van maximale en minimale belasting 3 is en de drempelwaarde voor de verdeling 2,5. Daar tegenover staat dat knooppunttype B niet in strijd is met de criteria voor de verdelingsdrempel, omdat de huidige verhouding van de maximale en minimale belasting voor dit knooppunttype 1,2 is, maar de drempelwaarde voor de verdeling 1,4 is. Balancing is alleen vereist voor replica's in het knooppunttype A en de enige set replica's die in aanmerking komen voor verplaatsingen tijdens de balanceringsfase, zijn replica's die in het knooppunttype A zijn geplaatst.

Voorbeeld 2

Laten we eens kijken naar een geval waarin een cluster drie knooppunttypen bevat: knooppunttype A, B en C. Alle services rapporteren dezelfde metrische gegevens en ze zijn verdeeld over deze knooppunttypen, waardoor belastingstatistieken voor hen verschillend zijn. In het voorbeeld heeft het knooppunttype A een maximale belasting van 600 en minimaal 100, het knooppunttype B heeft een maximale belasting van 900 en een minimale belasting van 100, en knooppunttype C heeft een maximale belasting van 600 en een minimale belasting van 300:

Diagram met een voorbeeld van een drempelwaarde voor de verdeling van knooppunttypen met drie knooppunttypen.

De klant heeft vastgesteld dat werkbelastingen van deze knooppunttypen verschillende taakverdelingsbehoeften hebben en heeft besloten om verschillende drempelwaarden voor balancering en activiteit per knooppunttype in te stellen. De taakverdelingsdrempel van knooppunttype A is 5 en de drempelwaarde voor activiteit is 700. Voor knooppunttype B heeft de klant de drempelwaarde voor het balanceren ingesteld op 10 en de activiteitsdrempelwaarde op 200. Voor knooppunttype C heeft de klant de drempelwaarde voor het balanceren ingesteld op 2 en de activiteitsdrempelwaarde op 300.

De maximale belasting van knooppunttype A van 600 is lager dan de gedefinieerde drempelwaarde voor activiteit van 700, dus knooppunttype A wordt niet in balans gebracht. De maximale belasting van knooppunttype B van 900 is hoger dan de gedefinieerde drempelwaarde voor activiteit van 200. Het knooppunttype B schendt de criteria voor de activiteitsdrempel. De maximale belasting van knooppunttype C van 600 is hoger dan de gedefinieerde drempelwaarde voor activiteit van 300. Het knooppunttype C schendt de criteria voor de activiteitsdrempel. Het knooppunttype B is niet in strijd met de criteria voor de verdelingsdrempel, omdat de huidige verhouding van maximale en minimale belasting voor dit knooppunttype 9 is, maar de drempelwaarde voor de verdeling 10 is. Knooppunttype C schendt de criteria voor de drempelwaarde voor de verdeling, omdat de huidige verhouding van maximale en minimale belasting 2 is en de drempelwaarde voor de verdeling 2. Balancering is alleen vereist voor replica's in het knooppunttype C en de enige set replica's die in aanmerking komt voor verplaatsingen tijdens de balanceringsfase, zijn replica's die in het knooppunttype C zijn geplaatst.

Volgende stappen

  • Metrische gegevens zijn de wijze waarop het Service Fabric-clusterresourcebeheer het verbruik en de capaciteit in het cluster beheert. Raadpleeg het artikel over metrische gegevens voor meer informatie over metrische gegevens en hoe u deze configureert
  • Verplaatsingskosten is een manier om het cluster te signaleren Resource Manager dat bepaalde services duurder zijn om te verplaatsen dan andere. Raadpleeg het artikel verplaatsingskosten voor meer informatie over verplaatsingskosten
  • De Cluster Resource Manager heeft verschillende beperkingen die u kunt configureren om het verloop in het cluster te vertragen. Ze zijn normaal gesproken niet nodig, maar als u ze nodig hebt, kunt u er meer over vinden in het artikel over geavanceerde beperking
  • De cluster Resource Manager subclustering kan herkennen en afhandelen. Subclustering kan optreden wanneer u plaatsingsbeperkingen en balancering gebruikt. Zie het artikel subclustering voor meer informatie over hoe subclustering van invloed kan zijn op het balanceren en hoe u dit kunt afhandelen