There's something about Windows memory management and it's relationship to TaskManager that I don't understand and I'm hoping someone can enlighten me.
If I'm running a virtual machine (doesn't matter if it's Virtual PC 2007, Virtual Server 2005, or VirtualBox since they act the same way) and bring up TaskManager I can see on the processes tab some entries for the VM but the memory values are fairly small (around 30 MB). Obviously it's not including the memory actually being consumed by the VM itself. None of the various Memory-related columns you can make visible appear to work differently. The Memory usage on the Performance tab appears to be correct for total memory usage including the VM.
So my question is why doesn't the VM's memory usage (which will be 100's of MB) show up on the Processes tab?
-
To view the amount of memory in use by a VM, you need to ensure that you have the Working Set column visible in your Task Manager. Often only the Private Set is visible.
To enable this column:
1) Start Task Manager
2) Go to Processes tab
3) View > Select Columns
4) Ensure that "Memory - Working Set" is ticked
For example, the Private Set of the VM I have running at the moment is 43mb, whereas the Working Set is 2.3Gb
: What is full amount of memory application uses? Working set + Private set or just Working set?sbussinger : Perhaps it's different in different versions of Windows, but under Windows 7 that's not what I'm seeing. The "Working Set" numbers are larger than the "Private Working Set" numbers, but not remotely enough to account for the VM's memory. I've tried all of the memory related columns and none of them do. This is with both Windows Virtual PC and VirtualBox. What version of Windows and what VM host are you using?tylerl : Unfortunately, there is no single number that indicates "how much memory" a process is using, since you get into complications like shared memory, file-mapped memory, paged-out memory and a few others. Here's a good explanation of a few concepts: http://stackoverflow.com/questions/1984186/what-is-private-bytes-virtual-bytes-working-setFrom Farseeker -
Did any one answer because I have the same issue. VM has 8GB of memory assigned but task manager & perf mon only report about 5GB if you total the numbers yet system using 7gb of memory
OS win 2008 64 bit
sbussinger : I never did get a good answer. I've been meaning to play with the new SysInternals RAMMAP utility to see how that handled the VM memory (http://technet.microsoft.com/en-us/sysinternals/ff700229.aspx). I suspect it will do it correctly since it's a much more sophisticated RAM usage utility.From WLAadmin -
VirtualPC, HyperV and probably similar products use something called driver locked memory, which is not visible in Process Explorer, Task Manager, etc. RAMMap will show you driver locked memory used by a process.
From Sajee -
Any hosted virtualization system like the ones you listed will include a device driver which runs within the host OS's kernel. This is necessary as user-mode programs can't issue the instructions necessary to create a virtual machine.
The reason that you don't see the memory in task manager is that you're looking at memory for the user-mode programs associated with the virtual machines, and not the kernel-mode device driver which actually allocated the memory for the VMs.
From Jake Oshins
0 comments:
Post a Comment