Bene, prima cosa, prima di entrare in una risposta più dettagliata. Nella prima schermata, il pool non paginato (un tipo di utilizzo della memoria del kernel) è di 1,3 GB. Mi sembra insolitamente alto, soprattutto per soli 30 minuti dopo l'avvio. Immagino di poter vedere NP Pool ottenere così in alto dopo un lungo periodo di utilizzo o con un programma che perdeva come un setaccio. Al contrario, il mio pool NP è in genere compreso tra 100 e 200 megabyte e il mio pool di paging potrebbe arrivare a 400 o 500 (e cioè dopo avere il sistema in esecuzione senza riavvio per settimane).
È possibile abilitare alcune colonne aggiuntive in Task Manager facendo clic con il pulsante destro del mouse sulle intestazioni delle colonne e scegliendo Seleziona colonne. Si dovrebbe aggiungere Working Set (private)
, Working Set (shared)
, Commit
, e NP Pool
. Scansionerei tutti i tuoi processi da tutti gli utenti e vedrei se qualcuno di loro ha un pool NP superiore a circa 256 KB. Se ne vedi qualcuno, specialmente quelli che sono considerevolmente più alti, potrebbe essere la fonte del problema, o almeno parte di esso.
Il set di lavoro totale, la quantità di memoria fisica utilizzata da un processo, è la combinazione dei set di lavoro privati e condivisi (WS). Il privato è di solito più grande per la maggior parte dei processi, tuttavia potrebbero essercene alcuni che utilizzano una quantità maggiore di WS condivisi. I due dovrebbero normalmente sommare al totale WS. Commit è la quantità del set di lavoro che è stata impegnata nell'archivio di backup (nella maggior parte dei casi, il file di paging di Windows). Le applicazioni in background avranno spesso un commit maggiore rispetto a WS, a indicare che gran parte del loro pool di paging è stato sostituito dalla memoria e nel file di paging (che è abbastanza normale per le app desktop che sono state ridotte al minimo e non utilizzate per un po ').
Il pool non paginato è una memoria che non può e non potrà mai essere sostituita dalla memoria fisica ... questo è effettivamente l'utilizzo minimo permanente della memoria fisica. La memoria NP Pool spesso contiene codice di programma e sezioni critiche che devono essere nella memoria fisica per comportarsi correttamente o in modo sicuro, cumuli speciali, ecc. Su 60 processi, se tutti hanno 256 KB di memoria NP Pool, l'utilizzo della memoria fisica minima minima sarebbe di circa 15.360 KB. Nella maggior parte dei casi una o due app possono avere un pool NP da 256 KB, mentre la maggior parte ne ha meno, spesso considerevolmente meno (o nessuna). È altamente improbabile che il sistema esegua mai il paging dell'intero insieme di tutti i processi funzionanti, quindi non aspettatevi mai che l'utilizzo della memoria sia così basso.
Infine, il punto di avere più memoria è quello di evitare di dover eseguire la paginazione dei dati da e verso lo spazio di memoria esteso (scambio, file di paging) su un disco fisico. Il paging è un processo che comporta lo spostamento di blocchi di memoria fisica allocata, il trasferimento di alcuni su disco e il trasferimento di altri nella memoria fisica dal disco. Il paging è, per renderlo semplice, altamente indesiderabile. Non è "cattivo" di per sé, ma può essere un vero freno per le prestazioni quando si verifica troppo frequentemente. Il punto finale di aumentare la RAM fisica totale in un sistema è consentire a più processi di mantenere un maggior impegno nella memoria fisica (set di lavoro più ampio). Il consumo di memoria non è un problema e quando più processi in esecuzione utilizzano più memoria, le prestazioni totali del sistema e le prestazioni del processo attivo saranno generalmente più elevate,
Windows gestisce la memoria per te e inserisce automaticamente i dati dentro e fuori la memoria da e verso il file di pagina (swap). Se esegui un processo che richiede 9 GB di memoria e il tuo sistema sta già utilizzando 4 GB (su 12 GB), il sistema scoprirà automaticamente quali processi non richiedono l'accesso immediato all'intero set di lavoro e visualizzerà in parte o in parte del loro pool di paging fuori per scambiare per liberare quel 1 GB in più. Se il tuo grande processo alla fine ha bisogno di più memoria, Windows ridurrà ulteriormente il gruppo di lavoro di altri processi fino a quando non ha abbastanza spazio libero per allocare il blocco appena richiesto. Il tuo processo di grandi dimensioni potrebbe eventualmente consumare tutta la memoria disponibile tranne NP Pool e forse un sovraccarico minimo aggiuntivo per l'esecuzione periodica di processi che non consentono a Windows di liberare più del loro set di lavoro (i. e. presentano errori di pagina in sospeso che altrimenti Windows cambierebbe dalla memoria fisica, ma poiché vengono richiesti, non possono essere spostati.)
Se un processo ha bisogno di più memoria di quella a cui è consentito accedere (i processi a 32 bit in genere possono accedere a 2 Gb e alcuni a meno di 4 Gb con tecniche avanzate, mentre i processi a 64 bit in genere possono accedere a circa 48 Gb di memoria, ciascuno), a volte Windows proverà per virtualizzare la sua memoria con spazio di swap. Se un'app a 32 bit desidera utilizzare il massimo consentito di 2 GB di spazio, ma sono disponibili solo 1,2 GB, Windows riserverà i 2 GB completi nel file di pagina e sposta i dati propri dei processi dentro e fuori dal file di pagina secondo necessità per supporta l'utilizzo della memoria dell'app. L'utilizzo totale della "memoria" in questo caso può sembrare maggiore della memoria fisica disponibile, quando si passa a Total Commit. Total Commit di solito massimizza al massimo le dimensioni del file di pagina totale, che quando gestito dal sistema, è solitamente 2-3 volte la quantità di memoria fisica. Nel tuo caso,
Un ultimo punto. Nella tua risposta hai detto che avevi 16 GB di RAM, mentre come Task Manager vede solo 12 GB di RAM. Una delle due cose qui. O il tuo sistema ha davvero solo 12 GB di RAM o uno dei tuoi stick non si registra correttamente. Se uno stick di ram (suppongo che 4x stick da 4 GB), potrebbe essere difettoso, potrebbe non essere inserito correttamente nella scheda madre o la scheda madre potrebbe avere un problema di rilevamento della memoria.
Per verificare se si tratta di quest'ultimo, è necessario innanzitutto aggiornare il BIOS della scheda madre all'ultima versione. Ho avuto un problema simile ... i miei sei rametti DDR3 a tre canali DDR3 (6x 2Gb) erano tutti buoni in base al test individuale di ciascuno ... ma la mia scheda madre ha deciso casualmente di non contarne uno o due ogni tanto, spesso lasciandomi con solo 8 GB di RAM. Un aggiornamento del BIOS ha risolto il problema e ora ho un accesso affidabile a tutti i miei 12 GB di memoria.