Method and apparatus for dynamic memory resource management
First Claim
Patent Images
1. A method for dynamic memory resource management, comprising:
- collecting memory activity information for a memory allocation of a virtual machine, the memory allocation having a predetermined size;
determining a dynamic priority for the virtual machine based on a specified priority for the virtual machine; and
dynamically changing the size of the memory allocation of the virtual machine, as needed, based on the collected memory activity information for the memory allocation of the virtual machine and the determined dynamic priority for the virtual machine, wherein dynamically changing the size of the memory allocation of the virtual machine further comprises;
analyzing the collected memory activity information for a memory allocation of the virtual machine, to determine memory usage of the virtual machine; and
performing one or more of the following;
increasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is equal to or higher than the allocated memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is substantially lower than the allocated memory of the virtual machine.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and an apparatus for dynamic memory resource management are provided. Memory activity information is collected for a virtual machine. Additional memory shares are dynamically allocated to the virtual machine, as needed, based on the memory activity information for the virtual machine and based on a specified priority of the virtual machine in order to properly adjust the total physical memory used by the virtual machine.
83 Citations
18 Claims
-
1. A method for dynamic memory resource management, comprising:
-
collecting memory activity information for a memory allocation of a virtual machine, the memory allocation having a predetermined size; determining a dynamic priority for the virtual machine based on a specified priority for the virtual machine; and dynamically changing the size of the memory allocation of the virtual machine, as needed, based on the collected memory activity information for the memory allocation of the virtual machine and the determined dynamic priority for the virtual machine, wherein dynamically changing the size of the memory allocation of the virtual machine further comprises; analyzing the collected memory activity information for a memory allocation of the virtual machine, to determine memory usage of the virtual machine; and performing one or more of the following; increasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is equal to or higher than the allocated memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is substantially lower than the allocated memory of the virtual machine.
-
-
2. A computer system comprising:
-
a processor; and a program storage device readable by the computer system, tangibly embodying a program of instructions executable by the processor to perform operations comprising; collecting memory activity information for a memory allocation of a virtual machine, the memory allocation having a predetermined size; determining a dynamic priority for the virtual machine based on a specified priority for the virtual machine; and dynamically changing the size of the memory allocation of the virtual machine, as needed, based on the collected memory activity information for the memory allocation of the virtual machine and the determined dynamic priority for the virtual machine, wherein dynamically changing the size of the memory allocation of the virtual machine further comprises; analyzing the collected memory activity information for a memory allocation of the virtual machine, to determine memory usage of the virtual machine; and performing one or more of the following; increasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is equal to or higher than the allocated memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is substantially lower than the allocated memory of the virtual machine.
-
-
3. A program storage device readable by a machine, tangibly embodying a program of instructions operable when executed to:
-
collect memory activity information for a memory allocation of a virtual machine, the memory allocation having a predetermined size; determine a dynamic priority for the virtual machine based on a specified priority for the virtual machine; and dynamically change the size of the memory allocation of the virtual machine, as needed, based on the collected memory activity information for the memory allocation of the virtual machine and the determined dynamic priority for the virtual machine, wherein dynamically changing the size of the memory allocation of the virtual machine further comprises; analyzing the collected memory activity information for a memory allocation of the virtual machine, to determine memory usage of the virtual machine; and performing one or more of the following; increasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is equal to or higher than the allocated memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is substantially lower than the allocated memory of the virtual machine.
-
-
4. An apparatus for dynamic memory resource management, comprising:
-
means for collecting memory activity information for a memory allocation of a virtual machine, the memory allocation having a predetermined size; means for determining a dynamic priority for the virtual machine based on a specified priority for the virtual machine; and means for dynamically changing the size of the memory allocation of the virtual machine, as needed, based on the memory activity information for the memory allocation of the virtual machine and based on a specified priority of the virtual machine, wherein dynamically changing the size of the memory allocation of the virtual machine further comprises; analyzing the collected memory activity information for a memory allocation of the virtual machine, to determine memory usage of the virtual machine; and performing one or more of the following; increasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is equal to or higher than the allocated memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine, if it is determined that the memory usage of the virtual machine is substantially lower than the allocated memory of the virtual machine.
-
-
5. A method for dynamic memory resource management, comprising:
-
using a computer system, collecting memory related information for a memory allocation for one or more virtual machines, the memory allocation having a predetermined size; using the computer system, collecting user defined criteria for each of the one or more virtual machines; using the computer system, determining a memory state for each of the one or more virtual machines; using the computer system, computing a dynamic priority for each of the one or more virtual machines based on the user defined criteria; and using the computer system, determining, based on the memory related information for the memory allocation, the memory state, and the computed dynamic priority for each of the one or more virtual machines, whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines, wherein determining whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines further comprises; increasing the size of the memory allocation of the virtual machine if it is determined that actual memory usage of the virtual machine is higher than an allocated physical memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine is decreased if it is determined that actual memory usage of the virtual machine is lower than an allocated physical memory of the virtual machine. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer system comprising:
-
a processor; and a program storage device readable by the computer system, tangibly embodying a program of instructions executable by the processor to perform operations comprising; collecting memory related information for a memory allocation for one or more virtual machines, the memory allocation having a predetermined size; collecting user defined criteria for each of the one or more virtual machines; determining a memory state for each of the one or more virtual machines; computing a dynamic priority for each of the one or more virtual machines based on the user defined criteria; and determining, based on the memory related information for the memory allocation, the memory state, and the computed dynamic priority for each of the one or more virtual machines, whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines, wherein determining whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines further comprises; increasing the size of the memory allocation of the virtual machine if it is determined that actual memory usage of the virtual machine is higher than an allocated physical memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine is decreased if it is determined that actual memory usage of the virtual machine is lower than an allocated physical memory of the virtual machine.
-
-
17. A program storage device readable by a machine, tangibly embodying a program of instructions operable when executed to:
-
collect memory related information for a memory allocation for one or more virtual machines, the memory allocation having a predetermined size; collect user defined criteria for each of the one or more virtual machines; determine a memory state for each of the one or more virtual machines; compute a dynamic priority for each of the one or more virtual machines based on the user defined criteria; and determine, based on the memory related information for the memory allocation, the memory state, and the computed dynamic priority for each of the one or more virtual machines, whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines, wherein determining whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines further comprises; increasing the size of the memory allocation of the virtual machine if it is determined that actual memory usage of the virtual machine is higher than an allocated physical memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine is decreased if it is determined that actual memory usage of the virtual machine is lower than an allocated physical memory of the virtual machine.
-
-
18. An apparatus for dynamic memory resource management, comprising:
-
means for collecting memory related information for a memory allocation for one or more virtual machines, the memory allocation having a predetermined size; means for collecting user defined criteria for each of the one or more virtual machines; means for determining a memory state for each of the one or more virtual machines; means for computing a dynamic priority for each of the one or more virtual machines based on the user defined criteria; and means for determining, based on the memory related information for the memory allocation, the memory state, and the computed dynamic priority for each of the one or more virtual machines, whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines, wherein determining whether to increase, decrease, or maintain the allocated memory of each of the one or more virtual machines further comprises; increasing the size of the memory allocation of the virtual machine if it is determined that actual memory usage of the virtual machine is higher than an allocated physical memory of the virtual machine;
ordecreasing the size of the memory allocation of the virtual machine is decreased if it is determined that actual memory usage of the virtual machine is lower than an allocated physical memory of the virtual machine.
-
Specification