Miglioramenti di Gestione cache e memoria

Questo argomento descrive i miglioramenti di Gestione cache e Gestione memoria in Windows Server 2012 e 2016.

Miglioramenti di Gestione cache in Windows Server 2022

Gestione cache è ora in grado di riconoscere NUMA, che garantisce che il sistema sia più in grado di evitare lo spostamento dei dati tra i limiti NUMA. Evitare gli accessi da un nodo NUMA alla memoria e ad altre risorse del kernel in un altro nodo NUMA aggiunge un sovraccarico significativo. Grazie a NUMA di Gestione cache, sono stati eliminati questi hop tra NUMA, ottimizzando così i carichi di lavoro di I/O memorizzati nella cache in esecuzione in configurazioni a più nodi.

Miglioramenti di Gestione cache in Windows Server 2019

È stato aggiunto Zero-Copy supporto per la memoria persistente (PMEM) Archiviazione. Per altre informazioni sulla memoria persistente, vedere Comprendere e distribuire la memoria persistente. In modalità ACCESSO diretto (DAX), PMEM opera come memoria per ottenere la latenza più bassa, in cui si elimina una copia aggiuntiva dei dati e si ignora un sovraccarico significativo dal file system Mini-Filters e dallo stack di archiviazione. Questa modalità funziona solo con NTFS come file system.

Miglioramenti di Gestione cache in Windows Server 2016

Gestione cache ha anche aggiunto il supporto per le letture memorizzate nella cache asincrone. Ciò potrebbe migliorare potenzialmente le prestazioni di un'applicazione se si basa principalmente su letture asincrone memorizzate nella cache.  Sebbene la maggior parte dei file system in-box supporti le operazioni di lettura memorizzate nella cache asincrona per un po', spesso si sono presenti limitazioni delle prestazioni a causa di varie scelte di progettazione correlate alla gestione dei pool di thread e delle code di lavoro interne dei file system.  Grazie al supporto da parte del kernel, Gestione cache ora nasconde tutte le complessità di gestione del pool di thread e delle code di lavoro dai file system, rendendo più efficiente la gestione delle letture memorizzate nella cache asincrone. Gestione cache include un set di strutture di dati di controllo per ognuno dei livelli di annidamento del disco rigido virtuale (massimo supportato dal sistema) per ottimizzare il parallelismo.

Miglioramenti di Gestione cache in Windows Server 2012

Oltre ai miglioramenti di Gestione cache per la logica read ahead per i carichi di lavoro sequenziali, è stata aggiunta una nuova API CcSetReadAheadGranularityEx per consentire ai driver file system, ad esempio SMB, di modificare i parametri read ahead. Consente una velocità effettiva migliore per gli scenari di file remoti inviando più richieste read ahead di piccole dimensioni invece di inviare una singola richiesta read ahead di grandi dimensioni. Solo i componenti del kernel, ad esempio file system driver, possono configurare questi valori a livello di codice per ogni file.

Miglioramenti di Gestione memoria in Windows Server 2012

L'abilitazione della combinazione di pagine può ridurre l'utilizzo della memoria nei server, che hanno molte pagine private e paginabili con contenuto identico. Ad esempio, i server che eseguono più istanze della stessa app a elevato utilizzo di memoria o una singola app che funziona con dati altamente ripetitivi potrebbero essere buoni candidati per provare la combinazione di pagine. Lo svantaggio dell'abilitazione della combinazione di pagine è l'aumento dell'utilizzo della CPU.

Di seguito sono riportati alcuni esempi di ruoli del server in cui è improbabile che la combinazione di pagine possa offrire molti vantaggi:

  • File server (la maggior parte della memoria viene utilizzata dalle pagine di file che non sono private e pertanto non combinabili)

  • Microsoft SQL server configurati per l'uso di pagine AWE o di grandi dimensioni (la maggior parte della memoria è privata ma non paginabile)

La combinazione di pagine è disabilitata per impostazione predefinita, ma può essere abilitata usando il cmdlet Enable-MMAgent Windows PowerShell. La combinazione di pagine è stata aggiunta Windows Server 2012.