On an overallocated ESX host, guest is allocated 80GB RAM. The balloon driver kicked in at some point, and is consuming quite a bit of memory.

# vmware-toolbox-cmd stat balloon
52381 MB

Now guest-os thinks 77G of 80G is in use.

# free -m
             total       used       free     shared    buffers     cached
Mem:         80586      77570       3015       1220        101       1800

However, why do I not see this when I run top (sorted by memory)? My top process is only using 2GB of RAM. Where does the guest OS think the ~50GB of memory vanished?

1 Answer 1


Ballooning uses a kernel module (installed as part of VMware Tools) to allocate the memory in the guest. So, it is the Linux kernel that consumes the memory, but not one of the regular processes that top would show.

  • Thank you that makes sense. So, as a naive guest-os user, is there a way for me to detect ballooning? (not using vmware-toolbox commands that is)
    – RaGe
    Jun 1, 2016 at 13:25
  • Are any of these comments appropriate? unix.stackexchange.com/a/97265
    – RaGe
    Jun 1, 2016 at 13:40
  • 1
    Sorry, I don't know. I looked at the slabtop tool and the information in /proc/meminfo, but was not really able to "see" the memory consumption of ballooning in there.
    – VFrontDe
    Jun 2, 2016 at 14:13
  • Yeah, me neither. Even with github.com/torvalds/linux/blob/master/tools/vm/page-types.c, I was disappointed just to see an ever increasing number of pages with zero flags. Zero, what could that mean, except leaked? Feb 10, 2021 at 1:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .