Cosa c'è di sbagliato nel disabilitare il file di paging di Windows?


15

La gente dice che hai sempre bisogno di un file di paging e che aumenterà le prestazioni, ma il mio Windows 7 è impostato per funzionare senza un file di paging. Semplicemente non capisco perché la gente lo dica: ho 6 GiB di RAM e l'unica volta in cui mi sono quasi esaurito la RAM è stato quando stavo compilando Chromium, per il quale ho temporaneamente abilitato un file di paging.

Ho davvero bisogno di un file di paging * per aumentare la velocità in situazioni tipiche? Perché?

* Sono consapevole che i dump di arresto anomalo richiedono un file di paging. Non uso mai i crash dump, quindi non importa.

Risposte:


8

Un file di paging non migliorerà mai le prestazioni, ma non lo degraderà necessariamente (con una corretta gestione della memoria). L'esecuzione senza un file di paging, tuttavia, tenderà solo ad aumentare l'instabilità del sistema rispetto alle applicazioni che richiedono memoria che non è disponibile per l'uso.

A meno che il tuo sistema operativo non sia particolarmente dannoso nella gestione della memoria, un file di paging con 6GiB di memoria dovrebbe essere poco utile. Ciò non significa che non vedrà alcun uso; IIRC MS Windows è un po 'pazzo quando si tratta di sfogliare le cose anche quando c'è molta memoria disponibile. (Perché, non lo saprò mai.)

Tuttavia, ciò che accade quando non si utilizza il file di paging può essere una ragione sufficiente per abilitarlo: arresti anomali gravi. La maggior parte delle app prevede di ricevere la memoria richiesta. Quando non lo fanno, si schiantano. (Ah, ma i bei vecchi tempi di dover vivere in poche migliaia di byte sono andati ..., e per tutti i troppi sviluppatori, così ha la pratica di occuparsi della gestione della memoria.)

Se un'app è costruita correttamente, fallirà bene. (Per fortuna, non fallirà affatto. Ma non contare su di esso.) Con la maggior parte delle app, avrai un fantastico fallimento tra le mani. Inoltre, maggiore è il numero di app che si avvicinano a tale limite, maggiore è la probabilità di vedere instabilità a livello di sistema.

Caso dalla mia esperienza. Windows XP, 4GiB, nessun file di paging. Perf è stato fantastico. Fino a quando non abbiamo iniziato ad avvicinarci al limite di 4GiB. Poi le cose sono andate male: le app sarebbero andate in crash, le voci di menu sarebbero apparse solo parzialmente (o per niente), i pulsanti non avrebbero fatto nulla, ecc. Sono tornato al file della pagina, anche se le prestazioni erano peggiori con esso - la stabilità complessiva era semplicemente migliore e più importante.

Ora, forse non usi alcuna app o lavori nelle tue app che potrebbero spingere 6GiB, ma riesco a pensare ad alcune situazioni in cui potresti avvicinarti: editing video, editing fotografico, mixaggio e produzione audio, ecc. - in sostanza qualsiasi cosa in cui hai a che fare con molti dati (sia con il lavoro che con lo streaming). Quando i dati superano le tue capacità di memoria, è probabile che la tua app diventi "poof".


Quindi, semplicemente (Sì / No): è corretto dire che, se non uso mai più di 2 GiB di RAM , non vedrò un aumento delle prestazioni ? O c'è ancora un avvertimento da qualche parte, anche con quella condizione preliminare?
user541686,

9
No, un file di paging non migliora mai le prestazioni. Migliora solo la stabilità . Il paging, per definizione, è un'operazione a livello del disco e le operazioni del disco sono sempre più lente delle operazioni a livello della RAM. Inoltre, è più probabile che no, anche con 6GiB (mai superiore a 2GiB), che si verificheranno ancora alcuni problemi di prestazioni poiché Windows continuerà, frustrantemente, a sfogliare i processi inutilizzati su disco. Chiunque abbia pensato che fosse saggio, mi piacerebbe che "si confessassero!)
Kerri Shotts,

Va bene. Forse è perché è quello che volevo sentire, non lo so, ma mi piace la tua risposta. : P Sembra abbastanza ragionevole, grazie!
user541686,

1
Non è vero: un file di paging PU improve migliorare le prestazioni, poiché la posizione dei dati inutilizzati sullo swap può essere utilizzata per la memorizzazione nella cache. Ciò ha causato un simile downvote per te.
Peter - Ripristina Monica il

1
Il file di paging PU improve migliorare le prestazioni. Aumenta la RAM disponibile per tutti i tipi di cache veloci migliorando le prestazioni di avvio / caricamento / operazione del programma. Senza il file di paging, quella preziosa RAM fisica sarebbe piena di spazzatura inamovibile.
Ark-kun,

7

Questo articolo di Mark Russinovich ti dirà tutto ciò che avresti sempre voluto sapere sul file di paging.

Non so se "cache" sia il termine corretto da utilizzare rispetto a ciò che fa il file di paging. Una cache è uno spazio temporaneo di accesso rapido per i dati. Un sistema operativo "crea errori" nel file di paging quando c'è troppa contesa per la RAM fisica. Quindi è un punto fermo per l'overflow della RAM per impedire ai programmi di bloccarsi a causa di memoria insufficiente. Ma credo che Windows provi a mettere cose che non sono state accedute da un po 'di tempo nel file di paging (e Linux potrebbe farlo anche così), in questo senso è una cache, ma non proprio la sua funzione principale.

Ad ogni modo, leggi l'articolo. Ti fornirà buone linee guida su cosa impostare il tuo file di paging. Come dice @Sandeep Bansal, potrebbe esserci un gioco occasionale che richiede di averne uno come parte di un "controllo dei requisiti" per poter funzionare (ma non ne conosco nessuno).

EDIT: questo esempio può aiutarti a capire il ruolo del file di paging:

Supponiamo che tu abbia 512 MB di RAM. Hai un certo numero di programmi aperti, incluso un browser minimizzato che consuma 250 MB di RAM e l'utilizzo totale di RAM di tutto ciò che è in esecuzione in quel momento è di 500 MB.

Quindi, avvii un altro programma (ad esempio un elaboratore di testi) che vuole allocare 150 MB di RAM. Fuori dalla memoria. Tuttavia, se disponiamo di un sistema di paging, è possibile eseguire il paging su disco delle pagine di memoria contenenti il ​​browser ridotto a icona. Quindi può caricare il nuovo programma.

Ora supponiamo che tu voglia tornare al browser dopo un po '. Bene, deve "sfogliare" ciò che ha appena inviato al disco. Se c'è abbastanza RAM libera in quel momento, può farlo senza problemi. In caso contrario, è necessario eseguire prima il paging di qualcos'altro. Se ci sono molti programmi in competizione per la CPU e c'è un paging costante, allora le cose si rallentano e si ha la condizione nota come "thrashing". Tutto questo paging in e out provoca prestazioni più lente, ma evita che i programmi si arrestino in modo anomalo a causa di errori di memoria insufficiente. Questo è lo scopo del file di paging. Troppo paging, cioè "thrashing" probabilmente non è meglio di un programma che si arrende semplicemente perché non riesce a ottenere più RAM la maggior parte del tempo.

Ora puoi vedere come esistono gli algoritmi per anticipare ciò che potrebbe non essere usato in un dato momento, quindi il sistema operativo può "pre-pagina" cose che non pensa che verranno usate immediatamente. Quindi questo rappresenta Windows usando il file di paging dove esiste anche se ha abbastanza RAM. Sta cercando di rendere disponibile quanta più RAM possibile. Windows è come Linux in cui la RAM libera funge da cache del disco, quindi se l'atto di bilanciamento viene eseguito correttamente può contribuire alle prestazioni complessive. Tutto questo fa parte della progettazione del sistema operativo e perché ci vogliono 10 anni per ottenere un buon sistema operativo da migliaia di programmatori.

Quindi, per rispondere effettivamente anche alla tua domanda, questa è l'unica cosa sbagliata con la disabilitazione del file di paging. Tornando all'esempio che ho fornito, senza il file di paging non saresti semplicemente in grado di avviare il tuo browser, o programmi scritti male che non sono programmati in modo difensivo per anticipare gli errori OOM potrebbero comportarsi in modo strano.


@ultrasawblade: Ancora non capisco: il punto di qualsiasi tipo di "cache" è impedire un viaggio sul disco . Se ci vai comunque, perché non prendere semplicemente il file da qualsiasi posizione? Qual è il punto del file di paging?
user541686,

@ultrasawblade: Inoltre, per quanto riguarda l'articolo: Dice in general having [a page file] will mean more usable memory being available to the system. Aspetta cosa? Più memoria disponibile? > 3 GiB di spazio RAM permanentemente inutilizzato non sono sufficienti? (Confuso, dal momento che uso raramente anche oltre 2 GiB.)
user541686

2
I file di paging NON sono cache! Se il tuo ram si riempie e vuoi ancora assicurarti che sembri che il tuo sistema abbia più ram disponibili, allora inizierà a copiare i dati dal ram al tuo disco (da processi che sembrano essere assonnati), quindi hai ancora ram disponibile per i tuoi nuovi processi!
divorò l'elisio

2
@ultrasawblade: l'obiezione che ho contro la tua modifica è che il tuo esempio specifica un utilizzo della RAM del 97% (500/512), mentre il mio esempio specifica un utilizzo della RAM del 33% (2 GB su 6). Non mi chiedevo cosa sarebbe successo se mi avvicinassi al limite; Sono già ben consapevole dei problemi che causano. Stavo chiedendo cosa succede se hai ancora molta strada da fare, dove non si verificherebbe (dovrebbe?) Un thrash o qualcosa del genere. Se riesci a fare lo stesso argomento per il mio caso (6 GiB RAM e 2 GiB in uso), sarebbe molto meglio; altrimenti, semplicemente non risponde alla mia domanda.
user541686,

3
+1 per il collegamento Russinovitch. C'è la risposta Se vuoi rinunciare a un meccanismo di sicurezza per prevenire possibili incidenti, questo è il tuo perogativo. Windows funzionerà perfettamente senza il file di paging, a meno che non decida di non farlo. ;)
Kara Marfia,

2

Un file di paging non è solo per l'archiviazione dei dump di arresto anomalo, non è essenzialmente fatto per quello.

Il file di paging esiste in modo da poter memorizzare i dati che la RAM non deve contenere, è come una cache per gli elementi che non devono esistere in memoria, fornendo così più RAM per altre cose.

Hai ragione sul fatto che potresti non aver bisogno di un file di paging se hai 6 GB di RAM, ma potresti aver bisogno di un file di paging per alcuni elementi, ricordo che alcuni giochi richiedono un file di paging e può essere utile se ce n'è uno.

Non c'è nulla di male nella creazione di un file di paging da 500 MB solo per evitare problemi se un determinato processo ne ha bisogno.


Ma la mia domanda è: diciamo che non uso mai più di 2 GiB di RAM. Abilitare il file di paging mi dà comunque un aumento di velocità ? ("Non fa male" è diverso da "Sì, ti dà un vantaggio").
user541686

Bene, con 6 GB di RAM non noterai nulla, anche se c'è RAM disponibile il Pagefile verrà sempre usato per altre cose. Ho 4 GB, mai andare oltre. Ma ho appena un file di paging da 1 GB, come se i PC di tutti i giorni abbiano ora 500 GB + spazio su HDD, quindi almeno 500-1000 MB non saranno una perdita
Sandeep Bansal,

@Sandeep: Hm ... cosa sono esattamente quelle "altre cose"? La vera ragione per cui non accendo il file di paging è che non capisco perché Windows userebbe il disco rigido quando c'è tanta RAM libera, quindi sono curioso di sapere quali siano quelle "altre cose".
user541686,

È lo stesso di Linux, perché Linux usa lo spazio di swap quando ha RAM per accedere. Il file di paging contiene file che non sono stati utilizzati per un periodo di tempo lontano dalla RAM.
Sandeep Bansal,

@Sandeep: non ho idea del perché sia ​​Linux, la stessa differenza per me. Qual è lo scopo di conservare i file nel file di paging? Se non sono nella RAM, perché non leggerli semplicemente da dove si trovano sul disco?
user541686,

1

Il primo passo è capire cos'è una cache, o meglio, a cosa servono le diverse cache.
La CPU ha una piccola cache interna che le consente di memorizzare risultati OP, stati flag e indirizzi calcolati. Su un dual core credo che la cache interna sia di circa 1 MB. È estremamente veloce, accessibile solo dagli interni della CPU e il più colpito dal calore in una CPU overcloccata.

La cache di livello 2 funge da buffer ad alta velocità per le transazioni da CPU a memoria e contiene anche thread di codice raccolti da prefetch. Su un dual core credo che un'installazione tipica avrebbe 6 MB di cache lvl2. È molto veloce, sebbene più lenta della memoria cache interna, è accessibile solo al controller di memoria e alla CPU e risiede su una linea dedicata sul bus.

Un file di paging è effettivamente una cache, in quanto memorizza i dati che possono essere o non essere presenti in memoria. Un O / S può utilizzare il file di paging per varie attività, una delle quali è quella di salvare lo stato corrente di un file di dati che non è stato ancora eseguito il commit su disco. Quando non esiste un file di paging, spetta all'applicazione di terze parti fornire questa funzionalità internamente. Il problema con questo scenario è che molti programmi non si comportano bene quando si tratta di garbage collection e rimangono sul tuo disco dei file .temp spuri. Questi resti non fanno parte del file manifest dell'installazione e possono ostacolare una procedura di disinstallazione e ridurre la velocità di accesso al disco.

La mia opinione è che un file di scambio è normalmente una buona cosa da avere. Infatti, se il tuo sistema è molto popolato con Ram ed è dedicato a 1 attività specifica e quell'applicazione si occupa di tutte queste cose, potrebbe non essere necessario un file di scambio. Un esempio potrebbe essere un videogioco Arcade che gira sulla piattaforma Windows, che in genere sono installati con solo i driver necessari per i dispositivi presenti e non rischiano di soffrire di contese tra i driver. Per la maggior parte, tuttavia, la maggior parte delle applicazioni non si occupa di tutti i potenziali problemi che potrebbero sorgere e in particolare di quelli che includono l'impatto di altre applicazioni di terzi e la contesa dei driver.

Sebbene si possa notare una riduzione da bassa a moderata delle prestazioni nel breve termine dell'aggiunta di un file di paging, a lungo termine le prestazioni dovrebbero rimanere coerenti. Non avere un file di paging all'inizio può sembrare più veloce, ma col tempo le prestazioni peggioreranno notevolmente.

Steven Malm, MCP.


"Quando un file di paging non esiste, spetta all'applicazione di terze parti fornire questa funzionalità internamente." -> Non sono sicuro di cosa intendi; ai programmi non importa se c'è o meno un file di paging.
user541686

0

Esperienza personale

In questo momento il mio laptop con 8 GB di RAM ha problemi a impedire la creazione / utilizzo del file di paging. La mia vita è un inferno Ricevo costantemente messaggi di "memoria insufficiente", arresto anomalo delle app, ecc. Utilizzando 3 programmi che consumano 1-1,5 GB ciascuno (ad esempio browser Web, Visual Studio con plug-in speciali, ecc.) Cammina sul ghiaccio.

Un altro argomento

L'uso dei dati dalla cache RAM fisica è molto veloce. Più RAM fisica "libera" hai la cache più grande che può contenere. Più dati dormienti il ​​sistema operativo può spostare dalla RAM fisica al file di paging, più RAM fisica viene liberata per le cache di dati a cui si accede frequentemente.

Supponiamo che tu giochi un gioco che carica i dati sulla posizione quando cambi posizione. Hai anche un browser web in esecuzione che lascia, diciamo 2 GB al gioco, che è sufficiente per una singola posizione. Senza un file di paging, ogni volta che si cambia posizione, i dati verranno caricati lentamente dall'HDD. Con un file di paging, i dati del browser Web inutilizzati verrebbero inviati al file di paging e la preziosa RAM fisica verrà utilizzata per archiviare i dati per diverse posizioni con conseguente caricamento della posizione molto più veloce.

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.