Risposte:
Versione TL; DR: consente a Windows di gestire le impostazioni della memoria / del file di paging. Le persone della SM hanno trascorso molte più ore a pensare a questi problemi rispetto alla maggior parte di noi amministratori di sistema.
Molte persone sembrano supporre che Windows inserisca i dati nel file di paging su richiesta. Ad esempio: qualcosa richiede molta memoria e non c'è abbastanza RAM per soddisfare l'esigenza, quindi Windows inizia follemente a scrivere dati dalla RAM sul disco all'ultimo minuto, in modo che possa liberare la RAM per le nuove esigenze.
Questo non è corretto C'è altro da fare sotto il cofano. In generale, Windows mantiene un archivio di backup , il che significa che vuole vedere tutto ciò che è in memoria anche sul disco da qualche parte. Ora, quando qualcosa arriva e richiede molta memoria, Windows può cancellare la RAM molto rapidamente, perché quei dati sono già sul disco, pronti per essere impaginati nella RAM se richiesto. Quindi si può dire che gran parte di ciò che è nel file di paging è anche nella RAM; i dati sono stati inseriti preventivamente nel file di paging per accelerare le nuove richieste di allocazione della memoria.
Descrivere i meccanismi specifici coinvolti richiederebbe molte pagine (vedere il capitolo 7 di Windows Internals e notare che una nuova edizione sarà presto disponibile), ma ci sono alcune cose interessanti da notare. Innanzitutto, gran parte di ciò che è nella RAM è intrinsecamente già presente sul disco, ad esempio il codice del programma recuperato da un file eseguibile o da una DLL. Quindi questo non ha bisogno di essere scritto nel file di paging; Windows può semplicemente tenere traccia di dove sono stati originariamente recuperati i bit. In secondo luogo, Windows tiene traccia di quali dati nella RAM vengono utilizzati più frequentemente e quindi cancella dalla RAM quei dati che sono andati più a lungo senza essere accessibili.
La rimozione completa del file di paging può causare un maggiore blocco del disco. Immagina uno scenario semplice in cui alcune app vengono avviate e richiedono l'80% della RAM esistente. Ciò costringerebbe l'attuale codice eseguibile a uscire dalla RAM, forse anche al codice del sistema operativo. Ora ogni volta che quelle altre app - o il sistema operativo stesso (!!) hanno bisogno di accedere a quei dati, il sistema operativo deve cercarle dall'archivio di backup su disco, portando a un notevole thrashing. Perché senza file di paging che fungono da archivio di backup per i dati transitori, le uniche cose che possono essere paginate sono eseguibili e DLL che avevano archivi di backup intrinseci per cominciare.
Esistono ovviamente molti scenari di risorse / utilizzo. Non è impossibile che tu abbia uno degli scenari in cui non ci sarebbero effetti negativi dalla rimozione del file di paging, ma questi sono la minoranza. Nella maggior parte dei casi, la rimozione o la riduzione del file di paging comporterà una riduzione delle prestazioni in scenari di utilizzo delle risorse di picco.
Alcuni riferimenti:
dmo ha notato un recente post di Eric Lippert che aiuta a comprendere la memoria virtuale (sebbene sia meno correlato alla domanda). Lo sto mettendo qui perché sospetto che alcune persone non scorreranno verso il basso fino ad altre risposte - ma se lo trovi prezioso, devi votare un voto, quindi usa il link per arrivarci!
Eric Lippert ha recentemente scritto un post sul blog che descrive come Windows gestisce la memoria. In breve, il modello di memoria di Windows può essere pensato come un archivio su disco in cui la RAM funge da cache per migliorare le prestazioni.
Come vedo dalle altre risposte, sono l'unico che ha disabilitato il file di paging e non me ne sono mai pentito. Grande :-)
Sia a casa che al lavoro ho Vista 64-bit con 8 GB di RAM. Entrambi hanno il file di paging disabilitato. Al lavoro non è niente di insolito avere poche istanze di Visual Studio 2008, Virtual PC con Windows XP, 2 istanze di SQL Server e Internet Explorer 8 con molte schede che lavorano insieme. Raramente raggiungo l'80% della memoria.
Uso anche il sonno ibrido ogni giorno (letargo con sonno) senza problemi.
Ho iniziato a sperimentarlo con Windows XP con 2 GB di RAM e ho visto davvero la differenza. L'esempio classico è stato quando le icone nel Pannello di controllo hanno smesso di mostrarsi una dopo l'altra, ma tutte in una volta. Anche il tempo di avvio di Firefox / Thunderbird è aumentato notevolmente. Tutto ha iniziato a funzionare immediatamente dopo aver fatto clic su qualcosa. Purtroppo 2 GB erano troppo piccoli per l'utilizzo delle mie applicazioni (Visual Studio 2008, Virtual PC e SQL Server), quindi l'ho abilitato nuovamente.
Ma in questo momento con 8 GB non voglio tornare indietro e abilitare il file di paging.
Per quelli che dicono casi estremi prendi questo dai miei tempi di Windows XP.
Quando si tenta di caricare una tabella pivot di grandi dimensioni in Excel da una query SQL, Excel 2000 aumenta l'utilizzo della memoria piuttosto rapidamente.
Quando il file di paging è disabilitato, attendi un po ', quindi Excel esploderà e dopo il sistema cancellerà tutta la memoria.
Quando hai abilitato il file di paging, aspetti qualche istante e quando noterai che qualcosa non va, non puoi fare quasi nulla con il tuo sistema. Il tuo HDD funziona come l'inferno e anche se in qualche modo riesci a eseguire Task Manager (dopo pochi minuti di attesa) e uccidi excel.exe
devi aspettare qualche minuto fino a quando il sistema non carica tutto indietro dal file di paging.
Come ho visto in seguito, Excel 2003 gestisce la stessa tabella pivot senza problemi con il file di pagina disabilitato, quindi non si è trattato di un "problema di set di dati troppo grande".
Quindi, a mio avviso, un file di pagina disabilitato a volte ti protegge anche da applicazioni scritte male.
In breve: se sei a conoscenza dell'utilizzo della memoria, puoi disabilitarlo in sicurezza.
Modifica: voglio solo aggiungere che ho installato Windows Vista SP2 senza problemi.
È possibile che si desideri eseguire alcune misurazioni per comprendere come il proprio sistema utilizza la memoria prima di apportare modifiche al file di paging. Oppure (se si desidera ancora apportare modifiche), prima e dopo tali modifiche.
Perfmon è lo strumento per questo; non Task Manager. Un contatore di chiavi è Memoria - Inserimento pagine / sec . Ciò specificamente mostrare principali errori di pagina, quelle in cui è necessaria una lettura dal disco prima di un processo può continuare. Gli errori delle pagine morbide (che sono la maggior parte degli elementi rappresentati nel contatore predefinito Errori di pagina / sec ; consiglio di ignorare quel contatore!) Non sono realmente un problema; mostrano semplicemente gli elementi letti normalmente dalla RAM.
Grafico perfmon http://g.imagehost.org/0383/perfmon-paging.png
Sopra è un esempio di un sistema senza preoccupazioni, per quanto riguarda la memoria. Molto occasionalmente si verifica un picco di guasti gravi, che non possono essere evitati, poiché i dischi rigidi sono sempre più grandi della RAM. Ma il grafico è sostanzialmente piatto a zero. Quindi il sistema operativo esegue il paging dal backing store molto raramente.
Se viene visualizzato un grafico Memoria - Pagine di input / sec che è molto più appuntito di questo, la risposta corretta è l'utilizzo della memoria inferiore (eseguire meno programmi) o aggiungere RAM. La modifica delle impostazioni del file di paging non cambierebbe il fatto che al sistema sia richiesta più memoria di quella effettiva.
Un comodo contatore aggiuntivo da monitorare è PhysicalDisk - Media. Lunghezza della coda (tutte le istanze). Questo mostrerà quanto le tue modifiche influenzano l'utilizzo del disco stesso. Un sistema ben educato mostrerà questa media del contatore a 4 o meno per mandrino .
Ho eseguito il mio box Vista x64 da 8 GB senza un file di paging per anni, senza problemi.
I problemi sono sorti quando ho davvero usato la mia memoria!
Tre settimane fa, ho iniziato a modificare file di immagini di grandi dimensioni (~ 2 GB) in Photoshop. Una sessione di editing ha mangiato tutta la mia memoria. Problema: non sono stato in grado di salvare il mio lavoro poiché Photoshop ha bisogno di più memoria per salvare il file!
E poiché era lo stesso Photoshop, che stava esaurendo tutta la memoria, non potevo nemmeno liberare memoria chiudendo i programmi (beh, l'ho fatto, ma era troppo poco per essere di aiuto).
Tutto quello che ho potuto fare è stato eliminare il mio lavoro, abilitare il mio file di paging e ripetere tutto il mio lavoro - a causa di ciò ho perso molto lavoro e non posso raccomandare di disabilitare il file di paging.
Sì, funzionerà alla grande per la maggior parte del tempo. Ma nel momento in cui si rompe potrebbe essere doloroso.
Mentre le risposte qui trattano abbastanza bene l'argomento, consiglierò comunque questa lettura:
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx
Parla della dimensione della PF quasi alla fine:
Alcuni ritengono che non avere un file di paging produca prestazioni migliori, ma in generale, avere un file di paging significa che Windows può scrivere pagine nell'elenco modificato (che rappresentano pagine a cui non si accede attivamente ma che non sono state salvate su disco) sul file di paging, rendendo tale memoria disponibile per scopi più utili (processi o cache dei file). Quindi, sebbene possano esserci alcuni carichi di lavoro che funzionano meglio senza file di paging, in generale avere uno significherà che sarà disponibile più memoria utilizzabile per il sistema (non importa se Windows non sarà in grado di scrivere dump di crash del kernel senza un file di paging di dimensioni grandi abbastanza per tenerli).
Mi piacciono molto gli articoli di Mark.
La migliore risposta a cui riesco a pensare è che con un carico normale potresti non usare gli 8 GB, ma sono i carichi inaspettati in cui potresti avere problemi.
Con un file di paging, il sistema funzionerà almeno lentamente una volta iniziato a colpire la pagina. Ma se rimuovi il file di paging morirà (da quello che so).
Inoltre, 8 GB sembrano molti adesso, ma pochi anni dopo potrebbe essere considerata la quantità minima di memoria per un sacco di software.
Ad ogni modo, consiglierei di conservare almeno un piccolo file di paging; ma altri, per favore, correggimi se sono fuori base.
Non hai menzionato se si tratta di un'edizione a 64 bit di Windows, ma credo di si.
Il file di paging serve molte cose, tra cui la generazione di un dump della memoria in caso di BSoD (Blue Screen of Death).
Se non si dispone di un file di paging, Windows non sarà in grado di eseguire il paging su disco se la memoria non è sufficiente. Potresti pensare che con 8 GB non raggiungerai quel limite. Ma potresti avere programmi scadenti che perdono memoria nel tempo.
Penso che non ti lascerà andare in letargo / standby senza un file di paging (ma non ci ho ancora provato).
Windows 7/2008 / Vista non modifica l'utilizzo del file di paging.
Ho visto una spiegazione di Mark Russinovich (Microsoft Fellow) che spiega che Windows può essere più lento senza file di pagina rispetto a un file di pagina (anche con molta RAM). Ma non riesco a ritrovare la causa principale.
Spazio su disco insufficiente? Terrei un minimo di 1 GB per poter avere un dump del kernel in caso di un BSoD.
Ho disabilitato il mio file di paging (8 GB su un laptop x86) e ho avuto due problemi anche con 2500 MB gratuiti:
Errore ASP.NET durante il tentativo di attivazione del servizio WCF : controllo dei gate di memoria non riuscito perché la memoria libera (399.556.608 byte) è inferiore al 5% della memoria totale. Di conseguenza, il servizio non sarà disponibile per le richieste in arrivo. Per risolvere questo problema, ridurre il carico sulla macchina o regolare il valore di minFreeMemoryPercentageToActivateService sull'elemento di configurazione serviceHostingEnvironment.
Abbastanza come 3,7 GB è inferiore al 5% di 8 GB che non saprò mai !!
Come chiudere i programmi per prevenire la perdita di informazioni : quando si utilizza il 75% della mia RAM, viene visualizzata una finestra di dialogo che mi dice di chiudere i programmi. Puoi disabilitarlo con una modifica del registro (o eventualmente disabilitando il "Servizio criteri di diagnostica").
Alla fine ho deciso di riaccenderlo. Windows semplicemente chiaro e semplice non è mai stato progettato per essere utilizzato senza un file di paging. È ottimizzato per l'esecuzione con il paging, non senza. Se hai intenzione di utilizzare più del 75% della tua memoria e non vuoi fare confusione con il tuo registro, allora potrebbe non essere adatto a te.
L'unica persona che può dirti se i tuoi server o workstation "necessitano" di un file di paging sei tu , con un uso attento del monitor delle prestazioni o come si chiama in questi giorni. Quali applicazioni sono in esecuzione, quale uso stanno vedendo, e qual è il più alto possibile, l'utilizzo della memoria si potrebbe potenzialmente vedere?
Vale forse la pena compromettere la stabilità per risparmiare una piccola quantità di denaro su dischi rigidi più piccoli?
Cosa succede quando scarichi una patch molto grande, ad esempio un service pack. Se il servizio di installazione decide che ha bisogno di più memoria di quanto pensassi di decomprimere la patch, e allora? Se il tuo antivirus (giustamente) decide di scansionare questo pacchetto molto grande, quale tipo di memoria avrà bisogno mentre decomprime e scansiona questo file di patch - spero che il file di archivio di patch non contenga alcun archivio stesso, perché sarebbe assolutamente figure dell'uso della memoria del delitto .
Quello che posso dirti è che la rimozione del file di paging ha una probabilità molto maggiore di danneggiare che aiutare. Non riesco a vedere un motivo per cui non ne avresti avuto uno - sono sicuro che potrebbero esserci alcuni casi specialistici in cui mi sbaglio su quello, ma questa è un'altra area.
La tua memoria totale disponibile è il tuo file di paging + memoria effettiva.
La domanda chiave è se l'utilizzo di memoria totale previsto per tutte le app e l'utilizzo del sistema operativo si avvicinano a 8 GB. Se l'utilizzo medio di mem è di 2 GB e l'utilizzo massimo di memoria è di soli 4 GB, avere un file di paging è inutile. Se l'utilizzo della memoria massima è più vicino a 6-7 Gb o maggiore di è una buona idea avere un file di paging.
PS: non dimenticare di consentire la crescita in futuro!
Sembra che molte persone fortemente limitate abbiano un'opinione su questo argomento, ma in realtà non hanno mai provato a far funzionare il proprio computer senza un file di paging.
Pochi, se non quasi nessuno, ci hanno provato. Ancor meno sembrano sapere come Windows tratta il file di paging. Non si "riempie" solo quando si esaurisce la RAM fisica. Scommetto che molti di voi non sapevano nemmeno che la vostra RAM "gratuita" viene utilizzata come cache di file!
È possibile ottenere enormi miglioramenti delle prestazioni disabilitando il file di paging. Il tuo sistema sarà più suscettibile agli errori di memoria insufficiente (e sai come rispondono le tue applicazioni in quello scenario - per la maggior parte il sistema operativo ha appena terminato l'applicazione). I tempi di avvio da standby o lunghi periodi di inattività saranno molto più rapidi.
Se Microsoft effettivamente ti consentisse di impostare un'opzione per cui il file di paging viene utilizzato SOLO quando la RAM fisica è esaurita (e tutti i buffer di file sono stati scartati), penso che ci sarebbe poco da guadagnare disabilitando il file di paging.
Questo è un antidoto, ma eseguiamo un Terminal Server Windows Server 2003 per circa 20 utenti, con 10-15 di accesso alla volta e 8 GB di RAM. Non eseguiamo un file di paging e il nostro server funziona più velocemente di prima. Questa ovviamente non è una soluzione per tutto, ma abbiamo corso in questo modo per due anni ormai e non ho avuto problemi di cui sono a conoscenza.