Quindi ultimamente ho notato un utilizzo della memoria estremamente elevato. Con solo Chrome con 20 schede aperte, ottengo 13,5 / 16 GB di memoria utilizzata. Gestione attività segnala che Chrome utilizza solo circa 3 GB di memoria. Tutti i restanti processi riportati in Task Manager combinati producono meno di 1 GB di memoria aggiuntiva poiché la maggior parte di essi utilizza tra 10 MB e 50 MB.
Ho usato RamMap per ottenere maggiori dettagli e ho scoperto che il pool non di paging è estremamente alto con 5,7 GB. Ecco un'immagine di RamMap .
Ho usato poolmon
e scoperto che due cose stanno consumando un'enorme quantità del pool non di paging. Ecco un'immagine di poolmon .
Secondo una ricerca di tag di Google e questo elenco qui , ecco a cosa servono quei 2 tag:
- FMic - fltmgr.sys - struttura IRP_CTRL
- Irp - sconosciuto - Io, pacchetti IRP
Ma ora ho raggiunto un vicolo cieco. Ho visto altre domande simili, ma nessuna che riguarda questi tag. Il problema di altre persone di solito proviene da un driver e possono semplicemente aggiornarlo. Ma in questo caso, non so come risolverlo.
Ho trovato il file fltMgr.sys in C: \ Windows \ System32 \ drivers , ma sembra che sia una cosa di Microsoft. In Proprietà -> Dettagli , il suo nome è "Sistema operativo Microsoft Windows" e la descrizione del file è "Gestione filtro file system Microsoft". cioè questo non è solo un driver che posso aggiornare.
Per quanto riguarda il tag Irp , non ne ho idea.
Eventuali suggerimenti? Dove lo prendo da qui e cosa posso fare?
EDIT 03/03/18 : Non possiedo Killer NIC.
Ho usato xperf per registrare e sono arrivato così lontano . Non sono sicuro di dove andare da qui, in alternativa potrei caricare il file .etl, anche se è abbastanza grande, quindi non sono sicuro di dove. Fammi sapere se il caricamento sarà di aiuto.
Sono necessari circa 40 minuti dopo il riavvio e dispongono già di un pool non di paging di 517 MB.
EDIT 04/03/18 # 1 : pool non di paging attualmente a 1 GB dopo un giorno. Sembra aumentare ad una velocità di ~ 1 GB al giorno. L'output di fltmc
può essere trovato qui .
Per quanto riguarda Irp , non utilizzo antivirus o programmi di backup, a meno che non conti Windows Defender. Tuttavia, utilizzo un collegamento simbolico dal mio C: drive (SSD) al mio F: drive (HDD) per Google Chrome e le cartelle cache di Skype poiché causavano scritture di 20 GB al giorno su disco, cosa che non volevo il mio SSD. Questa cache funziona bene e viene scritta sul mio HDD, ma non penso che causerebbe un I / O fallito.
Ho anche un array Raid 0 di 2 HDD (1 TB ciascuno) creato tramite gli spazi di archiviazione integrati di Windows, non tramite il BIOS o qualcosa del genere. Suppongo che questo potrebbe non avere nulla a che fare con la cosa Irp ?
Infine, registro anche il mio gameplay quando gioco ai videogiochi. Viene eseguito automaticamente in background non appena lancio un gioco, utilizzando un client chiamato Plays.TV. Ma ancora una volta, questo ha esito positivo e non vedo perché la richiesta I / O sia stata emessa ma non completata. I video finiscono di registrare non appena esco da un gioco.
EDIT 04/03/18 # 2 : ho usato typeperf "Memory\Pool Nonpaged Bytes" -si 20 -o npptracker.csv
e poi ho rappresentato graficamente i risultati come suggerito da @HelpingHand. Ho anche annotato il grafico con tutti gli eventi, quindi puoi vedere quale azione corrisponde ai byte non di paging che saltano su o giù. Ecco il grafico. Su di esso, potresti vedere alcune cose che non riconosci:
- PUBG - Abbreviazione di PlayerUnknown's BattleGrounds, è un videogioco a cui ho giocato di recente
- Plays.TV - client di registrazione video che avvia automaticamente la registrazione non appena accedo a un gioco e interrompe la registrazione all'uscita. Registra anche metadati per alcuni giochi e li inserisce nella sequenza temporale del video come indicatore, ad esempio vedrò indicatori nella sequenza temporale quando ho ucciso qualcuno. Questi metadati sono registrati in un file .framelets .
- Twitch.tv - un sito Web per lo streaming
- Bot per un browser game - solo un bot che richiede richieste HTML. Funziona solo per circa 30 a 60 minuti alla volta e sono abbastanza sicuro che non abbia alcun effetto.
Come puoi vedere nel grafico, ho usato Xperf usando il seguente comando per circa 7 minuti: Xperf -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree+PoolAllocSession+PoolFreeSession -BufferSize 1024 -MinBuffers 256 -MaxBuffers 256 -MaxFile 1024 -FileMode Circular
Questo ha prodotto un file .etl da 1 GB che ho zippato e caricato qui (80 MB) .
Alla fine, ho usato di poolmon
nuovo circa 2-3 minuti dopo essermi fermato xperf
. Ho dimenticato di inserirlo nel grafico della sequenza temporale. Ecco un'immagine del risultato.
Xperf -on PROC_THREAD+LOADER+POOL -stackwalk PoolAlloc+PoolFree+PoolAllocSession+PoolFreeSession -BufferSize 1024 -MinBuffers 256 -MaxBuffers 256 -MaxFile 256 -FileMode Circular
per avviare una traccia. Dopo aver aumentato la memoria del pool, eseguire: xperf -stop -d pool.etl
per creare una traccia. Carica pool.etl in WPA. Filer per AIFO (mem allocata all'interno liberata all'esterno). Sentiti libero di collegare l'etl.