Equilibrar o cluster do Service Fabric

O Cluster do Service Fabric Resource Manager suporta alterações de carga dinâmicas, reagindo a adições ou remoção de nós ou serviços. Também corrige automaticamente as violações de restrição e reequilibrar proativamente o cluster. Mas com que frequência estas ações são executadas e o que as aciona?

Existem três categorias diferentes de trabalho que o Cluster Resource Manager efetua:

  • Posicionamento – esta fase aborda a colocação de réplicas com monitorização de estado ou instâncias sem estado em falta. A colocação inclui os novos serviços e o processamento de réplicas com monitorização de estado ou instâncias sem estado que falharam. A eliminação e remoção de réplicas ou instâncias são processadas aqui.
  • Verificações de Restrição – esta fase verifica e corrige as violações das diferentes restrições de colocação (regras) no sistema. Exemplos de regras são aspetos como garantir que os nós não estão acima da capacidade e que as restrições de colocação de um serviço são cumpridas.
  • Balanceamento – esta fase verifica se o reequilíbrio é necessário com base no nível de equilíbrio pretendido configurado para diferentes métricas. Nesse caso, tenta encontrar uma disposição no cluster mais equilibrada.

Configurar Temporizadores de cluster Resource Manager

O primeiro conjunto de controlos em torno do balanceamento é um conjunto de temporizadores. Estes temporizadores regem a frequência com que o Cluster Resource Manager examina o cluster e efetua ações corretivas.

Cada um destes diferentes tipos de correções que o Cluster Resource Manager pode fazer é controlado por um temporizador diferente que rege a sua frequência. Quando cada temporizador é acionado, a tarefa é agendada. Por predefinição, o Resource Manager:

  • analisa o respetivo estado e aplica atualizações (como registar que um nó está inativo) a cada 1/10 de segundo
  • define o sinalizador de verificação de colocação a cada segundo
  • define o sinalizador de verificação de restrição a cada segundo
  • define o sinalizador de balanceamento a cada cinco segundos

Seguem-se alguns exemplos da configuração que rege estes temporizadores:

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>

através de ClusterConfig.json para implementações autónomas ou Template.json para clusters alojados no Azure:

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

Atualmente, o Cluster Resource Manager executa apenas uma destas ações de cada vez, sequencialmente. É por isso que referimos estes temporizadores como "intervalos mínimos" e as ações que são executadas quando os temporizadores são desativados como "sinalizadores de definição". Por exemplo, o Cluster Resource Manager trata de pedidos pendentes para criar serviços antes de equilibrar o cluster. Como pode ver pelos intervalos de tempo predefinidos especificados, o Cluster Resource Manager analisa tudo o que precisa de fazer com frequência. Normalmente, isto significa que o conjunto de alterações efetuadas durante cada passo é pequeno. As alterações pequenas e frequentes permitem que o Cluster Resource Manager responsivo quando acontecem coisas no cluster. Os temporizadores predefinidos fornecem alguma criação de batches, uma vez que muitos dos mesmos tipos de eventos tendem a ocorrer em simultâneo.

Por exemplo, quando os nós falham, podem fazê-lo em domínios de falha inteiros de cada vez. Todas estas falhas são capturadas durante a próxima atualização de estado após o PLBRefreshGap. As correções são determinadas durante as seguintes execuções de colocação, verificação de restrição e balanceamento. Por predefinição, o cluster Resource Manager não está a analisar as horas de alterações no cluster e a tentar resolver todas as alterações ao mesmo tempo. Fazê-lo levaria a explosões de abandono.

O cluster Resource Manager também precisa de algumas informações adicionais para determinar se o cluster desequilibrou. Para isso, temos duas outras partes de configuração: BalancingThresholds e ActivityThresholds.

Limiares de balanceamento

Um Limiar de Balanceamento é o principal controlo para acionar o reequilíbrio. O Limiar de Balanceamento de uma métrica é uma proporção. Se a carga de uma métrica no nó mais carregado dividido pela quantidade de carga no nó menos carregado exceder o BalancingThreshold dessa métrica, o cluster fica desequilibrado. Como resultado, o balanceamento é acionado da próxima vez que o Cluster Resource Manager verifica. O temporizador MinLoadBalancingInterval define a frequência com que o cluster Resource Manager deve verificar se o reequilíbrio é necessário. Verificar não significa que algo aconteça.

Os Limiares de Balanceamento são definidos numa base por métrica como parte da definição do cluster. Para obter mais informações sobre métricas, veja o artigo métricas.

ClusterManifest.xml

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

através de ClusterConfig.json para implementações autónomas ou Template.json para clusters alojados no Azure:

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

Diagrama a mostrar um exemplo de um limiar de balanceamento de nós

Neste exemplo, cada serviço está a consumir uma unidade de alguma métrica. No exemplo superior, a carga máxima num nó é cinco e o mínimo é dois. Digamos que o limiar de equilíbrio para esta métrica é três. Uma vez que a proporção no cluster é de 5/2 = 2,5 e que é inferior ao limiar de balanceamento especificado de três, o cluster é equilibrado. Não é acionado qualquer balanceamento quando o Cluster Resource Manager verifica.

No exemplo inferior, a carga máxima num nó é 10, enquanto o mínimo é dois, o que resulta numa proporção de cinco. Cinco é maior do que o limiar de equilíbrio designado de três para essa métrica. Como resultado, será agendada uma execução de reequilíbrio da próxima vez que o temporizador de balanceamento for acionado. Numa situação como esta, alguma carga é geralmente distribuída para o Nó 3. Uma vez que o Cluster do Service Fabric Resource Manager não utiliza uma abordagem gananciosa, alguma carga também pode ser distribuída para o Nó 2.

Diagrama a mostrar uma ação tomada em resposta a um limiar de balanceamento.

Nota

O "Balanceamento" processa duas estratégias diferentes para gerir a carga no cluster. A estratégia predefinida que o Cluster Resource Manager utiliza é distribuir a carga pelos nós no cluster. A outra estratégia é a desfragmentação. A desfragmentação é realizada durante a mesma execução de balanceamento. As estratégias de balanceamento e desfragmentação podem ser utilizadas para diferentes métricas no mesmo cluster. Um serviço pode ter métricas de balanceamento e desfragmentação. Para as métricas de desfragmentação, a proporção das cargas no cluster aciona o reequilíbrio quando está abaixo do limiar de balanceamento.

Ficar abaixo do limiar de equilíbrio não é um objetivo explícito. Os Limiares de Balanceamento são apenas um acionador. Quando o balanceamento é executado, o cluster Resource Manager determina as melhorias que pode fazer, se existirem. Só porque uma pesquisa de equilíbrio é iniciada não significa que nada se mova. Por vezes, o cluster está desequilibrado, mas demasiado limitado para corrigir. Em alternativa, as melhorias requerem movimentos demasiado dispendiosos).

Limiares de atividade

Por vezes, embora os nós sejam relativamente desequilibrados, a quantidade total de carga no cluster é baixa. A falta de carga pode ser um mergulho transitório ou porque o cluster é novo e está apenas a ser iniciado. Em qualquer um dos casos, poderá não querer perder tempo a equilibrar o cluster porque há pouco a ganhar. Se o cluster fosse submetido a um balanceamento, gastaria recursos de rede e computação para mover itens sem fazer grandes diferenças absolutas . Para evitar movimentações desnecessárias, existe outro controlo conhecido como Limiares de Atividade. Os Limiares de Atividade permitem-lhe especificar um limite inferior absoluto para a atividade. Se nenhum nó estiver acima deste limiar, o balanceamento não será acionado mesmo que o Limiar de Balanceamento seja cumprido.

Digamos que retemos o nosso Limiar de Balanceamento de três para esta métrica. Digamos também que temos um Limiar de Atividade de 1536. No primeiro caso, enquanto o cluster está desequilibrado de acordo com o Limiar de Balanceamento, não existe nenhum nó que cumpra esse Limiar de Atividade, pelo que nada acontece. No exemplo inferior, o Nó 1 está acima do Limiar de Atividade. Uma vez que o Limiar de Balanceamento e o Limiar de Atividade da métrica são excedidos, o balanceamento é agendado. Por exemplo, vamos ver o seguinte diagrama:

Diagrama a mostrar um exemplo de um limiar de atividade de nó.

Tal como os Limiares de Balanceamento, os Limiares de Atividade são definidos por métrica através da definição do cluster:

ClusterManifest.xml

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

através de ClusterConfig.json para implementações autónomas ou Template.json para clusters alojados no Azure:

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

Os limiares de balanceamento e atividade estão ambos associados a uma métrica específica . O balanceamento só é acionado se o Limiar de Balanceamento e o Limiar de Atividade forem excedidos para a mesma métrica.

Nota

Quando não especificado, o Limiar de Balanceamento de uma métrica é 1 e o Limiar de Atividade é 0. Isto significa que o cluster Resource Manager tentará manter essa métrica perfeitamente equilibrada para qualquer carga especificada. Se estiver a utilizar métricas personalizadas, recomenda-se que defina explicitamente os seus próprios limiares de balanceamento e atividade para as suas métricas.

Equilibrar serviços em conjunto

Se o cluster está ou não desequilibrado é uma decisão ao nível do cluster. No entanto, corrigimo-lo ao mover réplicas e instâncias de serviço individuais. Isto faz sentido, certo? Se a memória estiver empilhada num nó, várias réplicas ou instâncias poderão estar a contribuir para a mesma. Corrigir o desequilíbrio pode exigir a movimentação de qualquer uma das réplicas com estado ou instâncias sem estado que utilizem a métrica desequilibrada.

Ocasionalmente, porém, um serviço que não estava em si desequilibrado é movido (lembre-se da discussão de pesos locais e globais anteriormente). Por que motivo um serviço seria movido quando todas as métricas desse serviço estavam equilibradas? Vejamos um exemplo:

  • Digamos que existem quatro serviços, o Serviço 1, o Serviço 2, o Serviço 3 e o Serviço 4.
  • O Serviço 1 comunica as métricas Métrica 1 e Métrica 2.
  • O Serviço 2 comunica as métricas Métrica 2 e Métrica 3.
  • O Serviço 3 comunica as métricas Métrica 3 e Métrica 4.
  • O Serviço 4 comunica a métrica Métrica 99.

Não temos quatro serviços independentes, temos três serviços relacionados e um que está desligado por si só.

Diagrama a mostrar como equilibrar os serviços em conjunto.

Devido a esta cadeia, é possível que um desequilíbrio nas métricas 1 a 4 possa fazer com que réplicas ou instâncias pertencentes aos serviços 1-3 se movam. Também sabemos que um desequilíbrio nas Métricas 1, 2 ou 3 não pode causar movimentos no Serviço 4. Não faria sentido, uma vez que mover as réplicas ou instâncias pertencentes ao Serviço 4 não pode fazer absolutamente nada para afetar o saldo das Métricas 1 a 3.

O Cluster Resource Manager detetar automaticamente que serviços estão relacionados. Adicionar, remover ou alterar as métricas dos serviços pode afetar as respetivas relações. Por exemplo, entre duas execuções de balanceamento, o Serviço 2 pode ter sido atualizado para remover a Métrica 2. Isto interrompe a cadeia entre o Serviço 1 e o Serviço 2. Agora, em vez de dois grupos de serviços relacionados, existem três:

Diagrama a mostrar que o Cluster Resource Manager determina que serviços estão relacionados.

Balanceamento de um cluster por tipo de nó

Conforme descrevemos nas secções anteriores, os principais controlos de acionamento do reequilíbrio são limiares de atividade, limiares de balanceamento e temporizadores. O Cluster do Service Fabric Resource Manager fornece um controlo mais granular sobre como acionar o reequilíbrio com a especificação de parâmetros por tipo de nó e permitir movimento apenas em tipos de nós desequilibrados. O principal benefício do balanceamento por tipo de nó é permitir a melhoria do desempenho em tipos de nós que requerem regras de balanceamento mais rigorosas, sem degradação do desempenho noutros tipos de nós. A funcionalidade contém duas partes principais:

  • A deteção de desequilíbrio é efetuada por tipo de nó. Anteriormente, o cálculo global do desequilíbrio é calculado para cada tipo de nó. Se todos os tipos de nós estiverem equilibrados, o CRM não acionará a fase de balanceamento. Caso contrário, se pelo menos um tipo de nó estiver desequilibrado, é necessária a fase de balanceamento.
  • O balanceamento move réplicas apenas num tipo de nó que são desequilibrados, outros tipos de nós não são afetados pela fase de balanceamento.

Como o balanceamento por tipo de nó afeta um cluster

Durante o balanceamento de um cluster por tipo de nó, o Cluster do Service Fabric Resource Manager calcula o estado de desequilíbrio para cada tipo de nó. Se, pelo menos, um tipo de nó for desequilibrado, a fase de balanceamento será acionada. A fase de balanceamento não move réplicas em tipos de nós que estão desequilibrados, quando o balanceamento é temporariamente colocado em pausa nestes tipos de nó (por exemplo, o intervalo de balanceamento mínimo não passou desde uma fase de balanceamento anterior). A deteção de um estado desequilibrado utiliza mecanismos comuns já disponíveis para balanceamento de clusters clássicos, mas melhora a granularidade e flexibilidade da configuração. Os mecanismos utilizados para o balanceamento por tipo de nó para detetar o desequilíbrio são fornecidos na lista abaixo:

  • Os limiares de balanceamento de métricas por tipo de nó são valores que têm uma função semelhante ao limiar de balanceamento definido globalmente utilizado no balanceamento clássico. A proporção de carga de métricas mínima e máxima é calculada para cada tipo de nó. Se essa proporção de um tipo de nó for superior ao limiar de balanceamento definido do tipo de nó, o tipo de nó será marcado como desequilibrado. Para obter mais detalhes sobre a configuração dos limiares de atividade de métricas por tipo de nó, verifique a secção limiares de balanceamento por tipo de nó.
  • Os limiares de atividade de métricas por tipo de nó são valores que têm uma função semelhante ao limiar de atividade definido globalmente utilizado no balanceamento clássico. A carga de métrica máxima é calculada para cada tipo de nó. Se a carga máxima de um tipo de nó for superior ao limiar de atividade definido para esse tipo de nó, o tipo de nó será marcado como desequilibrado. Para obter mais detalhes sobre a configuração dos limiares de atividade de métricas por tipo de nó, verifique a secção activity-thresholds-per-node-type.
  • O intervalo de balanceamento mínimo por tipo de nó tem uma função semelhante ao intervalo de balanceamento mínimo definido globalmente. Para cada tipo de nó, o Cluster Resource Manager preserva o carimbo de data/hora do último equilíbrio. Não foi possível executar duas fases de balanceamento consecutivas num tipo de nó no intervalo de balanceamento mínimo definido. Para obter mais detalhes sobre a configuração do intervalo de balanceamento mínimo por tipo de nó, verifique a secção intervalo de balanceamento mínimo por tipo de nó.

Descrever o balanceamento por tipo de nó

Para ativar o balanceamento por tipo de nó, o parâmetro SeparateBalancingStrategyPerNodeType tem de ser ativado num manifesto de cluster. Além disso, a funcionalidade de subclustering também tem de ser ativada. Exemplo de um manifesto de cluster PlacementAndLoadBalancing secção para ativar a funcionalidade:

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

ClusterConfig.json para implementações autónomas ou Template.json para clusters alojados do Azure:

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

Conforme descrevemos na secção anterior, podem ser especificados limiares e intervalos por tipo de nó. Para obter mais detalhes sobre a atualização de parâmetros específicos, verifique as secções seguintes:

Limiares de balanceamento por tipo de nó

O limiar de balanceamento de métricas pode ser definido por tipo de nó para aumentar a granularidade da configuração de balanceamento. Os limiares de balanceamento têm o tipo de vírgula flutuante, uma vez que representam um limiar para a proporção de valor de carga máximo e mínimo dentro de um tipo de nó específico. Os limiares de balanceamento são definidos na secção PlacementAndLoadBalancingOverrides para cada tipo de nó:

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

Se o limiar de balanceamento de uma métrica não estiver definido para um tipo de nó, o limiar herda o valor do limiar de balanceamento de métricas definido globalmente na secção PlacementAndLoadBalancing . Caso contrário, se o limiar de balanceamento de uma métrica não estiver definido nem para um tipo de nó nem globalmente numa secção PlacementAndLoadBalancing , o limiar terá o valor predefinido de um.

Limiares de atividade por tipo de nó

O limiar de atividade de métricas pode ser definido por tipo de nó para aumentar a granularidade da configuração de balanceamento. Os limiares de atividade têm um tipo de número inteiro, uma vez que representam um limiar para o valor máximo de carga dentro de um determinado tipo de nó. Os limiares de atividade são definidos na secção PlacementAndLoadBalancingOverrides para cada tipo de nó:

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

Se o limiar de atividade de uma métrica não estiver definido para um tipo de nó, o limiar herda o valor do limiar de atividade de métrica definido globalmente na secção PlacementAndLoadBalancing . Caso contrário, se o limiar de atividade de uma métrica não estiver definido nem para um tipo de nó nem globalmente numa secção PlacementAndLoadBalancing , o limiar terá o valor predefinido de zero.

Intervalo de balanceamento mínimo por tipo de nó

O intervalo de balanceamento mínimo pode ser definido por tipo de nó para aumentar a granularidade da configuração de balanceamento. O intervalo de balanceamento mínimo tem um tipo de número inteiro, uma vez que representa a quantidade mínima de tempo que tem de passar antes de duas rondas de balanceamento consecutivas num mesmo tipo de nó. O intervalo de balanceamento mínimo é definido na secção PlacementAndLoadBalancingOverrides para cada tipo de nó:

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

Se o intervalo de balanceamento mínimo não estiver definido para um tipo de nó, o intervalo herda o valor do intervalo de balanceamento mínimo definido globalmente na secção PlacementAndLoadBalancing . Caso contrário, se o intervalo mínimo não for definido nem para um tipo de nó nem globalmente numa secção PlacementAndLoadBalancing , o intervalo mínimo terá o valor predefinido de zero , o que indica que não é necessária uma pausa entre as rondas de balanceamento consecutivas.

Exemplos

Exemplo 1

Vamos considerar um caso em que um cluster contém dois tipos de nó, o tipo de nó A e o tipo de nó B. Todos os serviços comunicam uma mesma métrica e estão divididos entre estes tipos de nó, pelo que as estatísticas de carga são diferentes para eles. No exemplo, o tipo de nó A tem uma carga máxima de 300 e um mínimo de 100 e o tipo de nó B tem uma carga máxima de 700 e uma carga mínima de 500:

Diagrama a mostrar um exemplo de um limiar de balanceamento de tipo de nó com dois tipos de nó.

O cliente detetou que as cargas de trabalho de dois tipos de nós têm necessidades de balanceamento diferentes e decidiu definir diferentes limiares de balanceamento e atividade por tipo de nó. O limiar de balanceamento do tipo de nó A é 2,5 e o limiar de atividade é 50. Para o tipo de nó B, o cliente define o limiar de balanceamento para 1,2 e o limiar de atividade para 400.

Durante a deteção do desequilíbrio para o cluster neste exemplo, ambos os tipos de nós violam o limiar de atividade. A carga máxima do tipo de nó A de 300 é superior ao limiar de atividade definido de 50. A carga máxima do tipo de nó B de 700 é superior ao limiar de atividade definido de 400. O tipo de nó A viola os critérios de limiar de balanceamento, uma vez que a proporção atual de carga máxima e mínima é 3 e o limiar de balanceamento é de 2,5. Em contrário, o tipo de nó B não viola os critérios de limiar de balanceamento, uma vez que a taxa atual de carga máxima e mínima para este tipo de nó é de 1,2, mas o limiar de balanceamento é 1,4. O balanceamento é necessário apenas para réplicas no tipo de nó A e o único conjunto de réplicas que serão elegíveis para movimentos durante a fase de balanceamento são réplicas colocadas no tipo de nó A.

Exemplo 2

Vamos considerar um caso em que um cluster contém três tipos de nó, tipo de nó A, B e C. Todos os serviços comunicam uma mesma métrica e estão divididos entre estes tipos de nó, pelo que as estatísticas de carga são diferentes para eles. No exemplo, o tipo de nó A tem uma carga máxima de 600 e um mínimo de 100, o tipo de nó B tem uma carga máxima de 900 e uma carga mínima de 100 e o tipo de nó C tem uma carga máxima de 600 e uma carga mínima de 300:

Diagrama que mostra um exemplo de um limiar de balanceamento de tipo de nó com três tipos de nós.

O cliente detetou que as cargas de trabalho destes tipos de nó têm necessidades de equilíbrio diferentes e decidiu definir diferentes limiares de balanceamento e atividade por tipo de nó. O limiar de balanceamento do tipo de nó A é 5 e o limiar de atividade é 700. Para o tipo de nó B, o cliente definiu o limiar de balanceamento para 10 e o limiar de atividade para 200. Para o tipo de nó C, o cliente definiu o limiar de balanceamento como 2 e o limiar de atividade para 300.

A carga máxima do tipo de nó A de 600 é inferior ao limiar de atividade definido de 700, pelo que o tipo de nó A não será equilibrado. A carga máxima do tipo de nó B de 900 é superior ao limiar de atividade definido de 200. O tipo de nó B viola os critérios de limiar de atividade. A carga máxima do tipo de nó C de 600 é superior ao limiar de atividade definido de 300. O tipo de nó C viola os critérios de limiar de atividade. O tipo de nó B não viola os critérios de limiar de balanceamento, uma vez que o rácio atual de carga máxima e mínima para este tipo de nó é 9, mas o limiar de balanceamento é 10. O tipo de nó C viola os critérios de limiar de balanceamento, uma vez que a proporção atual de carga máxima e mínima é 2 e o limiar de balanceamento é 2. O equilíbrio é necessário apenas para réplicas no tipo de nó C e o único conjunto de réplicas que serão elegíveis para movimentos durante a fase de balanceamento são as réplicas colocadas no tipo de nó C.

Passos seguintes

  • As métricas são como o Resource Manger do Cluster do Service Fabric gere o consumo e a capacidade no cluster. Para saber mais sobre as métricas e como configurá-las, veja o artigo de métricas
  • O Custo do Movimento é uma forma de sinalizar para o Cluster Resource Manager que determinados serviços são mais dispendiosos de mover do que outros. Para obter mais informações sobre o custo de movimento, veja o artigo sobre o custo do movimento
  • O cluster Resource Manager tem várias limitações que pode configurar para abrandar a taxa de abandono no cluster. Normalmente não são necessários, mas se precisar deles, pode aprender sobre eles o artigo de limitação avançada
  • O cluster Resource Manager pode reconhecer e processar subclustering. Pode ocorrer subclustering quando utiliza restrições de colocação e balanceamento. Para saber como o subclustering pode afetar o balanceamento e como pode lidar com o mesmo, veja o artigo de subclustering