Disabilita / ridimensiona la cache del disco di Windows Vista per aumentare la RAM libera


0

Mi piacerebbe ridurre la dimensione della cache, perché ho un disco lento ed eseguo un sistema senza swap (è piuttosto scattante in questo modo). Ho x86 Vista e 3 GB di RAM. Il problema è che Windows consuma circa 1 GB di RAM per la cache del disco (mostrato in Task Manager in Physical Memory - & gt; Cached), che lascia solo 2 GB per le applicazioni. Un pop-up molto fastidioso si apre ogni volta che Windows pensa che sia a corto di memoria e, naturalmente, le applicazioni si bloccano quando viene utilizzata la memoria. Ma c'è ancora 1 GB nella cache!

Ho provato AnalogX Cache Booster, ma non ha fatto nulla, l'utilizzo della memoria rimane lo stesso, i pop-up di avvertimento sono agli stessi livelli.


3
non diminuirà la cache diminuirà anche la viscosità?
stijn

Definisco la reattività come risposta tra le applicazioni di commutazione. Poiché il file di scambio è già disattivato, tutti sono nella RAM - interruttore rapido lampo. Sono disposto a sacrificare la velocità di I / O del disco per questo
Axarydax

2
@Axarydax; Non è così che funziona, la cache del disco può essere eliminata immediatamente, in realtà non stai perdendo alcuna RAM. Se ricevi avvisi di RAM bassi, non è per questo motivo: ho eseguito Vista su 2 GB di RAM e non ho mai visto un avviso di RAM insufficiente.
Phoshi

1
@Axarydax; Forse dovresti accendere il tuo, allora. Non è possibile disporre di un sistema interamente basato su RAM ed eseguire più applicazioni di quante siano le risorse da mantenere.
Phoshi

1
" che lascia solo 2 GB per le applicazioni "Questo non è vero. La memoria utilizzata per una cache del disco è disponibile per le applicazioni Questa domanda si basa sul malinteso che il pop-up ti avverta che stai esaurendo la RAM e quindi più RAM gratuita ti aiuterà. da vicino - non si tratta affatto di RAM.
David Schwartz

Risposte:


6

Ho ... un sistema senza swap

Pensavo allo stesso modo. Da allora ho imparato che, in MS Windows, questo è un male idea e può effettivamente male prestazione.

Windows pensa alla RAM più come un livello di ottimizzazione sul disco rigido. Non vuole aspettare finché non si deve scambiare la RAM prima di pagarla / scambiarla sul disco. Invece, Windows vuole tutto ciò che metti in RAM già essere sfogliato / scambiato

In questo modo, quando Windows ha bisogno della RAM per qualcos'altro, può semplicemente usarlo. Questa strategia funziona perché colloca le scritture (lente) del disco nei punti in cui il computer è meno stressato, a spese di carichi di applicazioni leggermente più lenti e magari pagando alcune cose di cui non ha bisogno, piuttosto che nel punto in cui il computer è già più stressato e sta esaurendo la RAM.

Ovviamente, rimuovendo completamente il file di paging potresti pensare di ottenere il meglio da entrambi i mondi. Tuttavia, c'è un sacco di codice in Windows che è ottimizzato assumendo il modello di prestazioni che ho appena descritto. Stai molto meglio assicurandoti di avere almeno lo stesso spazio di scambio della tua RAM.


Il sistema è molto meno reattivo quando si usa il file di scambio. Ho un buon laptop, ma con un disco infernale, e quando ho più istanze di Visual Studio, browser con molte schede, VM o due, studio di gestione del database, le cose tendono a scambiare molto. E cambiare app diventa una lunga attesa. Senza i file di scambio, tutto è istantaneo. Questa è una vittoria per me.
Axarydax

Ora scopri una limitazione di un sistema senza swap. Se hai più istanze di Visual Studio e diverse schede del browser, tu bisogno più RAM di te.
Joel Coehoorn

è per questo che ottengo un sistema RAM da 8 GB in un istante. Ho solo bisogno di sopravvivere su questa macchina per un po ':-)
Axarydax

Purtroppo questa risposta non è molto utile in questa data (se sei sul tablet bene, forse ne vuoi una piccola ma sarà male per la ssd), ho 16GB di RAM per un prezzo molto basso. Ho usato il PC per un anno e non una sola volta ho finito. Non c'è più motivo di strozzare il tuo hard disk con un file di paging.
CausingUnderflowsEverywhere

2

Per impostazione predefinita, Vista (e successive) x86 consentirà solo 2 GB di virtuale memoria per ogni processo. Se un'applicazione ha bisogno di più, ad esempio 3 GB, puoi aumentarla:

bcdedit /set IncreaseUserVa 3072

Tuttavia, questo funzionerà solo per gli eseguibili che sono stati collegati con il flag "large address aware". I processi su altri exe saranno ancora limitati a 2 GB.

La RAM reale viene allocata come richiesto per entrambe le applicazioni e il sistema.

Poiché questo non sembra essere il tuo problema, allora per ottimizzare l'uso della memoria si può prima Disabilita SuperFetch su Windows Vista :

Il servizio SuperFetch in Windows   Vista precarica la memoria del sistema   con le applicazioni che usi   più spesso. Questo rende il lancio di   quelle applicazioni molto più velocemente, ma è così   potrebbe essere un comportamento indesiderato per   sistema tweakers o giocatori.

In secondo luogo, per controllare la dimensione della cache del disco, AnalogX CacheBooster è uno strumento gratuito che si dice in grado di modificare la cache dell'hard disk (non l'ho mai provato io stesso), ma non sono sicuro che sarà d'aiuto, in considerazione delle informazioni di seguito.

Come descritto in Guida di Windows Vista Memory Tweak , i parametri della cache del disco risiedono nel registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management

Alcuni parametri importanti sono:

DisablePagingExecutive controlla in che modo driver inattivi e codice di sistema in modalità kernel possono essere rilasciati dalla RAM e inviati al file di paging. Sfortunatamente, non hai un file di pagina in modo che il codice di sistema non venga mai scambiato.

LargeSystemCache controlla la dimensione della cache del file system come segue:

  • 0 (impostazione predefinita) viene allocata una cache del file system di dimensioni standard (meno di 10 MB di RAM)
  • 1 consente l'utilizzo di una cache di file system di grandi dimensioni (fino a un importo totale di RAM meno 4 MB!)

Se questo valore è zero nel tuo caso, la cache del disco è già piccola quanto può ottenere. Se le prestazioni ottenute non sono soddisfacenti, è necessario investire nell'hardware: più RAM o un disco rigido più veloce. L'aumento della RAM da 3 GB a 4 GB ti consentirà solo di aumentare (1 GB - memoria video), a meno che non passi anche a una versione a 64 bit di Windows.


L'interruttore IncreaseUserVa controlla lo spazio di memoria virtuale assegnato a ciascun programma. Non ha alcun effetto sul modo in cui viene gestita la memoria fisica all'interno del sistema. Cioè, questo interruttore controlla la quantità di memoria che i singoli programmi possono utilizzare, non la quantità di memoria che il sistema può utilizzare.
Axarydax

Credo che tu abbia torto: vedi la mia modifica.
harrymc

Continuo a pensare che Virtual Memory (2 GB o 4 GB) sia per ogni applicazione, non per tutti. Un programma può avere 1 GB, il secondo programma può avere un altro GB, un terzo un altro GB. Non ho bisogno di più di 2 GB per ogni programma, ho bisogno di Windows per eliminare la cache per permettermi di utilizzare tutti i miei 3 GB per i programmi, combinati.
Axarydax

Penso di aver frainteso te, quindi ho riscritto la mia risposta.
harrymc

Con il consiglio di "disabilitare SuperFetch": SuperFetch non aggiunge in alcun modo alla quantità di RAM riportata come "cache"! SuperFetch utilizza RAM che è già stata inserita nell'elenco delle pagine in standby (dopo essere stata rimossa dai processi). L'SPL è già conteggiato come parte di "Copia cache". Dopo aver usato quella RAM per memorizzare i contenuti dei file, SF lascia l'elenco delle pagine di standby, quindi è ancora conteggiato come parte di "Cached"! Quindi, a parità di tutti gli altri, disabilitare SuperFetch non cambierà la quantità di RAM riportata come "cache"! Quella RAM è appena usata per un diverso tipo di cache (una cache di file piuttosto che una cache di pagina).
Jamie Hanrahan

0

Un pop-up molto fastidioso si apre ogni volta che Windows pensa che sia a corto di memoria e, naturalmente, le applicazioni si bloccano quando viene utilizzata la memoria.

Questo popup non ha nulla a che fare con la RAM, e niente a che fare con la cache di Windows. Significa che stai esaurendo il limite di commit. Questo è un limite alla quantità di spazio di indirizzamento virtuale privato che i tuoi processi possono allocare.

Esistono tre modi per aumentare il limite di commit: 1) eseguire meno roba o roba più piccola in una volta; 2) aumentare la RAM; 3) aumentare la dimensione del file di paging. Questo perché il limite di commit è semplicemente la dimensione della RAM più la dimensione corrente del file di paging.

Se dovessi abilitare il tuo file di paging come previsto dai progettisti del sistema operativo, non vedresti questi messaggi e i tuoi programmi non si bloccheranno.

E nonostante ciò che CausingUnderflowsEverywhere ha detto nel loro commento, a volte è necessario un file di paging per consentire ai programmi di allocare la memoria virtuale di cui hanno bisogno, anche se c'è abbondanza di RAM disponibile e anche se il file di paging potrebbe non essere effettivamente utilizzato. Perchè, vedi le mie risposte Qui e inserisci la descrizione del collegamento qui Qui.

n.b .: La maggior parte della RAM "cache" segnalata dal Task Manager è ancora "Disponibile"; la cache SuperFetch in realtà non "usa" la RAM. La "cache" non è ciò che sta causando il tuo problema. La mancanza di un file di paging è.

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.