Hypervisors like KVM have little choice but to allocate all RAM a VM was configured to use initially, because most operating systems are designed to be in charge of the entire hardware. That's why containers are so neat, as they share the OS with the host and the OS can lie and cheat to the container while it knows full well what the processes inside the container actually see and use.
Ballon drivers were invented when hypervisor vendors got envious about the resource efficiency containers could achieve and they invented a driver that simply grabs RAM from inside a VM and and then reports it as unused by the VM's OS to the hypervisor.
It got that name, because unless software inside the VM actually starts using the RAM allocated to the VM, it will fill the entire VM's RAM space with RAM allocations it will "smuggle back" to the hypervisor to give to other VMs or containers in actual need for RAM.
VMware might have done it first, but Xen and KVM certainly copied that technique rather quickly as well as the pass-through device drivers for busy devices like NICs and storage controllers.
So yes, follow Dunuin's advice and the manuals because it's what makes VM overhead palatable compared to containers.