Why is the host memory usage and the guest memory usage are different than what I see inside the guest operating system?
When you monitor your system, you might have notice that the host and guest memory usage values reported in the vSphere Client are different than the memory usage metrics reported using guest operating system tools.
For guest memory usage, there are a couple of reasons why the values reported in the vSphere Client might be different than the active memory usage reported by the guest operating system.
1) The first reason is that the guest operating system generally has a better idea of what memory is “active.” The guest operating system also knows what applications are running on it and how much memory it has allocated to those applications.
2) the second reason is that the method used by the hypervisor to estimate active memory usage takes time to converge.
Therefore, the guest operating system’s estimation might be more accurate than the ESX/ESXi host if the memory workload is fluctuating.
For host memory usage, the host memory usage metric has absolutely no meaning inside the guest operating system. This is because the guest operating system does not know that it is running within a virtual machine or that other virtual machines exist on the same physical host.