- Messaggi
- 11,779
- Reazioni
- 5,930
- Punteggio
- 208
Articolo 13/10/2022 https://learn.microsoft.com/it-it/t...ent/performance/introduction-to-the-page-file
Questo vuole essere una trasposizione spiegata di un articolo di Microsoft Learn,
I file di pagina hanno la funzionalità seguente:
1) Estendere fisicamente la RAM (memoria fisica di sistema)
I file di pagina consentono al sistema di rimuovere le pagine modificate a cui si accede raramente dalla memoria fisica per consentire al sistema di usare la memoria fisica in modo più efficiente per le pagine a cui si accede più di frequente.
(Notate che la frase parla di "pagine"; sappiate che la pagina è l'unità più piccola programmabile. Un insieme di pagine da 4KiB realizzano un Blocco.
Dunque il file di paging consente di togliere dalla RAM le pagine che sono poco usate cioè lette o modificate, in modo che la RAM sia utilizzata dalle pagine, cioè i dati a cui si accede più spesso, come un software o una pagina web di cui facciamo uso in quel momento.
Come vedete non si parla di file veri e propri, o blocchi, ma di pagine, cioè di dati amorfi. Il file di paging è, si può dire, un attività grezza, "ignorante" circa il contenuto del dato, ma la pagina essendo fissa come dimensione, consente una allocazione ottimizzata).
2) Rispondere ai requisiti per alcune applicazioni
Alcuni prodotti o servizi richiedono un file di pagina per vari motivi. Per informazioni specifiche, consultare la documentazione del prodotto.
Ad esempio....
(Purtroppo è ancora vero per alcune applicazioni che si reggono sulla RAM e che sono strutturati per avere nel paging una sicurezza).
3) Supportare il dump di arresto anomalo del sistema
I file di pagina possono essere usati per "eseguire il backup" (o supportare) i dump di arresto anomalo del sistema ed estendere la quantità di memoria con commit del sistema (nota anche come "memoria virtuale") supportata da un sistema.
(Quando Windows va in crash memorizza - se è attivo il file di paging ovviamente - tutti i dati di monitoraggio su disco in modo che alla riaccensione sono disponibili; la RAM infatti sapete si resetta ad ogni spegnimento).
(In questa frase si introduce il concetto di "memoria committed" e memoria virtuale.
Memoria virtuale, si tratta di una astrazione della memoria che permette a Windows di gestirla indipendentemente dalla memoria fisica. Con questa astrazione Windows può essere installato in un hardware che ha 8 oppure 16, o 32GB e oltre di RAM ma che può avere dischi di storage diversi.
Inoltre con questa astrazione windows considererà la memoria come fatta di tantissime pagine indipendenti a cui possono essere assegnate priorità diverse e quindi posizioni diverse ma anche considerare pagine allo stesso tempo appartenenti a blocchi diversi, lavorando apparentemente su file diversi.
In sostanza ricordate: Windows lavora con la memoria virtuale e usa la memoria reale/fisica/RAM. Pensateli come 2 livelli distinti per un solo obbiettivo.
Commit cioè nella versione italiana "vincolata", è la parte di memoria virtuale, che Windows impegna al momento per far fronte a tutte le necessità future. A me piacciono le similitudini, quindi ve la posso spiegare così: se siete in auto e viaggiate incolonnati a 40 KM/h, la memoria virtuale vincolata, si può dire che sia: "la distanza che voi valutate giusta (previsione) per non tamponare, se ad un certo punto l'auto davanti inchioda improvvisamente".
Allo stesso modo Windows con degli algoritmi calcola quanta memoria complessiva serve ora ed ipoteticamente nell'immediato futuro (si parla di frazioni di secondo), per memorizzare tutto quello che serve senza crash.
Se non avete afferrato a pieno non vi preoccupate, riprenderemo il concetto più volte).
File di pagina in Windows con memoria fisica di grandi dimensioni
Quando viene installata una memoria fisica di grandi dimensioni, potrebbe non essere necessario un file di pagina per supportare l'addebito del commit di sistema durante l'utilizzo massimo. Ad esempio, le versioni a 64 bit di Windows e Windows Server supportano più memoria fisica (RAM) rispetto alle versioni a 32 bit supportate. La sola memoria fisica disponibile potrebbe essere sufficientemente grande.
Tuttavia, il motivo per configurare le dimensioni del file di pagina non è stato modificato. Si tratta sempre di supportare un dump di arresto anomalo del sistema, se necessario, o di estendere il limite di commit del sistema, se necessario. Ad esempio, quando viene installata molta memoria fisica, potrebbe non essere necessario un file di pagina per eseguire il backup dell'addebito del commit di sistema durante l'utilizzo massimo. La sola memoria fisica disponibile potrebbe essere sufficientemente grande per eseguire questa operazione. Tuttavia, potrebbe essere necessario un file di pagina o un file di dump dedicato per eseguire il backup di un dump di arresto anomalo del sistema.
(L'idea del file di paging nasce con pc con poca RAM quando era una funzione importantissima. Oggi abbiamo PC con tanta RAM, quindi l'autore del testo ci dice che potrebbe non essere più necessario il file di paging - che sapete si può disattivare - ma che disattivandolo non avremo più la funzione di creazione del file di dump, ovvero il punto 3 sopra.
Soffermandoci sulla frase:
...o di estendere il limite di commit del sistema, se necessario. Ad esempio, quando viene installata molta memoria fisica, potrebbe non essere necessario un file di pagina per eseguire il backup dell'addebito del commit di sistema durante l'utilizzo massimo.
Estendere il limite di commit significa questo: ho detto che Windows vincola della memoria, come se dicesse "ora serve tot GB di memoria e la metto quì, quì e quì!", ovviamente a quel punto se il file di paging non c'è, Windows ha come limite massimo, la dimensione della RAM (c'è solo quella), ma andando ad accendere il file di paging, Windows vede anche i dischi di storage sapendo che parte di quello spazio può essere utilizzato.
Ecco che allora lo spazio vincolato (committed) da Windows si estende a oltre la dimensione della RAM. Si estende il limite di commit.
Diventa ora chiaro che l'addebito di commit di sistema durante l'utilizzo massimo è la crescita della memoria vincolata che durante l'utilizzo massimo della memoria fisica/RAM - dice il testo - in caso di tanta RAM, rimane al di sotto della quantità di RAM disponibile, cioè il file di paging non è più necessario.
Altro esempio: sono a casa e attendo ospiti. Man mano che entrano dalla porta faccio accomodare gli ospiti su sedie, poltrona divano... il mio addebito di commit stà crescendo ma se ho sedie a sufficienza --> RAM, posso permettermi di non andare nel ripostiglio a tirar fuori le sedie pieghevoli-->file di pagnig.
Memoria di cui è stato eseguito il commit del sistema
I file di pagina estendono la quantità di "memoria di cui è stato eseguito il commit" (nota anche come "memoria virtuale") per archiviare i dati modificati.
Il limite di memoria del commit di sistema è la somma della memoria fisica e di tutti i file di pagina combinati. Rappresenta la memoria massima con commit del sistema (nota anche come "addebito del commit di sistema") che il sistema può supportare.
Sostituite la parola commit con "vincolo" o "prenotazione" e la frase già sembra più comprensibile.
Windows può creare più file di paging ed utilizzarli, uno per disco storage. Ecco il perchè dell'uso plurale di "file di pagina".
In questo paragrafo si parla del file di paging secondo la funzione 1) che avete letto all'inizio, ovvero che il limite di memoria del commit di sistema - commit limit - cioè tutta la memoria virtuale a cui ha accesso Windows è la somma della memoria fisica/RAM e di tutti i file di pagina combinati.
Aprendo il Task Manager / Gestione Attività vi ritroverete con questi dati.
Oltre al dato di uso della RAM rispetto al totale e quella ancora libera, nella riga inferiore segnata in rosso, è evidenziata la memoria virtuale organizzata da Windows per il vostro hardware.
Nell'esempio 37,7 GB è tutta la memoria virtuale a cui ha accesso Windows che è la somma della memoria fisica/RAM e di tutti i file di pagina combinati = commit limit.
6,8 GB è la porzione di memoria virtuale prenotata/vincolata cioè ripeto è la parte di memoria virtuale, che Windows impegna al momento per far fronte a tutte le necessità future.
Due considerazioni.
Notiamo che 37,7 > 32 GB che è la RAM, quindi oltre alla RAM questo pc ha sicuramente memoria impegnata su disco quindi ha almeno un file di paging.
Seconda cosa 6,8 GB in questo esempio specifico, corrisponde alla RAM in uso perchè il pc è a riposo, ma solitamente non coincidono. La memoria virtuale vincolata non è la memoria in uso che invece ritrovate nella riga sopra, questa memoria virtuale è uno spazio su RAM o disco prenotato lì, piuttosto che nel chip vicino, ma non è detto che sia in uso, semplicemente Windows se si trovasse ad averne bisogno sa già dove metterla.
Perchè? Velocità di esecuzione e riduzione degli errori di allocazione della memoria.
Altro esempio: quando su Booking.com prenoto l'albergo per l'albergatore cioè Windows, la stanza è già occupata quel giorno, ma in effetti solo quando la occupo, è realmente piena. Così funziona la memoria virtuale, permette a Windows di trovare un posto ai dati, cioè le pagine, con anticipo riguardo a quando servono.
La memoria virtuale è un sistema dinamico, poiche una pagina prenotata su RAM o su disco può essere spostata e mai riempita davvero.
La memoria reale è un sistema altrettanto dinamico, posso avere una pagina nella RAM che non serve e spostata nel file di paging - paginazione - anche se di RAM ce ne ancora in abbondanza.
L'addebito del commit di sistema è la memoria totale di cui è stato eseguito il commit o la memoria "promessa" di tutta la memoria virtuale di cui è stato eseguito il commit nel sistema. Se l'addebito del commit di sistema raggiunge il limite di commit di sistema, il sistema e i processi potrebbero non ottenere memoria di cui è stato eseguito il commit. Questa condizione può causare il blocco, l'arresto anomalo e altri malfunzionamenti. Assicurarsi pertanto di impostare il limite di commit di sistema sufficientemente elevato da supportare l'addebito del commit di sistema durante l'utilizzo massimo.
(testualmente: se il crescere della parte di memoria virtuale vincolata - 6,8GB - raggiunge la memoria virtuale totale si verifica un blocco nell'allocazione di nuova memoria. Questa condizione - thrashing - può causare il blocco l'arresto anomalo e altri malfunzionamenti. Assicurarsi pertanto di impostare un file di paging sufficientemente elevato da supportare il crescere della richiesta di memoria durante l'utilizzo massimo).
I file di pagina gestiti dal sistema crescono automaticamente fino a tre volte la memoria fisica o 4 GB (a seconda di quale sia più grande, ma non più di un ottavo delle dimensioni del volume) quando l'addebito del commit del sistema raggiunge il 90% del limite di commit del sistema. Si presuppone che sia disponibile spazio su disco sufficiente per supportare la crescita.
NdR. Si può discutere di file di paging attivo o file di paging spento, anche di file di paging gestito dal sistema o con delle dimensioni impostate manualmente, tutti possono avere opinioni diverse su questo, spesso basate sulle nostre esperienze, MA come la matematica, il funzionamento della memoria virtuale, memoria vincolata e paginazione è una, e non si presta ad interpretazioni.
Liupen
Questo vuole essere una trasposizione spiegata di un articolo di Microsoft Learn,
I file di pagina hanno la funzionalità seguente:
1) Estendere fisicamente la RAM (memoria fisica di sistema)
I file di pagina consentono al sistema di rimuovere le pagine modificate a cui si accede raramente dalla memoria fisica per consentire al sistema di usare la memoria fisica in modo più efficiente per le pagine a cui si accede più di frequente.
(Notate che la frase parla di "pagine"; sappiate che la pagina è l'unità più piccola programmabile. Un insieme di pagine da 4KiB realizzano un Blocco.
Dunque il file di paging consente di togliere dalla RAM le pagine che sono poco usate cioè lette o modificate, in modo che la RAM sia utilizzata dalle pagine, cioè i dati a cui si accede più spesso, come un software o una pagina web di cui facciamo uso in quel momento.
Come vedete non si parla di file veri e propri, o blocchi, ma di pagine, cioè di dati amorfi. Il file di paging è, si può dire, un attività grezza, "ignorante" circa il contenuto del dato, ma la pagina essendo fissa come dimensione, consente una allocazione ottimizzata).
2) Rispondere ai requisiti per alcune applicazioni
Alcuni prodotti o servizi richiedono un file di pagina per vari motivi. Per informazioni specifiche, consultare la documentazione del prodotto.
Ad esempio....
(Purtroppo è ancora vero per alcune applicazioni che si reggono sulla RAM e che sono strutturati per avere nel paging una sicurezza).
3) Supportare il dump di arresto anomalo del sistema
I file di pagina possono essere usati per "eseguire il backup" (o supportare) i dump di arresto anomalo del sistema ed estendere la quantità di memoria con commit del sistema (nota anche come "memoria virtuale") supportata da un sistema.
(Quando Windows va in crash memorizza - se è attivo il file di paging ovviamente - tutti i dati di monitoraggio su disco in modo che alla riaccensione sono disponibili; la RAM infatti sapete si resetta ad ogni spegnimento).
(In questa frase si introduce il concetto di "memoria committed" e memoria virtuale.
Memoria virtuale, si tratta di una astrazione della memoria che permette a Windows di gestirla indipendentemente dalla memoria fisica. Con questa astrazione Windows può essere installato in un hardware che ha 8 oppure 16, o 32GB e oltre di RAM ma che può avere dischi di storage diversi.
Inoltre con questa astrazione windows considererà la memoria come fatta di tantissime pagine indipendenti a cui possono essere assegnate priorità diverse e quindi posizioni diverse ma anche considerare pagine allo stesso tempo appartenenti a blocchi diversi, lavorando apparentemente su file diversi.
In sostanza ricordate: Windows lavora con la memoria virtuale e usa la memoria reale/fisica/RAM. Pensateli come 2 livelli distinti per un solo obbiettivo.
Commit cioè nella versione italiana "vincolata", è la parte di memoria virtuale, che Windows impegna al momento per far fronte a tutte le necessità future. A me piacciono le similitudini, quindi ve la posso spiegare così: se siete in auto e viaggiate incolonnati a 40 KM/h, la memoria virtuale vincolata, si può dire che sia: "la distanza che voi valutate giusta (previsione) per non tamponare, se ad un certo punto l'auto davanti inchioda improvvisamente".
Allo stesso modo Windows con degli algoritmi calcola quanta memoria complessiva serve ora ed ipoteticamente nell'immediato futuro (si parla di frazioni di secondo), per memorizzare tutto quello che serve senza crash.
Se non avete afferrato a pieno non vi preoccupate, riprenderemo il concetto più volte).
File di pagina in Windows con memoria fisica di grandi dimensioni
Quando viene installata una memoria fisica di grandi dimensioni, potrebbe non essere necessario un file di pagina per supportare l'addebito del commit di sistema durante l'utilizzo massimo. Ad esempio, le versioni a 64 bit di Windows e Windows Server supportano più memoria fisica (RAM) rispetto alle versioni a 32 bit supportate. La sola memoria fisica disponibile potrebbe essere sufficientemente grande.
Tuttavia, il motivo per configurare le dimensioni del file di pagina non è stato modificato. Si tratta sempre di supportare un dump di arresto anomalo del sistema, se necessario, o di estendere il limite di commit del sistema, se necessario. Ad esempio, quando viene installata molta memoria fisica, potrebbe non essere necessario un file di pagina per eseguire il backup dell'addebito del commit di sistema durante l'utilizzo massimo. La sola memoria fisica disponibile potrebbe essere sufficientemente grande per eseguire questa operazione. Tuttavia, potrebbe essere necessario un file di pagina o un file di dump dedicato per eseguire il backup di un dump di arresto anomalo del sistema.
(L'idea del file di paging nasce con pc con poca RAM quando era una funzione importantissima. Oggi abbiamo PC con tanta RAM, quindi l'autore del testo ci dice che potrebbe non essere più necessario il file di paging - che sapete si può disattivare - ma che disattivandolo non avremo più la funzione di creazione del file di dump, ovvero il punto 3 sopra.
Soffermandoci sulla frase:
...o di estendere il limite di commit del sistema, se necessario. Ad esempio, quando viene installata molta memoria fisica, potrebbe non essere necessario un file di pagina per eseguire il backup dell'addebito del commit di sistema durante l'utilizzo massimo.
Estendere il limite di commit significa questo: ho detto che Windows vincola della memoria, come se dicesse "ora serve tot GB di memoria e la metto quì, quì e quì!", ovviamente a quel punto se il file di paging non c'è, Windows ha come limite massimo, la dimensione della RAM (c'è solo quella), ma andando ad accendere il file di paging, Windows vede anche i dischi di storage sapendo che parte di quello spazio può essere utilizzato.
Ecco che allora lo spazio vincolato (committed) da Windows si estende a oltre la dimensione della RAM. Si estende il limite di commit.
Diventa ora chiaro che l'addebito di commit di sistema durante l'utilizzo massimo è la crescita della memoria vincolata che durante l'utilizzo massimo della memoria fisica/RAM - dice il testo - in caso di tanta RAM, rimane al di sotto della quantità di RAM disponibile, cioè il file di paging non è più necessario.
Altro esempio: sono a casa e attendo ospiti. Man mano che entrano dalla porta faccio accomodare gli ospiti su sedie, poltrona divano... il mio addebito di commit stà crescendo ma se ho sedie a sufficienza --> RAM, posso permettermi di non andare nel ripostiglio a tirar fuori le sedie pieghevoli-->file di pagnig.
Memoria di cui è stato eseguito il commit del sistema
I file di pagina estendono la quantità di "memoria di cui è stato eseguito il commit" (nota anche come "memoria virtuale") per archiviare i dati modificati.
Il limite di memoria del commit di sistema è la somma della memoria fisica e di tutti i file di pagina combinati. Rappresenta la memoria massima con commit del sistema (nota anche come "addebito del commit di sistema") che il sistema può supportare.
Sostituite la parola commit con "vincolo" o "prenotazione" e la frase già sembra più comprensibile.
Windows può creare più file di paging ed utilizzarli, uno per disco storage. Ecco il perchè dell'uso plurale di "file di pagina".
In questo paragrafo si parla del file di paging secondo la funzione 1) che avete letto all'inizio, ovvero che il limite di memoria del commit di sistema - commit limit - cioè tutta la memoria virtuale a cui ha accesso Windows è la somma della memoria fisica/RAM e di tutti i file di pagina combinati.
Aprendo il Task Manager / Gestione Attività vi ritroverete con questi dati.
Oltre al dato di uso della RAM rispetto al totale e quella ancora libera, nella riga inferiore segnata in rosso, è evidenziata la memoria virtuale organizzata da Windows per il vostro hardware.
Nell'esempio 37,7 GB è tutta la memoria virtuale a cui ha accesso Windows che è la somma della memoria fisica/RAM e di tutti i file di pagina combinati = commit limit.
6,8 GB è la porzione di memoria virtuale prenotata/vincolata cioè ripeto è la parte di memoria virtuale, che Windows impegna al momento per far fronte a tutte le necessità future.
Due considerazioni.
Notiamo che 37,7 > 32 GB che è la RAM, quindi oltre alla RAM questo pc ha sicuramente memoria impegnata su disco quindi ha almeno un file di paging.
Seconda cosa 6,8 GB in questo esempio specifico, corrisponde alla RAM in uso perchè il pc è a riposo, ma solitamente non coincidono. La memoria virtuale vincolata non è la memoria in uso che invece ritrovate nella riga sopra, questa memoria virtuale è uno spazio su RAM o disco prenotato lì, piuttosto che nel chip vicino, ma non è detto che sia in uso, semplicemente Windows se si trovasse ad averne bisogno sa già dove metterla.
Perchè? Velocità di esecuzione e riduzione degli errori di allocazione della memoria.
Altro esempio: quando su Booking.com prenoto l'albergo per l'albergatore cioè Windows, la stanza è già occupata quel giorno, ma in effetti solo quando la occupo, è realmente piena. Così funziona la memoria virtuale, permette a Windows di trovare un posto ai dati, cioè le pagine, con anticipo riguardo a quando servono.
La memoria virtuale è un sistema dinamico, poiche una pagina prenotata su RAM o su disco può essere spostata e mai riempita davvero.
La memoria reale è un sistema altrettanto dinamico, posso avere una pagina nella RAM che non serve e spostata nel file di paging - paginazione - anche se di RAM ce ne ancora in abbondanza.
Domanda: la memoria totale necessaria al mio pc è la memoria vincolata che leggo in gestione attività?
Essendo la memoria vincolata, una parte di memoria virtuale totale, ci dice solo la quantità di memoria che Windows ha necessità di allocare per far funzionare bene il sistema, ma comprende, sia pagine sulla RAM che degli eventuali file di paging.
Visto che nessun sistema operativo o software, funziona se è esaurita la RAM, con un massivo uso di paginazione, se ne deduce che è solo la % d'uso della RAM rappresenta la memoria totale in uso del mio pc (pare ovvio ma...).
Un esempio concreto:
Vincenzo in questo momento fa girare un gioco e si preoccupa perchè ha solo 16GB di memoria RAM.
Ha di default attivato il file di paging su un ssd.
Nel momento in cui gioca e tiene il Task Manager aperto, leggiamo che il software utilizza 9,5GB di memoria Fisica/RAM e che ancora diversi GB di RAM sono liberi.
Legge però preoccupato che il sistema vorrebbe 18GB di memoria.
No Vincenzo, il gioco chiede e richiede la memoria RAM che occupa.
Al motto di: "repetita iuvant" dico che 18GB è la memoria vincolata, della memoria virtuale, cioè la quantità di memoria che Windows ha necessità di allocare per far funzionare bene il sistema, ma comprende, sia pagine sulla RAM che su un eventuale file di paging.
Calcoli spiccioli? Commit Charge = 18GB = (16GB RAM + 2GB File di Paging)
Togliendo infatti il file di paging, Vincenzo ottiene che il commit limit (tutta la memoria virtuale a cui ha accesso Windows che è la somma della memoria fisica/RAM e di tutti i file di pagina combinati) che prima era 21GB si riduce alla sola dimensione della RAM fisica, cioè 16GB. Il relativo commit charge (altro nome per definire la memoria virtuale vincolata), si ridurrà sempre al di sotto del commit limit.
Cosa comporta il fatto che Vincenzo ora che gioca, ha tolto il file di paging a Windows?
Comporta che la memoria virtuale prenotata da Windows verrà posizionata (ma attenti.. non automaticamente USATA, solo prenotata per poterla usare velocemente) tutta sulla RAM, in particolare su quei 6,3GB liberi.
Altri calcoli spiccioli e si potrà prevedere indicativamente che a pari condizioni senza file di paging con Vincenzo che gioca...
commit charge = (9,5GB RAM in uso + 2GB ex File di Paging) = 11,5GB
All'approssimarsi della memoria vincolata - commit charge - 11,5GB, al limite - commit limit - della memoria virtuale trovata da windows (che senza file di paging corrisponde a) 16GB, Windows rallenterà sempre di più fino a bloccarsi.
Quindi cosa mi dice il commit charge/memoria virtuale vincolata?
Mi dà certo, Vincenzo, una indicazione della memoria totale di cui ho bisogno e quindi di quanto potenziare la RAM, MA sapendo che quel numero di GB è superiore al fabbisogno di RAM necessario, poichè include anche le prenotazioni fatte su file paging e non solo sulla RAM e quelle sul file di paging potrebbero essere prenotazioni di spazio superiore a quello effettivamente poi occupato.
La risposta quindi non è 18GB Vincenzo, ma un range che va da__ a__ GB e che dipende imprescindibilmente dal carico di lavoro che dai al tuo pc.
Ogni software, ogni gioco ogni volta che accendi il pc e apri qualcosa, la situazione muta.
Quindi giusto vedere la porzione di memoria vincolata per farsi un idea del consumo di memoria totale (forzando che sia reale); sbagliato dire che quella è la memoria reale richiesta.
Essendo la memoria vincolata, una parte di memoria virtuale totale, ci dice solo la quantità di memoria che Windows ha necessità di allocare per far funzionare bene il sistema, ma comprende, sia pagine sulla RAM che degli eventuali file di paging.
Visto che nessun sistema operativo o software, funziona se è esaurita la RAM, con un massivo uso di paginazione, se ne deduce che è solo la % d'uso della RAM rappresenta la memoria totale in uso del mio pc (pare ovvio ma...).
Un esempio concreto:
Vincenzo in questo momento fa girare un gioco e si preoccupa perchè ha solo 16GB di memoria RAM.
Ha di default attivato il file di paging su un ssd.
Nel momento in cui gioca e tiene il Task Manager aperto, leggiamo che il software utilizza 9,5GB di memoria Fisica/RAM e che ancora diversi GB di RAM sono liberi.
Legge però preoccupato che il sistema vorrebbe 18GB di memoria.
No Vincenzo, il gioco chiede e richiede la memoria RAM che occupa.
Al motto di: "repetita iuvant" dico che 18GB è la memoria vincolata, della memoria virtuale, cioè la quantità di memoria che Windows ha necessità di allocare per far funzionare bene il sistema, ma comprende, sia pagine sulla RAM che su un eventuale file di paging.
Calcoli spiccioli? Commit Charge = 18GB = (16GB RAM + 2GB File di Paging)
Togliendo infatti il file di paging, Vincenzo ottiene che il commit limit (tutta la memoria virtuale a cui ha accesso Windows che è la somma della memoria fisica/RAM e di tutti i file di pagina combinati) che prima era 21GB si riduce alla sola dimensione della RAM fisica, cioè 16GB. Il relativo commit charge (altro nome per definire la memoria virtuale vincolata), si ridurrà sempre al di sotto del commit limit.
Cosa comporta il fatto che Vincenzo ora che gioca, ha tolto il file di paging a Windows?
Comporta che la memoria virtuale prenotata da Windows verrà posizionata (ma attenti.. non automaticamente USATA, solo prenotata per poterla usare velocemente) tutta sulla RAM, in particolare su quei 6,3GB liberi.
Altri calcoli spiccioli e si potrà prevedere indicativamente che a pari condizioni senza file di paging con Vincenzo che gioca...
commit charge = (9,5GB RAM in uso + 2GB ex File di Paging) = 11,5GB
All'approssimarsi della memoria vincolata - commit charge - 11,5GB, al limite - commit limit - della memoria virtuale trovata da windows (che senza file di paging corrisponde a) 16GB, Windows rallenterà sempre di più fino a bloccarsi.
Quindi cosa mi dice il commit charge/memoria virtuale vincolata?
Mi dà certo, Vincenzo, una indicazione della memoria totale di cui ho bisogno e quindi di quanto potenziare la RAM, MA sapendo che quel numero di GB è superiore al fabbisogno di RAM necessario, poichè include anche le prenotazioni fatte su file paging e non solo sulla RAM e quelle sul file di paging potrebbero essere prenotazioni di spazio superiore a quello effettivamente poi occupato.
L'addebito per il commit per ogni processo non include altri importanti contributi allo spazio degli indirizzi virtuali del processo, come i file mappati . Per questo motivo, il working set del processo (la porzione del suo spazio degli indirizzi a cui è possibile fare riferimento senza incorrere in un errore di pagina) può essere maggiore del suo contributo all'addebito di commit totale e l'addebito di commit totale non include la memoria totale (fisica o virtuale) effettivamente in uso.
Ogni software, ogni gioco ogni volta che accendi il pc e apri qualcosa, la situazione muta.
Quindi giusto vedere la porzione di memoria vincolata per farsi un idea del consumo di memoria totale (forzando che sia reale); sbagliato dire che quella è la memoria reale richiesta.
L'addebito del commit di sistema è la memoria totale di cui è stato eseguito il commit o la memoria "promessa" di tutta la memoria virtuale di cui è stato eseguito il commit nel sistema. Se l'addebito del commit di sistema raggiunge il limite di commit di sistema, il sistema e i processi potrebbero non ottenere memoria di cui è stato eseguito il commit. Questa condizione può causare il blocco, l'arresto anomalo e altri malfunzionamenti. Assicurarsi pertanto di impostare il limite di commit di sistema sufficientemente elevato da supportare l'addebito del commit di sistema durante l'utilizzo massimo.
(testualmente: se il crescere della parte di memoria virtuale vincolata - 6,8GB - raggiunge la memoria virtuale totale si verifica un blocco nell'allocazione di nuova memoria. Questa condizione - thrashing - può causare il blocco l'arresto anomalo e altri malfunzionamenti. Assicurarsi pertanto di impostare un file di paging sufficientemente elevato da supportare il crescere della richiesta di memoria durante l'utilizzo massimo).
I file di pagina gestiti dal sistema crescono automaticamente fino a tre volte la memoria fisica o 4 GB (a seconda di quale sia più grande, ma non più di un ottavo delle dimensioni del volume) quando l'addebito del commit del sistema raggiunge il 90% del limite di commit del sistema. Si presuppone che sia disponibile spazio su disco sufficiente per supportare la crescita.
NdR. Si può discutere di file di paging attivo o file di paging spento, anche di file di paging gestito dal sistema o con delle dimensioni impostate manualmente, tutti possono avere opinioni diverse su questo, spesso basate sulle nostre esperienze, MA come la matematica, il funzionamento della memoria virtuale, memoria vincolata e paginazione è una, e non si presta ad interpretazioni.
Liupen
Ultima modifica: