We've built a windows service which uses some COM+ components (developed by us). It runs on a Windows server (virtual through vmware) and something is eating memory.
Memory check
I did a small application开发者_运维技巧 which runs through all Process.GetProcesses
and return their total memory usage:
First run:
C:\Temp>ProcessExplorer.exe
Virtual: 1613Mb, Physical: 318Mb
Few minutes later:
C:\Temp>ProcessExplorer.exe
Virtual: 1492Mb, Physical: 48Mb
Task manager
Looking at processes in task manager I don't see any application with high memory usage. But If I look at the Performance tab, no memory is available.
I have let the server run a few days without our application and the memory usage was constant at about 30%. I turned on the application yesterday and the memory usage on the server had increased to about 60% a couple of hours ago.
So where did all the memory go? How do I find it? :)
Windows' Task Manager is a very limited tool - check out Process Explorer and perfmon.msc.
VmWare Tools created a Memory balloon to free up memory for another virtual machine. Seems like it's an bug in VmWare Tools since the virtual machine really needed that memory.
We've tried to turn of VmWare tools on that VM and everything works fine now.
精彩评论