VMware Communities
dcampbelatcs
Contributor
Contributor

How to get a virtual machine to use more of the host's physical memory?

Hello,

I am trying to figure out how to get my virtual machine to use more of the host's physical memory.  Here is the story:

Virtual OS: Windows XP  (with 12 GB phys mem)

Host OS: Windows 7  (with 3 GB memory given to it)

Using VMWare Workstation 7

My host OS has 12 GBs of memory, so I'm not really worried about availability of physical memory.

My guest XP system says it has 3 GBs.

I am running a process in the guest XP OS that requires about 1 GB of memory.  It is exceedingly slow.  This seems to be because it is getting paged.  I don't undertand why as I have plenty of available memory on both the guest OS and the host OS.

What is the process that actually runs the virtual machine?  It is "vmware-vmx.exe", right?  Well according to my HOST OS task manager, this process is only using 27 MB of memory.  Why is this happening?

Per this page:

http://www.vmware.com/support/ws55/doc/ws_performance_mem_host.html

at the bottom, I have tried selecting "Fit all virtual machine memory into reserved host RAM", but that doesn't seem to do anything.

Any help here?  Trying to load this process I need in the guest OS, it is loading at a rate of about 1MB per 10 seconds or so!!!

I'm sure I am overlooking something easy, please help!

Thanks!

0 Kudos
15 Replies
continuum
Immortal
Immortal

have a look at my notes
http://faq.sanbarrow.com/index.php?action=show&cat=78


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
a_p_
Leadership
Leadership

Welcome to the Community,

how do the settings in "Edit" -> "Preferences" -> "Memory" look like. Maybe you need to allow VMware Workstation to reserve more memory.

André

0 Kudos
dcampbelatcs
Contributor
Contributor

In the "Reserved Memory" area, the slider is set to 11044 MB.

The "Additional Memory" is set to "Fit all vitrual machine memory into reserved host RAM".

0 Kudos
dcampbelatcs
Contributor
Contributor

Continuum, thanks for the reply.

I looked through these notes, and did not see anything that helps me specifically, unless did you have something in mind that I didn't see?

Also, question for everyone: Am I correct in thinking that "vmware-vmx.exe" is the process that is the guest OS?

0 Kudos
continuum
Immortal
Immortal

yes
vmware.exe = the Workstation GUI

vmware-vmx.exe  = the process that actually runs a single VM

by default Workstation is configured to have a medium impact on the host resources

to tune a single VM for best performance you would set for example
mainmem.useNamedFile = "false"
and a few other things


in my config.ini I have for example

prefvmx.useRecommendedLockedMemSize = "TRUE"        
prefvmx.minVmMemPct = "100"                
mainmem.useNamedFile = "false"

if you inspect a vmware.log from your VMs you can compare your settings


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
dcampbelatcs
Contributor
Contributor

Thanks, I will give this a try.

So I am not at all an expert with VMWare... where do I put these settings?  You mentioned a config.ini file... where is that located?  Where can I find a noobie tutorial on modifying these settings?

Thanks again!!

0 Kudos
continuum
Immortal
Immortal

really have a look at a vmware.log - the path to the config.ini on your system is referenced there


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
dcampbelatcs
Contributor
Contributor

Okay, thanks, I have found the config file by checking the log file.  I was able to find the config file marked in the log file as "HOST DEFAULTS".

Here is what I have in there currently.

-----------------------------------------------------------

.encoding = "windows-1252"
installerDefaults.autoSoftwareUpdateEnabled = "yes"
installerDefaults.componentDownloadEnabled = "yes"
installerDefaults.dataCollectionEnabled = "yes"
prefvmx.minVmMemPct = "100"

prefvmx.useRecommendedLockedMemSize = "TRUE"       
mainmem.useNamedFile = "false"

-----------------------------------------------------------

I added the last two lines according to what you had said.

The problem is still happening.  "vmware-vmx.exe" is running at about 25MB of memory.  When I launch my process in the host OS, it runs at 100% CPU (as expected) and is continually filling memory (also as expected).  It quickly gets up to 300-400, then slowly continues increasing.  Before the task is complete, it will reach about 1.3 GB of memory and will take a couple of hours.  This should take no more than a couple minutes.

The whole time, vmware-vmx.exe stays steady at about 25 MB.

What am I not understanding here?

0 Kudos
continuum
Immortal
Immortal

attach the full vmware.log - then I look into it tomorrow and may be able to give you more tips


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
dcampbelatcs
Contributor
Contributor

Here is the log file

0 Kudos
continuum
Immortal
Immortal

first of all : if you make changes to a VM-config you should non suspend it - rebo0ot it once

please make a test - assign exactly 1000 MB of virtual RAM to the VM and check if your taskmanager then displays significantly higher RAM usage of vmware.vmx.exe

in my experience I would expect that a XP 32 VM with 4 GB RAM is dead slow and that it is not possible to get a RAM usage of about 4Gb in taskmanager.
Not on Win7 - 64 with 7.1.4


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

0 Kudos
dcampbelatcs
Contributor
Contributor

Hi Ulli,

Thanks for the reply.

So I tried your experiment of giving 1000 MB of memory to the virtual machine.  When I launched it, the guest OS did think that it had 1000 MB to work with, but even when I launched my memory-intensive process, the amount of memory used by "vmware-vmx.exe" was around 25 MB.

I have attached the logfile from this experiment.

I do not understand what is happening here Smiley Sad

PS: I have been shutting down the guest OS.  In fact when I first made changes to the memory, I restarted my host OS too.  The suspend that you see in the log is probably me suspending the OS to save my process once it had finished running and was sitting in memory (it took a few hours).

Daniel

0 Kudos
dcampbelatcs
Contributor
Contributor

ooops, logfile here attached....

0 Kudos
PShahood
Contributor
Contributor

"My guest XP system says it has 3 GBs."

If it's 32 bit XP, that all you get!

0 Kudos
0WayneH0
Hot Shot
Hot Shot

dcampbelatcs wrote:

..., but even when I launched my memory-intensive process, the amount of memory used by "vmware-vmx.exe" was around 25 MB.

How did you determine how much memory vmware-vmx.exe was using?

If you used Windows Task Manager on Windows 7, note that the default memory column is "Memory (Private Working Set)". If you want to see all the memory in "use" you should check the "Working Set (Memory)" column. (View --> Select Columns...). The value in this column might be more what you are expecting to see.

0 Kudos