GUIDA Gestione File di Paging Windows

È stata una guida utile?


  • Votatori totali
    35
Pubblicità
Giustissimo!
Infatti poi ho analizzato meglio tutta la questione legata al paging ed effettivamente quando lo disabiliti non lo usi più né in disco né in ram, usi solamente il quantitativo di ram e appena sfori vai in crash, pero è bene tenere a mente che il quantitativo di memoria che si sta usando in quel momento non è dato dalla ram in uso ma dalla memoria vincolata!! Infatti i miei test volevano dimostrare sopratutto questo.
Spero di essere stato utile per la comunity 👍
per quanto mi riguarda, assolutamente si
 
Soprattutto ne è emersa una discussione interessante e su argomenti che vanno un po' più in profondità. ;)
Quindi... i tavolini del bar o pizzeria eh?
Preferisco il mio esempio con l'hotel 😂 ma va beh...mi adatto.




Alessio, senza far polemica ho fatto delle prove stasera, ti confermo che con o senza file di paging, GTAV occupa (dopo un test di 5 minuti) circa 10,5GB di RAM. Hai modo di provare sul tuo PC?
3 - pc GTAV on FP.jpg

5 - pc GTAV off FG.jpg


Tuttavia tengo il paging attivo, perchè effettivamente ci sono alcuni programmi che lo richiedono a prescindere pur avendo ram fisica disponibile, pena crash del programma stesso alcune volte; io ho il paging settato a 16MB min e 30000MB max, quindi appena acceso il pc parte con il minimo di 16MB il paging; mi è capitato di notare alcune volte che, pur avendo 32GB di ram, il paging viene scritto ed ampliato comunque, anche se di poco, tipo può arrivare a 100/200MB. Il paging quindi serve anche se si ha tanta ram fisica disponibile

Aspetta, aspetta... quello che vedi da 16MB a 30GB è il file di paging (il contenitore) ma non è detto che il pc stia paginando (cioè scrivendo o leggendo dal file). Non devi associare il fatto che vedi ingrandirsi il contenitore, con il fatto che stia inserendo dati nel file di paging, perchè per windows ingrandire il file vuol dire prenotare spazio che poi velocemente potrebbe riempire.

Per inciso si tratta di un sistema nato con gli hdd che memorizzano sequenzialmente e dunque creare uno spazio contiguo era la soluzione mas veloce. Ora con gli ssd lo spazio del file (cluster continui) è frammentato (blocchi fisici).

Il normale trasferimento di qualche MB nel file di paging (non porta a rallentamenti) è normale ed il discorso non è: se vedo che il file di paging si ingrandisce allora il paging serve anche se c'è tanta ram, piuttosto il discorso è: Windows ce l'ha disponibile/Windows lo usa.
Se tolgo il file di paging Windows non lo usa, mica mi và in crash niente, se non richiede più RAM di quanta ne ho.

Quindi diciamo... in astratto che windows con modi che DispatchCode ha in parte spiegato, nonostante abbia qualche tavolo del bar ancora libero, attendendo ospiti, prepara altri tavoli nel dehors fuori (amplia il file di paging) e solo e SE arrivano gli avventori prenotati, si occuperanno i tavolini.

Ciò che io non capisco è il proporre un massimo fino a 30GB del contenitore, invece dei

1677108751133.png
per chi come me o te con 32GB di RAM, pari a 97GB (massimo 1/8 dell'ssd che lo ospita, ma mettiamo che sia tutto).

Ribadisco un concetto che mi pare importante: nessuna attività di paginazione in prossimità dell'esaurimento della RAM, per quanto su supporto veloce, può sostenere il sistema.

Quindi per pochi MB o GB di effettiva paginazione (quella buona, quella normale con ancora RAM disponibile), ha senso impostare un valore?
Secondo me infatti, gestita dal sistema o impostando (il minimo sempre a 16MB) un limite massimo, difficilmente il file di paging/contenitore crescerà enormemente e dunque sarà esattamente uguale la gestione.
 
Ciò che io non capisco è il proporre un massimo fino a 30GB del contenitore, invece dei
Per essere sicuro che il file di paging massimo basti per sempre! Significa che potrò avere un max di 62GB circa di memoria virtuale sfruttabile, che corrisponde circa al doppio della mia ram fisica, ma a quel punto, quando in futuro andrò a saturare 62GB di file di paging sarà tempo di aumentare la ram! Parliamo del 2030, avrò tutto un'altro pc a quel punto! E' come avere un file di paging potenzialmente infinito per il mio pc attuale, non so se mi sono spiegato.... Quello che voglio dire è che quello che tu hai riportato è semplicemente un consiglio, ma alla fine puoi mettere sul max del paging quanto cavolo ti pare, "sono problemi tuoi se non vuoi aumentare la ram e continuare a lavorare col file di paging e ram satura, facendoti laggare il pc"; è solo un consiglio in base al quantitativo di ram attualmente disponibile, oltre è ora di fare upgrade alla ram. Ma nessuno impone alcun vincolo di grandezza
 
Ultima modifica:
Schematicamente, questo è ciò che penso sul file di paging:
  • non ha alcun senso rimuoverlo in presenza di tanta RAM (non degrada le prestazioni, occupa spazio su disco);
  • non ha senso farlo troppo grande, piuttosto lasciare che cresca secondo le necessità
  • non ha senso troppo piccolo se si ha poca RAM a disposizione (ormai direi <= 8, ma potrei dire anche 16 forse)
L'ultimo punto è il più delicato e forse "controverso" (ho proprio un dibattito interiore 🤣): se è piccolo ed hai poca RAM, inizia a crashare tutto; ma se non è piccolo va comunque distinta la situazione - per esempio - gaming dall'utilizzo di applicazioni "normali". In gaming se inizia a scrivere sul file di paging perchè è satura la RAM, è impossibile giocare, anzi, probabilmente risulterà anche impossibile mantenere la macchina accesa (anche con la crescita automatica attiva, in quanto dubito riesca ad allocare spazio così rapidamente, senza contare che si avrebbero 5 fps xD).

Ribadisco un concetto che mi pare importante: nessuna attività di paginazione in prossimità dell'esaurimento della RAM, per quanto su supporto veloce, può sostenere il sistema.

Quindi per pochi MB o GB di effettiva paginazione (quella buona, quella normale con ancora RAM disponibile), ha senso impostare un valore?
Secondo me infatti, gestita dal sistema o impostando (il minimo sempre a 16MB) un limite massimo, difficilmente il file di paging/contenitore crescerà enormemente e dunque sarà esattamente uguale la gestione.
Ho scritto il mio pensiero prima di leggerti, ma vedo che siamo in linea (se escludiamo hotel e ristoranti...).

Russinovich riporta questo:
if RAM <= 1GB, then size = 1GB. If RAM > 1GB, then add 1/8 GB for every extra gigabyte of RAM, up to a maximum of 32GB.

Nel mio caso ho impostato la crescita automatica ed ho un file di paging di 4.8GB circa.

Per essere sicuro che il file di paging massimo basti per sempre! Significa che potrò avere un max di 62GB circa di memoria virtuale sfruttabile, che corrisponde circa al doppio della mia ram fisica, ma a quel punto, quando in futuro andrò a saturare 62GB di file di paging sarà tempo di aumentare la ram! Parliamo del 2030, avrò tutto un'altro pc a quel punto! E' come avere un file di paging potenzialmente infinito per il mio pc attuale, non so se mi sono spiegato.... Quello che voglio dire è che quello che tu hai riportato è semplicemente un consiglio, ma alla fine puoi mettere sul max del paging quanto cavolo ti pare, "sono problemi tuoi se non vuoi aumentare la ram e continuare a lavorare col file di paging e ram satura, facendoti laggare il pc"; è solo un consiglio in base al quantitativo di ram attualmente disponibile, oltre è ora di fare upgrade alla ram. Ma nessuno impone alcun vincolo di grandezza

Aumentare la dimensione del file di paging non ha impatti sulle performance del sistema, significa solo che può "committare" più memoria l'OS.
Se hai 32GB di RAM quando inizia a scrivere sul disco te ne accorgerai sicuramente, anche se è un SSD e non uno meccanico (con quelli meccanici usciva direttamente la testina del disco per avvertirti 🤣). Se riesci a saturarne 62GB e non avrai ancora chiuso le applicazioni è solo perchè c'è un memory leak in user-mode o in kernel-mode che non stai riuscendo a trovare.

Questo è un esempio di memory leak in kernel space: notare il commit limit che dimensione aveva raggiunto.

Significa che potrò avere un max di 62GB circa di memoria virtuale sfruttabile, che corrisponde circa al doppio della mia ram fisica

Ho capito cosa intendi con questa frase (e la "memoria virtuale" a cui ti riferisci presumo sia inteso in senso lato, ovvero "virtualmente ho più memoria" e non come "virtual memory"), ma è così solo in teoria. Nel senso che come dicevo pocanzi avresti rallentamenti importanti nello scrivere N GB di file di paging, quindi dovresti comunque sospendere le attività. Di fatto il limite vero rimane la tua RAM fisica.

A questo punto dovresti, per curiosità, avviare 2 giochi in contemporanea (non troppo pesanti, altrimenti non ti basta davvero la RAM 😆) e ridurre a icona uno e poi l'altro; poi verifica quanto sta utilizzando il paging. Così sospetto che verrà utilizzato qualcosa, in quanto il gioco che rimane "fermo" ha parecchie pagine in memoria che non servono più a una mazza, quindi verranno (probabilmente) messe nel paging file, almeno in parte. Gioca un pò con uno dei giochi e poi con il secondo, e monitora il paging file, così vedi(amo) quanti GB vengono usati.

Direttamente da Wikipedia ✨

Commit charge = memoria vincolata ( in gestione attività)
Ciao belli ✨

Si, ma torno a ripeterti che "memoria vincolata" per come lo intendi in italiano significa appunto che è "vincolata" (prenotata, se vuoi) e non necessariamente utilizzata in quel momento.
 
Si, ma torno a ripeterti che "memoria vincolata" per come lo intendi in italiano significa appunto che è "vincolata" (prenotata, se vuoi) e non necessariamente utilizzata in quel momento.
È semplicemente la memoria totale di sistema che serve per far girare il tuo pc in quel preciso istante!
Non a caso dai test fatti con file di paging attivo (non troppo grande) e file di paging disattivo, non appena il sistema raggiungeva il commit limit ( ed esso non Poteva più espandersi perché il file di paging aveva già raggiunto la sua dimensione massima o era impostato a 0 a seconda delle prove svolte ) il sistema crashava
--- i due messaggi sono stati uniti ---
Aggiungo inoltre un dettaglio fondamentale per capire meglio il funzionamento di Windows e del page file.. Quando togli file di paging il commit limit corrisponde esattamente alla quantità di memoria fisica installata (RAM)!
--- i due messaggi sono stati uniti ---
Se i concetti di commit limit commit charge sono abbastanza chiari in questa guida viene spiegato
https://learn.microsoft.com/it-it/t...ent/performance/introduction-to-the-page-file
 
Ultima modifica:
È semplicemente la memoria totale di sistema che serve per far girare il tuo pc in quel preciso istante!
Non a caso dai test fatti con file di paging attivo (non troppo grande) e file di paging disattivo, non appena il sistema raggiungeva il commit limit ( ed esso non Poteva più espandersi perché il file di paging aveva già raggiunto la sua dimensione massima o era impostato a 0 a seconda delle prove svolte ) il sistema crashava

Si ma ciò che ti ostini ad ignorare è che SI, è ciò che serve al sistema, ma sono i programmi (OS compreso ovviamente) che stanno richiedendo della memoria che in realtà può non essere ancora FISICAMENTE allocata (e quindi non sta occupando davvero della RAM).
Questo non è un dettaglio, altrimenti il commit charge sarebbe solo la somma tra la memoria RAM occupata + il paging. Se della memoria allocata dall'applicazione non ha ancora generato un page fault, la vedrai comunque nel commit charge.

Il commit limit cambia quando il paging file (o i paging files, possono essere più di 1) aumenta di dimensione.
Dall'articolo che hai linkato:

System-managed page files automatically grow up to three times the physical memory or 4 GB (whichever is larger, but no more than one-eighth of the volume size) when the system commit charge reaches 90 percent of the system commit limit. This assumes that enough free disk space is available to accommodate the growth.

Se vuoi fare delle prove simulando il consumo di RAM e "stressare" il commit limit usa questo tool: https://learn.microsoft.com/en-us/sysinternals/downloads/testlimit

Aggiungo inoltre un dettaglio fondamentale per capire meglio il funzionamento di Windows e del page file.. Quando togli file di paging il commit limit corrisponde esattamente alla quantità di memoria fisica installata (RAM)!
Non mi avrai letto interamente, ma nel mio secondo post (magari anche nel primo, non ricordo), il numero 578 vado proprio a sottolineare questo aspetto:

Il "commit limit" è la somma della RAM + i page file(s).

Il commit limit aumenta se il page file(s) viene espanso da windows (e vedrai in quel caso il commit limit, il secondo numero, crescere di conseguenza).
Se disabiliti il page file, come numero vedrai la RAM totale a disposizione.

Se i concetti di commit limit commit charge sono abbastanza chiari in questa guida viene spiegato
https://learn.microsoft.com/it-it/t...ent/performance/introduction-to-the-page-file

Le cose di cui andiamo parlando da un paio di giorni sono conoscenze fatte negli anni, su articoli (come quello da te linkato) e su libri. 😉
 
Schematicamente, questo è ciò che penso sul file di paging:
  • non ha alcun senso rimuoverlo in presenza di tanta RAM (non degrada le prestazioni, occupa spazio su disco);
  • non ha senso farlo troppo grande, piuttosto lasciare che cresca secondo le necessità
  • non ha senso troppo piccolo se si ha poca RAM a disposizione (ormai direi <= 8, ma potrei dire anche 16 forse)
L'ultimo punto è il più delicato e forse "controverso" (ho proprio un dibattito interiore 🤣): se è piccolo ed hai poca RAM, inizia a crashare tutto; ma se non è piccolo va comunque distinta la situazione - per esempio - gaming dall'utilizzo di applicazioni "normali". In gaming se inizia a scrivere sul file di paging perchè è satura la RAM, è impossibile giocare, anzi, probabilmente risulterà anche impossibile mantenere la macchina accesa (anche con la crescita automatica attiva, in quanto dubito riesca ad allocare spazio così rapidamente, senza contare che si avrebbero 5 fps xD).


Ho scritto il mio pensiero prima di leggerti, ma vedo che siamo in linea (se escludiamo hotel e ristoranti...).

Russinovich riporta questo:


Nel mio caso ho impostato la crescita automatica ed ho un file di paging di 4.8GB circa.



Aumentare la dimensione del file di paging non ha impatti sulle performance del sistema, significa solo che può "committare" più memoria l'OS.
Se hai 32GB di RAM quando inizia a scrivere sul disco te ne accorgerai sicuramente, anche se è un SSD e non uno meccanico (con quelli meccanici usciva direttamente la testina del disco per avvertirti 🤣). Se riesci a saturarne 62GB e non avrai ancora chiuso le applicazioni è solo perchè c'è un memory leak in user-mode o in kernel-mode che non stai riuscendo a trovare.

Questo è un esempio di memory leak in kernel space: notare il commit limit che dimensione aveva raggiunto.



Ho capito cosa intendi con questa frase (e la "memoria virtuale" a cui ti riferisci presumo sia inteso in senso lato, ovvero "virtualmente ho più memoria" e non come "virtual memory"), ma è così solo in teoria. Nel senso che come dicevo pocanzi avresti rallentamenti importanti nello scrivere N GB di file di paging, quindi dovresti comunque sospendere le attività. Di fatto il limite vero rimane la tua RAM fisica.

A questo punto dovresti, per curiosità, avviare 2 giochi in contemporanea (non troppo pesanti, altrimenti non ti basta davvero la RAM 😆) e ridurre a icona uno e poi l'altro; poi verifica quanto sta utilizzando il paging. Così sospetto che verrà utilizzato qualcosa, in quanto il gioco che rimane "fermo" ha parecchie pagine in memoria che non servono più a una mazza, quindi verranno (probabilmente) messe nel paging file, almeno in parte. Gioca un pò con uno dei giochi e poi con il secondo, e monitora il paging file, così vedi(amo) quanti GB vengono usati.
No non hai capito... io non parlo di adesso, ma degli anni a venire quando 32GB di ram diventeranno limitanti per giocare (come ora lo sono i 16GB e da anni lo sono 8GB). Quindi da qui a qualche è sicuro che 32GB di ram fisica basteranno senza dover per forza ricorrere al file di paging, ma prima o poi succederà. Vi credete che 32GB di ram basteranno per sempre? Non credo. Da che mondo e mondo le richieste hardware sono sempre aumentate e sicuramente ora non si fermano. Altro errore che hai detto: impostando un min di 16MB ed un max di 30000MB o quello che ti pare, il paging NON VIENE scritto al massimo della sua grandezza, ma parte da 16MB, poi cresce SE E SOLO SE è necessario e/o sussiste qualche app attiva che ci scrive a prescindere. Altrimenti per tutta la sessione il paging resterà al minimo della grandezza. Cosa cambia quindi dal farlo gestire da windows ad impostare un minimo di 16MB ed un max di xxxxMB? Che con la gestione automatica il paging viene SEMPRE creato di una grandezza di almeno 2GB anzichè 16MB anche se non è necessario. Indovinate un pò chi è che ci rimette in questo caso? Gli SSD, gli si accorcia la vita, perchè un conto è scrivere 2GB o più ogni volta che accendi il pc ed un conto è scrivere 16MB
 
Si ma ciò che ti ostini ad ignorare è che SI, è ciò che serve al sistema, ma sono i programmi (OS compreso ovviamente) che stanno richiedendo della memoria che in realtà può non essere ancora FISICAMENTE allocata (e quindi non sta occupando davvero della RAM).
Questo non è un dettaglio, altrimenti il commit charge sarebbe solo la somma tra la memoria RAM occupata + il paging. Se della memoria allocata dall'applicazione non ha ancora generato un page fault, la vedrai comunque nel commit charge.

Il commit limit cambia quando il paging file (o i paging files, possono essere più di 1) aumenta di dimensione.
Dall'articolo che hai linkato:



Se vuoi fare delle prove simulando il consumo di RAM e "stressare" il commit limit usa questo tool: https://learn.microsoft.com/en-us/sysinternals/downloads/testlimit


Non mi avrai letto interamente, ma nel mio secondo post (magari anche nel primo, non ricordo), il numero 578 vado proprio a sottolineare questo aspetto:





Le cose di cui andiamo parlando da un paio di giorni sono conoscenze fatte negli anni, su articoli (come quello da te linkato) e su libri. 😉
Guarda che io non sto ignorando nulla, serve al sistema punto! Se non c'è il sistema va in crash, più semplice di così. Se ho dovuto eseguire dei test per capire ciò è perché nessuno fino a 2 giorni fa mi sapeva dire con certezza assoluta a quanto ammontasse la memoria totale utilizzata dal sistema in un preciso istante! Ora almeno sappiamo a quanto ammonta, e non è la ram in uso, bensì il commit charge.
Il sistema va in blocco non quanto la ram è satura, bensì quqndo il commit charge raggiunge il commit limit e il page file non può più espandersi!
 
È semplicemente la memoria totale di sistema che serve per far girare il tuo pc in quel preciso istante!
Non a caso dai test fatti con file di paging attivo (non troppo grande) e file di paging disattivo, non appena il sistema raggiungeva il commit limit ( ed esso non Poteva più espandersi perché il file di paging aveva già raggiunto la sua dimensione massima o era impostato a 0 a seconda delle prove svolte ) il sistema crashava
--- i due messaggi sono stati uniti ---
Aggiungo inoltre un dettaglio fondamentale per capire meglio il funzionamento di Windows e del page file.. Quando togli file di paging il commit limit corrisponde esattamente alla quantità di memoria fisica installata (RAM)!
--- i due messaggi sono stati uniti ---
Se i concetti di commit limit commit charge sono abbastanza chiari in questa guida viene spiegato
https://learn.microsoft.com/it-it/t...ent/performance/introduction-to-the-page-file
Grazie Valerio, tutto chiaro.

Ho capito cosa intendi con questa frase (e la "memoria virtuale" a cui ti riferisci presumo sia inteso in senso lato, ovvero "virtualmente ho più memoria" e non come "virtual memory"), ma è così solo in teoria. Nel senso che come dicevo pocanzi avresti rallentamenti importanti nello scrivere N GB di file di paging, quindi dovresti comunque sospendere le attività. Di fatto il limite vero rimane la tua RAM fisica.
Nero su bianco... beh, anche bianco su nero se c'è la dark mode 😂😂
A questo punto dovresti, per curiosità, avviare 2 giochi in contemporanea (non troppo pesanti, altrimenti non ti basta davvero la RAM 😆) e ridurre a icona uno e poi l'altro; poi verifica quanto sta utilizzando il paging. Così sospetto che verrà utilizzato qualcosa, in quanto il gioco che rimane "fermo" ha parecchie pagine in memoria che non servono più a una mazza, quindi verranno (probabilmente) messe nel paging file, almeno in parte. Gioca un pò con uno dei giochi e poi con il secondo, e monitora il paging file, così vedi(amo) quanti GB vengono usati.
Interessante esperimento, serve però un misuratore della paginazione, hai idea di come fare?

Non mi convince utilizzare questi indicatori

1677149429913.webp
per controllare quanto stà paginando read/write.

Avevo postato un messaggio tempo fa con un indicatore del paging nel registro di sistema.. trovata!
Performance monitor --> performance monitor --> aggiungi contatori --> file di paging

1677150935610.webp
 
Questo non è un dettaglio, altrimenti il commit charge sarebbe solo la somma tra la memoria RAM occupata + il paging. Se della memoria allocata dall'applicazione non ha ancora generato un page fault, la vedrai comunque nel commit charge.
Nell'articolo pubblicato da Microsoft viene espressamente detto il contrario di quanto tu stai affermando, ovvero che la ram in uso + page file = commit charge ed invece la
Ram totale + page file = commit limit
Screenshot_2023-02-23-12-30-39-63_40deb401b9ffe8e1df2f1cc5ba480b12.jpg
 
Gli SSD, gli si accorcia la vita, perchè un conto è scrivere 2GB o più ogni volta che accendi il pc ed un conto è scrivere 16MB
Occhio che quando ti alloca il pagefile non è detto che ci scriva necessariamente
Puoi vedere 2 GB allocata, ma non è assolutamente detto che il s.o. avrà scritto 2 GB di dati

Però anche io preferisco impostarla manualmente perché lo spazio degli SSD non è tantissimo ed avere un file che mi tiene occupato un grosso quantitativo un po' mi disturba (ma è sicuramente più un effetto placebo che altro 😁)
--- i due messaggi sono stati uniti ---
Nell'articolo pubblicato da Microsoft viene espressamente detto il contrario di quanto tu stai affermando, ovvero che la ram in uso + page file = commit charge ed invece la
Ram totale + page file = commit limit
Quella nota in effetti è un po' fuorviante, ma sotto il tuo articolo scrive:

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.

Quindi lì oltre a ciò che è necessario e scritto c'è anche la parte "promessa" ancora non scritta, ma solo prenotata dal sistema
Il fatto che non sia scritta, ma solo prenotata non impedisce al sistema di andare in blocco qualora raggiungi il limite

Quindi sì, la memoria vincolata è quella che conta per non avere crash di programmi e sistema, ma non è memoria effettivamente occupata da dati (in gran parte sono solo blocchi "prenotati")
 
Ultima modifica:
No non hai capito... io non parlo di adesso, ma degli anni a venire quando 32GB di ram diventeranno limitanti per giocare (come ora lo sono i 16GB e da anni lo sono 8GB). Quindi da qui a qualche è sicuro che 32GB di ram fisica basteranno senza dover per forza ricorrere al file di paging, ma prima o poi succederà. Vi credete che 32GB di ram basteranno per sempre? Non credo. Da che mondo e mondo le richieste hardware sono sempre aumentate e sicuramente ora non si fermano.
Quando non basteranno la soluzione sarà aumentare la RAM, come lo è stato prima rispetto ad ora. Ma sono piuttosto sicuro che la RAM la aumenterai quando vedrai che avrai la macchina attorno ai 25GB di RAM occupata.

Altro errore che hai detto: impostando un min di 16MB ed un max di 30000MB o quello che ti pare, il paging NON VIENE scritto al massimo della sua grandezza, ma parte da 16MB, poi cresce SE E SOLO SE è necessario e/o sussiste qualche app attiva che ci scrive a prescindere. Altrimenti per tutta la sessione il paging resterà al minimo della grandezza. Cosa cambia quindi dal farlo gestire da windows ad impostare un minimo di 16MB ed un max di xxxxMB? Che con la gestione automatica il paging viene SEMPRE creato di una grandezza di almeno 2GB anzichè 16MB anche se non è necessario. Indovinate un pò chi è che ci rimette in questo caso? Gli SSD, gli si accorcia la vita, perchè un conto è scrivere 2GB o più ogni volta che accendi il pc ed un conto è scrivere 16MB
Non capisco quale sarebbe l'errore, probabilmente non hai letto bene quanto ho scritto.Il file di paging aumenta quando aumenta la richiesta (se è impostato per crescere in automatico e se c'è spazio per crescere), lo ripeto dall'inizio.

Sulla vita degli SSD concordo ovviamente, infatti come lato negativo ho riportato lo spazio su disco (e in realtà si, la vita stessa dovuta alle rimodulazioni continue dello spazio).

Ciò che intendo io è che un file di paging troppo grande è inutile, proprio per il tipo di utilizzo in condizioni normali (RAM non satura).

Il mio discorso sulle prestazioni degradate non era riferivo alla vita degli SSD; se hai pensato anche a questo, allora si ovviamente, questo sicuramente da considerare.

Sono anche andato a prendere Windows Internals per verificare di non aver scritto stupidaggini sopra, cito direttamente da li:
If page file on your system is too big, the system will not use it any more or less. In other words, increasing the size of the page file does not change system performance. It simply means the system can have more committed virtual memory. If the page file is too small for the mix of applications you are running, you might get a "system running low on virtual memory" error message. In this case, check to see wherher a process has a memory leak by examining the process private bytes count"

Il sistema va in blocco non quanto la ram è satura, bensì quqndo il commit charge raggiunge il commit limit e il page file non può più espandersi!

Non si ingrandisce quando non hai più spazio su disco. Quindi si, è così.

Nell'articolo pubblicato da Microsoft viene espressamente detto il contrario di quanto tu stai affermando, ovvero che la ram in uso + page file = commit charge ed invece la
Ram totale + page file = commit limit

Guarda, non fermarti alle due righe scritte, li, cerca anche in rete (e fallo in inglese, non in italiano).
Nel post linkato sopra ho detto (e cito di nuovo):

Il "commit charge" contiene... di tutto. Tecnicamente si tratta di memoria allocata con VirtualAlloc oppure con MapViewOfFile (e mi sembra altro); paged pool e non-paged pool sono sempre qui dentro. A questo valore va poi aggiunta la dimensione degli stack dei thread in kernel mode e le tabelle delle pagine; inoltre c'è lo spazio che potrebbe essere necessario in caso di future allocazioni (sempre relativo alla tabella delle pagine).

Il commit charge indica la dimensione potenziale che può raggiungere il page file, non l'utilizzo attuale; è la dimensione che verrebbe occupata se tutta la memoria virtuale impegnata venisse paginata sul disco, in pratica.

E visto che ho qui Win Internals (scritto da Microsoft), riporto anche quanto segue:

For many of these items, the commit charge may represent the potential use of storage rather than its actual use. For example, a page of private committed memory does not actually occupy either a physical page of RAM or the equivalent page file space until it's been referenced at least once. Until then it is a demand-zero page. But commit charge accounts for such pages when the virtual space is first created. This ensure that when the page is later referenced, actual physical storage space will be available for it.

Interessante esperimento, serve però un misuratore della paginazione, hai idea di come fare?

Non mi convince utilizzare questi indicatori

Visualizza allegato 454003
per controllare quanto stà paginando read/write.

Avevo postato un messaggio tempo fa con un indicatore del paging nel registro di sistema.. trovata!
Performance monitor --> performance monitor --> aggiungi contatori --> file di paging

Visualizza allegato 454006

Si, puoi usare PerformanceMonitor. Puoi anche usare VMMap in aggiunta; ti dà diverse info sulla memoria virtuale "committata".
 
Occhio che quando ti alloca il pagefile non è detto che ci scriva necessariamente
Puoi vedere 2 GB allocata, ma non è assolutamente detto che il s.o. avrà scritto 2 GB di dati

Però anche io preferisco impostarla manualmente perché lo spazio degli SSD non è tantissimo ed avere un file che mi tiene occupato un grosso quantitativo un po' mi disturba (ma è sicuramente più un effetto placebo che altro 😁)
--- i due messaggi sono stati uniti ---
No no viene proprio scrito un file vuoto da 2GB (o +), ma viene scritto, significa il drive esegue a tutti gli effetti una scrittura lesinando la vita di un SSD (ovviamente se il paging è impostato su ssd). Infatti mi capito di continuo vedere pc di un anno di vita con gli ssd di sistema al 90% o meno. Il ssd più vecchio che ho nel pc risale a 4 anni fa quasi, è un mx500 da 1tb ed è sempre pieno di giochi, tra tolti e rimessi. Ha la vita al 98%. Il ssd di sistema? È dentro al pc da 1 anno e mezzo, è al 99% della vita. Io tengo min 16MB e max 30000MB, non gestito in auto
 
Pubblicità
Pubblicità
Indietro
Top