Si verificano problemi di prestazioni nelle applicazioni e nei servizi quando la cache dei file di sistema utilizza la maggior parte della RAM fisica

Sintomi

Si verificano problemi di prestazioni nelle applicazioni e nei servizi in varie versioni di Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 e Windows Server 2008 R2. Inoltre, si notano i sintomi seguenti:

  • La memoria disponibile è quasi esaurita.

  • La cache dei file di sistema utilizza la maggior parte della RAM fisica.

  • Nel disco rigido è presente un volume continuo e elevato di richieste di lettura memorizzate nella cache.

Causa

La gestione della memoria nei sistemi operativi Microsoft Windows utilizza un algoritmo basato su richiesta. Se vengono richieste richieste di processi e viene utilizzata una grande quantità di memoria, aumentano le dimensioni del working set, ovvero il numero di pagine di memoria nella RAM fisica. Se queste richieste sono continue e deselezionate, il working set del processo crescerà fino a occupare tutta la RAM fisica. In questa situazione, i working set per tutti gli altri processi vengono paginati sul disco rigido. Questo comportamento riduce le prestazioni di applicazioni e servizi perché le pagine di memoria vengono scritte continuamente sul disco rigido e lette dal disco rigido.

Questo comportamento si applica anche al working set della cache dei file di sistema. Se c'è un volume continuo e elevato di richieste di lettura memorizzate nella cache da qualsiasi processo o da qualsiasi driver, le dimensioni del working set della cache dei file di sistema aumentano per soddisfare questa richiesta. La cache dei file di sistema utilizza la RAM fisica. Di conseguenza, per altri processi non è disponibile una quantità sufficiente di RAM fisica.

Nelle versioni a 32 bit dei sistemi operativi Microsoft Windows precedenti a Windows Vista, i working set della cache dei file di sistema hanno un limite di memoria corrente inferiore a 1 gigabyte (GB). La limitazione dell'intervallo di indirizzi virtuali impedisce ai working set della cache dei file di sistema di esaurire la RAM fisica.

Nelle versioni a 32 bit dei sistemi operativi Windows Vista le risorse kernel vengono allocate dinamicamente. Il working set della cache dei file di sistema si incrementa per consumare l'intervallo di indirizzi virtuali della modalità kernel a discapito di altre risorse kernel. La limitazione di questo intervallo di memoria è minore di 2 GB. Se il computer dispone di più di 2 GB di RAM fisica, la cache non può esaurire tutta la RAM fisica. Tuttavia, la cache può esaurire lo spazio degli indirizzi virtuali nel kernel. Questo può causare errori di allocazione per altri componenti kernel.

Nelle versioni a 64 bit dei sistemi operativi Windows, le dimensioni dell'intervallo di indirizzi virtuali sono in genere maggiori della RAM fisica. In questa situazione, il working set per la cache dei file di sistema può aumentare fino a consumare la maggior parte della RAM fisica.

Risoluzione

Gli algoritmi di gestione della memoria dei sistemi operativi Windows 7 e Windows Server 2008 R2 sono stati aggiornati per risolvere molti problemi di memorizzazione nella cache dei file rilevati nelle versioni precedenti di Windows. Esistono solo alcune situazioni specifiche in cui è necessario implementare questo servizio in computer che eseguono Windows 7 o Windows Server 2008 R2.

Come determinare se è interessato dal sistema

Per determinare se il problema è interessato dal problema, installare lo strumento SysInternals RamMap. È possibile ottenere lo strumento dal sito Web Sysinternals di Windows seguente:

http://technet.microsoft.com/en-us/sysinternals/ff700229
Quando si esegue lo strumento, selezionare l'opzione Usa conteggi. Vengono visualizzate diverse colonne che mostrano il modello corrente di utilizzo della memoria. Fare clic sulla colonna Attiva per ordinare in base al numero di byte usati e notare il primo utilizzo direttamente sotto il totale.

Se il numero massimo di utilizzi è "Metafile" e viene usata una grande parte della memoria disponibile, si verifica il problema relativo alla cache dei file di sistema descritto nella sezione "Sintomi". È possibile verificarlo usando Performance Monitor per monitorare il contatore Memory\System Cache Resident Bytes e vedere le dimensioni della cache aumentano continuamente nel tempo.

Figura 1. Esempio di output Mappa Ram in cui si è verificato il problema nel computer.


testo alternativo
Figura 2. Esempio di output Mappa Ram in cui il problema non è presente nel computer.


testo alternativo
Se il contatore Memory\System Cache Resident Bytes in Performance Monitor mostra una tendenza verso l'alto nel tempo, il problema si verifica nel computer, come illustrato nella figura 3.

Figura 3. Esempio di output di Performance Monitor in cui il problema si verifica nel tempo nel computer.

testo alternativo

Requisiti di riavvio

Non è necessario riavviare il computer durante l'installazione, la disinstallazione o l'uso del servizio.

Se si sta leggendo questo articolo perché si collabora con un cliente che ritiene che sia interessato da questo problema, seguire questa procedura per risolvere il problema.

  1. Verificare che l'output RamMap, perfmon o poolmon del cliente confermi che la cache dei file di sistema utilizza la maggior parte della RAM fisica, come descritto in precedenza.

  2. Per ottenere il servizio cache dinamica di Windows, scaricarlo qui.

  3. Alcune impostazioni del Registro di sistema della cache dinamica sono le seguenti:

    Per i file server, è consigliabile provare 1 GB.
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:00000400
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    Exchange 2007, è consigliabile provare 500 MB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000001F4
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

    SQL 2005 e versioni successive, in passato quando si usava SQL EE, usava 2 GB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000007D0
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

Ulteriori informazioni

Per risolvere il problema, usare la funzione API GetSystemFileCacheSize e la funzione API SetSystemFileCacheSize per impostare il valore delle dimensioni massime o minime per i working set della cache dei file di sistema. L'uso di queste funzioni è l'unico metodo supportato per limitare l'utilizzo di memoria fisica da parte della cache dei file di sistema.

Il servizio cache dinamica di Microsoft Windows è un servizio di esempio che illustra una strategia per l'uso di queste API per ridurre al minimo gli effetti del problema.

L'installazione e l'uso del servizio cache dinamica Microsoft non causano l'esclusione del supporto per Microsoft Windows. Questo servizio e il relativo codice sorgente sono forniti come esempio di come usare le API supportate da Microsoft per ridurre l'aumento della cache del file system.

È possibile ottenere il servizio e il codice sorgente dal sito Web Microsoft seguente:

http://www.microsoft.com/download/details.aspx?FamilyID=e24ade0a-5efe-43c8-b9c3-5d0ecb2f39af&displaylang=en

Risorse aggiuntive

Leggere i capitoli 9 (Gestione memoria) e 10 (Gestione cache) di Windows Internals, la 5a edizione.

Post di blog SULLA GESTIONE DELLA MEMORIA (PROBLEMI DI GRANDI DIMENSIONI RELATIVI ALLA CACHE DI SISTEMA)

Post di blog sui problemi relativi alla copia di file di grandi dimensioni lenta

Limiti di memoria per i rilasci

di Windows 976618 Si verificano problemi di prestazioni nelle applicazioni e nei servizi quando la cache dei file di sistema utilizza la maggior parte della RAM fisica 918483 Come ridurre il paging della memoria del pool di buffer nella versione a 64 bit di SQL Server 895932 Things da considerare prima di abilitare la modalità cache di sistema in Windows XP 232271 Come ottimizzare Windows NT Server usando il Registro di sistema







837331 About Cache Manager in Windows Server 2003

http://technet2.microsoft.com/windowsserver/en/library/EFA621BD-A031-4461-9E72-59197A7507B61033.mspx

LargeSystemCache Post

di blog su RamMap dell'argomento TechNet 

Stato

Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".

Serve aiuto?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×