VMware Communities
danallenhtn
Enthusiast
Enthusiast
Jump to solution

Why Isn't Allocated Memory Appearing in Activity Monitor?

Is there a good reason for memory allocated to guest virtual machines not appearing in macOS Activity Monitor in the listing for VMWare?

Background

This host (macOS) currently has three guests running.  The memory allocations for them are:

Guest 1:   8000MB

Guest 2: 16000 MB

Guest 3:   8192 MB

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

Total memory allocated to VMs:

32,192MB

=32.192GB

Referring to the first image below, macOS activity monitor shows144.9MB memory allocated to virtual machines  (sum of 49.3, 50.2, 45.4).  Memory allocated system wide is less than memory that should be allocated to the guest vm's.

Is this normal?

pastedImage_0.png

2.png

3.png

1 Solution

Accepted Solutions
Technogeezer
Immortal
Immortal
Jump to solution

The VMware Fusion process is the GUI, not the virtual machines themselves.

The memory used by the VMs can be found by examining vmware-vmx processes. Fusion spins up one vmware-vmx process (which is the actual hypervisor) for each VM that you are running.

The Activity Monitor doesn't give you a good way to say "this vmware-vmx instance is running this VM".  You might be able to infer which is which, but I think the definitive answer may be found by examining the VM's log to see if it records a process ID for the vmx process it fires up for the VM.

If you look at the memory in use by the vmx processes, you'll probably see that the memory in use may be less than the total that you have allocated for the VMs. If I remember correctly, Fusion doesn't grab the entire allocated memory from the host when you start a VM. The amount of memory used on the host by the vmx process will depend on how the VM uses memory. Fusion will request more memory for a VM from the host  up to the amount that you specify as the VM needs it.

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides

View solution in original post

5 Replies
Technogeezer
Immortal
Immortal
Jump to solution

The VMware Fusion process is the GUI, not the virtual machines themselves.

The memory used by the VMs can be found by examining vmware-vmx processes. Fusion spins up one vmware-vmx process (which is the actual hypervisor) for each VM that you are running.

The Activity Monitor doesn't give you a good way to say "this vmware-vmx instance is running this VM".  You might be able to infer which is which, but I think the definitive answer may be found by examining the VM's log to see if it records a process ID for the vmx process it fires up for the VM.

If you look at the memory in use by the vmx processes, you'll probably see that the memory in use may be less than the total that you have allocated for the VMs. If I remember correctly, Fusion doesn't grab the entire allocated memory from the host when you start a VM. The amount of memory used on the host by the vmx process will depend on how the VM uses memory. Fusion will request more memory for a VM from the host  up to the amount that you specify as the VM needs it.

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides
wila
Immortal
Immortal
Jump to solution

Hi,

In addition to what @ technogeezer says, you can actually determine which vmware-vmx process is which by looking at the command line from the running process.

As that is a bit long and unwieldy I wrote a little bash script to match the process id (pid) with the VM vmx path.

The script looks like this:

$ cat vmware-show-pid.sh

#!/bin/bash

ps x -o "pid command" | awk '{ match($0,"D 4");print $1 substr($0,RSTART+3,length($0)) }' | grep [v]mx

I use this script when I have 6 or 7 VMs running and one of them is driving up the CPU without a clear indication of which VM is causing the issue.

First I use activity monitor to determine process identifier of the vmware-vmx process that uses too much CPU.

After that I run the above script to see which is which.

This helps me in identifying the culprit and looking at the correct VM.

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
danallenhtn
Enthusiast
Enthusiast
Jump to solution

Thank you for the clarification on the processes in macox associated with guest vm's running under VMWare Fusion.  I should have realized I was looking at the wrong processes when posting my question.

I updated the post opening this thread, putting in this picture

pastedImage_1.png

In place of this picture,which I removed:

pastedImage_0.png

I need to test the VMs ability to request memory.  These VMs running under the same version of Fusion (10) in Mojave used a lot more memory than under Catalina.  A few years ago, these VMs were bottlenecking on memory and not using the memory allocated to them.  A VM tech helped me with the problem, with the result that performance improved and memory usage increased without touching the apps on the VM.  I don't remember what the VMWare tech did to bring this about.  We did a shared screen session.  I will have to look for notes.

0 Kudos
danallenhtn
Enthusiast
Enthusiast
Jump to solution

Those commands are great, thank you.

0 Kudos
wila
Immortal
Immortal
Jump to solution

Hi,

Apple is correct about the MB, that doesn't just change into GB.

The memory column however is confusing.

Add the "Real Memory" column to get a better idea of what the actual use is.

So right click (Control+click) and add that column.

pastedImage_0.png

--

Wil

| Author of Vimalin. The virtual machine Backup app for VMware Fusion, VMware Workstation and Player |
| More info at vimalin.com | Twitter @wilva
0 Kudos