I have a problem with the Service “Memory levels for Windows”.
We use dynamic ram given by the HyperV-Host. So, for example maximum could be 16 GB, minimum is 2 GB. The virtual server ran up to now with maximum 10 GB, the other 6 GB were not yet needed.
The “memory levels”-value in that cmk-service is “warning at 95%” and “critical at 98%”.
The problem is: For cmk the maximum is 10 GB. cmk doesn’t know about the other 6 GB. So if the memory usage of that virtual machine is 9,5 GB, it warns me with warning-status, because it is 95% of 10 GB.
I hope that I have explained it reasonably well. I also hope that this problem is not a new one, because dynamic RAM is not a special case of the Windows Server world.
First, I don’t use Hyper-V. However, if I understand this correctly, what would be required is a cooperative check between monitored guest and Hyper-V so that it could understand the “dynamic memory” that Hyper-V might assign to the guest should it need it.
Not a solution, just talking out loud about what might be required to implement such a check.
The question is something else here. When does the allocated memory increase?
You have the same phenomenon with auto increase table spaces and so on.
What i would do is define a host tag for hosts with dynamic ram and bind a special rule to this host tag what is considering the right threshold for the increase of allocated memory.
For HyperV i made some “special agent” and some checks where one is also showing if dynamic ram and how much is defined.