Come posso rendere Windows 7 meno aggressivo nella memoria cache?


16

Ho notato di recente che Windows 7 sul mio computer si è lamentato della mancanza di memoria e che dovrei chiudere alcuni programmi. Indicherebbe quindi di solito un programma in esecuzione che ha una perdita di memoria ed è diventato piuttosto grande. Tuttavia, in genere questi programmi iniziano a 20 MB di utilizzo della RAM e solo dopo aver eseguito il programma tra le 12 e le 24 ore crescono fino a un massimo di 200 MB di utilizzo della RAM. Non ho mai più di tre di questi programmi in esecuzione contemporaneamente, quindi 600 MB di RAM di utilizzo massimo che abbia mai visto dai miei programmi in esecuzione.

Sto eseguendo Windows 7 x64 su una macchina con 4 GB di RAM. All'inizio l'ho davvero dimenticato e avrei riavviato i programmi quando Windows si è lamentato, ma ora che mi sono ricordato, il fatto che Windows si stia lamentando di me usando 600 MB di RAM (meno di 2 GB anche se includi la memoria utilizzata dal sistema operativo stesso) sembrava strano . Quindi ho aperto la finestra del processo di sistema per esaminare il mio utilizzo totale della memoria dai miei processi e processi di sistema elencati. Si è aggiunto a poco più di 700 MB, quindi ero ancora confuso. Quindi sono andato a Monitor risorse e ho aperto la scheda Memoria. Lì penso di aver trovato la mia risposta. Ha notato che in realtà stavo usando solo il 33% della mia RAM. Tuttavia, sulla barra di allocazione delle risorse di memoria fisica, la sezione Modified era fino a 2,3 GB, la sezione Standby era fino a 540 MB, la sezione Free era inferiore a 20 MB, la memoria cache era elencata a 2. 8 GB e memoria disponibile erano elencati a 550 MB. (Questi valori sono leggermente arrotondati, ovviamente, poiché i tuoi cambiano costantemente mentre scrivo questo.)

Quindi apparentemente Windows 7 utilizza più memoria di me. Ad un certo punto in passato ho apportato alcune modifiche al menu dei servizi di Windows installati, ma questo era solo per disabilitare alcuni servizi di hosting, poiché non volevo fare alcuna condivisione multimediale, abilitare il client Telnet e rimuovere Internet Explorer, ma potrebbe essere colpa mia. Esiste un modo per fare in modo che Windows non lo faccia o almeno memorizza nella cache molto meno aggressivamente, quindi smetto di ricevere questi avvisi di "memoria insufficiente"?


2
L'OP fraintende il problema. Sta esaurendo la memoria virtuale di backup. Tutta la sua analisi sulla memoria fisica è irrilevante. È possibile disporre di molta memoria fisica libera ma memoria virtuale di backup libera insufficiente e l'avviso di pop-up della memoria è un avvertimento che la memoria virtuale di backup è insufficiente, non memoria fisica. (Anche se una perdita di memoria fisica da un driver può causare il problema indirettamente.)
David Schwartz

"L'OP fraintende il problema." Come fanno molti dei rispondenti. :(
Jamie Hanrahan,

Risposte:


10

La memoria di standby non è un problema, è considerata "libera" e verrà riallocata su richiesta: contiene solo la memoria utilizzata di recente dai programmi, ma ora viene liberata. Se un altro programma richiede più memoria di "Free", il sistema dovrebbe allocare senza problemi dal set di standby (poiché la memoria di "standby" non è attualmente in uso).

La tua eccessiva memoria modificata è il tuo problema, perché non può essere riallocata facilmente. Vedi qui . È probabile che sia causato da una perdita di memoria (che sembra corrispondere al tuo primo paragrafo - quali programmi perdono?) O che un file di paging è troppo piccolo (il file di paging è fisso o disattivato?).


3
Come ho notato nel mio commento per la risposta di CJM, ho chiuso tutte le mie applicazioni che erano discutibili (alcuni giochi per PC indipendenti) e ora hanno solo Task Manager, Resource Monitor, AVG e Chrome in esecuzione ma hanno ancora 1,6 GB di memoria modificata. Lascio il mio computer acceso per giorni alla volta, che corrisponde al profilo nell'articolo che hai collegato. Tuttavia, una nota su quella pagina Web era cercare un processo con una dimensione di commit di grandi dimensioni. Attualmente si tratta di un processo da nSvcAppFlt.exe. Ha solo una dimensione del set di lavoro di 30 MB ma una dimensione di commit di 13,5 GB. Cosa dà?
grg-n-sox,

2
Questo è il programma che perde la tua memoria. Vedi anche social.answers.microsoft.com/Forums/en-US/w7performance/thread/… . Rimuovilo e tutto dovrebbe andare bene.
Akid

Grazie mille. In realtà è un po 'elegante. Quindi, fondamentalmente, se noto che la mia RAM è stata consumata, posso semplicemente andare al mio monitor delle risorse, vedere se la sezione Memoria modificata è enorme e vedere quale processo ha una dimensione di commit elevata e trovo il mio programma che perde memoria? Sicuramente uno strumento diagnostico per Windows.
grg-n-sox,

Disabilita o aggiorna il tuo software firewall Nvidia.
David Schwartz,

Hai tre "tu" che dovresti essere "tuo" nell'ultimo paragrafo. (non posso suggerire la modifica, troppo minore.)
Shadow The Burning Wizard

4

La memorizzazione nella cache preventiva di SuperFetch non è un problema. Windows 7 utilizzerà quanta più memoria di riserva possibile per memorizzare nella cache preventivamente ciò che pensa sarà necessario in seguito. Se funziona nel modo giusto, ti fa risparmiare un po 'di tempo e le tue applicazioni appaiono più veloci e reattive.

Se indovina, e hai bisogno di altri dati, Superfetch rilascerà parte della memoria che ha, per permetterti di caricare i dati di cui hai veramente bisogno. Vedi: http://arstechnica.com/microsoft/news/2010/02/behind-the-windows-7-memory-usage-scaremongering.ars

Se riscontri problemi di "memoria insufficiente", non sarà a causa di SuperFetch, poiché abbandonerà tutta la memoria necessaria se le applicazioni lo richiedono. La memoria disponibile (550 MB) è ciò che viene utilizzato da Superfetch, quindi chiaramente non hai ancora esaurito la memoria. Anche quando esaurisci tutta la RAM, il tuo computer tornerà alla memoria virtuale, anche se vorrai evitarlo a causa del colpo di prestazioni ...

Quindi suggerisce che i problemi di "memoria insufficiente" sono dovuti a problemi altrove - forse una delle tue app che perdono consuma (e non rinunciare) ad altri tipi di risorse ...

In entrambi i casi, è più probabile trovare la soluzione affrontando le applicazioni buggy, piuttosto che scherzare con SuperFetch ...


Capisco che la sezione di memoria Standby fa parte della memoria cache, ma devo seriamente dubitare che il problema sia nei miei programmi. Li ho appena chiusi tutti, quindi tutto quello che ho in esecuzione è AVG, Task Manager, Resource Monitor e una singola finestra di Chrome con 4 schede. Ho solo 1042 MB in uso con 1417 MB di memoria disponibile, ma ho ancora quell'enorme pezzo di memoria modificata che occupa 1633 MB che il Task Manager sta contando come memoria utilizzata e mi dà avvisi di memoria insufficiente. C'è un modo per ridurre la quantità di memoria modificata o semplicemente disattivare l'avviso di memoria insufficiente?
grg-n-sox,

0

Poiché non ritieni che il problema sia causato da un programma con una perdita di memoria, l'alternativa sarebbe aumentare le dimensioni del tuo file di paging.

Sebbene il file di paging non sia la memoria principale, consentirà al sistema operativo di scambiare più dati sul disco rigido e, si spera, fermare il messaggio "memoria insufficiente". L'unica altra opzione sarebbe quella di rimuovere il programma associato al processo che ha l'enorme impronta di 13 GB, anche se non ho idea di quale programma avrebbe bisogno di pagina quella memoria, a meno che non fosse un gioco per PC di fascia alta o un software di rendering 3D.


0

Dalla mia esperienza, lo scorrimento della memoria in standby è un vero problema. Ad esempio, se eseguo Snagit in modalità rolling-windows per un articolo lungo, ci saranno parti dell'articolo che non sono state acquisite durante l'esecuzione solo sulla memoria di standby. In ogni caso, trovo che il mio computer sia lento nella memoria di standby.

Per risolvere il problema, utilizzo l'ottimizzatore di memoria dalle Glary Utilities gratuite. Il mio computer ha 6 GIG di memoria. Al primo avvio, ho circa 2 GIG di memoria In-Use, 2 GIG di Stand-by e 2 GIG di quella che chiamo memoria libera libera secondo Resource Monitor di Windows. Entro circa mezza giornata tutta la mia memoria Free-Free si trasformerebbe in memoria Standby, indipendentemente dal fatto che stavo usando il computer o meno. Ora ho l'ottimizzatore di memoria di Glary Utilities che si avvia con Windows e posso mantenere il mio computer in esecuzione a tempo indeterminato con 2 GIG completi di memoria Free-Free disponibile.

Ogni volta che mi siedo per un'altra sessione, per prima cosa faccio doppio clic sull'icona della barra di ottimizzazione della memoria e eseguo un'ottimizzazione; chiedendo che il mio originale 2 GIG di memoria Free-Free venga liberato. Posso chiedere di più, ma questo è il massimo che libererà a prescindere. Il completamento dell'ottimizzatore richiede circa 30 secondi, che è molto inferiore a quello necessario per un riavvio. Ha una modalità di ottimizzazione automatica ma non sono stato in grado di capire come farlo funzionare.


La memoria di standby non è un problema.
Jamie Hanrahan,

L '"ottimizzatore di memoria" dovrebbe essere eliminato. La RAM di standby è la RAM che è stata recentemente "in uso" nei processi. È stato espulso da questi processi a causa della sostituzione del set di lavoro, ma contiene ancora ciò che ha fatto quando era "in uso". Se un processo ha bisogno di ciò che è in una di quelle pagine, la pagina può essere restituita rapidamente al processo. Ecco perché lo standby è considerato parte del conteggio di "Cache". Ma Standby è anche "Disponibile" per altri usi come lo è la RAM libera. Il tuo "ottimizzatore di memoria" ha appena spostato un sacco di pagine da Standby a Free, ovvero hai abbattuto la cache di Standby [...]
Jamie Hanrahan il

[...] senza rendere disponibile più RAM. Dato che "Standby" era sempre "Disponibile" comunque! Con Vista e versioni successive, Superfetch ora può utilizzare parte di Standby per la cache di file proattiva, ma le pagine sono ancora riproposibili per essere utilizzate da altri processi, se necessario. Quindi SuperFetch non toglie nessuna pagina da "Disponibile". Sbarazzarsi del "gestore della memoria", sta danneggiando le prestazioni del sistema, causando I / O su disco non necessari.
Jamie Hanrahan,

-1

Risolvere questo problema

Vai a start-run-msconfig, quindi servizi e rimuovi il segno di spunta da "Windows driver foundation". fare clic su OK e riavviare la macchina.

Ricorda: solo i passaggi sopra menzionati risolveranno questo problema. Se hai disabilitato da services.msc, è ancora attivo al momento dell'avvio del sistema operativo e bloccherà la tua memoria.

Per verificare questo utilizzare lo strumento


Disabilitando il servizio WDF si disabiliteranno tutti i dispositivi che dipendono da quel modello di driver. È una cattiva idea
Jamie Hanrahan,
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.