I have a Windows 2003 Server running a bit slow where the commit charge and page file usage tick up and up until I eventually reboot. To fix this I need to find out what's consuming all the memory, and this is where the big mystery is.
Current stats from the Task Manager:
Physical Memory (K): 2096400
Commit Charge (K): 5364848
Page file usage: 5.11 GB
Fine, so let's pull up SysInternals Process Explorer and check the working set size of everything running. Biggest culprit is a Tomcat instance using 121,980K WS, 481,284K VM Size. Nothing in there comes close to explaining the 5 GB commit charge.
Next step: SysInternals pslist: pslist -m
, split up the output by column and calculate column sums for the 61 processes that are reported.
SUM (Working Set) : 681,484 K
SUM (Private Bytes): 593,424 K
Am I fundamentally misunderstanding what the tools are reporting? I've always been under the impression that an OS would actually commit much less memory than the full amount of virtual memory mapped by a process, on the assumption that it won't actually ever use that much, and that looking at VM here is a red herring.