Share via


Taakverdeling voor je Service Fabric-cluster maken

Service Fabric Cluster Resource Manager ondersteunt dynamische belastingswijzigingen, reagerend op toevoegingen of verwijderingen van knooppunten of services. Ook worden beperkingen automatisch gecorrigeerd en wordt het cluster proactief opnieuw in evenwicht gebracht. Maar hoe vaak worden deze acties uitgevoerd en wat zorgt ervoor dat ze worden geactiveerd?

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

  • Plaatsing: deze fase gaat over het plaatsen van stateful replica's of stateless exemplaren die ontbreken. Plaatsing omvat zowel nieuwe services als het verwerken van stateful replica's of stateless exemplaren die zijn mislukt. Hier worden replica's of exemplaren verwijderd en verwijderd.
  • Beperkingscontroles: in deze fase worden schendingen van de verschillende plaatsingsbeperkingen (regels) in het systeem gecontroleerd en gecorrigeerd. Voorbeelden van regels zijn zaken als het controleren of knooppunten niet over de capaciteit beschikken en dat aan de plaatsingsbeperkingen van een service wordt voldaan.
  • Taakverdeling: deze fase controleert of herverdeling vereist is op basis van het geconfigureerde gewenste saldoniveau voor verschillende metrische gegevens. Als dat het zo is, wordt geprobeerd een rangschikking te vinden in het cluster dat evenwichtiger is.

Timers voor Cluster Resource Manager configureren

De eerste set besturingselementen rond taakverdeling is een set timers. Deze timers bepalen hoe vaak de Cluster Resource Manager het cluster onderzoekt en corrigerende acties uitvoert.

Elk van deze verschillende typen correcties die door Cluster Resource Manager kunnen worden aangebracht, wordt bepaald door een andere timer die de frequentie bepaalt. Wanneer elke timer wordt geactiveerd, wordt de taak gepland. Resource Manager is standaard:

  • scant de status en past updates toe (zoals de opname dat een knooppunt offline is) elke 1/10e van een seconde
  • stelt de plaatsingscontrolevlag elke seconde in
  • hiermee stelt u de vlag voor beperkingscontrole elke seconde in
  • stelt de taakverdelingsvlag om de vijf seconden in

Hieronder ziet u voorbeelden van de configuratie voor deze timers:

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 gehoste Azure-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 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 worden uitgeschakeld als 'vlag instellen'. De Cluster Resource Manager zorgt bijvoorbeeld voor aanvragen die in behandeling zijn om services te maken voordat het cluster in balans wordt gebracht. Zoals u kunt zien met de standaardtijdsintervallen die zijn opgegeven, scant de Cluster Resource Manager op alles wat het vaak moet doen. Normaal gesproken betekent dit dat de set wijzigingen die tijdens elke stap zijn aangebracht, klein is. Kleine, frequente wijzigingen zorgen ervoor dat Cluster Resource Manager reageert wanneer er iets gebeurt in het cluster. De standaardtimers bieden een aantal batchverwerking, omdat veel van dezelfde typen gebeurtenissen zich meestal gelijktijdig voordoen.

Wanneer knooppunten bijvoorbeeld mislukken, kunnen ze dat doen in volledige foutdomeinen tegelijk. Al deze fouten worden vastgelegd tijdens de volgende statusupdate na de PLBRefreshGap. De correcties worden bepaald tijdens de volgende plaatsing, beperkingscontrole en taakverdeling. Standaard scant Cluster Resource Manager geen uren aan wijzigingen in het cluster en probeert alle wijzigingen tegelijk aan te pakken. Dit zou leiden tot pieken in het 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 taakverdeling

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

Taakverdelingsdrempels worden per metrische gegevens gedefinieerd 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 gehoste Azure-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 verbruikt elke service één eenheid van een metrische waarde. In het bovenste voorbeeld is de maximale belasting op een knooppunt vijf en het minimum is twee. Stel dat de taakverdelingsdrempel voor deze metrische waarde drie is. Omdat de verhouding in het cluster 5/2 = 2,5 is en dat kleiner is dan de opgegeven taakverdelingsdrempel van drie, wordt het cluster verdeeld. Er wordt geen taakverdeling geactiveerd wanneer De Cluster Resource Manager controleert.

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 taakverdelingsdrempel van drie voor die metrische waarde. Als gevolg hiervan wordt een herverdelingsuitvoering gepland wanneer de taakverdelingstimer de volgende keer wordt geactiveerd. In een situatie zoals deze belasting wordt meestal gedistribueerd naar Node 3. Omdat Service Fabric Cluster Resource Manager geen greedy aanpak gebruikt, kan sommige belasting ook worden gedistribueerd naar Node 2.

Diagram met een actie die is ondernomen als reactie op een taakverdelingsdrempel.

Notitie

'Taakverdeling' verwerkt twee verschillende strategieën voor het beheren van de belasting in uw cluster. De standaardstrategie die door Resource Manager wordt 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 het verdelen en defragmenteren kunnen worden gebruikt voor verschillende metrische gegevens binnen hetzelfde cluster. Een service kan zowel metrische gegevens voor taakverdeling als defragmentatie bevatten. Voor metrische gegevens over de fragmentatie wordt de verhouding tussen de belastingen in het cluster opnieuw verdeeld wanneer deze onder de taakverdelingsdrempel valt.

Het is geen expliciet doel om onder de drempelwaarde voor taakverdeling te komen. Drempelwaarden voor taakverdeling zijn slechts een trigger. Wanneer de taakverdeling wordt uitgevoerd, bepaalt de Cluster Resource Manager welke verbeteringen het kan aanbrengen, indien van toepassing. Alleen omdat een zoekactie wordt gestart, betekent niets voor bewegingen. Soms is het cluster onevenwichtig, maar te beperkt om te corrigeren. De verbeteringen vereisen ook bewegingen die te kostbaar zijn).

Drempelwaarden voor activiteit

Hoewel knooppunten relatief onevenwichtig zijn, is de totale belasting in het cluster 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 mogelijk geen tijd besteden aan het verdelen van het cluster omdat er weinig te winnen is. Als het cluster een evenwicht heeft ondergaan, zou u netwerk- en rekenresources uitgeven om dingen te verplaatsen zonder dat u een groot absoluut verschil hoeft te maken. Om onnodige verplaatsingen te voorkomen, is er een ander besturingselement dat activiteitsdrempels wordt genoemd. Met drempelwaarden voor activiteiten kunt u een absolute ondergrens voor activiteit opgeven. Als er geen knooppunt boven deze drempelwaarde valt, wordt de taakverdeling niet geactiveerd, zelfs niet als aan de drempelwaarde voor taakverdeling wordt voldaan.

Stel dat we de drempelwaarde voor taakverdeling van drie behouden voor deze metrische waarde. Stel ook dat we een drempelwaarde voor activiteit van 1536 hebben. In het eerste geval, terwijl het cluster onevenwichtig is volgens de drempelwaarde voor taakverdeling, voldoet er geen knooppunt aan die activiteitsdrempel, zodat er niets gebeurt. In het onderste voorbeeld overschrijdt Node 1 de drempelwaarde voor activiteit. Omdat zowel de taakdrempelwaarde als de activiteitsdrempel voor de metrische waarde worden overschreden, wordt de taakverdeling gepland. Laten we eens kijken naar het volgende diagram:

Diagram met een voorbeeld van een drempelwaarde voor knooppuntactiviteit.

Net als bij taakverdelingsdrempels worden activiteitsdrempels per metrische waarde gedefinieerd via de clusterdefinitie:

ClusterManifest.xml

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

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

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

Taakverdelings- en activiteitsdrempels zijn beide gekoppeld aan een specifieke metrische waarde. De taakverdeling wordt alleen geactiveerd als zowel de drempelwaarde voor taakverdeling als de activiteitsdrempel voor dezelfde metrische waarde worden overschreden.

Notitie

Wanneer deze niet is opgegeven, is de taakverdelingsdrempel voor een metrische waarde 1 en is de drempelwaarde voor activiteit 0. Dit betekent dat de Cluster Resource Manager probeert deze metrische gegevens perfect te verdelen voor elke bepaalde belasting. Als u aangepaste metrische gegevens gebruikt, wordt u aangeraden uw eigen taakverdelings- en activiteitsdrempels expliciet te definiëren voor uw metrische gegevens.

Services in balans brengen

Of het cluster onbalans heeft 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 het geheugen op één knooppunt is gestapeld, kunnen meerdere replica's of exemplaren hieraan bijdragen. Het oplossen van de onevenwichtigheid kan vereisen dat een van de stateful replica's of staatloze exemplaren die gebruikmaken van de onevenwichtige metrische gegevens, moeten worden verplaatst.

Af en toe wordt een service die niet zelf onevenwichtig was verplaatst (onthoud de discussie van lokale en globale gewichten eerder). Waarom zou een service worden verplaatst wanneer alle metrische gegevens van die service in balans waren? 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 1 en metrische gegevens 2.
  • Service 2 rapporteert metrische gegevens 2 en metrische gegevens 3.
  • Service 3 rapporteert metrische gegevens 3 en metrische gegevens 4.
  • Service 4 rapporteert metrische gegevens 99.

We hebben niet echt vier onafhankelijke services, we hebben drie services die gerelateerd zijn en een die zelfstandig is uitgeschakeld.

Diagram waarin wordt getoond hoe u services samen kunt verdelen.

Vanwege deze keten is het mogelijk dat een onevenwichtigheid in metrische gegevens 1-4 replica's of exemplaren van services 1-3 kan veroorzaken om te navigeren. We weten ook dat een onevenwichtigheid in metrische gegevens 1, 2 of 3 geen verplaatsingen in Service 4 kan veroorzaken. Er is geen punt omdat het verplaatsen van de replica's of exemplaren die behoren tot Service 4, absoluut niets kan doen om het saldo van metrische gegevens 1-3 te beïnvloeden.

De Cluster Resource Manager bepaalt automatisch 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 taakverdeling 2 is bijvoorbeeld mogelijk bijgewerkt om metrische gegevens 2 te verwijderen. Hierdoor wordt de keten tussen Service 1 en Service 2 verbroken. In plaats van twee groepen gerelateerde services zijn er drie:

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

Taakverdeling van een cluster per knooppunttype

Zoals we in de vorige secties hebben beschreven, zijn de belangrijkste besturingselementen voor het activeren van herverdeling activiteitsdrempels, taakdrempels en timers. Service Fabric Cluster Resource Manager biedt gedetailleerdere controle over het activeren van herverdeling met het opgeven van parameters per knooppunttype en het toestaan van beweging alleen voor onevenwichtige knooppunttypen. Het belangrijkste voordeel van het verdelen per knooppunttype is het toestaan van prestatieverbeteringen voor knooppunttypen waarvoor strengere taakverdelingsregels zijn vereist, zonder prestatievermindering op andere knooppunttypen. De functie bevat twee hoofdonderdelen:

  • Detectie van onevenwichtigheid wordt uitgevoerd per knooppunttype. De eerder globale berekening van onevenwichtigheid wordt berekend voor elk knooppunttype. Als alle knooppunttypen evenwichtig zijn, activeert crm de taakverdelingsfase niet. Als er ten minste één knooppunttype onevenwichtig is, is de taakverdelingsfase nodig.
  • Door de taakverdeling worden replica's alleen verplaatst op een knooppunttype dat onevenwichtig is, worden andere knooppunttypen niet beïnvloed door de taakverdelingsfase.

Hoe taakverdeling per knooppunttype van invloed is op een cluster

Tijdens het verdelen van een cluster per knooppunttype berekent de Service Fabric-clusterbronbeheer de onevenwichtige status voor elk knooppunttype. Als ten minste één knooppunttype onevenwichtig is, wordt de taakverdelingsfase geactiveerd. Tijdens de taakverdelingsfase worden replica's niet verplaatst op knooppunttypen die onevenwichtig zijn, wanneer de taakverdeling tijdelijk wordt onderbroken op deze knooppunttypen (bijvoorbeeld een minimaal taakinterval is niet verstreken sinds een eerdere taakverdelingsfase). 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 verdelen per knooppunttype om onevenwichtigheid te detecteren, worden gegeven in de onderstaande lijst:

  • Drempelwaarden voor metrische taakverdeling per knooppunttype zijn waarden met een vergelijkbare rol als de globaal gedefinieerde taakdrempelwaarde die wordt gebruikt in klassieke taakverdeling. De verhouding tussen minimale en maximale metrische belasting wordt berekend voor elk knooppunttype. Als deze verhouding van een knooppunttype hoger is dan de gedefinieerde taakverdelingsdrempel van het knooppunttype, wordt het knooppunttype gemarkeerd als onevenwichtige waarde. Voor meer informatie over de configuratie van drempelwaarden voor metrische activiteit per knooppunttype, controleert u de taakverdelingsdrempels per sectie van het knooppunttype.
  • Drempelwaarden voor metrische activiteit per knooppunttype zijn waarden die een vergelijkbare rol hebben als de wereldwijd gedefinieerde activiteitsdrempelwaarde die wordt gebruikt in klassieke taakverdeling. De maximale metrische belasting wordt berekend voor elk knooppunttype. Als de maximale belasting van een knooppunttype hoger is dan de gedefinieerde activiteitsdrempel voor dat knooppunttype, wordt het knooppunttype gemarkeerd als onevenwichtig. Raadpleeg de sectie activiteitsdrempels per knooppunttype voor meer informatie over de configuratie van drempelwaarden voor metrische activiteit per knooppunttype.
  • Het minimale taakverdelingsinterval per knooppunttype heeft een rol die vergelijkbaar is met het globaal gedefinieerde minimale taakverdelingsinterval. Voor elk knooppunttype behoudt Cluster Resource Manager de tijdstempel van de laatste taakverdeling. Twee opeenvolgende taakverdelingsfasen kunnen niet worden uitgevoerd op een knooppunttype binnen het gedefinieerde minimale taakverdelingsinterval. Controleer het minimale taakverdelingsinterval per knooppunttype voor meer informatie over de configuratie van het minimale taakverdelingsinterval per knooppunttypesectie.

Taakverdeling per knooppunttype beschrijven

Als u taakverdeling per knooppunttype wilt inschakelen, moet parameter SeparateBalancingStrategyPerNodeType zijn ingeschakeld in een clustermanifest. Daarnaast moet de functie voor subclustering ook worden ingeschakeld. Voorbeeld van een clustermanifest PlacementAndLoadBalancing-sectie 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 gehoste Azure-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 taakverdeling per knooppunttype

Drempelwaarde voor metrische taakverdeling kan per knooppunttype worden gedefinieerd om de granulariteit van de configuratie van de taakverdeling te vergroten. Taakverdelingsdrempels hebben een drijvende-kommatype, omdat deze de drempelwaarde vertegenwoordigen voor de verhouding tussen de maximale en minimale belastingswaarde binnen een bepaald knooppunttype. Taakverdelingsdrempels 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 taakverdelingsdrempel voor een metrische waarde niet is gedefinieerd voor een knooppunttype, neemt drempelwaarde de waarde over van de drempelwaarde voor metrische taakverdeling die globaal is gedefinieerd in de sectie PlacementAndLoadBalancing . Als de drempelwaarde voor een metrische waarde niet is gedefinieerd voor een knooppunttype of globaal in een sectie PlacementAndLoadBalancing , heeft de drempelwaarde een standaardwaarde van één.

Activiteitsdrempels per knooppunttype

Drempelwaarde voor metrische activiteit kan per knooppunttype worden gedefinieerd om de granulariteit van de taakverdelingsconfiguratie te vergroten. Activiteitsdrempels hebben een geheel getal, omdat ze een drempelwaarde vertegenwoordigen voor 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 activiteitsdrempel voor een metrische waarde niet is gedefinieerd voor een knooppunttype, neemt drempelwaarde de waarde over van de drempelwaarde voor metrische activiteit die globaal is gedefinieerd in de sectie PlacementAndLoadBalancing . Als de activiteitsdrempel voor een metrische waarde niet is gedefinieerd voor een knooppunttype of globaal in een sectie PlacementAndLoadBalancing , heeft de drempelwaarde de standaardwaarde nul.

Minimale taakverdelingsinterval per knooppunttype

Er kan een minimaal taakinterval per knooppunttype worden gedefinieerd om de granulariteit van de taakconfiguratie te vergroten. Minimaal taakinterval heeft een geheel getal, omdat dit de minimale tijd vertegenwoordigt die moet worden doorgegeven voor twee opeenvolgende taakverdelingsrondes op hetzelfde knooppunttype. Het minimale taakverdelingsinterval wordt gedefinieerd in de sectie PlacementAndLoadBalancingOverrides voor elk knooppunttype:

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

Als een minimaal taakinterval niet is gedefinieerd voor een knooppunttype, neemt interval de waarde over van het minimale taakverdelingsinterval dat globaal is gedefinieerd in de sectie PlacementAndLoadBalancing . Als een minimaal interval niet is gedefinieerd voor een knooppunttype of globaal in een sectie PlacementAndLoadBalancing , heeft minimaal interval de standaardwaarde nul die aangeeft dat pauze tussen opeenvolgende taakverdelingsrondes 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 gesplitst tussen deze knooppunttypen, waardoor belastingstatistieken voor hen verschillen. 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 knooppunttypeverdelingsdrempel met twee knooppunttypen.

De klant heeft gedetecteerd dat workloads van twee knooppunttypen verschillende taakverdelingsbehoeften hebben en hebben besloten om verschillende taakverdelings- en activiteitsdrempels per knooppunttype in te stellen. De drempelwaarde voor taakverdeling van knooppunttype A is 2,5 en de drempelwaarde voor activiteit is 50. Voor knooppunttype B stelt de klant de taakverdelingsdrempel in op 1,2 en de activiteitsdrempelwaarde op 400.

Tijdens de detectie van onevenwichtigheid voor het cluster in dit voorbeeld schenden beide knooppunttypen de drempelwaarde voor activiteit. De maximale belasting van het knooppunttype A van 300 is hoger dan de gedefinieerde activiteitsdrempel van 50. De maximale belasting van het knooppunttype B van 700 is hoger dan de gedefinieerde activiteitsdrempel van 400. Knooppunttype A schendt de drempelwaardecriteria voor taakverdeling, omdat de huidige verhouding van maximum- en minimumbelasting 3 is en de taakverdelingsdrempel 2,5 is. Het tegenovergestelde is dat knooppunttype B niet in strijd is met de drempelwaardecriteria voor taakverdeling, omdat de huidige verhouding van maximum- en minimumbelasting voor dit knooppunttype 1,2 is, maar de taakverdelingsdrempel 1,4 is. Taakverdeling is alleen vereist voor replica's in het knooppunttype A en de enige set replica's die in aanmerking komen voor bewegingen tijdens de taakverdelingsfase, zijn replica's die in het knooppunttype A worden geplaatst.

Voorbeeld 2

Laten we eens kijken naar een geval waarin een cluster drie knooppunttypen, knooppunttype A, B en C bevat. Alle services rapporteren dezelfde metrische gegevens en ze zijn gesplitst tussen deze knooppunttypen, waardoor belastingstatistieken voor hen verschillen. 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 minimaal 300:

Diagram met een voorbeeld van een knooppunttypeverdelingsdrempel met drie knooppunttypen.

De klant heeft gedetecteerd dat workloads van deze knooppunttypen verschillende taakverdelingsbehoeften hebben en hebben besloten om verschillende taakverdelings- en activiteitsdrempels per knooppunttype in te stellen. De drempelwaarde voor taakverdeling van knooppunttype A is 5 en de drempelwaarde voor activiteit is 700. Voor knooppunttype B stelt de klant de taakverdelingsdrempel in op 10 en de activiteitsdrempelwaarde op 200. Voor knooppunttype C stelt de klant de taakverdelingsdrempel in op 2 en de activiteitsdrempelwaarde op 300.

De maximale belasting van knooppunttype A van 600 is lager dan de gedefinieerde activiteitsdrempel van 700, dus knooppunttype A wordt niet verdeeld. De maximale belasting van het knooppunttype B van 900 is hoger dan de gedefinieerde activiteitsdrempel van 200. Het knooppunttype B voldoet aan de criteria voor de drempelwaarde voor activiteit. De maximale belasting van het knooppunttype C van 600 is hoger dan de gedefinieerde activiteitsdrempel van 300. Het knooppunttype C schendt criteria voor de drempelwaarde voor activiteit. Het knooppunttype B voldoet niet aan de drempelwaardecriteria voor de taakverdeling, omdat de huidige verhouding van maximum- en minimumbelasting voor dit knooppunttype 9 is, maar de taakverdelingsdrempel is 10. Knooppunttype C schendt de drempelwaardecriteria voor taakverdeling, omdat de huidige verhouding van de maximale en minimale belasting 2 is en de taakverdelingsdrempel 2 is. De taakverdeling is alleen vereist voor replica's in het knooppunttype C en de enige set replica's die in aanmerking komen voor bewegingen tijdens de taakverdelingsfase, zijn replica's die in het knooppunttype C worden geplaatst.

Volgende stappen