Dela via


Balansera ditt Service Fabric-kluster

Service Fabric Cluster Resource Manager stöder ändringar av dynamisk belastning som reagerar på tillägg eller borttagningar av noder eller tjänster. Det korrigerar också automatiskt begränsningsöverträdelser och balanserar proaktivt om klustret. Men hur ofta vidtas dessa åtgärder och vad utlöser dem?

Det finns tre olika arbetskategorier som Klusterresurshanteraren utför:

  • Placering – det här steget handlar om att placera tillståndskänsliga repliker eller tillståndslösa instanser som saknas. Placeringen omfattar både nya tjänster och hantering av tillståndskänsliga repliker eller tillståndslösa instanser som har misslyckats. Här hanteras borttagning och borttagning av repliker eller instanser.
  • Begränsningskontroller – det här steget söker efter och korrigerar överträdelser av de olika placeringsbegränsningarna (reglerna) i systemet. Exempel på regler är saker som att se till att noder inte överskrider kapaciteten och att en tjänsts placeringsbegränsningar uppfylls.
  • Balansering – det här steget kontrollerar om ombalansering krävs baserat på den konfigurerade önskade balansnivån för olika mått. Om så är fallet försöker den hitta ett arrangemang i klustret som är mer balanserat.

Konfigurera Timers för Klusterresurshanteraren

Den första uppsättningen kontroller kring balansering är en uppsättning timers. Dessa timers styr hur ofta Klusterresurshanteraren undersöker klustret och vidtar korrigerande åtgärder.

Var och en av dessa olika typer av korrigeringar som Klusterresurshanteraren kan göra styrs av en annan timer som styr dess frekvens. När varje timer utlöses schemaläggs uppgiften. Som standard resource manager:

  • genomsöker dess tillstånd och tillämpar uppdateringar (till exempel inspelning av att en nod är nere) var 1/10:e sekund
  • anger flaggan för placeringskontroll varje sekund
  • anger begränsningskontrollflaggan varje sekund
  • anger balansflaggan var femte sekund

Exempel på konfigurationen som styr dessa timers finns nedan:

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 för fristående distributioner eller Template.json för Azure-värdbaserade kluster:

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

I dag utför Klusterresurshanteraren bara en av dessa åtgärder i taget, sekventiellt. Därför refererar vi till dessa timers som "minsta intervall" och de åtgärder som vidtas när timers går av som "inställningsflaggor". Klusterresurshanteraren tar till exempel hand om väntande begäranden om att skapa tjänster innan klustret balanseras. Som du ser med de angivna standardtidsintervallen söker Klusterresurshanteraren efter allt som behövs för att göra det ofta. Normalt innebär det att den uppsättning ändringar som görs under varje steg är liten. Små, frekventa ändringar gör att Klusterresurshanteraren kan svara när saker händer i klustret. Standardtimers ger viss batchbearbetning eftersom många av samma typer av händelser tenderar att inträffa samtidigt.

När noder till exempel misslyckas kan de göra hela feldomäner åt gången. Alla dessa fel registreras under nästa tillståndsuppdatering efter PLBRefreshGap. Korrigeringarna bestäms under följande placering, begränsningskontroll och balanseringskörningar. Som standard genomsöker inte Klusterresurshanteraren genom timmar av ändringar i klustret och försöker åtgärda alla ändringar samtidigt. Att göra det skulle leda till omsättningstoppar.

Klusterresurshanteraren behöver också ytterligare information för att avgöra om klustret är obalanserat. För det har vi två andra konfigurationsdelar: BalancingThresholds och ActivityThresholds.

Tröskelvärden för utjämning

Ett utjämningströskelvärde är den viktigaste kontrollen för att utlösa ombalansering. Utjämningströskeln för ett mått är ett förhållande. Om belastningen för ett mått på den mest inlästa noden dividerat med mängden belastning på den minst inlästa noden överskrider måttets BalancingThreshold är klustret obalanserat. Därför utlöses utjämning nästa gång Klusterresurshanteraren kontrolleras. Timern MinLoadBalancingInterval definierar hur ofta Klusterresurshanteraren ska kontrollera om ombalansering krävs. Kontroll betyder inte att något händer.

Tröskelvärden för utjämning definieras per mått som en del av klusterdefinitionen. Mer information om mått finns i artikeln mått.

ClusterManifest.xml

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

via ClusterConfig.json för fristående distributioner eller Template.json för Azure-värdbaserade kluster:

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

Diagram som visar ett exempel på ett tröskelvärde för nodutjämning

I det här exemplet förbrukar varje tjänst en enhet med vissa mått. I det översta exemplet är den maximala belastningen på en nod fem och minimivärdet är två. Anta att balanströskelvärdet för det här måttet är tre. Eftersom förhållandet i klustret är 5/2 = 2,5 och det är mindre än det angivna balanströskelvärdet på tre, balanseras klustret. Ingen utjämning utlöses när Klusterresurshanteraren kontrolleras.

I det nedre exemplet är den maximala belastningen på en nod 10, medan minimivärdet är två, vilket resulterar i ett förhållande på fem. Fem är större än det avsedda balanströskelvärdet på tre för det måttet. Därför schemaläggs en ombalanseringskörning nästa gång balanstimern utlöses. I en situation som denna distribueras vanligtvis viss belastning till nod 3. Eftersom Service Fabric Cluster Resource Manager inte använder en girig metod kan viss belastning även distribueras till Nod 2.

Diagram som visar en åtgärd som vidtagits som svar på ett utjämningströskelvärde.

Kommentar

"Balancing" hanterar två olika strategier för att hantera belastningen i klustret. Standardstrategin som Klusterresurshanteraren använder är att distribuera belastningen över noderna i klustret. Den andra strategin är defragmentering. Defragmentering utförs under samma balanskörning. Strategier för balansering och defragmentering kan användas för olika mått i samma kluster. En tjänst kan ha mått för både balansering och defragmentering. För defragmenteringsmått utlöser förhållandet mellan belastningarna i klustret ombalansering när den ligger under balanströskeln.

Att komma under tröskelvärdet för utjämning är inte ett uttryckligt mål. Tröskelvärden för utjämning är bara en utlösare. Vid utjämning av körningar avgör Klusterresurshanteraren vilka förbättringar det kan göra, om det finns några. Bara för att en balanssökning startas betyder det inte att något rör sig. Ibland är klustret obalanserat men för begränsat för att korrigeras. Alternativt kräver förbättringarna förflyttningar som är för kostsamma).

Aktivitetströsklar

Ibland, även om noderna är relativt obalanserade, är den totala belastningen i klustret låg. Bristen på belastning kan vara ett tillfälligt dopp, eller på grund av att klustret är nytt och bara blir bootstrapped. I båda fallen kanske du inte vill ägna tid åt att balansera klustret eftersom det inte finns mycket att vinna på. Om klustret genomgick en balansering skulle du spendera nätverks- och beräkningsresurser för att flytta runt saker utan att göra någon stor absolut skillnad. För att undvika onödiga flyttningar finns det en annan kontroll som kallas aktivitetströsklar. Med aktivitetströsklar kan du ange en absolut nedre gräns för aktivitet. Om ingen nod överskrider det här tröskelvärdet utlöses inte balanseringen även om tröskelvärdet för utjämning uppfylls.

Anta att vi behåller vårt balanströskelvärde på tre för det här måttet. Anta också att vi har ett aktivitetströskelvärde på 1536. I det första fallet, medan klustret är obalanserat per utjämningströskeln, finns det ingen nod som uppfyller det aktivitetströskelvärdet, så ingenting händer. I det nedre exemplet ligger Nod 1 över aktivitetströskelvärdet. Eftersom både tröskelvärdet för utjämning och aktivitetströskeln för måttet överskrids, schemaläggs saldot. Låt oss till exempel titta på följande diagram:

Diagram som visar ett exempel på ett tröskelvärde för nodaktivitet.

Precis som tröskelvärden för utjämning definieras aktivitetströsklar per mått via klusterdefinitionen:

ClusterManifest.xml

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

via ClusterConfig.json för fristående distributioner eller Template.json för Azure-värdbaserade kluster:

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

Utjämnings- och aktivitetströsklar är båda knutna till ett specifikt mått – balanseringen utlöses endast om både tröskelvärdet för utjämning och aktivitet överskrids för samma mått.

Kommentar

När det inte anges är utjämningströskelvärdet för ett mått 1 och aktivitetströskelvärdet är 0. Det innebär att Klusterresurshanteraren försöker hålla måttet perfekt balanserat för en viss belastning. Om du använder anpassade mått rekommenderar vi att du uttryckligen definierar dina egna tröskelvärden för balansering och aktivitet för dina mått.

Balansera tjänster tillsammans

Om klustret är obalanserat eller inte är ett klusteromfattande beslut. Vi åtgärdar det dock genom att flytta runt enskilda tjänstrepliker och instanser. Det här är vettigt, eller hur? Om minnet är staplat på en nod kan flera repliker eller instanser bidra till den. Att åtgärda obalansen kan kräva att någon av de tillståndskänsliga replikerna eller tillståndslösa instanser som använder det obalanserade måttet flyttas.

Ibland flyttas dock en tjänst som inte var obalanserad (kom ihåg diskussionen om lokala och globala vikter tidigare). Varför skulle en tjänst flyttas när alla tjänstens mått var balanserade? Nu ska vi se ett exempel:

  • Anta att det finns fyra tjänster, Service 1, Service 2, Service 3 och Service 4.
  • Service 1 rapporterar mått mått 1 och mått 2.
  • Service 2 rapporterar mått mått 2 och mått 3.
  • Service 3 rapporterar mått mått 3 och mått 4.
  • Service 4 rapporterar måttmått 99.

Vi har egentligen inte fyra oberoende tjänster, vi har tre tjänster som är relaterade och en som är av på egen hand.

Diagram som visar hur du balanserar tjänster tillsammans.

På grund av den här kedjan är det möjligt att en obalans i mått 1–4 kan leda till att repliker eller instanser som tillhör tjänster 1–3 flyttas runt. Vi vet också att en obalans i Mått 1, 2 eller 3 inte kan orsaka rörelser i Service 4. Det skulle inte vara någon mening eftersom en flytt av repliker eller instanser som hör till Service 4 kan göra absolut ingenting för att påverka saldot för Mått 1–3.

Klusterresurshanteraren tar automatiskt reda på vilka tjänster som är relaterade. Att lägga till, ta bort eller ändra måtten för tjänster kan påverka deras relationer. Mellan två körningar av utjämningstjänsten 2 kan till exempel ha uppdaterats för att ta bort mått 2. Detta bryter kedjan mellan Service 1 och Service 2. I stället för två grupper med relaterade tjänster finns det nu tre:

Diagram som visar att Klusterresurshanteraren avgör vilka tjänster som är relaterade.

Utjämning av ett kluster per nodtyp

Som vi beskrev i de tidigare avsnitten är de viktigaste kontrollerna för att utlösa ombalansering aktivitetströsklar, balansera tröskelvärden och timers. Service Fabric Cluster Resource Manager ger mer detaljerad kontroll över utlösande ombalansering med att ange parametrar per nodtyp och endast tillåta förflyttning på obalanserade nodtyper. Den största fördelen med att balansera per nodtyp är att tillåta prestandaförbättringar för nodtyper som kräver strängare balansregler, utan prestandaförsämring på andra nodtyper. Funktionen innehåller två huvuddelar:

  • Detektering av obalans görs per nodtyp. Tidigare global beräkning av obalans beräknas för varje nodtyp. Om alla nodtyper är balanserade utlöser CRM inte utjämningsfasen. Om minst en nodtyp är obalanserad krävs annars balansfasen.
  • Om du bara balanserar flyttar repliker på en nodtyp som är obalanserad påverkas inte andra nodtyper av utjämningsfasen.

Hur balansering per nodtyp påverkar ett kluster

Vid utjämning av ett kluster per nodtyp beräknar Service Fabric Cluster Resource Manager obalanstillståndet för varje nodtyp. Om minst en nodtyp är obalanserad utlöses utjämningsfasen. Utjämningsfasen flyttar inte repliker på nodtyper som är obalanserade, när utjämningen tillfälligt pausas på dessa nodtyper (t.ex. har minimalt balansintervall inte passerat sedan en tidigare utjämningsfas). Identifieringen av ett obalanserat tillstånd använder vanliga mekanismer som redan är tillgängliga för klassisk klusterbalansering, men förbättrar konfigurationens kornighet och flexibilitet. De mekanismer som används för att balansera per nodtyp för att identifiera obalans finns i listan nedan:

  • Tröskelvärden för måttutjämning per nodtyp är värden som har en liknande roll som det globalt definierade utjämningströskelvärdet som används vid klassisk balansering. Förhållandet mellan lägsta och högsta måttbelastning beräknas för varje nodtyp. Om förhållandet mellan en nodtyp är högre än det definierade balanströskelvärdet för nodtypen markeras nodtypen som obalanserad. Mer information om konfiguration av tröskelvärden för måttaktivitet per nodtyp finns i avsnittet med tröskelvärden för utjämning per nodtyp.
  • Tröskelvärden för måttaktivitet per nodtyp är värden som har en liknande roll som det globalt definierade aktivitetströskelvärdet som används i klassisk balansering. Den maximala måttbelastningen beräknas för varje nodtyp. Om den maximala belastningen för en nodtyp är högre än det definierade aktivitetströskelvärdet för den nodtypen markeras nodtypen som obalanserad. Mer information om konfiguration av tröskelvärden för måttaktivitet per nodtyp finns i avsnittet activity-thresholds-per-node-type.
  • Minsta balanseringsintervall per nodtyp har en roll som liknar det globalt definierade minsta balansintervallet. För varje nodtyp bevarar Klusterresurshanteraren tidsstämpeln för den senaste utjämningen. Två på varandra följande balansfaser kunde inte köras på en nodtyp inom det definierade minsta balansintervallet. Mer information om konfiguration av minsta balansintervall per nodtyp finns i avsnittet minsta balanseringsintervall per nodtyp.

Beskriva balansering per nodtyp

För att aktivera balansering per nodtyp måste parametern SeparateBalancingStrategyPerNodeType aktiveras i ett klustermanifest. Dessutom måste även undermappningsfunktionen aktiveras. Exempel på ett avsnitt med klustermanifestet PlacementAndLoadBalancing för att aktivera funktionen:

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

ClusterConfig.json för fristående distributioner eller Template.json för Azure-värdbaserade kluster:

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

Som vi beskrev i föregående avsnitt kan tröskelvärden och intervall anges per nodtyp. Mer information om hur du uppdaterar specifika parametrar finns i följande avsnitt:

Balansera tröskelvärden per nodtyp

Tröskelvärde för måttutjämning kan definieras per nodtyp för att öka kornigheten från utjämningskonfigurationen. Utjämningströsklar har flyttaltyp, eftersom de representerar tröskelvärdet för förhållandet mellan högsta och lägsta belastningsvärde inom en viss nodtyp. Tröskelvärden för utjämning definieras i avsnittet PlacementAndLoadBalancingOverrides för varje nodtyp:

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

Om utjämningströskelvärdet för ett mått inte har definierats för en nodtyp ärver tröskelvärdet för måttutjämning som definierats globalt i avsnittet PlacementAndLoadBalancing . Om balanströskelvärdet för ett mått inte har definierats varken för en nodtyp eller globalt i ett PlacementAndLoadBalancing-avsnitt har tröskelvärdet standardvärdet ett.

Aktivitetströsklar per nodtyp

Tröskelvärde för måttaktivitet kan definieras per nodtyp för att öka kornigheten för utjämningskonfigurationen. Aktivitetströsklar har heltalstyp eftersom de representerar tröskelvärdet för maximalt belastningsvärde inom en viss nodtyp. Aktivitetströsklar definieras i avsnittet PlacementAndLoadBalancingOverrides för varje nodtyp:

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

Om aktivitetströskelvärdet för ett mått inte har definierats för en nodtyp ärver tröskelvärdet värdet från tröskelvärdet för måttaktivitet som definierats globalt i avsnittet PlacementAndLoadBalancing . Om aktivitetströskelvärdet för ett mått inte har definierats varken för en nodtyp eller globalt i ett PlacementAndLoadBalancing-avsnitt har tröskelvärdet standardvärdet noll.

Minsta balansintervall per nodtyp

Minimalt balansintervall kan definieras per nodtyp för att öka kornigheten i utjämningskonfigurationen. Minimalt balanseringsintervall har heltalstyp eftersom det representerar den minsta tid som måste passera före två på varandra följande balansrundor på samma nodtyp. Minsta balansintervall definieras i avsnittet PlacementAndLoadBalancingOverrides för varje nodtyp:

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

Om minimalt balansintervall inte har definierats för en nodtyp ärver intervallet värdet från det minsta balansintervall som definieras globalt i avsnittet PlacementAndLoadBalancing . Annars, om minimalt intervall inte har definierats varken för en nodtyp eller globalt i ett PlacementAndLoadBalancing-avsnitt , har minimalt intervall standardvärdet noll , vilket indikerar att paus mellan efterföljande balansrundor inte krävs.

Exempel

Exempel 1

Låt oss överväga ett fall där ett kluster innehåller två nodtyper, nodtyp A och nodtyp B. Alla tjänster rapporterar samma mått och delas mellan dessa nodtyper, vilket innebär att belastningsstatistik skiljer sig åt för dem. I exemplet har nodtypen A maximal belastning på 300 och minst 100, och nodtypen B har maximal belastning på 700 och minsta belastning på 500:

Diagram som visar ett exempel på ett tröskelvärde för nodtypsutjämning med två nodtyper.

Kunden upptäckte att arbetsbelastningar av två nodtyper har olika balansbehov och bestämde sig för att ange olika tröskelvärden för balansering och aktivitet per nodtyp. Tröskelvärdet för utjämning av nodtyp A är 2,5 och aktivitetströskelvärdet är 50. För nodtyp B anger kunden balanströskelvärdet till 1,2 och aktivitetströskelvärdet till 400.

Vid identifiering av obalans för klustret i det här exemplet bryter båda nodtyperna mot aktivitetströskelvärdet. Maximal belastning av nodtyp A300 är högre än det definierade aktivitetströskelvärdet på 50. Maximal belastning av nodtyp B på 700 är högre än det definierade aktivitetströskelvärdet på 400. Nodtyp A bryter mot tröskelvärdet för balansering, eftersom det aktuella förhållandet för maximal och lägsta belastning är 3 och balanströskelvärdet är 2,5. Tvärtom bryter nodtyp B inte mot utjämningströskelvillkoren, eftersom det aktuella förhållandet för maximal och minsta belastning för den här nodtypen är 1,2, men utjämningströskelvärdet är 1,4. Utjämning krävs endast för repliker i nodtyp A, och den enda uppsättning repliker som är berättigade till förflyttningar under utjämningsfasen är repliker som placeras i nodtypen A.

Exempel 2

Låt oss överväga ett fall där ett kluster innehåller tre nodtyper, nodtyp A, B och C. Alla tjänster rapporterar samma mått och delas mellan dessa nodtyper, vilket innebär att belastningsstatistik skiljer sig åt för dem. I exemplet har nodtypen A maximal belastning på 600 och minst 100, nodtypen B har maximal belastning på 900 och minsta belastning på 100, och nodtyp C har maximal belastning på 600 och minsta belastning på 300:

Diagram som visar ett exempel på ett tröskelvärde för nodtypsutjämning med tre nodtyper.

Kunden upptäckte att arbetsbelastningar av dessa nodtyper har olika balansbehov och bestämde sig för att ange olika tröskelvärden för utjämning och aktivitet per nodtyp. Utjämningströskelvärdet för nodtyp A är 5 och aktivitetströskelvärdet är 700. För nodtyp B anger kunden utjämningströskelvärdet till 10 och aktivitetströskelvärdet till 200. För nodtyp C anger kunden utjämningströskelvärdet till 2 och aktivitetströskelvärdet till 300.

Maximal belastning av nodtyp A600 är lägre än det definierade aktivitetströskelvärdet 700, vilket innebär att nodtyp A inte balanseras. Maximal belastning av nodtyp B på 900 är högre än det definierade aktivitetströskelvärdet på 200. Nodtypen B bryter mot kriterierna för aktivitetströskel. Maximal belastning av nodtyp C på 600 är högre än det definierade aktivitetströskelvärdet på 300. Nodtypen C bryter mot kriterierna för aktivitetströskel. Nodtypen B bryter inte mot utjämningströskelvillkoren, eftersom det aktuella förhållandet mellan maximal och minsta belastning för den här nodtypen är 9, men balanströskelvärdet är 10. Nodtyp C bryter mot tröskelvärdet för balansering, eftersom det aktuella förhållandet för maximal och minsta belastning är 2 och balanströskelvärdet är 2. Utjämning krävs endast för repliker i nodtypen C, och den enda uppsättning repliker som är berättigade till förflyttningar under utjämningsfasen är repliker som placeras i nodtypen C.

Nästa steg

  • Mått är hur Service Fabric Cluster Resource Manger hanterar förbrukning och kapacitet i klustret. Mer information om mått och hur du konfigurerar dem finns i artikeln mått
  • Flyttkostnad är ett sätt att signalera till Klusterresurshanteraren att vissa tjänster är dyrare att flytta än andra. Mer information om flyttkostnader finns i artikeln om flyttkostnader
  • Klusterresurshanteraren har flera begränsningar som du kan konfigurera för att sakta ned omsättningen i klustret. De är normalt inte nödvändiga, men om du behöver dem kan du lära dig mer om dem den avancerade begränsningsartikeln
  • Klusterresurshanteraren kan identifiera och hantera underkluster. Underetiketter kan uppstå när du använder placeringsbegränsningar och balansering. Mer information om hur subclustering kan påverka utjämning och hur du kan hantera den finns i artikeln om underlänkning