GUIDE

Il file di paging e i giochi: perché disattivarlo si ritorce contro

Windows può promettere ai programmi al massimo tanta memoria quanta ne fanno la RAM più il file di paging. Togli il file di paging e quel tetto scende appena sotto la tua RAM, e un gioco che lo raggiunge può bloccarsi o crashare.

Hai 32 GB di RAM, quindi una guida ti ha detto che il file di paging è un residuo delle macchine più piccole e si può togliere. Oppure un gioco è crashato con un errore di memoria insufficiente mentre Gestione attività mostrava molta RAM libera. Oppure, a metà partita, Windows ha detto "Your computer is low on memory" (la memoria del computer è insufficiente) e ti ha chiesto di chiudere dei programmi.

Tutte e tre vengono dallo stesso meccanismo, e non è quello che presuppone il consiglio di disattivarlo.

A che cosa serve il file di paging

Windows distribuisce la memoria in due passaggi. Un programma prima impegna la memoria (commit), cioè Windows promette che lo spazio esiste, e solo dopo ci scrive. L'introduzione al file di paging di Microsoft definisce il tetto di queste promesse: il limite di commit del sistema è la somma della memoria fisica e di tutti i file di paging insieme.

Il totale di tutte le promesse è il carico di commit (commit charge), e non è la stessa cosa della RAM in uso. La guida alle prestazioni di Microsoft sulla memoria impegnata fa notare che la memoria impegnata non è necessariamente stata scritta o toccata, quindi il carico può raggiungere il limite mentre c'è ancora molta memoria fisica disponibile. È così che un gioco può restare senza memoria mentre Gestione attività mostra RAM libera.

Il file di paging ha un secondo compito: tenere la memoria che è stata modificata ma viene usata di rado, così Windows può toglierla dalla RAM e dare quella RAM a qualcosa di più attivo. Il terzo compito, i dump dei crash, ha una sua sezione più sotto.

Che cosa succede senza

Senza file di paging, la guida di Microsoft al dimensionamento del file di paging dice che il limite di commit diventa leggermente inferiore alla memoria fisica installata. Le promesse di ogni programma devono ora stare dentro la RAM, compresa la memoria promessa e non ancora usata.

Quando il carico raggiunge il limite, l'introduzione dice che il sistema e i processi potrebbero non ottenere memoria impegnata, il che può causare blocchi, crash e altri malfunzionamenti. Mark Russinovich, scrivendo della memoria virtuale di Windows nel 2008, l'ha detto chiaramente: quando si raggiunge il limite di commit, le allocazioni che impegnano memoria falliscono. Un gioco che chiede memoria in quel momento non la ottiene.

Ha risposto anche all'argomento della velocità. Alcuni ritengono che non avere un file di paging dia prestazioni migliori, ha scritto, e per alcuni carichi di lavoro può essere così; ma in generale un file di paging permette a Windows di scrivere su disco le pagine che non vengono usate attivamente, lasciando più memoria utilizzabile per il sistema. L'introduzione di Microsoft aggiunge che alcuni prodotti e servizi richiedono un file di paging.

Anche i dump dei crash ne hanno bisogno

Quando Windows va in crash con un errore di arresto, la registrazione di ciò che è andato storto viene scritta, per impostazione predefinita, attraverso il file di paging. La documentazione di Microsoft sui dump dice che il contenuto della RAM viene scritto nel file di paging sulla partizione in cui è installato Windows, che il file di paging deve trovarsi sul volume di avvio perché la funzione di dump funzioni, e che se è stato spostato su un altro volume va riportato lì. Con il tipo di dump predefinito, Dump automatico della memoria, e un file di paging su "System managed size" (dimensioni gestite dal sistema), Windows dimensiona il file di paging in modo che un dump della memoria del kernel si possa acquisire nella maggior parte dei casi.

La finestra della memoria virtuale stessa avvisa di questo: se disattivi il file di paging o imposti la sua dimensione iniziale sotto un certo numero di megabyte e si verifica un errore di sistema, Windows potrebbe non registrare dettagli utili a identificare il problema. Senza quei dettagli, capire perché un gioco è crashato diventa più difficile.

Controlla quanto sei vicino al tetto

Apri Gestione attività, vai in Prestazioni e seleziona "Memory" (memoria). "Committed" (memoria impegnata) mostra due numeri: il carico di commit, poi il limite di commit. Se mentre giochi il primo si avvicina al secondo, sei vicino al tetto di cui parla questa pagina, qualunque cosa dica "In use (Compressed)" (in uso, compressa).

Due guide di Microsoft danno soglie leggermente diverse per quel rapporto. La guida alle prestazioni collegata sopra considera vicino all'esaurimento qualsiasi valore oltre il 75%; l'attuale guida di Microsoft alla risoluzione dei problemi di prestazioni indica da 0 a 50% come sano, da 60 a 80% come avviso e da 80 a 100% come critico.

Per vedere quale programma detiene le promesse, la scheda Dettagli ha una colonna "Commit size" (dimensione del commit) per ogni processo; Seleziona colonne la aggiunge se è nascosta. Se Windows è già rimasto a corto di memoria, registra l'evento 2004 di Microsoft-Windows-Resource-Exhaustion-Detector nel log di sistema, con un messaggio che indica i programmi che hanno consumato più memoria virtuale. Questo comando di PowerShell elenca gli ultimi cinque:

Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-Resource-Exhaustion-Detector'; Id=2004} -MaxEvents 5 | Format-List TimeCreated, Message

Se riporta che non sono stati trovati eventi, il log non contiene nessun evento di questo tipo.

Quanto deve essere grande

Lascialo su "System managed size" (dimensioni gestite dal sistema). La guida al dimensionamento dice che i file di paging sono gestiti dal sistema per impostazione predefinita, e che la dimensione giusta dipende dall'impostazione del dump dei crash e dal tuo picco di carico di commit, è unica per ogni sistema e non si può generalizzare. Russinovich ha definito inutili per lo stesso motivo le vecchie formule basate su un multiplo della RAM.

Un file di paging gestito dal sistema cresce da solo. Quando il carico di commit supera il 90% del limite, cresce fino a tre volte la tua RAM o 4 GB, il valore maggiore dei due, ma non oltre un ottavo del volume, e solo se il disco ha lo spazio libero. Tieni un po' di spazio libero sull'unità che lo ospita.

C'è un'eccezione documentata. Nel KB 4055223, indicato per Windows 10 e Windows 11, Microsoft descrive errori casuali di memoria insufficiente nei programmi che allocano memoria spesso, che possono venire dal ritardo mentre un file di paging automatico cresce. La sua soluzione alternativa è una dimensione personalizzata con una dimensione iniziale di 1,5 volte la tua RAM, da aumentare ancora se gli errori continuano. Questo contrasta con l'affermazione della guida al dimensionamento citata sopra, secondo cui la dimensione non si può generalizzare, e con Russinovich, quindi consideralo il rimedio per quel solo sintomo, non una regola.

Per cambiare l'impostazione, premi Win+R ed esegui SystemPropertiesAdvanced. In Prestazioni, scegli Impostazioni..., apri la scheda Avanzate e scegli Cambia... in Memoria virtuale. La casella in alto è Gestisci automaticamente le dimensioni del file di paging per tutte le unità. Sotto, per ogni unità, ci sono Dimensioni personalizzate, "System managed size" (dimensioni gestite dal sistema) e "No paging file" (nessun file di paging). "Set" (imposta) applica la scelta a quell'unità; poi seleziona OK e riavvia il PC.

Usura dell'SSD

L'altro motivo citato per toglierlo è l'usura dell'SSD. Il blog di ingegneria di Windows 7 di Microsoft ha riportato che nella sua telemetria del 2009 le letture del file di paging superavano le scritture di circa 40 a 1, e ha concluso che ci sono pochi file più adatti del file di paging da mettere su un SSD. Sono dati del 2009, quindi prendili come schema, non come i numeri di oggi.

Per avere una scala su un'unità più recente, la scheda tecnica del 990 PRO di Samsung del 2022 indica per il modello da 1 TB 600 TB scritti con una garanzia limitata di cinque anni, a seconda di quale limite si raggiunge prima. Distribuiti in modo uniforme, sono circa 330 GB di scritture al giorno per cinque anni; quella divisione è nostra, non di Samsung.

Che cosa non aiuta

Correlati

Questa pagina ti è stata utile?

Cosa mancava, o cosa non ha funzionato? Le leggiamo tutte, una per una.

Se questa pagina non ha risolto il problema, scrivici — dicci quale articolo hai letto, e sistemiamo l'articolo.