In questo articolo ti aiutiamo a identificare e trovare perdite di memoria con Poolmon in ambienti Windows.
Tra i molti problemi che potresti dover affrontare con il tuo ecosistema Windows, un problema urgente che potrebbe richiedere attenzione sarebbe il problema della perdita di memoria. Le perdite di memoria possono essere di diversi tipi. Un errore standard che potresti riscontrare includeProblema di perdita di memoria a livello di kernel.Come lo risolveresti? Ti guideremo attraverso il processo nel tutorial di oggi.
Cos'è una perdita di memoria?
In circostanze normali, un processo alloca la memoria da un pool paginato o non paginato. Tuttavia, a volte può non riuscire a liberare la memoria. Mentre ai nuovi processi viene allocata memoria, la memoria più vecchia allocata ai processi precedenti non viene rilasciata al sistema operativo.
Ciò causa l'esaurimento della memoria limitata dei pool nel tempo. Di conseguenza, il sistema inizia a rallentare. Quando la memoria nei pool è completamente esaurita, si verifica un guasto completo del sistema. Il processo coinvolto nella ricerca di una perdita di memoria e nella sua risoluzione richiederebbe necessariamente l'esatta causa principale della perdita di memoria e risolverla.
Idealmente, le perdite di memoria possono verificarsi in due modi: una perdita di memoria in modalità kernel e una perdita di memoria in modalità utente. Esistono diversi modi utilizzati per risolvere un problema di perdita di memoria a seconda della causa del problema.
Se sospetti una perdita di memoria in modalità kernel nel tuo dispositivo, l'opzione migliore che puoi utilizzare per risolverla è utilizzarePoolmon.Poolmon è un'utilità che tiene traccia dell'utilizzo della memoria da parte del pool in base al nome del tag.
Per saperne di più:Che cos'è l'errore del pool non di paging in Windows 10? Come cambiarlo o risolverlo?
Poolmon è incluso nel kit dei driver di Windows, solitamente indicato come WDK. Ecco come potresti utilizzare Poolmon per risolvere il problema della perdita di memoria in modalità kernel.
Ecco i passaggi che puoi seguire per identificare le perdite di memoria in modalità kernel tramite Poolmon.
Abilita l'utilità Poolmon
Se utilizzi Windows XP o Windows 2000, dovrai abilitarlo. Se utilizzi la versione successiva di Windows, la troverai già abilitata per impostazione predefinita.
Ecco come abilitare Poolmon su Windows XP e Windows 200 –
- È necessario utilizzare prima GFlags per abilitare Poolmon.
- Puoi trovare GFlag inclusi inDStrumenti di ebug per Windows.
- Lancio
- Vai aRegistro di sistema
- Seleziona la casella perAbilita tagging del pool
- Una volta completate tutte queste impostazioni, fare clic su
Riavvia il computer affinché tutte le modifiche apportate abbiano effetto.
Usa Poolmon per trovare la perdita di memoria
Poolmon visualizza i byte del pool paginato e non paginato nella sua intestazione. Le informazioni vengono aggiornate ogni pochi secondi.
Segui la procedura qui per trovare la perdita di memoria nel tuo sistema –
- Avvia Poolmon
- Assicurati di essere a conoscenza dell'esatto problema di perdita di memoria nel tuo sistema. Se si è sicuri che la perdita di memoria si sia verificata nel pool non paginato, premere P una volta. Se sei sicuro che la perdita di memoria sia causata dal pool di paging, premi P due volte. Se non sei sicuro puoi uscire dall'applicazione senza premere P. Ciò includerà tutte le piscine.
- Ora premi B. Verranno visualizzati i byte nell'ordine dei byte massimi in uso
- Fai uno screenshot e salvalo. È preferibile nominarlo con l'etichetta temporale per un facile monitoraggio.
- Continua a fare screenshot ogni mezz'ora.
- Confronta gli screenshot. Questo ti darà un'idea dei tag che causano un maggiore utilizzo della memoria.
Interrompere il test e ripetere i test ancora una volta dopo un po'. Controlla quanta memoria è stata liberata. Idealmente, un'applicazione dovrebbe allocare e liberare memoria quasi a una velocità costante. Nel caso in cui trovi un'applicazione che alloca memoria a un ritmo più veloce di quello che libera, allora sarebbe un'indicazione per dimostrare che c'è una perdita di memoria.
Comandi di Poolmon
Se stai utilizzando Poolmon, dovresti essere a conoscenza di alcuni comandi in modo da poterlo utilizzare in modo appropriato. Ecco l'elenco dei comandi utilizzati con Poolmon.
| Comando | Cosa fa |
| P | Ordina l'elenco dei tag in base al tipo impaginato, non impaginato e misto. Premere ripetutamente P per scorrere le opzioni |
| B | Ordina l'elenco dei tag in base all'utilizzo massimo di byte |
| M | Ordina l'elenco dei tag in base all'allocazione massima di byte |
| T | Ordina l'elenco dei tag in base al nome del tag in ordine alfabetico |
| E | Visualizza i tag impaginati, non impaginati e totali nella parte inferiore. Utilizzare il comando per scorrere le opzioni. |
| UN | Ordina i tag in base alla dimensione dell'allocazione |
| F | Ordina i tag in base al tipo Operazione gratuita |
| S | Ordina l'elenco dei tag in base alla differenza tra la memoria allocata e quella liberata |
| Q | Esci da Poolmon |
Come puoi affrontare la perdita?
Tieni presente che Poolmon è solo un'utilità di monitoraggio. Monitorerebbe i tag del pool e l'utilizzo della memoria da essi gestito. Pertanto, puoi usarli per guidarti su quali tag utilizzano una quantità elevata di memoria e quindi causano una perdita di memoria. Non può essere utilizzato per risolvere il problema delle perdite di memoria.
Una volta identificato il tag associato alla perdita di memoria, è possibile utilizzare altri strumenti per determinare il motivo esatto per identificare le istanze di perdita di memoria. Kernel Debugger può essere uno degli strumenti che possono essere utili in questo senso. Spiegare questi strumenti, tuttavia, va oltre lo scopo di questo articolo. Tuttavia, Poolmon può essere la soluzione migliore se stai riscontrando problemi di perdita di memoria e stai tentando di risolverli.
I pensieri d'addio
Poolmon è davvero una scelta eccellente per identificare i problemi di perdita di memoria sul tuo dispositivo a livello di kernel. I problemi di perdita di memoria possono ridurre gravemente le prestazioni del sistema e come tali devono essere risolti in tempo. Partiamo dal presupposto di essere stati in grado di guidarti nel modo giusto per utilizzare Poolmon nell'identificare il verificarsi di perdite di memoria sul tuo sistema Windows. Una volta individuata l'esistenza della perdita e i tag che la causano, dovrebbe essere abbastanza semplice individuare le soluzioni con altri mezzi.
