发明名称 COOPERATIVE MEMORY RESOURCE MANAGEMENT VIA APPLICATION-LEVEL BALLOON
摘要 Methods, systems, and computer programs for managing memory in a host where virtual machines (VMs) execute are presented. In one example, a method includes an operation for determining which amount of heap memory has been reserved in a Java virtual machine (JVM) that is in excess of the heap memory needed by the JVM. If there is excess heap memory, a Java balloon agent reserves a Java object in the heap memory. Typically, the Java object will be the size of one or more memory pages in the host. Further, the Java balloon agent loads the Java object with a certain value, for example, by zeroing out the page of memory. When a virtual machine monitor (VMM) in the host detects that a machine physical memory page associated with the Java object has the first value, then the VMM frees the machine physical memory page to make the memory available to other VMs or to other processes executing in the host.
申请公布号 US2015113202(A1) 申请公布日期 2015.04.23
申请号 US201414581840 申请日期 2014.12.23
申请人 VMware, Inc. 发明人 MCDOUGALL Richard;HUANG Wei;CORRIE Benjamin J.
分类号 G06F9/455;G06F12/02;G06F9/50;G06F12/10 主分类号 G06F9/455
代理机构 代理人
主权项 1. A non-transitory computer readable medium comprising instructions, which when executed in a computer system, causes the computer system to carry out a method for managing memory in a host having virtualization software that supports execution of a virtual machine (VM) having a guest operating system that manages allocation of guest physical memory, a balloon driver installed in the guest operating system, and a Java Virtual Machine (JVM) executing as an application on top of the guest operating system and having a heap memory allocated from the guest physical memory, the method comprising: at the balloon driver, receiving a request from the virtualization software for memory pages and communicating a target number of memory pages to a Java balloon agent; allocating, by the Java balloon agent, a Java balloon object in the heap memory of the JVM, the Java balloon agent executing as a Java thread in the JVM, the Java balloon object being allocated a number of memory pages equal to the target number of memory pages; obtaining, by the Java balloon agent, a virtual address of the Java object; identifying a physical page number corresponding to the virtual address; sending the physical page number to the virtualization software; and reclaiming a machine physical memory page associated with the physical page number by the virtualization software.
地址 Palo Alto CA US