VMware Cloud Community
Sparrohawk
Contributor
Contributor
Jump to solution

Memory on VM reports different than in OpsMan

New to working with VopsMan.

Right now using default policy ( installation configuration )  for all objects

When reviewing metrics for the 24 hours for memory diagnoses It shows memory vm demand less than 5GB for the last few hours, but going on the guest itself shows 11GB  in usage.

What I'm trying to understand is the following:

Why does OpMan report a different demand vs the guest?

Does the policy applied play a roll in how it reports real time usage? If so, suggestions for getting more accurate metrics.

Am I misunderstanding what demand means here. I thought demand was what the vm is "asking for" usage is what the guest can get and capacity is what is allocated.

Really liking the tool, but it takes a bit to learn.

0 Kudos
1 Solution

Accepted Solutions
sxnxr
Commander
Commander
Jump to solution

Memory demand will hardly ever be the same as what you see from in guest. This is simply because the memory demand is how much memory the VM is demanding from the host. ESXi uses memory saving technologies so you can have more allocated memory to your VMs that the physical memory in your hosts. For example memory page sharing, If two VMs have memory pages that are the same then one copy is deleted and both VMs share the one page.

Also because it is memory demand it will only show "Hot" memory. If i use a SQL server with 16 gb ram for this example the demand on the host could be 5GB but looking in guest it could be the full 16GB used. This is because SQL will cache its store procedures in memory after there first run so it has faster access to them if they need to run again. Because these are cached and not used or not "Hot" they will not show up as memory demand on the ESXi host until the store procedure is called. This is one of the reasons having your vmware tools installed is good.

This has been one of the biggest challenges from a vmware engineers point of view because we can tell people relatively easily  that the extra 16 vcpus they need not only is not true but we can cut the vcpus in half because they dont use them but when it comes to memory we cant easily produce the memory stats because the first thing they will send is a screenshot from within the guest.

The two best ways to get the in memory guest stats

  1. Install the end point operations agent into all your VMs. This will give you hundreds of stats from in guest including memory. This is easy to install and get the data but is the easiest way to overload your vrops instance if you dont understand the performance impact and also introduces challenges when it comes to certs and cluster expansion.
  2. This is hands down one of the best things the vrops team have introduced since moving from 5.x to 6.x. In 6.3 vrops introduced built in in guest memory stats out of the box. They are limited but i am sure it will be expanded moving forward but you can get the in guest used memory (They call it Needed Memory) and paging stats. Now there are some pre reqs first you need to be ESXi 6.0 u1 or higher and have that version of vm tools installed in the vms before you can get the inguest stats. Also because this comes from the vcenter adapter it is related to the same object as the rest of the data so creating dashboards and reports are a lot easier compared to the end point agent which is a separate object.

full list of in guest stats

memory.png

View solution in original post

0 Kudos
2 Replies
sxnxr
Commander
Commander
Jump to solution

Memory demand will hardly ever be the same as what you see from in guest. This is simply because the memory demand is how much memory the VM is demanding from the host. ESXi uses memory saving technologies so you can have more allocated memory to your VMs that the physical memory in your hosts. For example memory page sharing, If two VMs have memory pages that are the same then one copy is deleted and both VMs share the one page.

Also because it is memory demand it will only show "Hot" memory. If i use a SQL server with 16 gb ram for this example the demand on the host could be 5GB but looking in guest it could be the full 16GB used. This is because SQL will cache its store procedures in memory after there first run so it has faster access to them if they need to run again. Because these are cached and not used or not "Hot" they will not show up as memory demand on the ESXi host until the store procedure is called. This is one of the reasons having your vmware tools installed is good.

This has been one of the biggest challenges from a vmware engineers point of view because we can tell people relatively easily  that the extra 16 vcpus they need not only is not true but we can cut the vcpus in half because they dont use them but when it comes to memory we cant easily produce the memory stats because the first thing they will send is a screenshot from within the guest.

The two best ways to get the in memory guest stats

  1. Install the end point operations agent into all your VMs. This will give you hundreds of stats from in guest including memory. This is easy to install and get the data but is the easiest way to overload your vrops instance if you dont understand the performance impact and also introduces challenges when it comes to certs and cluster expansion.
  2. This is hands down one of the best things the vrops team have introduced since moving from 5.x to 6.x. In 6.3 vrops introduced built in in guest memory stats out of the box. They are limited but i am sure it will be expanded moving forward but you can get the in guest used memory (They call it Needed Memory) and paging stats. Now there are some pre reqs first you need to be ESXi 6.0 u1 or higher and have that version of vm tools installed in the vms before you can get the inguest stats. Also because this comes from the vcenter adapter it is related to the same object as the rest of the data so creating dashboards and reports are a lot easier compared to the end point agent which is a separate object.

full list of in guest stats

memory.png

0 Kudos
Sparrohawk
Contributor
Contributor
Jump to solution

SXNXR,

Thanks for the quick response and informational one as well. I'm going to look into option 2 as note below.

This frustrates me. Vrops is a powerful tool, but in essence then, when memory is involved it's not fully helpful in determining performance issues on the VM?

How then is the best method for determining performance issues with memory,  using the badges and other tools in Vrops? Using guest tools directly- MS Performance Counters.../ TOP etc..

Scenario: LOB reports their Citrix VM is under performing, after basic triage of application, latency due to connections, OS, etc... we look to VRops and everything looks groovy and green.

Where best are we to get genuine reportable guest  trend  metrics to present to management stake holders, because at the end of the day..they don't GAS about the VMware metrics, they care about performance reports.

S-hawk

0 Kudos