Ho un server Windows 2003 in esecuzione un po 'lento in cui il costo di commit e l'utilizzo del file di paging aumentano fino al riavvio. Per risolvere questo problema, devo scoprire cosa sta consumando tutta la memoria, ed è qui che sta il grande mistero.
Statistiche correnti dal Task Manager:
Physical Memory (K): 2096400
Commit Charge (K): 5364848
Page file usage: 5.11 GB
Bene, quindi tiriamo su SysInternals Process Explorer e controlliamo le dimensioni del set di lavoro di tutto ciò che è in esecuzione. Il più grande colpevole è un'istanza Tomcat che utilizza 121.980 KB WS, 481.284 KB Dimensione VM. Non c'è nulla di simile alla spiegazione della commissione di commit da 5 GB.
Passaggio successivo SysInternals pslist : pslist -m
, contempla l'uscita dalla colonna e colonna calcolare somme per i 61 processi che vengono segnalati.
SUM (Working Set) : 681,484 K
SUM (Private Bytes): 593,424 K
Sto fondamentalmente fraintendendo ciò che gli strumenti stanno segnalando? Ho sempre avuto l'impressione che un sistema operativo avrebbe effettivamente impegnato molto meno memoria rispetto alla quantità totale di memoria virtuale mappata da un processo, supponendo che in realtà non userà mai così tanto e che guardare la VM qui è un'aringa rossa.