Delen via


Verbeteringen in cache- en geheugenbeheer

In dit onderwerp worden verbeteringen in CacheBeheer en Geheugenbeheer in Windows Server 2012 en 2016 beschreven.

Verbeteringen in Cachebeheer in Windows Server 2022

Cachebeheer is nu NUMA-bewust, waardoor het systeem beter is bij het vermijden van gegevensverplaatsing over NUMA-grenzen. Het vermijden van toegang van een NUMA-knooppunt tot geheugen en andere kernelbronnen op een ander NUMA-knooppunt zorgt voor veel extra belasting. Door de Cache Manager NUMA-bewust te maken, hebben we dergelijke cross-NUMA-hops geëlimineerd, waardoor gecachte IO-workloads worden geoptimaliseerd die worden uitgevoerd op configuraties met meerdere knooppunten.

Verbeteringen in Cachebeheer in Windows Server 2019

Er is Zero-Copy ondersteuning toegevoegd voor PMEM-opslag (Persistent Memory). Zie Permanente geheugen begrijpen en implementeren voor meer informatie over permanent geheugen. In de DAX-modus (Direct Access) werkt PMEM als geheugen om de laagste latentie te krijgen, waarbij we een extra kopie van gegevens elimineren en veel overhead van bestandssysteem Mini-Filters en de opslagstack omzeilen. Deze modus werkt alleen met NTFS als bestandssysteem.

Verbeteringen in Cachebeheer in Windows Server 2016

Cachebeheer heeft ook ondersteuning toegevoegd voor echte Asynchrone leesbewerkingen in cache. Dit kan de prestaties van een toepassing verbeteren als deze sterk afhankelijk is van asynchrone leesbewerkingen in de cache.  Hoewel de meeste in-box-bestandssystemen al geruime tijd asynchroon gecachte leesbewerkingen ondersteunen, waren er vaak prestatiebeperkingen door verschillende ontwerpkeuzes met betrekking tot de verwerking van thread-pools en de interne werkwachtrijen van bestandssystemen.  Met ondersteuning van kernel-proper verbergt Cachebeheer nu alle complexiteiten van thread-pool en werkwachtrijbeheer van bestandssysteemen, waardoor het efficiënter wordt bij het verwerken van asynchrone leesbewerkingen in de cache. Cachebeheer heeft één set besturingsgegevensstructuren voor elk van de maximale niveaus van VHD-nesting die door het systeem worden ondersteund om parallelle uitvoering te maximaliseren.

Verbeteringen in Cachebeheer in Windows Server 2012

Naast verbeteringen van Cache Manager om vooruit te lezen logica voor sequentiële workloads, is er een nieuwe API CCSetReadAheadGranularityEx toegevoegd om bestandssysteemstuurprogramma's, zoals SMB, hun voorgelezen parameters te laten wijzigen. Het maakt betere doorvoer mogelijk voor scenario's met externe bestanden door meerdere kleine leesdoorloopaanvragen te verzenden in plaats van één grote leesdoorloopaanvraag te verzenden. Alleen kernelonderdelen, zoals stuurprogramma's van het bestandssysteem, kunnen deze waarden programmatisch per bestand configureren.

Verbeteringen in Geheugenbeheer in Windows Server 2012

Het inschakelen van het combineren van pagina's kan het geheugengebruik op servers verminderen die veel private, pagina-geefbare pagina's met identieke inhoud hebben. Servers met meerdere exemplaren van dezelfde geheugenintensieve app of één app die met zeer terugkerende gegevens werkt, kunnen bijvoorbeeld goede kandidaten zijn om pagina's te combineren. Het nadeel van het inschakelen van het combineren van pagina's is een toename in het gebruik van de CPU.

Hier volgen enkele voorbeelden van serverfuncties waarbij het combineren van pagina's waarschijnlijk weinig voordeel oplevert:

  • Bestandsservers (het grootste deel van het geheugen wordt gebruikt door bestandspagina's die niet privé zijn en daarom niet kunnen worden gecombineerd)

  • Microsoft SQL-servers die zijn geconfigureerd voor het gebruik van AWE of grote pagina's (het grootste deel van het geheugen is privé maar niet paginabaar)

Pagina's combineren is standaard uitgeschakeld, maar kan worden ingeschakeld met behulp van de Cmdlet Enable-MMAgent Windows PowerShell. Paginacombinaties zijn toegevoegd in Windows Server 2012.