This discussion is not related to the original thread title anymore, but related to a special use case in Linux. I hope it is somehow understandable, but it goes deep into memory architecture in virtualized systems:
First, the memory usage that is displayed in PVE can but does not have to be related to the actual space usage inside of the VM. It cannot and will not be the same (depending of the guest OS). The VM uses and blocks the memory on start, so all memory is already reserved for the VM. If you do not have enough space left, the VM will not start and will yield ' failed to initialize KVM: Cannot allocate memory'. So, the space is already fully used from the point of the hypervisor (PVE). If the VM allocate or uses its space is depended of the guest os. That said, each non-Windows operating I've ever seen uses the term "free memory" only for memory that is really free. Free memory is the worst that can happen to your OS, because you don't use and it is therefore useless. Every OS caches every file it has read until the cache is full. If a program needs space, the cache is flushed according to their cache eviction strategy, mostly last recently used (LRU) or some advanced stuff like in ZFS, but it will be evicted so that the requested memory allocation can be done.
The memory usage as seen from the hypervisor is very similar to the storage usage: If you delete a file on your storage, it is marked as deleted but the block itself is not freed so the hypervisor does see the same storage, nonetheless you just deleted a 1 GB file. The same is true for the memory itself. Just because you flushed your cache in your guest OS and the memory is technically freed, the hypervisor still sees the allocated memory pages with its former content. Only if there is some communication or freeing inside of your guest (also depended of the guest), the memory will also be seen as free from the outside. For Windows guests with activated virtio drivers and ballooning stuff, the actual free memory value is reported and displayed for the guest, just for convenience for the viewer besides that the VM actually uses much more hypervisor memory.
Imagine what could be done with actual 100% awareness of virtualization of guest OSes. Dynamic memory (ballooning), cpu hotplug, etc. everything on demand....