GUIDA Gestione File di Paging Windows

È stata una guida utile?


  • Votatori totali
    35
Pubblicità
devi capire una cosa la disattivazione del paging su windows non ha senso e non porta benefici, di nessun tipo

La cosa più bella che ti può capitare è un bel BSOD quindi non ha proprio senso disattivarlo come principio


Come "esercizio di stile" per capire il suo funzionamento può essere utile al livello puramente accademico ma anche in questo caso il paging si basa su un algoritmo che è dentro windows e windows "decide" in maniera del tutto arbitraria se i l processo x o y deve essere messo in paging

Detto in parole molto grezze il paging non è che l'ultima delle cache

non ha senso parlare di prestazioni in questo caso la disattivazione o la sua attivazione sono davvero ininfluenti la differenza sta che se attivi il page file il sistema ha uno "spazio"di dimensioni variabili che il sistema può usare in determinate situazioni in maniera "arbitraria"
Nel caso lo disattivi questo spazio non ci sta

giusto per completezza vi possono essere alcuni casi in alcune applicazioni in cui conviene tenere il page attivo anche in presenza di tantissima ram, non per una questione di prestazioni ma di semplice ottimizzazione e di sfruttamento "logico" della memoria stessa ( potrebbe essere utile per alcuni processi di un programma risiedere su page file piuttosto che occupare memoria ram che è notoriamente più preziosa.)


PS Esistevano in passato e probabilmente esistono ancora dei giochi in cui chi sviluppa utilizza il page file quindi lo ritiene "necessario o meglio indispensabile" per il corretto funzionamento del gioco/programma anche se il gioco o programma ins e non ha bisogno in termini puramente "tecnici" di questo spazio
Si tratta di semplice ottimizzazione per poter sfruttare al meglio la memoria ram verso quei processo prioritari

Quindi anche in questo caso se si tenta di avviare quel gioco o programma si avrà un bel BSOD o il programma avrà problemi ad avviarsi

Questo non significa affatto che hai finito lo spazio
il mio scopo non è dimostrare che disattivando il paging si ottengono benefici, stai interpretando male la natura dei miei test e delle mie considerazioni!
Sto facendo tutto questo per capire cos'è la memoria vincolata e se essa serve davvero al sistema per girare in modo corretto e fluido o se come é stato detto da alcuni di voi é solamente una previsione precauzionale facendomi l-esempio delle stanze d'albergo.
Fai bene a testare infatti 👍
è il miglior modo di imparare da se le cose.

Non conoscevo il gioco te lo dico... ma mi è sembrato strano che giocando con il paging attivo avessi ancora RAM libera e poi con off il paging il gioco crashasse. Infatti googolando la prima cosa che viene sono l'attesa di fix per questo problema.

Ma non importa ai fini del tutto, anzi in realtà dimostra che persino con Returnal, 16GB di RAM bastano (non dico "e avanzano" perchè ne avanzano proprio pochi 😂).
ho appena testato gta 5
gta con paging.webp

a fronte di 10 gb in uso di ram , ben 20 giga vincolati!

tolto paging---> la ram saliva saliva fino a che non appena toccati 16 gb blocco del sistema crash del gioco !!!
 
il mio scopo non è dimostrare che disattivando il paging si ottengono benefici, stai interpretando male la natura dei miei test e delle mie considerazioni!
Sto facendo tutto questo per capire cos'è la memoria vincolata e se essa serve davvero al sistema per girare in modo corretto e fluido o se come é stato detto da alcuni di voi é solamente una previsione precauzionale facendomi l-esempio delle stanze d'albergo.

Fai i test che credi come ho spiegato sopra il page file serve semplicemente perchè è windows che si basa su un sistema in cui si usa, e chi sviluppa non prevede che tu ( anche se in buona fede) lo disattivi


quindi per esperienza personale posso dirti che "serve" in generale, e meno RAM possiedi e più sono i casi in cui il suo utilizzo potrebbe essere utile
 
ho trovato quel test che al tempo fui fatto con windows 7



Ps per la questione dei crash almeno per mia esperienza personale che se si disattiva il page file è molto più "probabile" che avvengano

Non è detto che con tanta ram non avvengano perché ho potuto vedere casi in cui anche con tantissima ram questo problema si verificava. ma si potrebbe dire con un certo grado di accuratezza che in caso di una quantità di RAM inferiore a 32 giga è più probabile che queste instabilità avvengano, e non è assolutamente detto che avvengano in presenza di giochi o programmi pesanti (può succedere anche navigando o svolgendo task leggeri)

Il motivo di questo comportamento mi è attualmente sconosciuto, ma ogni uno di noi utilizza software ed hardware diversi, esistono i bug quindi se si vuole stare sicuri al 100% di un sistema più stabile al livello generale disattivare il file di paging non è una buona idea
Interessante...leggo.
 
Fai i test che credi come ho spiegato sopra il page file serve semplicemente perchè è windows che si basa su un sistema in cui si usa, e chi sviluppa non prevede che tu ( anche se in buona fede) lo disattivi


quindi per esperienza personale posso dirti che "serve" in generale, e meno RAM possiedi e più sono i casi in cui il suo utilizzo potrebbe essere utile
Ma se chi ha 32 gb lo disattiva e non ha problemi significa che serve ma non è una prerogativa indispensabile, dipende da quanta ram hai.
Ma il mio discorso e i miei test dimostrano che la memoria vincolata di sistema è una memoria reale utile e indispensabile al funzionamento di sistema e non è per nulla una previsione ipotetica
--- i due messaggi sono stati uniti ---
Anzi vi dirò di più, in assenza di paging su disco questo viene fatto su ram, in gta prima di andare in crash la ram saliva ma era ancira a 10/11 Gb il paging stava arrivando a 16 Gb appena toccati i 16 crash del game 👍
 
Ma se chi ha 32 gb lo disattiva e non ha problemi significa che serve ma non è una prerogativa indispensabile, dipende da quanta ram hai.
Ma il mio discorso e i miei test dimostrano che la memoria vincolata di sistema è una memoria reale utile e indispensabile al funzionamento di sistema e non è per nulla una previsione ipotetica
--- i due messaggi sono stati uniti ---
Anzi vi dirò di più, in assenza di paging su disco questo viene fatto su ram, in gta prima di andare in crash la ram saliva ma era ancira a 10/11 Gb il paging stava arrivando a 16 Gb appena toccati i 16 crash del game 👍
Se ce l'hai prova anche rdr2, o cod warzone 1 e 2... tutti giochi che portano la memoria vincolata ben oltre la soglia dei 16GB e se disattivo il file di paging, questi giochi crashano. Quindi si, sono dati che il sistema alloca ed in un determinato momento userà (passandoli sotto "in uso")
 
Ma se chi ha 32 gb lo disattiva e non ha problemi significa che serve ma non è una prerogativa indispensabile, dipende da quanta ram hai.
Ma il mio discorso e i miei test dimostrano che la memoria vincolata di sistema è una memoria reale utile e indispensabile al funzionamento di sistema e non è per nulla una previsione ipotetica
in realtà non è così ci sono casi di persone che hanno 32 giga di ram ed hanno avuto instabilità te lo può confermare anche @sp3ctrum

Altre persone che non hanno crash o problemi (o almeno dicono di non averne) con 16Gb

Dipende

io anche ho 32Giga di ram e l'ultima volta che ho disattivato il paging qualche crash l'ho avuto @BAT dice di non averne.....

Quindi non è affatto detto che se hai tanta ram non succede nulla
 
in realtà non è così ci sono casi di persone che hanno 32 giga di ram ed hanno avuto instabilità te lo può confermare anche @sp3ctrum

Altre persone che non hanno crash o problemi (o almeno dicono di non averne) con 16Gb

Dipende

io anche ho 32Giga di ram e l'ultima volta che ho disattivato il paging qualche crash l'ho avuto @BAT dice di non averne.....

Quindi
Se hai avuto problemi il tuo sistema in quel momento richiedeva più di 32 gb di memoria vincolata ovvero memoria che serve al sistema per funzionare in modo fluido e corretto
 
Se hai avuto problemi il tuo sistema in quel momento richiedeva più di 32 gb di memoria vincolata ovvero memoria che serve al sistema per funzionare in modo fluido e corretto
E questo il punto NO

Il sistema senza page file può diventare instabile anche semplicemente non utilizzando task pesanti semplicemente è instabile dipende da che tipo di programmi utilizzi

Quando hai una carenza di memoria e ti garantisco che 32 gigha pe run utilizzo normale anche giocando sono difficili da "riempire" dovresti avere questo messaggio

1677070168837.png


E;'questo che devi capire alcuni programmi o task hanno "bisogno" del page file non per un qualcosa di particolare, semplicemente perchè chi sviluppa ha deciso in questo modo per motivi di ottimizzazione delle risorse

Lo stesso windows non è detto che decida di paginare un programma quando finisce la RAM. l'algoritmo se il page file è presente è possibile che pagini "qualcosa" anche in presenza di molta ram semplicemente perchè è un sacco di tempo che non la utilizzi.


Ci sono utenti che togliendo il page file anche in presenza di tanta ram riescono a fare tutto tranquillamente, altri che hanno crash o instabilità solo mentre giocano, altri ancora che la hanno navigando sul desktop, le configurazioni sono variegate e diverse i programmi che si utilizzano sono variegati e diversi, ed infine esistono i bug ossia quei casi in cui windows o un programma decide di usare il page file anche quando non ci sta
 
Se ce l'hai prova anche rdr2, o cod warzone 1 e 2... tutti giochi che portano la memoria vincolata ben oltre la soglia dei 16GB e se disattivo il file di paging, questi giochi crashano. Quindi si, sono dati che il sistema alloca ed in un determinato momento userà (passandoli sotto "in uso")
Si esattamente, li alloca e contribuiscono al funzionamento totale del sistema, se li hai su disco li mette li se invece li disattivi li alloca nella ram.
Ora se risco provo rdr 2
 
Infatti si potrebbe approfondire - in modo del tutto accademico - il modo in cui Windows determina la quantità di memoria virtuale necessaria... (@BAT ? ) saranno algoritmi non troppo complicati visto che comunque la gestione della memoria è inclusa (e penso sia ancora basata sugli stessi principi) della prima versione di Windows... almeno credo.

Di quello non ho mai parlato nemmeno nei miei precedenti articoli, mi sono limitato alla traduzione degli indirizzi virtuali in indirizzi fisici (Memoria Virtuale: x64 Virtual Address Translation)... considera che il "memory management" (citato da BAT) è descritto in circa 200 pagine sul libro che ha linkato 😆

Ora non so bene se è questo che intendi, ma la memoria necessaria in realtà aumenta quando il processo stesso viene caricato in memoria. La parte caricata è infatti ridotta ed è il working set. Quando un thread lancia un eccezione (page fault) il memory manager si occupa di caricare dal disco la pagina che ha lanciato quell'eccezione e metterla in memoria; assieme a questa pagina ne carica alcune altre adiacenti, poichè "presume" che potrebbe avvenire un accesso anche a quelle.

In realtà il caricamento avviene a cluster, così da non dover leggere effettivamente ogni volta sul disco.

C'è poi un componente (più di uno in realtà) che si occupa di ottimizzare il primo avvio di un programma o del sistema stesso, chiamato "logical prefetcher" . Ne parla (più o meno... molto meno che più) Wiki https://en.wikipedia.org/wiki/Prefetcher
Un altro è "SuperFetch", ma noto che in rete non ci sono info in merito.

La memoria virtuale che viene poi messa sul disco viene "scelta" tramite delle policy; uno di quelli usati se non vado errato è la "clock policy", si chiama clock algorithm (LRU - Wikipedia). Il discorso poi è complicato, ricordo che fa uso di più policy (locali e globali).

Come viene determinata la quantità di memoria?​

Ora, la domanda che ti poni mi sembra sia "come viene determinato per processo?". Ogni processo ha un working set di default che varia da 50 a 350 pagine (circa, probabilmente sto arrotondando xD). In buona sostanza, se non vado errato il limite massimo non è presente, a patto che ci siano ancora pagine disponibili; il liimte è di fatto la memoria fisica di cui disponi (questo perchè l'upper range è qualcosa come 128TB, la quantità di memoria virtuale, il che è impossibile da raggiungere ora come ora).

Se non erro si possono cambiare e specificare limiti, ma dovevano essere apportate modifiche impostando tipo uno scheduling priority differente.

Che succede dopo un page fault? Come dicevo sopra viene portata in memoria la pagina, facendo crescere la memoria; ciò però non avviene quando la memoria disponibile è ridotta, in tal caso vengono rimosse pagine dal working set.

Il discorso è molto complesso, ci sono anche algoritmi di compressione per comprimere le pagine in modo che più pagine vengano anche compresse in una, così da liberare quelle pagine e allocarne solo 1 (si tratta di quella visibile ad esempio dal task manager sotto "Memoria compressa"). Sono tutte decisioni prese dal memory manager.

Queste considerazioni valgono soprattutto per Windows > 8. Magari prima o poi scriverò un articolo non troppo approfondito in merito, anche se avrò bisogno di un ripasso prima.

Sono stato un pò dispersivo me ne rendo conto; è un argomento complesso che merita diverso tempo, ma spero di aver almeno chiarito qualcosa, un minimo. :)

Ma il mio discorso e i miei test dimostrano che la memoria vincolata di sistema è una memoria reale utile e indispensabile al funzionamento di sistema e non è per nulla una previsione ipotetica

Non è da disabilitare infatti, proprio per tutta la serie di considerazioni sopra esposte. Le pagine non usate o meno utilizzate vengono messe in quel pagefile.sys. Quando la tua applicazione richiede memoria, e un gioco ne richiede parecchia, viene usata la RAM. Se non ne hai abbastanza - considerando che hai in esecuzione altri software - si verifica il crash.
 
Ragazzi forse non riuscite ancora a comprendere la natura dei miei test.
Ripeto, il mio obiettivo non è disattivare il file di paging ma è riuscire a capire cosa si intende per memoria vincolata che Windows segna nel task manager, tutto qui! Che il file di paging sia utile nessuno lo mette in dubbio 😅
 
Sto facendo tutto questo per capire cos'è la memoria vincolata e se essa serve davvero al sistema per girare in modo corretto e fluido o se come é stato detto da alcuni di voi é solamente una previsione precauzionale facendomi l-esempio delle stanze d'albergo.
E basta che chiedi... 😉

Il concetto di memoria vincolata o virtuale sorge perchè il sistema operativo, mettiamo Windows, ha la caratteristica e pregio di poter essere installato su una macchina, indipendentemente dal fatto che Windows stesso sappia come è fatto l'hardware.
Se Windows - dal punto di vista della memoria - si ritrova 4GB di RAM o 64GB, dual channel o single, DDR4 o DDR5, un hdd 5400rpm o un ssd nvme pcie 5.0 ...va comunque.
Come fai a dire come deve gestire la memoria a un software che non conosce l'hardware?
Crei una gestione fittizia che fai corrispondere poi, quando installi windows, all'hardware che trovi.
Quindi se Windows crede che per aprire e tenere aperta un app ci vogliono 2GB, crea un legame tra i suoi 2GB a quelli della RAM (primariamente) e a tutto ciò che può essere memoria scrivibile (dischi, ssd).
E così via dicendo, Windows ha una gestione "logica" che poi adatta a "fisica"
Lo fa anche per lo storage ad esempio: su windows decidi di aprire un file e lui va nella sua tabella logica, cerca il file e poi per associazione va a cercarlo nei corrispondenti blocchi fisici.

La virtualizzazione della gestione della memoria - system commit - è una base di qualsiasi versione di sistema operativo.
Questo certo non si può tradurre nell'esempio delle camere d'albergo 😅



ho appena testato gta 5
gta con paging.PNG
a fronte di 10 gb in uso di ram , ben 20 giga vincolati!

tolto paging---> la ram saliva saliva fino a che non appena toccati 16 gb blocco del sistema crash del gioco !!!
Sicuro di non aver problemi con la RAM?
GTA V richiede molto meno di 16GB di RAM!!
(maxato circa 10/11 GB)
 
E basta che chiedi... 😉

Il concetto di memoria vincolata o virtuale sorge perchè il sistema operativo, mettiamo Windows, ha la caratteristica e pregio di poter essere installato su una macchina, indipendentemente dal fatto che Windows stesso sappia come è fatto l'hardware.
Se Windows - dal punto di vista della memoria - si ritrova 4GB di RAM o 64GB, dual channel o single, DDR4 o DDR5, un hdd 5400rpm o un ssd nvme pcie 5.0 ...va comunque.
Come fai a dire come deve gestire la memoria a un software che non conosce l'hardware?
Crei una gestione fittizia che fai corrispondere poi, quando installi windows, all'hardware che trovi.
Quindi se Windows crede che per aprire e tenere aperta un app ci vogliono 2GB, crea un legame tra i suoi 2GB a quelli della RAM (primariamente) e a tutto ciò che può essere memoria scrivibile (dischi, ssd).
E così via dicendo, Windows ha una gestione "logica" che poi adatta a "fisica"
Lo fa anche per lo storage ad esempio: su windows decidi di aprire un file e lui va nella sua tabella logica, cerca il file e poi per associazione va a cercarlo nei corrispondenti blocchi fisici.

La virtualizzazione della gestione della memoria - system commit - è una base di qualsiasi versione di sistema operativo.
Questo certo non si può tradurre nell'esempio delle camere d'albergo 😅




Sicuro di non aver problemi con la RAM?
GTA V richiede molto meno di 16GB di RAM!!
(maxato circa 10/11 GB)
la memoria vincolata NON è virtuale ma reale ed allocata in una porzione di spazio che puo essere su disco (se attivo il file di paging su disco) oppure allocata nella ram!



ennesimo test eseguito , questa volta siamo su Forza Horizon 5

forza horizon 5 con paging.webp

a fronte di 11 gb di ram , ben 22 gb quella vincolata

tolfo file di paging --> avvio game --> la ram sale il paging anche, appena il paging tocca circa16000 mb crash e ritorno a windows
@BWD87
--- i due messaggi sono stati uniti ---
se io vado su google e scrivo file di paging la prima cosa che esce scritta é questa:
Il file di paging (o swap) è una parte del disco rigido che viene utilizzata dal sistema per rimediare all'insufficienza di memoria RAM. Infatti, quando la RAM si satura, questa funzione (attiva di default), fa sì che il sistema utilizzi il disco rigido come se fosse memoria volatile.

nulla di piu sbagliato in quanto come si puo facilmente vedere il paging viene sempre utilizzato a prescindere dalla ram e sopratutto anche in condizione di ram satura al 50% o anche di meno. inoltre se disattivato su disco il paging continua ad essere attivo ma questa volta viene sfruttato dalla ram , questo comportamento é anche logico in quanto windows per funzionare utilizza e sfrutta il paging
 
Ultima modifica:
Lo stesso windows non è detto che decida di paginare un programma quando finisce la RAM. l'algoritmo se il page file è presente è possibile che pagini "qualcosa" anche in presenza di molta ram semplicemente perchè è un sacco di tempo che non la utilizzi.
Vero.
Infatti lo strano è quello di avere microscritture quando attivo e le stesse su RAM quando disattivo... insomma scritture proprio inutili ☹️
Ci sono utenti che togliendo il page file anche in presenza di tanta ram riescono a fare tutto tranquillamente, altri che hanno crash o instabilità solo mentre giocano, altri ancora che la hanno navigando sul desktop, le configurazioni sono variegate e diverse i programmi che si utilizzano sono variegati e diversi, ed infine esistono i bug ossia quei casi in cui windows o un programma decide di usare il page file anche quando non ci sta
Io ho disabilitato per diversi anni il file di paging (periodo 2013-2015) insomma il primi anni di rodaggio degli ssd.. mai un crash.
Uso ufficio leggero, browser, giochi di ogni... 16GB di RAM.
Si esattamente, li alloca e contribuiscono al funzionamento totale del sistema, se li hai su disco li mette li se invece li disattivi li alloca nella ram.
Ma noooooo!!
Non hai ancora capito, mannaggia.

Ascolta, un ssd per quanto veloce è infinitesimamente più lento della memoria RAM.
Nessun OS gira se non ha RAM disponibile.
Nel momento che inizia la paginazione perchè manca RAM, appare il messaggio e/o se giochi un crash.
La parte caricata è infatti ridotta ed è il working set. Quando un thread lancia un eccezione (page fault) il memory manager si occupa di caricare dal disco la pagina che ha lanciato quell'eccezione e metterla in memoria; assieme a questa pagina ne carica alcune altre adiacenti, poichè "presume" che potrebbe avvenire un accesso anche a quelle
La memoria virtuale che viene poi messa sul disco viene "scelta" tramite delle policy; uno di quelli usati se non vado errato è la "clock policy", si chiama clock algorithm (LRU - Wikipedia). Il discorso poi è complicato, ricordo che fa uso di più policy (locali e globali).
Ecco proprio questi elementi di funzionamento.. anche se molto probabilmente mi manca il background per capirlo.

Come viene determinata la quantità di memoria?​

Ora, la domanda che ti poni mi sembra sia "come viene determinato per processo?". Ogni processo ha un working set di default che varia da 50 a 350 pagine (circa, probabilmente sto arrotondando xD). In buona sostanza, se non vado errato il limite massimo non è presente, a patto che ci siano ancora pagine disponibili; il liimte è di fatto la memoria fisica di cui disponi (questo perchè l'upper range è qualcosa come 128TB, la quantità di memoria virtuale, il che è impossibile da raggiungere ora come ora).

Se non erro si possono cambiare e specificare limiti, ma dovevano essere apportate modifiche impostando tipo uno scheduling priority differente.

Che succede dopo un page fault? Come dicevo sopra viene portata in memoria la pagina, facendo crescere la memoria; ciò però non avviene quando la memoria disponibile è ridotta, in tal caso vengono rimosse pagine dal working set.

Il discorso è molto complesso, ci sono anche algoritmi di compressione per comprimere le pagine in modo che più pagine vengano anche compresse in una, così da liberare quelle pagine e allocarne solo 1 (si tratta di quella visibile ad esempio dal task manager sotto "Memoria compressa"). Sono tutte decisioni prese dal memory manager.

Queste considerazioni valgono soprattutto per Windows > 8. Magari prima o poi scriverò un articolo non troppo approfondito in merito, anche se avrò bisogno di un ripasso prima.

Sono stato un pò dispersivo me ne rendo conto; è un argomento complesso che merita diverso tempo, ma spero di aver almeno chiarito qualcosa, un minimo. :)
Attendo un tuo articolo, grazie.
Siii basico per quanto puoi (esempi e parabole 😂)
 
la memoria vincolata NON è virtuale ma reale ed allocata in una porzione di spazio che puo essere su disco (se attivo il file di paging su disco) oppure allocata nella ram!



ennesimo test eseguito , questa volta siamo su Forza Horizon 5


a fronte di 11 gb di ram , ben 22 gb quella vincolata

tolfo file di paging --> avvio game --> la ram sale il paging anche, appena il paging tocca circa16000 mb crash e ritorno a windows
@BWD87
--- i due messaggi sono stati uniti ---
se io vado su google e scrivo file di paging la prima cosa che esce scritta é questa:
Il file di paging (o swap) è una parte del disco rigido che viene utilizzata dal sistema per rimediare all'insufficienza di memoria RAM. Infatti, quando la RAM si satura, questa funzione (attiva di default), fa sì che il sistema utilizzi il disco rigido come se fosse memoria volatile.

nulla di piu sbagliato in quanto come si puo facilmente vedere il paging viene sempre utilizzato a prescindere dalla ram e sopratutto anche in condizione di ram satura al 50% o anche di meno. inoltre se disattivato su disco il paging continua ad essere attivo ma questa volta viene sfruttato dalla ram , questo comportamento é anche logico in quanto windows per funzionare utilizza e sfrutta il paging
Prova senza togliere il file di paging, ma impostandolo con una quita fissa piccola a tuo piacere, che forse è più adatto per il tuo scopo rispetto a disattivarlo completamente

Disattivandolo inserisci la casualità che qualche processo che lo necessita (e ce ne sono ancora di programmi che se trovano il paging disattivato rifiutano di avviarsi o vanno in crash) crei i crash che rilevi
 
Pubblicità
Pubblicità
Indietro
Top