Come ridurre il thrashing del disco (paging)?


11

Ho 4 GB di RAM, ma a volte Windows blocca ancora il disco (specialmente spesso quando un'applicazione viene ridotta a icona per un po 'di tempo e poi lo riattivo). Completamente stupido, perché Task Manager mostra 2 GB di RAM gratuiti. Esiste un modo per impedire a Windows di sostituire la memoria del programma?

Ho provato a impostare Superfetch per memorizzare nella cache solo i file di avvio (mi ha aiutato un po ') e a disattivare il file di paging (mi ha aiutato molto, e ha funzionato bene per me in Windows XP; ma Windows Vista / Windows 7 non lo consentono - mostra "basso in memoria "messaggio frequentemente, anche quando ho 1 GB di RAM libera.)

Cosa mi puoi consigliare di fare?


6
Non vuoi disattivare il superfetch con 4 GB di RAM, ma potresti voler disattivare l'indicizzazione. Lascia il file della pagina da solo, Windows ne sa di più di chiunque di noi. Non posso fare a meno del paging.
Phoshi,

2
No, sicuramente desidero disattivarlo. La cosa maledetta è troppo mal progettata. Una volta l'ho trovato caricando tutti i file di alcuni giochi ad ogni avvio (ero solito giocare di sera), e quella mangiava metà della mia RAM, e quello era l'ultimo giorno in cui Superfetch era in esecuzione sul mio PC con impostazioni illimitate.
skevar7,

1
Il termine thrashing generalmente si riferisce alla situazione in cui la memoria fisica è piena o quasi piena e si verificano scambi di pagine costanti. Non si riferisce alla normale attività di scambio di pagine. Quello che stai vedendo non è un thrashing, ma solo come è stato progettato l'algoritmo di gestione della memoria. Mantenere lo spazio disponibile per i processi appena generati, supporre che un processo che ha la sua finestra ridotta a icona non sia in uso e dovrebbe spostare la sua memoria dal disco e così via.
spowers

2
Questa è la decisione peggiore che abbia mai assunto che, poiché una finestra è ridotta a icona, non viene utilizzata. Se è ridotto a icona, è perché non c'è abbastanza spazio sullo schermo durante il multitasking. Sono così stanco di tornare al mio computer e nonostante abbia pochi programmi in esecuzione, rallenterà e balbetterà per riportare i dati dal file di pagina quando sto ripristinando alcune finestre da uno stato ridotto, nonostante abbia GIG di RAM libera. Il file di paging non deve MAI essere toccato a meno che non stia esaurendo la RAM. Se Windows vuole fare ipotesi sui programmi minimizzati, fallo quando in realtà non c'è abbastanza RAM.
Triynko,

Risposte:


7

Mark Russianovich ha scritto un buon lungo articolo sulla memoria virtuale,
spingendo i limiti di Windows: memoria virtuale

La memoria virtuale separa la vista della memoria di un programma dalla memoria fisica del sistema, quindi un sistema operativo decide quando e se archiviare il codice e i dati del programma nella memoria fisica e quando archiviarlo in un file. Il vantaggio principale della memoria virtuale è che consente l'esecuzione simultanea di più processi di quanti potrebbero altrimenti adattarsi alla memoria fisica.

Mentre la memoria virtuale ha limiti correlati ai limiti di memoria fisica, la memoria virtuale ha limiti che derivano da origini diverse e che sono diversi a seconda del consumatore. Ad esempio, esistono limiti di memoria virtuale che si applicano ai singoli processi che eseguono applicazioni, il sistema operativo e l'intero sistema. È importante ricordare mentre leggi questo che la memoria virtuale, come suggerisce il nome, non ha una connessione diretta con la memoria fisica. Windows che assegna alla cache dei file una certa quantità di memoria virtuale non determina la quantità di dati di file che effettivamente memorizza nella memoria fisica; può essere qualsiasi importo da nessuno a più della quantità indirizzabile tramite memoria virtuale.

È un'ottima lettura.

Quanto dovrei creare il file di paging?
Forse una delle domande più frequenti relative alla memoria virtuale è: quanto dovrei creare il file di paging? Non c'è fine a ridicoli consigli sul Web e nelle riviste in edicola che coprono Windows, e persino Microsoft ha pubblicato consigli fuorvianti. Quasi tutti i suggerimenti si basano sulla moltiplicazione della dimensione della RAM per un fattore, con valori comuni di 1,2, 1,5 e 2. Ora che hai compreso il ruolo che il file di paging svolge nel definire il limite di commit di un sistema e in che modo i processi contribuiscono all'addebito del commit, sei ben posizionato per vedere quanto siano inutili tali formule.


Articolo precedente: Superare i limiti di Windows: memoria fisica

Puoi vedere il layout della memoria fisica con lo strumento Meminfo di Alex Ionescu .


5
Niente di nuovo per me lì. E questa non è una risposta alla mia domanda.
skevar7,

2
@ skevar7: forse non una risposta per te, ma buoni collegamenti a spiegazioni sull'intera faccenda per qualcuno che troverebbe questo argomento e che non avrebbe la stessa conoscenza di te.
Gnoupi,

1
regola empirica: non menzionare nemmeno il paging a meno che non sia con assoluta certezza correlata al tuo problema o se vuoi solo scatenare una discussione infinita su DO e NON ... lo stesso vale per i browser web e il software antivirus: )

1
Sono assolutamente sicuro che il paging sia colpevole, perché perfmon mostra guasti gravi quando il disco si rompe. So sicuramente che la disattivazione del file di paging migliora significativamente le prestazioni. È un fatto oggettivo e può essere misurato. L'unico problema è che Windows dal momento che Vista non vuole più funzionare in tale configurazione.
skevar7,

3
@ skevar7: E forse, forse, ci sono persone competenti che pensano a Microsoft e hanno pensato e deciso che era necessario il file di paging. Non l'hanno fatto solo per disturbarti.
Gnoupi,

4

Basta lasciare la gestione della memoria virtuale su Windows, fa un buon lavoro. Il paging (e quindi le sfocature di Mark Russinovic riguardo alla questione) sono piuttosto irrilevanti per il thrashing del disco (se si dispone di memoria di sistema in abbondanza), si stanno cercando delle modifiche NTFS .

O'Reilly ha un interessante articolo sugli hack di prestazioni NTFS .

Dal punto di vista hardware: un disco rigido migliore con una velocità di centrifuga più elevata e una cache più grande sarà di grande aiuto.

Ed ecco come eliminare l'avvertimento di memoria insufficiente, assumere la proprietà e nuke le seguenti chiavi di registro.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {5EE64AFB-398D-4edb-AF71-3B830219ABF7}]

e

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {45DE1EA9-10BC-4f96-9B21-4B6B83DBF476}]

Ciò impedirà al servizio di diagnostica di caricare RADAR. Funziona per me in Windows Vista, le chiavi sono presenti in Windows 7. Non l'ho provato, basta fare il backup di quelle chiavi prima di cancellarle.


2

L'unico modo che ho trovato è stato aumentare la dimensione della RAM a 8 GB e disattivare il paging impostando

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ DisablePagingExecutive = 1

(riavvio richiesto).

Ciò ha ridotto l'attività del disco a quasi zero.


Sospetto che tu abbia voluto un disco eccentrico o lento per volerlo. Ho qualcosa di simile e contrario a ciò che la maggior parte presume qui, quello che hai fatto sarebbe una buona soluzione. L'aumento della RAM e l'utilizzo del paging del disco minimo o assente potrebbero essere una soluzione più intelligente (ed economica) rispetto alla sostituzione di supporti lenti.
j riv

L'impostazione del registro non "disattiva il paging". Disabilita il paging solo per quelle che altrimenti sarebbero porzioni di ntoskrnl.exe e il pool di paging.
Jamie Hanrahan,

Non so di Vista ma su Windows 7 disabilito il paging e non presenta problemi e avvisi. Questo è con 8 o 16 GB di RAM.
i486,

1

Scopri Pannello di controllo \ Sistema e sicurezza \ Sistema> Impostazioni di sistema avanzate> [Avanzate]> Prestazioni: Impostazioni> [Avanzate]

La pianificazione del processore è correlata al tuo problema, così come la possibilità di disabilitare il file di paging che non dovresti fare. (Ne hai bisogno)


0

Sembra che tu abbia installato un pulitore cache / mem. Spingono le applicazioni allo scambio quando le minimizzi invece di lasciarle in memoria.

Il sistema è lento o stai solo usando la parola thrash perché vedi la luce HD lampeggiare?


Nessun detergente. A volte ci vuole molto più tempo del solito per eseguire operazioni semplici (5-10 secondi) e il disco si rompe. Questo di solito accade dopo che l'app è stata inattiva per qualche tempo. Omperazioni molto semplici: apri una nuova scheda in Opera, crea un nuovo file in Visual Studio, ecc. Quindi suppongo che l'algoritmo di paging di Windows sia tutt'altro che perfetto. Disattivare completamente il file di paging ha funzionato bene per me in WinXP, ma sfortunatamente Vista e Win7 non lo consentono.
skevar7,

A differenza di molti sistemi operativi, Windows presenterà una buona quantità di problemi hardware senza arresti anomali e potrebbe essere che in background si stia verificando una sorta di ripristino che sta causando il ritardo. So che fa schifo, ma esegui un test HD per assicurarti che non sia sollevato in quanto sembra davvero un problema di I / O poiché il problema scompare quando non si consente al sistema di utilizzare lo scambio. Verificare la presenza di aggiornamenti del BIOS relativi a I / O, controller hd, ecc. In quanto potrebbe esserci un problema noto. Il sistema impiega FOREVER per l'avvio (XP, Vista o 7)? In tal caso, è sicuramente un problema di I / O.
UnderLoK,

* Avrei dovuto dire "Windows risolverà una discreta quantità di problemi hardware senza
avvisarti

0

Passa a Linux, non lo fa.

La gente ti direbbe che Windows è più intelligente di te e non dovresti giocherellare con le impostazioni del file di paging e hanno ragione. Ma quel sistema è principalmente sintonizzato per allocare nuova memoria per un processo quasi istantaneamente e lo fa bene. Uno degli effetti collaterali è che sposta tutto ciò che hai in memoria su disco per tutto il tempo, quindi quando ha bisogno di una nuova porzione di memoria potrebbe semplicemente cancellare questa porzione di memoria e darla immediatamente se non è cambiata ovviamente. Credo che quando lasci le applicazioni in esecuzione, tutti i loro dati sono stati archiviati su disco e poi ad un certo punto altre applicazioni o sistemi di cache iniziano a utilizzare questa memoria. Quindi l'applicazione viene lasciata con il minimo indispensabile dei loro dati nella RAM fisica e quando si ricomincia a usarlo deve recuperare tutto dal disco.

Detto questo, non credo che tu possa fare tutto con quello, è solo una delle proprietà principali del sistema. Puoi peggiorare le cose disattivando la pagina o eseguendo qualsiasi altra regolazione del sistema. Non puoi farlo funzionare come preferisci perché non è stato scritto pensando a quello.


2
E ancora una volta una risposta "Windows fa quello, come posso ...? -> Sposta in Linux". Comunque il resto della risposta è corretto, ma avresti potuto farlo senza la prima frase.
Gnoupi,

OK, ma quando si dispone di 8 GB di RAM e la necessità reale è di 3 GB, perché è necessario eseguire uno scambio su disco? D'altra parte, immagina di avere 2 GB di RAM fisica + 2 GB di file di scambio - come funziona questo sistema senza "esplosione"? 4 GB sono sufficienti per tutto ma con 8 GB di RAM fisica + 0 swap è "possibile" avere memoria insufficiente. Come? Penso che l'algoritmo per la memoria virtuale sia sbagliato da Windows 95 volte e non sia cambiato in Windows 10.
i486
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.