Pagefile: cosè e come funziona la memoria virtuale

Cos’è il pagefile?

Il pagefile, identificato dal file system Windows con il nome `pagefile.sys`, è un file di sistema nascosto posizionato nella radice del disco di sistema (solitamente C:). La sua funzione primaria è quella di fungere da estensione della memoria RAM fisica, creando di fatto la cosiddetta memoria virtuale. Quando il sistema operativo esaurisce la RAM disponibile, sposta i dati meno utilizzati, chiamati pagine, dalla RAM al pagefile. Questo meccanismo permette di liberare spazio prezioso nella memoria fisica per le applicazioni attive, evitando crash e messaggi di errore legati alla scarsità di memoria. Il pagefile non è un componente opzionale: senza di esso, Windows potrebbe non essere in grado di avviarsi correttamente o di gestire carichi di lavoro complessi. È importante sottolineare che il pagefile non è una soluzione magica per la mancanza di RAM: se il sistema fa eccessivo affidamento su di esso, le prestazioni calano drasticamente perché la lettura da disco (anche se SSD) è molto più lenta rispetto alla RAM.

Come funziona la memoria virtuale?

La memoria virtuale è un sistema di gestione della memoria che combina la RAM fisica con lo spazio su disco, rappresentato dal pagefile. Quando un programma viene eseguito, il sistema operativo carica in RAM solo le parti attive del programma. I dati che non servono immediatamente vengono spostati in un'area di swap, ovvero il pagefile, su disco. Questo processo, chiamato paging, permette di eseguire più applicazioni contemporaneamente di quanto la sola RAM fisica consentirebbe. Il sistema operativo decide dinamicamente quali pagine mantenere in RAM e quali spostare su disco, basandosi sulla frequenza di accesso ai dati. Se un programma richiede una pagina che è stata spostata nel pagefile, si verifica un page fault: il sistema recupera quella pagina dal disco e la carica in RAM, sostituendo eventualmente un’altra pagina meno utilizzata. Questo meccanismo è trasparente per l’utente, ma può introdurre ritardi significativi se il sistema è costretto a continui scambi tra RAM e disco, fenomeno noto come thrashing. Un pagefile ben dimensionato riduce il rischio di thrashing, ma non lo elimina del tutto se la RAM è insufficiente per il carico di lavoro.

Pagefile: cosè e come funziona la memoria virtuale - 1

Perché il pagefile è fondamentale per i crash dump?

Una delle funzioni meno conosciute ma cruciali del pagefile è il supporto alla generazione dei crash dump. Quando Windows si blocca in modo critico con una schermata blu (BSOD), il sistema operativo salva un registro degli errori, chiamato kernel memory dump, nel file di paging. Questo dump contiene informazioni vitali sullo stato della memoria al momento del crash, permettendo agli sviluppatori e agli amministratori di sistema di diagnosticare la causa del problema. Per generare un crash dump completo, Windows richiede che il pagefile sia abbastanza grande da contenere l’intera immagine della memoria fisica. Se il pagefile è troppo piccolo, il dump viene troncato o non viene creato affatto, rendendo impossibile la risoluzione di problemi complessi. Per questo motivo, disabilitare completamente il pagefile è estremamente pericoloso: oltre a causare instabilità durante l’uso normale, impedisce al sistema di fornire informazioni diagnostiche utili in caso di guasto. Molti amministratori di sistema consigliano di mantenere almeno un pagefile minimo di dimensioni pari alla RAM fisica, proprio per garantire la possibilità di generare dump affidabili.

Dove si trova il file pagefile.sys?

Il file `pagefile.sys` è posizionato nella directory principale del disco di sistema, solitamente `C:\pagefile.sys`. Per impostazione predefinita, il file è nascosto e protetto dal sistema, quindi non è visibile in Esplora risorse senza abilitare l’opzione "Mostra file nascosti" e deselezionare "Nascondi file protetti del sistema operativo". Anche se visibile, non è consigliabile tentare di eliminarlo o spostarlo manualmente, poiché il sistema ne ha bisogno continuamente. Windows gestisce automaticamente le dimensioni del pagefile in base alle esigenze del sistema, ma gli utenti esperti possono personalizzarlo. La posizione predefinita sul disco di sistema non è casuale: il sistema operativo accede al pagefile frequentemente, e posizionarlo su un disco diverso da quello di sistema può, in alcuni casi, migliorare le prestazioni riducendo la contesa di I/O. Tuttavia, questa scelta va fatta con cautela e solo su dischi veloci (SSD o NVMe).

Pagefile: cosè e come funziona la memoria virtuale - 2

Come configurare il pagefile in Windows

La configurazione del pagefile avviene tramite il pannello di controllo di Windows. Il percorso standard è: Pannello di controllo > Sistema e sicurezza > Sistema > Impostazioni di sistema avanzate > Prestazioni (Impostazioni) > Avanzate > Memoria virtuale (Modifica). A questo punto, l’utente può scegliere se mantenere la gestione automatica (consigliata per la maggior parte degli utenti) o impostare manualmente una dimensione personalizzata. Ecco una guida pratica per la configurazione manuale:

  • Selezionare l’unità su cui posizionare il pagefile (solitamente l’unità di sistema).
  • Scegliere l’opzione "Dimensione personalizzata".
  • Impostare la dimensione iniziale (Initial size) e la dimensione massima (Maximum size).
  • Una regola comune è: dimensione iniziale pari alla RAM fisica, dimensione massima pari al doppio della RAM.
  • Evitare di disabilitare il pagefile su tutte le unità: questa opzione è disponibile, ma è sconsigliata per via dei rischi di crash e di perdita di dati diagnostici.
  • Per sistemi con 16 GB o più di RAM, si può ridurre il pagefile a dimensioni più piccole, ma mai a zero.

È importante notare che modificare il pagefile non produce effetti immediati: è necessario un riavvio del sistema per applicare le modifiche. Inoltre, se si utilizza un SSD, è bene sapere che l’uso intensivo del pagefile può accelerare l’usura del drive, anche se gli SSD moderni gestiscono bene questo carico. Per un dimensionamento ottimale, è utile conoscere il proprio carico di lavoro tipico. Ecco una tabella indicativa basata sulla RAM installata:

Pagefile: cosè e come funziona la memoria virtuale - 3
RAM installataDimensione iniziale consigliataDimensione massima consigliata
4 GB4096 MB (4 GB)8192 MB (8 GB)
8 GB8192 MB (8 GB)16384 MB (16 GB)
16 GB4096 MB (4 GB)8192 MB (8 GB)
32 GB o più1024 MB (1 GB)4096 MB (4 GB)

Questa tabella è solo un punto di partenza. Utenti che eseguono macchine virtuali, editing video o rendering 3D potrebbero aver bisogno di un pagefile più grande, mentre chi utilizza il PC per navigazione e ufficio può tranquillamente ridurlo.

Differenze tra pagefile, memoria virtuale e swap

Spesso i termini "pagefile", "memoria virtuale" e "swap" vengono usati come sinonimi, ma non lo sono esattamente. La memoria virtuale è il concetto più ampio: è l’astrazione che permette al sistema operativo di far credere ai programmi di avere a disposizione più memoria di quella fisicamente presente. Il pagefile è il file su disco che implementa la memoria virtuale su Windows. Sui sistemi Linux, la funzione analoga è chiamata swap, che può essere implementata sia come partizione dedicata (swap partition) che come file (swap file). La differenza principale sta nell’approccio di gestione: Windows utilizza un file preallocato, mentre Linux può usare partizioni o file. Inoltre, Windows tende a mantenere dati meno recenti nel pagefile, mentre Linux può utilizzare lo swap in modo diverso a seconda delle impostazioni dello swappiness. Nonostante queste differenze tecniche, la finalità è identica: evitare che il sistema si blocchi per mancanza di RAM. Per approfondire il funzionamento della memoria virtuale in generale, puoi consultare la documentazione ufficiale Microsoft sul pagefile.

Pagefile: cosè e come funziona la memoria virtuale - 4

Quando è meglio aumentare o ridurre il pagefile?

Decidere se aumentare o ridurre il pagefile dipende dall’uso che si fa del computer. Se il sistema mostra frequenti errori di memoria insufficiente (come "Il sistema ha poca memoria virtuale" o crash di applicazioni), è probabile che il pagefile sia troppo piccolo. In questi casi, aumentarlo può risolvere il problema, ma è anche un segnale che la RAM fisica è insufficiente: l’acquisto di un modulo aggiuntivo sarebbe la soluzione migliore. Se invece si dispone di una grande quantità di RAM (32 GB o più) e non si eseguono applicazioni che richiedono molta memoria, si può ridurre il pagefile a una dimensione minima, ad esempio 1 GB, per risparmiare spazio su disco. Tuttavia, non bisogna mai azzerarlo. Alcuni utenti credono erroneamente che disabilitare il pagefile acceleri il sistema: in realtà, il sistema operativo è progettato per funzionare con la memoria virtuale, e forzare la disabilitazione può portare a comportamenti imprevedibili, soprattutto in scenari di multitasking intenso. Per una guida più dettagliata sulla configurazione avanzata, puoi leggere questo articolo di PDQ sul pagefile.

Rischi di disabilitare completamente il pagefile

Disabilitare il pagefile è una pratica sconsigliata dalla maggior parte degli esperti, inclusi i tecnici Microsoft. Il rischio principale è che il sistema non sia in grado di allocare memoria sufficiente per le applicazioni quando la RAM è piena, causando crash improvvisi e perdita di dati. Inoltre, senza un pagefile adeguato, Windows non può generare crash dump utili per diagnosticare guasti hardware o software. Esistono scenari specifici, come l’uso di server con memoria ECC e carichi di lavoro prevedibili, in cui la disabilitazione può essere giustificata, ma per l’utente domestico o professionale medio è una scelta pericolosa. Anche con 64 GB di RAM, un pagefile minimo di 1 GB è consigliato per garantire la stabilità e la possibilità di debug. In sintesi: se non si hanno motivi molto specifici e documentati, è meglio lasciare la gestione automatica del pagefile o impostarlo manualmente con valori ragionevoli.

Pagefile: cosè e come funziona la memoria virtuale - 5

Riferimenti

Per la stesura di questo articolo sono state utilizzate le seguenti fonti autorevoli:

Microsoft. (2023). Introduction to the page file. Documentazione tecnica. Disponibile su: https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/introduction-to-the-page-file

TechTarget. (2023). What is a pagefile?. Definizione e funzionamento. Disponibile su: https://www.techtarget.com/whatis/definition/pagefile

Puget Systems. (2023). What is Pagefile, and how to adjust it. Guida pratica. Disponibile su: https://www.pugetsystems.com/support/guides/what-is-pagefile-and-how-to-adjust-it-2243/

Howtogeek. (2023). What Is the Windows Page File?. Spiegazione divulgativa. Disponibile su: https://www.howtogeek.com/126430/what-is-the-windows-page-file/

PDQ. (2023). What is pagefile.sys and why is it so huge?. Approfondimento tecnico. Disponibile su: https://www.pdq.com/blog/why-is-my-pagefile-sys-so-huge/

sistema operativo Windows memoria virtuale file di paging ottimizzazione PC hardware
Avviso Le informazioni hanno solo scopo informativo e non sostituiscono il supporto tecnico specializzato.
Autore

Stefano Barcellos

Collaboratore di Visite Barbados.

« Articolo precedente
Aggiornare il database in modo semplice e veloce

Articoli correlati