Sdílet prostřednictvím


Defragmentace metrik a zatížení v Service Fabric

Výchozí strategií Resource Manager clusteru Service Fabric pro správu metrik zatížení v clusteru je distribuce zatížení. Zajištěním rovnoměrného využití uzlů se vyhnete horkým a studeným místům, která vedou k kolizím i plýtvání prostředky. Distribuce úloh v clusteru je také nejbezpečnější z hlediska přeživších selhání, protože zajišťuje, že selhání nezabere velké procento dané úlohy.

Resource Manager clusteru Service Fabric podporuje jinou strategii pro správu zatížení, a tou je defragmentace. Defragmentace znamená, že místo toho, abyste se pokusili distribuovat využití metriky napříč clusterem, je konsolidovaná. Konsolidace je jen inverze výchozí strategie vyrovnávání – místo minimalizace průměrné směrodatné odchylky zatížení metriky se clusterová Resource Manager pokusí tuto hodnotu zvýšit.

Kdy použít defragmentaci

Distribuce zatížení v clusteru spotřebovává některé prostředky na každém uzlu. Některé úlohy vytvářejí služby, které jsou mimořádně velké a spotřebovávají většinu uzlu nebo celý uzel. V těchto případech je možné, že když se vytvářejí velké úlohy, není na žádném uzlu dostatek místa pro jejich spuštění. Velké úlohy nejsou v Service Fabric problémem. v těchto případech Resource Manager clusteru určí, že je potřeba přeuspořádat cluster, aby uvolnil místo pro tuto velkou úlohu. Mezitím ale musí úloha čekat na naplánování v clusteru.

Pokud existuje mnoho služeb a stavů, které je potřeba přesunout, může trvat dlouho, než se velká úloha umístí do clusteru. To je pravděpodobnější, pokud jsou další úlohy v clusteru také velké, a proto změna uspořádání trvá déle. Tým Service Fabric měřil časy vytvoření v simulacích tohoto scénáře. Zjistili jsme, že vytváření velkých služeb trvalo mnohem déle, jakmile využití clusteru překročilo 30 až 50 %. Abychom tento scénář zvládli, zavedli jsme defragmentaci jako strategii vyrovnávání. Zjistili jsme, že u velkých úloh, zejména těch, kde byla doba vytvoření důležitá, defragmentace skutečně pomohla naplánovat tyto nové úlohy v clusteru.

Metriky defragmentace můžete nakonfigurovat tak, aby se clusterová Resource Manager proaktivně pokusila zúžení zatížení služeb do menšího počtu uzlů. To pomáhá zajistit, že téměř vždy bude k dispozici místo pro velké služby, aniž by došlo k přeuspořádání clusteru. Díky tomu, že cluster nebude nutné reorganizovat, můžete rychle vytvářet velké úlohy.

Většina lidí defragmentaci nepotřebuje. Služby jsou obvykle malé, takže není těžké pro ně v clusteru najít místo. Pokud je možné reorganizaci provést, proběhne to rychle, opět proto, že většina služeb je malá a dá se přesunout rychle a paralelně. Pokud ale máte velké služby a potřebujete je rychle vytvořit, je strategie defragmentace určená právě pro vás. V dalším kroku probereme kompromisy při použití defragmentace.

Kompromisy defragmentace

Defragmentace může zvýšit dopad selhání, protože na uzlech, které selžou, běží více služeb. Defragmentace může také zvýšit náklady, protože prostředky v clusteru musí být uchovávané v rezervě a musí čekat na vytvoření velkých úloh.

Následující diagram znázorňuje dva shluky, jeden defragmentovaný a druhý, který není.

Porovnání vyvážených a defragmentovaných clusterů

Ve vyváženém případě zvažte počet pohybů, které by byly nezbytné k umístění jednoho z největších objektů služby. V defragmentovaném clusteru je možné velké úlohy umístit na čtyři nebo pět uzlů, aniž by bylo nutné čekat na přesun dalších služeb.

Výhody a nevýhody defragmentace

Jaké jsou další koncepční kompromisy? Tady je stručný přehled věcí, na které byste se mohli zamyslet:

Klady pro defragmentaci Nevýhody defragmentace
Umožňuje rychlejší vytváření velkých služeb. Koncentruje zatížení na méně uzlů, což zvyšuje kolize.
Umožňuje menší přesun dat během vytváření. Selhání můžou mít vliv na více služeb a způsobit větší četnost změn dat.
Umožňuje podrobný popis požadavků a uvolnění prostoru. Složitější celková konfigurace správy prostředků

Defragmentované a normální metriky můžete kombinovat ve stejném clusteru. Cluster Resource Manager se snaží co nejvíce konsolidovat metriky defragmentace a současně rozložit ostatní. Výsledky kombinování defragmentace a vyrovnávání strategie závisí na několika faktorech, mezi které patří:

  • počet metrik vyrovnávání vs. počet metrik defragmentace
  • Určuje, jestli některá služba používá oba typy metrik
  • váhy metrik
  • aktuální zatížení metriky

K určení přesné potřebné konfigurace se vyžaduje experimentování. Před povolením metrik defragmentace v produkčním prostředí doporučujeme důkladné změření úloh. To platí zejména při kombinování defragmentace a vyvážených metrik v rámci stejné služby.

Konfigurace metrik defragmentace

Konfigurace metrik defragmentace je globálním rozhodnutím v clusteru a pro defragmentaci je možné vybrat jednotlivé metriky. Následující fragmenty konfigurace ukazují, jak nakonfigurovat metriky pro defragmentaci. V tomto případě je metrika Metric1 nakonfigurovaná jako metrika defragmentace, zatímco metrika Metric2 bude dál normálně vyvážená.

ClusterManifest.xml:

<Section Name="DefragmentationMetrics">
    <Parameter Name="Metric1" Value="true" />
    <Parameter Name="Metric2" Value="false" />
</Section>

Prostřednictvím ClusterConfig.json pro samostatná nasazení nebo Template.json pro clustery hostované v Azure:

"fabricSettings": [
  {
    "name": "DefragmentationMetrics",
    "parameters": [
      {
          "name": "Metric1",
          "value": "true"
      },
      {
          "name": "Metric2",
          "value": "false"
      }
    ]
  }
]

Další kroky

  • Resource Manager clusteru nabízí mnoho možností popisu clusteru. Další informace o nich najdete v tomto článku věnovaném popisu clusteru Service Fabric.
  • Metriky představují způsob, jakým Správce prostředků clusteru Service Fabric spravuje spotřebu a kapacitu v clusteru. Další informace o metrikách a jejich konfiguraci najdete v tomto článku.