Hyper-V OS: WS2012 Std
Guest OS: WS2012 Std
Physical memory: 12 GB
Virtual Memory assign: 8GB (Dynamic Memory)
Recently I installed WS2012 Std edition into my Hyper-V. I'm planning to install SCOM 2012 Sp1 in my VM. I encounter an issue with memory over commit. On resource monitor I found "DWM.exe" cummit up to 19,844KB. I wonder why every time I increase the memory the available memory still got not enough.
Below is the details memory usage:
In Use: 7.8GB
Committed: 7.8/9.2 GB
Paged pool: 72.3MB
Non-paged pool: 23.4MB
Appropriated it to any expert will answer my question.
That specific service isn't really eating a lot of your memory. 19MB really isn't that much in the grand scheme of your server. However, if you want to minimize the memory consumption of that specific service, turn down the desktop affects that run inside your VM. DWM is the Desktop Window Manager. Resource consumption will increase when themes or graphics (for example, aero) are applied to a desktop. If you want to completely remove it, you can certainly disable the service, but you will be limited to the most basic of desktop visual themes.
Maybe some screen shots of your task manager (graphs and running processes) would help. Did you install SQL anywhere on the host for SCOM?
Also, I think my answer for DWM still stands and probably isn't a significant contributor to your overall problem.
Actually, what you are describing sounds pretty typical, particularly if you installed SQL Server for use by SCOM. You aren't really overcommitted, any more than you would be with a physical machine that is using virtual memory. This line:
Committed: 7.8/9.2 GB
simply says that your machine is actively using 7.8 GB of the RAM available to it, but it has some other tasks, that if memory were available, would add another 1.4 GB of memory. That's simply the virtual memory system doing its job like it is supposed to. I have seen this on physical machines, too.
But Ted gives a good hint. SQL and dynamic memory are not good bedfellows. By default, SQL tries to go out and grab everything it can. When using dynamic memory, you need to set your SQL installation to NOT use all the memory it can. Generally, when I am running SQL in a VM, I simply make the VM fixed size instead of bothering with dynamic memory. Yes, you can use it, but you need to follow the best practices defined here - http://msdn.microsoft.com/en-us/library/hh372970.aspx