VMware Cloud Community
ig_KYLED
Contributor
Contributor

Linux Host Memory Consumption Lower Than ESXi Reporting Used

ESXi is reporting 8GiB used, however top is showing about 3.2ish GiB used. 

Reply
0 Kudos
5 Replies
MattConnor
Contributor
Contributor

one measurement is the allocated to the VM from ESX

ESXtop will be the actual vm comsumed memory at that point in time

Reply
0 Kudos
pwilk
Hot Shot
Hot Shot

I've noticed the same behavior in my environment and contacted VMware Support. Apparently the issue is going to be resolved after applying the latest update to vCSA - which version are you on? I didn't get an authorization to update our appliance yet.

Cheers,

Paul Wilk 

Cheers, Paul Wilk
Reply
0 Kudos
Aditya2018
VMware Employee
VMware Employee

It is kind of expected behavior on the Linux VMs, Linux OS catches the available memory so it is readily available, hence the utilization on ESXi level shows full allocated memory used, but on the guest it only reports the used part

Sincerely, Aditya Gottumukkala Skyline Skyline Moderator VMware Inc
Reply
0 Kudos
VishShah
VMware Employee
VMware Employee

Memory use in Linux guest, and varying degrees of utilization when measuring inside the guest and in the vSphere console, In high level, It depends on what the Guest OS considers usage.

We cannot see the Guest OS so what we see as usage doesn't necessarily match. We are able to see what memory the VM is actually using on the host, vs. what the VM's OS says it is using.

You can see an explanation for that counter here: https://www.vmware.com/support/developer/vc-sdk/visdk400pubs/ReferenceGuide/memory_counters.html

So "Active" means Amount of memory that is actively used, as estimated by VMkernel based on recently touched memory pages.

The important metric is the "Active" metric as far as a VM is concerned. Their are some savings due to TPS but it wouldn't be close to that difference.  What is likely happening is a process on the Linux system has taken more memory for itself than it is actually using. I'm not as good on the Linux side so not sure how you would get that information to show itself on the OS side.

What is likely happening is a process on the Linux system has taken more memory for itself than it is actually using similarly you can compare with the other Windows Guest OS. We should always use in-guest memory stats if possible since only the guest knows what it's doing with memory.

read this Blog _ http://blogs.vmware.com/vsphere/2013/10/understanding-vsphere-active-memory.html


  https://communities.vmware.com/thread/543685

"always using in guest memory stats". We don't even use that in vcops. and quite often in windows that value is incorrect based on our active memory calculation.

So from the vSphere GUI there is no such parameter to provide this output, we will not get the actual calculation of memory is being used inside Guest OS we consider this value with Active Memory, somewhere EP-ops will help to get this value integrating with VCOPS\vROPS.

Regards Vishwajit Shah Skyline Support Moderator VCA-DCV | VCP5-DCV | VCP6.0; 6.5-DCV & CMA | VCA-DBT | VCAP60-DCV
Reply
0 Kudos
ig_KYLED
Contributor
Contributor

I'm running ESXi 6.5.0

4887370

Reply
0 Kudos