qemu guest agent ram usage is not what you think. It doesn’t report how much RAM your guest is using. It reports memory blocks. Big difference.

What the guest agent actually returns
Inside the guest, the QEMU Guest Agent exposes a few commands. Run guest-info and it lists them. The memory ones are guest-get-memory-block-info and guest-get-memory-blocks. That’s it. No usage percentage, no free memory, nothing like free -h.
Here’s the output from guest-get-memory-block-info:
{
"error": {
"class": "CommandNotFound",
"desc": "The command guest-get-memory-block-info has not been found"
}
}
Wait, that’s not right. That’s what you get if the guest agent is old or the command isn’t compiled in. On a normal Proxmox VM with qemu-guest-agent installed, it returns something like:
{
"return": {
"size": 1073741824,
"max-hotplug-memory": 0,
"hotplugged-memory": 0
}
}
That’s the block size, not usage. One gigabyte blocks. The other command, guest-get-memory-blocks, returns a list of blocks and whether they’re online or offline. Still no usage.
So where does Proxmox get its RAM numbers?
Not from the guest agent. Proxmox gets guest RAM usage from the balloon driver. If you have ballooning enabled, the host can see how much the guest is actually using. The guest agent is just there for filesystem freeze, network info, and a few other things. RAM reporting isn’t its job.
Check your VM config. If you don’t have balloon: 1024 in there, Proxmox shows the max RAM, not the used RAM. Add it and the numbers get real.

The command that actually tells you usage
On the host, use qm guest cmd <vmid> fstrim or qm monitor. In the monitor, info balloon gives you the current balloon size. That’s the number you want. The guest agent won’t give it to you.
If you want to see what the guest itself reports, run free -h inside the VM. But that’s not the guest agent. That’s just Linux.
My take
This is a common mix-up. People install qemu-guest-agent and expect Proxmox to suddenly show accurate RAM usage. It doesn’t work that way. The agent is for other stuff. If you need real memory stats, enable ballooning and use the monitor. Or just look at the guest itself.
And if you’re messing with RAM on the host, check your ZFS ARC size. That’s a whole different RAM hog. Lower ZFS ARC Max Size Proxmox: The modprobe.d Edit That Sticks covers it.