Help understanding best practice of monitoring Linux guest memory on proxmox

surfrock66

Well-Known Member
Feb 10, 2020
51
10
48
41
I'm using a completely up to date proxmox install and monitoring my Ubuntu VM's using an up to date zabbix. I have noticed a large discrepancy in the memory usage reported in proxmox vs. the memory usage reported by the vm. This makes sense; from the hypervisor side, this is a ballooning device, so if I needed 4GB at some narrow point (like during backups), proxmox is gonna show 4GB of allocation and only request a release from the VM when the host runs out of memory. The issue is, high memory usage is an alarm condition in the proxmox template. I am getting a constant list of high memory problems when the real use of the server is ultimately below 20%, and the problems don't go away because proxmox doesn't request to release the memory until the hypervisor needs it.

What would best practice be here? There's a case for just disabling the trigger on the proxmox template, but at the same time, I am not a huge fan in general of disabling triggers. Is there a way to instruct proxmox to be more aggressive in requesting to reclaim unused memory, or is that just a bad idea in general?

1687970778809.png

1687970836707.png
 
What would best practice be here? There's a case for just disabling the trigger on the proxmox template, but at the same time, I am not a huge fan in general of disabling triggers. Is there a way to instruct proxmox to be more aggressive in requesting to reclaim unused memory, or is that just a bad idea in general?
By default neither ballooning nor KSM will do anything as long as the hosts RAM is below 80% usage.
I monitor my VMs from within the VM with the zabbix agent, so it is showing the VMs available and not the free memory, so I can ignore what PVE is reporting as RAM usage for those VMs.
 
Yea I'm monitoring both, but the question really is should I just disable the trigger prototype in the template. I think that's the move. Thanks!
 
I personally just disabled all monitoring of VMs by making use of the macros ("{$PVE_FORCE_ID}" but I'm not using the official template). I don't need to log and monitor the same VMs twice and I prefer the reports from the guestOS side.
 
Last edited: