Il file di
paging (paginazione o anche
file di scambio) è un particolare file di Windows usato per supportare la cosiddetta "memoria virtuale", un meccanismo con cui viene simulata una memoria centrale (RAM) maggiore di quella realmente installata nel computer. In realtà il concetto di "memoria virtuale" è molto più complesso e non è oggetto di questa guida, per maggiori informazioni potete consultare la fonte ufficiale:
https://docs.microsoft.com/it-IT/tr...rmance/ram-virtual-memory-pagefile-management
Come spiegato in dettaglio nel documento tecnico di Microsoft (e come ben sanno gli studenti universitari che seguono un corso di Sistemi Operativi), memoria virtuale e file di paging sono due cose differenti:
- la memoria virtuale è una tecnica di gestione della memoria che riguarda la traduzione di indirizzi di memoria (sempre memoria virtuale, in pratica dei numeri binari) generati dai processi (un processo è un programma in esecuzione), in indirizzi di RAM reale (compito a carico del sistema operativo e dell'hardware). Fin quando c'è memoria disponibile, la traduzione di indirizzi virtuali-reali avviene direttamente nella RAM libera;
- quando uno o più processi richiedono ulteriore memoria ma la RAM è esaurita, le pagine di RAM occupate che non servono all'elaborazione vengono copiate su disco nel file di paginazione, quindi "liberate" e messe a disposizione dei processi che le richiedono. Se le stesse pagine serviranno di nuovo all'elaborazione, verranno di nuovo copiate questa volta dal page-file alla RAM. Questo "scambia di posto" (swap) RAM-dischi e viceversa è il motivo per cui il page-file viene chiamato anche "file di scambio".
Il paging su disco è il "mezzo" su cui poggia il funzionamento del meccanismo di scambio (swapping) quando la RAM si esaurisce.
La memoria virtuale è sempre "attiva": i sistemi operativi operano SOLO con memoria virtuale, traducendo gli indirizzi virtuali in indirizzi di RAM reale mediante le proprie tabelle e insieme alla MMU (Memory Management Unit) della CPU.
Che succede alle prestazioni?
Dal punto di vista delle prestazioni c'è un grosso problema: con la paginazione c'è una intensa attività di input/output tra RAM e periferiche di archiviazione di massa (SSD e/o HDD), che sono enormemente più lente della RAM. Per evitare il calo di prestazioni, in teoria ci sarebbe un solo modo:
limitare il più possibile il ricorso alla paginazione. Ciò induce gli utenti a porsi le seguenti domande:
- posso disattivare il file di paginazione? se la risposta è "sì" quando posso farlo?
- se non posso disattivare il file di paginazione, come devo impostarlo? esistono impostazioni "ottimali"? Che dimensioni dovrebbe avere? Dove devo metterlo?
- se configuro bene il file di paging, le prestazioni aumenteranno?
Non esiste una sola risposta, né una che vada bene per tutti. Windows in particolare, devia dall'uso canonico che si fa della paginazione in altri sistemi operativi (Linux per esempio) e la usa anche quando potrebbe evitarlo.
Posso disattivare il file di paging? Quando sì e quando no? C'è qualcosa che posso fare per disattivarlo?
NO, non dovresti disattivare la paginazione salvo casi molto particolari:
se sei assolutamente sicuro che la quantità di RAM che hai installato sul tuo computer è sempre sufficiente ad eseguire qualunque applicazione/gioco che usi puoi disattivarlo, altrimenti no. L'unico modo per esserne sicuro è provarci: se ricevi dal sistema operativo un messaggio di "memoria insufficiente per eseguire l'applicazione" devi riattivarlo per forza; stesso discorso se, dopo la disattivazione del file ottieni crash dalle applicazioni/giochi.
L'unico metodo con cui potresti riuscire a tenerlo disattivato è espandere il più possibile la RAM (cosa sempre desiderabile, indipendentemente dalla paginazione): più RAM hai meno è probabile ricevere un messaggio di "memoria insufficiente", più RAM hai più lontano sarà il momento in cui il sistema operativo dovrà paginare.
Ma non è tutto: ci sono applicazioni che semplicemente si rifiutano di partire se non rilevano l'esistenza del file di paging, quindi, ancora una volta, l'unica è tentare: se hai successo sei in una situazione fortunata, altrimenti ti basta riattivarlo.
Quali dimensioni dovrebbe avere il file di paging?
Windows gestisce il file di paging in modo dinamico, ossia occupando su disco per esso una certa quantità di spazio e ridimensionandolo (espandendolo o rimpicciolendolo) quando necessario. Sembrerebbe una buona cosa, tuttavia qualche controindicazione c'è: per esempio la quantità di spazio minima allocata è abbastanza rilevante. Senza dover andare su sistemi operativi ormai obsoleti, vi basti pensare che Windows 10 su PC con 16 o 32 GB di RAM alloca un file di paging di dimensione di circa 3-4 GB; "allocare" significa che quello spazio risulterà occupato nel file-system, non che Windows necessariamente vi scriverà sopra. Questo modo di operare inoltre è problematico su vecchi computer che non hanno SSD ma solo hard-disk: la gestione dinamica provoca frammentazione dell'HDD e perdita di prestazioni. Inoltre, se lasciato gestire da Windows, il file di paging può, sulla carta, crescere a piacere, il che è controproducente.
L'utente in Windows può impostare dimensioni minime e massime: ma quanto grandi? Non esiste un'unica risposta.
Dipende dalla quantità RAM a disposizione, dal tipo di disco (SSD/HDD), dal tipo di applicazioni usate. Quello che bisogna sapere è questo:
- se hai un computer solo con hard disk (e nessun SSD) la gestione dinamica è da evitare, le impostazioni minime e massime devono essere identiche: in questo modo il file di paginazione non si frammenterà perché verrà creato come insieme contiguo di blocchi su HDD;
- esiste una sorta di limite teorico alla dimensione massima che dovrebbe essere consentita al file di paging: il doppio della RAM. Il motivo è il seguente: il caso peggiore possibile di paginazione è di dover copiare l'intero contenuto della RAM su disco e, subito dopo, riempire tutta la RAM con dati prelevati dal file di paginazione, come mostrato nella figura seguente (ovviamente questo è una caso solo teorico: in relatà non può succedere di copiare l'intera RAM perché una parte serve sempre al sistema operativo per funzionare):
Nella figura precedente si possono verificare 2 casi all'apertura di ulteriori applicazioni:
- se il file di paging è gestito da Windows ed è lasciato crescere liberamente il sistema va in thrashing, una situazione in cui l'apertura di qualunque nuovo programma causa la paginazione di quelli già in RAM. Le prestazioni crollano ed il computer diventa inutilizzabile perché il sistema operativo passa più tempo a paginare che ad eseguire l'elaborazione per l'utente. In questo caso l'unica ancora di salvezza è espandere la RAM.
- meno grave: il file di paging ha una dimensione limitata dall'utente. In tal caso il tentativo di aprire nuove applicazioni causerà un mesaggio di "memoria insufficiente", ma il sistema è ancora utilizzabile. Ancora una volta, l'unica possibilità per aprire più applicazioni è espandere la RAM.
- Il file di paging deve essere impostato (possibilmente) su un disco veloce per ridurre la perdita di prestazioni dovuta all'intensa attività di input/output.
- Quando possibile, impostare il file di paginazione su un disco differente da quello di sistema, così sfruttare il parallelismo dei canali dati: uno per il sistema operativo e l'altro per la paginazione.
- Un gigabyte binario (gibibyte) equivale a 1024 MiB (megabyte binari, o più precisamente "mebibyte"); ricorda che Windows usa il simbolo MB (non MiB che sarebbe quello corretto).
Adesso ci sono tutti gli elementi per capire come fare le impostazioni, distinguiamo diversi casi a seconda del tipo di disco (HDD o SSD a disposizione:
- hai un solo HDD (hard disk) convenzionale e nessun SSD: il file di paging deve essere impostato nella stessa partizione del sistema operativo (quindi se hai il sistema su C devi avere il file di paging su C, e questa è anche l'impostazione predefinita di Windows). La dimensione minima e massima devono essere identiche. Il numero di MB da impostare deve essere al massimo pari al doppio della RAM, ma potrebbe bastare meno, dipende dalle applicazioni che userai. Per esempio se hai 4 GB di RAM imposta per entrambi i limiti al più 8192 MB (8192 = 1024 * 4 * 2); più realisticamente ne basta meno: DEVI PROVARE e vedere se qualcosa va in crash. Il peggio che succede è sprecare un po' di spazio ma su un HDD che è enorme. NOTA BENE: casomai ti venisse il dubbio, sappi che l'HDD non si usura scrivendo sempre sullo stesso file.
- hai 2 (o più) HDD e nessun SSD: imposta il file di paging sull'hard disk (più veloce) dove NON c'è il sistema operativo. Dimensione minima e massima devono coincidere. Il valore massimo da impostare è il doppio della RAM, realisticamente ne basta meno, il peggio che succede è sprecare un po' di spazio ma su un HDD che è enorme.
- hai un solo SSD: sugli SSD non esiste frammentazione, valori minimo e massimo possono essere diversi senza generare problemi. Imposta un valore minimo a 16MB. Il valore massimo può essere impostato a piacere, purché non sia più del doppio della RAM, il suggerimento è un valore compreso tra la dimensione dlla RAM ed il suo doppio: per esempio se hai 8 GiB di RAM non impostare più di 16384 MB (=1024*16), ma potrebbe bastarne molto meno; se hai 16 GB al massimo 32768 MB, ma realisticamente 16384 sono sufficienti per quasi tutti i giochi attuali (al momento in cui scriviamo: 03/11/2021).
- hai 2 (o più) SSD: imposta il file di paging sull'SSD (più veloce) dove NON c'è il sistema operativo. Per la dimensione minima e massima regolati come al punto precedente
- configurazioni miste SSD+HDD: imposta il file di paging preferibilmente su SSD, a meno che non sia proprio necessario impostarlo su HDD, per esempio perché l'SSD è piccolo e sta esaurendo lo spazio. Se puoi impostare sull'SSD per le dimensioni minime/massime devi fare come descritto nel punto (3), se sei costretto ad usare un HDD seleziona il più veloce e segui le istruzioni del punto (1). NOTA: quando apparvero i primi SSD usl mercato, si preferiva mettere il file di paginazione su HDD per non rovinare le costose celle di memoria flash dell'SSD; oggi, con i moderni SSD, questa preoccupazione è infondata.
- Non esistono numeri magici: dimensione minima e massima vanno impostate caso per caso, nonc'è un valore buono per tutti e per ogni uso. Nel dubbio chiedetelo a noi (oppure lasciate fare a Windows: non saranno impostazioni ottimali ma, bene o male, funzionano).
Se configuro bene il file di paging le prestazioni aumentano?
Le prestazioni generali di un computer sono date essenzialmente dalla potenza dell'hardware. Con una buona configurazione del file di paging (unita ad altre configurazioni "di fino" del sistema operativo"), potresti notare una miglior reattività, ma non puoi aspettarti miracoli. Miglioramenti tangibili sono osservabili solo su vecchi computer che montano HDD e nessun SSD.
Altrimenti, se noti un miglioramento delle prestazioni è più probabile che ci fossero altri problemi a monte, e che la riconfigurazione delle impostazioni di paging li abbia fortunosamente risolti. Quello che devi fare è PROVARE.
Impostare il file di paging e dove trovarlo
-apri una cartella a caso
-nella colonna di sinistra cerca "Questo PC", clicca con il tasto dx del mouse e poi "proprietà"
-impostazioni di sistema avanzate
-scheda "avanzate” , casella "Prestazioni", schiaccia "impostazioni..."
-scheda "avanzate"
-riquadro "Memoria Virtuale", premi "cambia"
-deselezionare "gestisci automaticamente file di paging per tutte le unità”
-seleziona "Dimensioni personalizzate"
-inserisci i valori come nell'immagine e solo nel drive di sistema (C: )
PER SSD
PER HDD meccanici
-premi "imposta"
-al messaggio di avviso "si" (il registro eventi continuerà a funzionare regolarmente)
-premi applica, ok
-riavvia il pc
Accertarsi di aver applicato bene la guida, verificando, dopo il riavvia del pc che su attualmente allocata vengano riportatate le dimensioni iniziali che avete impostato. Se non è così, bisogna rimettere la spunta su "gestisci automaticamente le dimensioni.....", riavviare il pc e rieseguire la guida da capo.
Quindi, come si fa a capire quanti dati sono effettivamente caricati in un dato momento?
Basta aprire "gestione attività", selezionare la scheda "prestazioni", selezionare "memoria" e leggere il valore contrassegnato nell'immagine sottostante:
Qualora vogliate visualizzare in game il valore corretto dei dati caricati, recatevi in MSI afterburner ed attivate il monitoraggio della voce "utilizzo file di paging" come da immagine:
Un saluto a tutta la community!