se aiuta, Resource Monitor descrive tutte le altre RAM come "Standby"
La RAM "Standby" è in uso. Viene utilizzato come cache di pagina (contiene pagine perse di recente da tutti i gruppi di lavoro di processo; ad esempio, i guasti di pagina a questi possono essere risolti senza andare su disco) e anche per la cache di file proattiva da SuperFetch.
È considerato "disponibile" perché le pagine di standby non devono essere scritte su disco prima di poter essere assegnate ad altri usi. Come quando un processo colpisce un errore di pagina che non richiede la lettura dal disco, nuova pagina fisica (s) devono essere allocate a tale processo, e, se necessario, questi possono essere presi dalla lista di attesa. (Questa non è la prima scelta per trovare pagine a questo scopo, sarebbe quella gratuita e quindi l'elenco delle pagine zero.)
In altre parole, il sistema funziona come dovrebbe essere.
Puoi forzare il tuo sistema a ottenere più RAM nello stato "in uso" facilmente con lo strumento da riga di comando testlimit
, uno degli strumenti utilizzati negli esperimenti in Windows Internals . Non fa parte dei normali strumenti di sistema ma è associato ad essi; lo trovi qui sul sito sysinternals. Il download è un file zip che contiene due versioni, testlimit.exe e testlimit64.exe. Entrambi sono collegati in grado di riconoscere indirizzi di grandi dimensioni, quindi la versione a 32 bit sarà in grado di allocare fino a 3 GiB su una macchina a 32 bit avviata con / 3GB, fino a 4 GiB su una macchina a 64 bit.
c:\> testlimit -?
dà aiuto.
c:\> testlimit -d 4 -c 512
tenterà di allocare 2 GiB di spazio degli indirizzi virtuali di processo privato in 512 allocazioni di 4 MiB ciascuna. Questo dovrebbe funzionare bene su una macchina a 64 bit. Su una macchina a 32 bit non avviata con / 3GB (la maggior parte non lo è) potrebbe esserci un errore un po 'prima b / c ci sono già alcuni MiB di roba nel processo (come il programma stesso, tutte le DLL, ecc.), Quindi non sono disponibili 2 GiB completi da assegnare al programma.
In entrambi i casi ci sarà una riduzione della RAM "disponibile" e un aumento della RAM "in uso", ma non necessariamente di 2 GiB perché non vi è alcuna garanzia che il sistema operativo lascerà tutti i 2 GiB nel set di lavoro privato del processo. Anche se lo fa a breve termine, potresti vedere che il processo di lavoro diminuisce in seguito quando il sistema operativo decide "hm, non stai davvero facendo nulla con esso, altri processi ne hanno più bisogno" e lo espone.
Aumentare troppo le dimensioni dei "blocchi" di allocazione, riducendo il numero di blocchi di conseguenza e probabilmente fallirà prima poiché ogni allocazione deve essere praticamente contigua. ad esempio, prova a trovare sette blocchi da 512 MiB in uno spazio di indirizzi di 4 GiB e probabilmente fallirai.
Se si utilizza l'opzione l (eak) invece di d (irty), il programma alloca lo spazio virtuale ma non lo farà mai riferimento. Ciò non comporterà alcuna sensibile riduzione della RAM "disponibile".
(L'opzione d (irty) prende il nome dal "bit della pagina sporca" nella voce della tabella delle pagine x86 / x64, che viene impostata quando si accede alla pagina virtuale corrispondente con un operando in stile "modifica", il che significa che il contenuto della pagina ha è stato modificato. Questa è l'indicazione di Windows che, nel caso in cui la pagina debba essere sfrattata dal set di processi, il suo contenuto deve essere salvato da qualche parte prima che la pagina possa essere utilizzata per qualcos'altro. Le pagine con il bit "sporco" impostato vanno a l '"elenco di pagine modificate" immediatamente dopo lo sfratto, da lì Windows le scrive nei rispettivi archivi di supporto.)
Sarà necessario disporre di un "commit" sufficiente affinché questi test funzionino come descritto sopra (anche per l'opzione l (eak), anche se questa opzione non utilizza una quantità apprezzabile di RAM). In particolare, il tuo "limite di commit" dovrebbe essere almeno 2 GiB (o comunque quanto stai allocando) più alto del "costo di commit" prima di iniziare il test. Nota che questo vale anche se stai usando l'opzione l (eak), non solo d (irty). Se ti imbatti in questo limite vedrai i pop-up "il sistema sta esaurendo la memoria" o simili. La cura, ovviamente, è quella di aggiungere più RAM e / o aumentare le impostazioni del file di paging.