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