sviluppo-web-qa.it

Qualche vantaggio o svantaggio derivante dalla rimozione di un file di paging su una macchina da 8 GB RAM?

Sto eseguendo Windows 7 su un dual core, x64 AMD con 8 GB di RAM.

Ho bisogno anche di un file di paging?

Rimuoverlo aiuterà o danneggerà le prestazioni?

Farebbe differenza se questo è un server o un desktop?

Windows 7 e Windows 2008 fanno la differenza con un file di paging?

213
Jason

TL; versione DR: consente a Windows di gestire le impostazioni della memoria/del file di paging. Le persone di MS hanno trascorso un lotto 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 vuole molta memoria, e non c'è abbastanza RAM per soddisfare la necessità, quindi Windows inizia follemente a scrivere dati da RAM su questo disco all'ultimo minuto, in modo che possa liberare 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 RAM molto rapidamente, perché quei dati sono già su disco, pronto per essere reimpostato in RAM se è richiesto. Quindi si può dire che gran parte di ciò che è nel file di paging è anche in RAM; i dati sono stati preventivamente inseriti nel file di paging per accelerare nuovo 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 carine da notare. Innanzitutto, gran parte di ciò che è in RAM è intrinsecamente già sul disco - il codice del programma è stato prelevato da un file eseguibile o un DLL per esempio. Quindi questo non devono essere scritti nel file di paging; Windows può semplicemente tenere traccia di dove sono stati originariamente recuperati i bit. In secondo luogo, Windows tiene traccia dei dati in RAM viene utilizzato più frequentemente, e quindi cancella da 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 da RAM - forse anche il 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 pagarle dal backing store su disco, portando a un notevole thrashing. Perché senza file di paging come archivio di backup per i dati transitori, le uniche cose che possono essere paginate sono eseguibili e DLL che avevano intrinsecamente backing store.

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 annotato 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 dmo un voto , quindi usa il link per arrivarci!

302
quux

Eric Lippert ha recentemente scritto un post di 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 RAM funge da cache che migliora le prestazioni.

80
dmo

Come vedo dalle altre risposte, sono l'unico che ha disabilitato il file di paging e non me ne sono mai pentito. Ottimo: -)

Sia a casa che al lavoro ho Vista 64-bit con 8 GB di RAM. Entrambi hanno il file di pagina disabilitato. Al lavoro non è nulla 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 mostrare uno dopo l'altro, ma tutti 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 riattivato.

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 dal mio Windows XP volte.
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 attimo e Excel esploderà, dopodiché 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 è necessario attendere circa un minuto affinché il sistema carichi 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 è stato 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.

48
SeeR

Si consiglia di 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 detti aggiustamenti.

Perfmon è lo strumento per questo; not Task Manager. Un contatore di chiavi è Memoria - Inserimento pagine/sec. Questo segnerà in modo specifico errori di pagina difficili , quelli in cui è necessaria una lettura dal disco prima che un processo possa continuare. Errori di pagina morbidi (che rappresentano la maggior parte degli elementi rappresentati nel valore predefinito Errori di pagina/sec contatore; Consiglio di ignorare quel contatore!) Non sono davvero un problema; mostrano semplicemente gli elementi letti da RAM normalmente.

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 stai vedendo un grafico Memoria - Pagine di input/sec che è molto più appuntito di questo, la risposta giusta è 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 utile contatore aggiuntivo da monitorare è PhysicalDisk - Avg. Lunghezza coda (tutte le istanze). Questo mostrerà quanto le tue modifiche incidono sull'utilizzo del disco stesso. Un sistema ben educato mostrerà questa media del contatore a 4 o meno per mandrino.

35
quux

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 cancellare 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 tuo file di paging.

Sì, funzionerà alla grande per la maggior parte del tempo. Ma nel momento in cui si rompe potrebbe essere doloroso.

34
Sam

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.

19
Radim Cernej

La migliore risposta a cui riesco a pensare è che con un carico normale potresti non utilizzare gli 8 GB, ma sono i carichi imprevisti 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.

13
Dave Drager

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 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.

6
Mathieu Chateau

L'unica persona che può dirti se i tuoi server o workstation "necessitano" di un file di paging è t, con un uso attento del monitor delle prestazioni o come si chiama in questi giorni. Quali applicazioni stai utilizzando, a che cosa stanno vedendo e qual è l'utilizzo di memoria massimo che potresti 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 omicidio figure dell'uso della memoria.

Quello che io posso dirti è che la rimozione del file della pagina ha una probabilità molto più grave di danneggiare che aiutare. Non riesco a vedere un motivo per cui non ne avresti uno - sono sicuro che potrebbero esserci alcuni casi specialistici in cui mi sbaglio su quello, ma questa è un'altra area.

5
Rob Moir

Ho disabilitato il mio file di paging (8 GB su un laptop x86) e ho avuto due problemi anche con 2500 MB gratuiti:

  1. 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 !!

  2. Ottenere Chiudere i programmi per prevenire la perdita di informazioni nella finestra di dialogo: quando viene utilizzato il 75% del mio RAM ottengo una finestra di dialogo che dice per chiudere i programmi. È possibile disabilitarlo con una modifica del registro (o possibilmente 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.

5
Simon

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 il vostro "free" RAM è usato come cache dei 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 in base alla quale il file di paging viene utilizzato SOLO quando non è attivo RAM (e tutti i buffer di file sono stati scartati), penso che ci sarebbe poco da guadagnare dalla disabilitazione il file di paging.

2
PP.

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!

2
John Lim