Come potrei limitare o addirittura disabilitare la cache dei file su Windows Server 2008R2?


9

C'è una macchina, con un array RAID molto veloce e una connessione internet veloce. Ma ha solo 8 GB di mem, che si esaurisce molto rapidamente quando il caricamento sale.

Qualche idea su come posso disabilitare o limitare la cache?
(Ho provato a disabilitare Write Cache da Device Manager. Ma questo è solo scrivere cache e non ha aiutato.)


Qualche relazione con questo? superuser.com/questions/415140/…
Der Hochstapler

@OliverSalzburg Purtroppo, non è in standby ora. Lo standby è eccezionale e dovrebbe essere sempre acceso. È una buona roba. Ma ora, per qualche motivo, questo montone viene usato come "Attivo". (Sto usando uTorrent per testare le velocità e, con un trasferimento veloce, inizia ad accadere.)
Apache

Risposte:


4

Il punto centrale della cache è che utilizza una RAM inutilizzata e la rinuncia non appena un'applicazione ne richiede di più. Pertanto, non si desidera limitare le sue dimensioni in quanto ciò farebbe semplicemente perdere completamente la ram libera.


9
Si prega di dirlo al mio Windows 7, che ha sostituito tutti i programmi solo per inserire un file video nella cache durante la codifica - un file che verrà letto esattamente una volta - e si è schiantato l'intero riquadro.
Jan Schejbal,

Ciò può dipendere dall'opzione LargeSystemCache. Per qualsiasi motivo, l'ho impostato (probabilmente indietro dal tempo in cui la RAM che avevo era più che sufficiente per tutto ciò che ho fatto).
Jan Schejbal,

@ JanSchejbal, questa è l'impostazione che non riuscivo più a ricordare a causa del fatto che ho rinunciato a Windows alcuni anni fa. Normalmente il kernel cerca di scambiare pagine da processi che sono inattivi da un po 'di tempo perché quella memoria può essere meglio utilizzata per utilizzare i file di cache per i processi attivi. Questa impostazione lo rende più aggressivo in questo.
psusi

@JanSchejbal la chiave di registro LargeSystemCache non è più utilizzata a partire dal 2008r2 secondo blogs.technet.com/b/askperf/archive/2008/02/01/…
BeowulfNode42

3

Devi chiamare l'API di sistema SetSystemFileCacheSize ()
Documentata qui: http://msdn.microsoft.com/en-us/library/aa965240.aspx

Alcuni programmi della GUI lo consentono: http://technet.microsoft.com/en-us/sysinternals/bb897561
Ma potresti preferire la CLI, per eseguirla automaticamente all'avvio del sistema: http://www.uwe-sieber.de/ntcacheset_e .html (guarda al centro della pagina, funziona per 2k8)

O semplicemente scrivere uno script PowerShell che chiama SetSystemFileCacheSize ()

Si noti che è fortemente sconsigliato disabilitare la cache per l'uso in produzione.
È frequente limitare la dimensione della cache a un valore ridotto per le macchine virtualizzate, non disabilitarla.


hmm ... finora, tutto bene! Riferirò presto.
Apache,

Quello è strano. Ho impostato la dimensione di lavoro MASSIMA su 1 gigabyte e riesce a superare il limite. Andrà molto più in alto, non importa del valore o del limite. Perché?
Apache

Devi essere sicuro di monitorare il giusto valore. Utilizzare l'utilità di memorizzazione nella cache per questo.
Gregory MOUSSAT,

2

Abbiamo riscontrato anche questo problema su Windows Server 2008 R2 nella nostra azienda. Nel nostro caso la macchina si è bloccata completamente. Sembra essere un bug su questa versione del server di Windows, perché non si è verificato nelle stesse circostanze né sul mio computer Windows 7 molto più piccolo in esecuzione su VirtualBox, né su Linux.

È possibile impostare la cache su un determinato limite con un'API come altre hanno già pubblicato, ma è possibile trovare applicazioni per utilizzarla direttamente, come SetSystemFileCacheSize.exe o Setter cache NT .

Il rovescio della medaglia è che è necessario impostare la cache dopo ogni riavvio. Puoi anche svuotare l'intera cache in una volta sola con questo.

Impostiamo la cache dei file sulla nostra VM con 14 GB RAM a 4 GB e funziona. Anche flush funziona bene e puoi vederlo direttamente in Task Manager.

Esempi da riga di comando:

  • Mostra le impostazioni di Windows correnti:

    SetSystemFileCacheSize.exe
    
  • Mostra aiuto:

    SetSystemFileCacheSize.exe /?
    
  • Impostare la dimensione minima su 8 MB e la dimensione massima su 128 MB:

    SetSystemFileCacheSize.exe 8 128
    
  • Disabilita la dimensione minima e imposta la dimensione massima su 128 MB:

    SetSystemFileCacheSize.exe off 128
    
  • Disabilita la dimensione minima e massima:

    SetSystemFileCacheSize.exe off off
    
  • Svuota la cache dei file:

    SetSystemFileCacheSize.exe flush
    

Nota: lo strumento deve essere avviato con i privilegi di amministratore.


0

Per limitare la cache dei file, assicurarsi che non sia abilitata l'opzione Massima prestazione di condivisione file e che è possibile specificare la quantità minima di cache dei file di memoria selezionando Riduci memoria utilizzata o Bilancia.

Per verificare la configurazione corrente vai su: Start-> Pannello di controllo-> Connessioni di rete-> Connessione alla rete locale-> Nella scheda Generale, Proprietà-> Seleziona file e stampante-> Proprietà .. se è selezionato Opcion Maximize, quindi scegli qualsiasi altra opzione.


L'opzione proprietà non è disponibile per la condivisione di stampante e file. :) Comunque, è spento, la cache lo è. Eppure in Rammap, ogni singolo file sta entrando nell'elenco dei file e la memoria attiva continua a crescere.
Apache
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.