Trustworthy Systems

Application level ballooning for efficient server consolidation


Tudor-Ioan Salomie, Gustavo Alonso, Timothy Roscoe and Kevin Elphinstone

ETH Zurich




Systems software like databases and language runtimes typically manage memory themselves to exploit application knowledge unavailable to the OS. Traditionally deployed on dedicated machines, they are designed to be statically configured with memory sufficient for peak load. In virtualization scenarios (cloud computing, server consolidation), however, static peak provisioning of RAM to applications dramatically reduces the efficiency and cost-saving benefits of virtualization. Unfortunately, existing memory “ballooning” techniques used to dynamically reallocate physical memory between VMs badly impact the performance of applications which manage their own memory. We address this problem by extending ballooning to applications (here, a database engine and Java runtime) so that memory can be efficiently and effectively moved between virtualized instances as the demands of each change over time. The results are significantly lower memory requirements to provide the same performance guarantees to a collocated set of VM running such applications, with minimal overhead or intrusive changes to application code.

BibTeX Entry

    address          = {Prague, Czech Republic},
    author           = {Salomie, Tudor-Ioan and Alonso, Gustavo and Roscoe, Timothy and Elphinstone, Kevin},
    booktitle        = {EuroSys Conference},
    month            = apr,
    pages            = {337--350},
    paperurl         = {},
    title            = {Application Level Ballooning for Efficient Server Consolidation},
    year             = {2013}