Si verificano problemi di prestazioni nelle applicazioni e servizi quando la cache del file system utilizza la maggior parte della RAM fisica

Sintomi

Si verificano problemi di prestazioni nelle applicazioni e servizi nelle diverse versioni di Windows XP, Windows Vista, Windows Server 2003, Windows Server 2008 e Windows Server 2008 R2. Inoltre, si verifichino le seguenti condizioni:
  • Memoria disponibile è quasi esaurita.
  • La cache del file system utilizza la maggior parte della RAM fisica.
  • È un volume massimo e continuo nella cache delle richieste di lettura sul disco rigido.

Causa

Gestione della memoria nei sistemi operativi Microsoft Windows utilizza un algoritmo basato su richiesta. Se qualsiasi processo richiede e utilizza una grande quantità di memoria, aumenta la dimensione del working set (il numero di pagine di memoria RAM fisica) del processo. Se tali richieste sono continue e non controllate, il working set del processo aumenterà fino a consumare tutta la RAM fisica. In questo caso, il working set per tutti gli altri processi vengono inviate al disco rigido. Questo comportamento consente di ridurre le prestazioni delle applicazioni e servizi perché le pagine di memoria vengono continuamente la scrittura sul disco rigido e dal disco rigido.

Ciò vale anche per il working set della cache del file di sistema. Se non vi è un volume massimo e continuo nella cache delle richieste di lettura da qualsiasi processo o da qualsiasi driver, la dimensione del working set della cache del file system aumenteranno per soddisfare questa richiesta. La cache dei file di sistema consuma la RAM fisica. Quantità sufficiente di RAM fisica, pertanto non sono disponibili per altri processi.

Nelle versioni a 32 bit dei sistemi operativi di Microsoft Windows precedenti a Windows Vista, il working set della cache del file system hanno un limite di memoria teorico di meno di 1 gigabyte (GB). La limitazione dell'intervallo di indirizzi virtuali impedisce l'esaurimento della memoria RAM fisica i working set della cache del file di sistema.

Nelle versioni a 32 bit dei sistemi operativi Windows Vista, le risorse di kernel vengono allocate in modo dinamico. Il working set della cache del file di sistema aumenta a consumare l'intervallo di indirizzi virtuali della modalità kernel a scapito delle altre risorse del kernel. La limitazione di questo intervallo di memoria è inferiore a 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ò scarico lo spazio indirizzo virtuale del kernel. Questo può causare errori di allocazione per altri componenti del kernel.

Nelle versioni a 64 bit dei sistemi operativi Windows, la dimensione dell'intervallo di indirizzi virtuali è in genere maggiore di RAM fisica. In questo caso, è possibile aumentare il working set per la cache dei file di sistema per utilizzare la maggior parte della RAM fisica.

Soluzione alternativa

Per risolvere questo problema, utilizzare la funzione di GetSystemFileCacheSize API e la funzione di SetSystemFileCacheSize API per impostare il valore di dimensione massima o minima per il working set della cache del file di sistema. L'utilizzo di queste funzioni è l'unico metodo supportato per limitare il consumo di memoria fisica dalla cache del file di sistema.

Il servizio di Cache dinamico di Microsoft Windows è un servizio di esempio che illustra una strategia per utilizzare queste API per ridurre gli effetti di questo problema.

Installare e utilizzare il servizio di Cache dinamico di Microsoft non causa l'esclusione di supporto per Microsoft Windows. Questo servizio e il relativo codice sorgente sono disponibili come esempi d'uso delle API Microsoft supportate, per ridurre l'incremento della cache del file system.


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

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Ulteriori informazioni

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

Come determinare se il sistema è interessato

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


Quando si esegue lo strumento, selezionare l'opzione Usa conta . Consente di visualizzare più colonne che mostrano il modello corrente dell'utilizzo della memoria. Fare clic sulla colonna per ordinare in base al numero di byte utilizzati attivo e notare l'utilizzo superiore direttamente sotto il totale.

Se nella parte superiore utilizza conteggio "Metafile", mentre se si utilizza una quantità considerevole di memoria disponibile, si sta verificando il problema della cache dei File di sistema descritta nella sezione "Sintomi". È possibile verificarlo utilizzando Performance Monitor per monitorare il contatore Byte residenti Cache di Memory\System e vedere la cache di crescere in modo continuo nel tempo.

Nella figura 1. Output di RamMap di esempio in cui il computer si verifica il problema.



Nella figura 2. Output di RamMap di esempio in cui il computer non si verifica il problema.



Se il contatore Byte residenti Cache di Memory\System in Performance Monitor visualizza una tendenza all'aumento nel tempo, il computer si verifica il problema, come illustrato nella figura 3.

Nella figura 3. Output di esempio Performance Monitor in cui il computer si verifica il problema nel tempo.

Necessità di riavvio

Non è necessario riavviare il computer quando si installa, Disinstalla o utilizzare il servizio.
Se si è la lettura di questo articolo si sta lavorando con un cliente che si ritiene che tali sistemi sono interessati da questo problema, seguire questi passaggi per risolvere il problema.
  1. Verificare che output RamMap del cliente, perfmon o dati poolmon conferma che la Cache del File System sta consumando la maggior parte della RAM fisica, come descritto in precedenza.
  2. Per ottenere il servizio di Cache dinamico di Windows:
    • Per Windows Server 2008, è disponibile pubblicamente qui.
    • Per Windows Server 2008 R2, è disponibile attualmente solo all'interno di Microsoft qui: http://toolbox/dyncache
  3. Di seguito sono elencate alcune impostazioni del Registro di sistema dinamico di Cache:

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

    Exchange 2007, è possibile provare a 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 lavora con SQL EE, utilizzato da 2 GB:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters]
    "MaxSystemCacheMBytes"=dword:000007D0
    "MinSystemCacheMBytes"=dword:00000064
    "SampleIntervalSecs"=dword:0000003c
    "CacheUpdateThresholdMBytes"=dword:00000064

Risorse aggiuntive

Leggere i capitoli 9 (gestione della memoria) e 10 (gestione Cache) di Windows Internals, 5ª edizione.

Post di Blog (problemi di CACHE di sistema di grandi dimensioni) di gestione della memoria

Copia di File di grandi dimensioni risulta molto lento problemi di Post di Blog

Limiti di memoria per le versioni di Windows

976618 si verificano problemi di prestazioni nelle applicazioni e servizi, quando la cache del file system utilizza la maggior parte della RAM fisica

918483 come ridurre il paging della memoria del pool di buffer nella versione 64 bit di SQL Server

895932 aspetti da considerare prima di attivare la modalità cache sistema in Windows XP

232271 come ottimizzare i Server di Windows NT utilizzando il Registro di sistema

837331 sul gestore della Cache di Windows Server 2003

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

Argomento di TechNet LargeSystemCache

Post di Blog di RamMap
Proprietà

ID articolo: 976618 - Ultima revisione: 31 gen 2017 - Revisione: 1

Microsoft Windows XP Professional x64 Edition, Windows Vista Home Basic, Windows Vista Home Premium, Windows Vista Business, Windows Vista Enterprise, Windows Vista Ultimate, Windows Vista Home Basic 64-bit edition, Windows Vista Home Premium 64-bit edition, Windows Vista Enterprise 64-bit edition, Windows Vista Ultimate 64-bit edition, Microsoft Windows Server 2003 R2 Datacenter x64 Edition, Microsoft Windows Server 2003 R2 Enterprise x64 Edition, Microsoft Windows Server 2003 R2 Standard x64 Edition, Microsoft Windows Server 2003, Datacenter x64 Edition, Microsoft Windows Server 2003, Enterprise x64 Edition, Microsoft Windows Server 2003, Standard x64 Edition, Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems, Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems, Windows Server 2008 Datacenter without Hyper-V, Windows Server 2008 Enterprise without Hyper-V, Windows Server 2008 Standard without Hyper-V, Windows Server 2008 Datacenter, Windows Server 2008 Enterprise, Windows Server 2008 Standard, Windows Server 2008 for Itanium-Based Systems, Windows Server 2008 R2 Datacenter, Windows Server 2008 R2 Enterprise, Windows Server 2008 R2 Service Pack 1, Windows Server 2008 R2 Standard

Feedback