Sdílet prostřednictvím


Dynamická přizpůsobení velikostem aplikací (DATAS)

Dynamická adaptace na velikosti aplikací (DATAS) má za cíl přizpůsobit se požadavkům na paměť aplikací. To znamená, že velikost haldy aplikace by měla být přibližně úměrná dlouhodobé velikosti dat. Pokud vaše aplikace provádí stejnou práci, když běží na počítačích s různými specifikacemi, velikost haldy je stejná nebo podobná. A pokud se vaše úloha změní na světlejší nebo těžší, velikost haldy se odpovídajícím způsobem upraví.

Naproti tomu režim GC serveru má za cíl zlepšit propustnost a zacházet s procesem jako s dominantním režimem na počítači. Množství přidělení, které umožňuje před aktivací dalšího GC, závisí na propustnosti, nikoli na velikosti aplikace. Může růst haldy agresivně, pokud potřebuje a je k dispozici paměť. Tento růst může mít za následek velmi různé velikosti haldy při spuštění procesu na počítačích s různými specifikacemi hardwaru. Halda může při přesunu procesu na počítač s mnoha více jádry a více paměti zvětšit. Server GC také nemusí nutně upravit haldu agresivně, pokud je zatížení mnohem lehčí.

DATAS pomáhá nejvíce s "nárazovými" úlohami, kde by se měla upravit velikost haldy podle toho, jak náročné je zatížení, zejména při poklesu poptávky. To je zvlášť důležité v prostředích s omezenými paměťmi, kde je důležité přizpůsobit více procesů, když se úlohy některých procesů zlehčí. Pomáhá také s plánováním kapacity. Služba DATAS byla představena jako funkce výslovného souhlasu v .NET 8 a je ve výchozím nastavení povolená v .NET 9.

Popis funkce

DataS k dosažení přizpůsobení velikosti aplikace a zachování přiměřeného výkonu:

  • Nastaví maximální povolený počet přidělení před aktivací dalšího GC na základě dlouhodobé velikosti dat. To pomáhá s omezením velikosti haldy.
  • Nastaví skutečné množství povolených přidělení na základě propustnosti.
  • V případě potřeby upraví počet hald. Začíná jednou haldou, což znamená, že pokud existuje mnoho vláken přidělování, někteří budou muset počkat. To má negativní vliv na propustnost. DATAS roste a snižuje počet hald podle potřeby. Tímto způsobem je hybridní mezi existujícími režimy uvolňování paměti, která dokáže použít jen jednu haldu (například pracovní stanici GC) a tolik, kolik odpovídá počtu jader počítače (jako je server GC).
  • V případě potřeby se plně komprimuje GCS, aby se zabránilo příliš vysoké fragmentaci, což také pomáhá omezit velikost haldy.

Výsledky srovnávacích testů

Následující obrázky ukazují některé výsledky srovnávacích testů pro TechEmpower JSON a Fortunes Benchmarks. Všimněte si významného snížení pracovní sady při spouštění srovnávacích testů na počítači s 48 jádry s Linuxem. Maximální propustnost (měřená v RPS) ukazuje snížení o 2–3 %, ale s funkční sadou zlepšení více než 80 %.

Vylepšení pracovní sady

S povoleným datas je počet GCS Gen0 a Gen1 výrazně vyšší.

Počet Gen0 a Gen1

Jak zakázat DATAS

Pokud si všimnete snížení propustnosti, můžete DATAS zakázat pomocí různých nastavení. Další informace najdete v tématu Dynamické přizpůsobení velikostem aplikací (DATAS).