主权项 |
1. A method of managing memory of a database management system running on a guest operating system in a virtual machine instantiated on a host computer running a plurality of virtual machines, wherein the database management system partitions an allocated memory address space into a plurality of memory pools of the database management system and an initial size for each of the memory pools that has been determined based on an initial allocation of physical memory to the virtual machine by the host system, the method comprising:
determining, by the database management system from within the virtual machine, a balloon target of an amount of physical memory that a hypervisor running on the host computer is currently requesting for reallocation to another virtual machine running on the host computer, the balloon target determined by the hypervisor based on a first memory management policy regarding the plurality of virtual machines; in response to determining the balloon target, performing:
determining, by the database management system, a current amount of physical memory allocated by the host computer to the virtual machine;determining, by the database management system, for each memory pool, a current memory allocation measurement based on a current size of the memory pool and the determined current amount of physical memory;requesting, by the database management system, a release of a portion of memory from a memory pool of the database management system to the guest operating system in the virtual machine to satisfy the balloon target, based on a second memory management policy that manages release of memory of the plurality of memory pools of the database management system if the determined current memory allocation measurement for the memory pool is greater than the target memory allocation measurement for the memory pool, wherein the target memory allocation measurement is based on the initial size of the memory pool and the initial allocation of physical memory to the virtual machine, and wherein the guest operating system manages the released portion of memory in coordination with the hypervisor of the host system based on the first memory management policy; andrequesting, by the database management system, an additional allocation of a portion of memory for a memory pool of the database management system from the guest operating system in the virtual machine to satisfy the balloon target based on the second memory management policy if the determined current memory allocation measurement for the memory pool is less than the target memory allocation measurement for the memory pool. |