Is hypervisor memory ballooning widespread in major cloud providers these days? How does it compare to bare-metal kernel memory allocation?
The Google Borg paper says they use non production batch jobs to eat the spare, so you can kill them if necessary. Cloud providers could offer this as a service in theory, although they are not really architected that way.