OPTIMIZING MEMORY MANAGEMENT OF AN APPLICATION RUNNING ON A VIRTUAL MACHINE
First Claim
1. A method for optimizing memory usage of an application running on a virtual machine, said virtual machine providing a monitoring application programming interface (API) to communicate with said virtual machine and said virtual machine including a garbage collector, the method comprising:
- self-allocating a virtual machine memory block;
periodically collecting and storing virtual machine memory usage statistics;
periodically computing an average virtual machine memory usage from the memory usage statistics in a time window;
entering into a recovery mode by releasing the virtual machine memory block and forcing the running application to reduce its processing activity in response to the computed virtual machine memory usage average becoming higher than a first threshold; and
entering, by a processor, into a normal mode by re-self-allocating the virtual machine memory block and forcing the running application to resume its normal processing activity in response to the computed memory usage average becoming lower than a second threshold.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system and computer program product for optimizing memory usage of an application running on a virtual machine. A virtual machine memory block is pre-allocated and the average memory usage of the virtual machine is periodically computed using statistics collected from the virtual machine through an API. If the memory usage average becomes higher than a maximum threshold, then a recovery mode is entered by releasing the virtual machine memory block and forcing the running application to reduce its processing activity; optionally, a garbage collector cycle can be forced. If the computed memory usage average becomes lower than a minimum threshold value, which is lower than the maximum threshold value, then a normal mode is entered by re-allocating the virtual machine memory block and forcing the running application to resumes its normal processing activity. Optionally, when the virtual machine is idle, a deep garbage collection is forced.
-
Citations
24 Claims
-
1. A method for optimizing memory usage of an application running on a virtual machine, said virtual machine providing a monitoring application programming interface (API) to communicate with said virtual machine and said virtual machine including a garbage collector, the method comprising:
-
self-allocating a virtual machine memory block; periodically collecting and storing virtual machine memory usage statistics; periodically computing an average virtual machine memory usage from the memory usage statistics in a time window; entering into a recovery mode by releasing the virtual machine memory block and forcing the running application to reduce its processing activity in response to the computed virtual machine memory usage average becoming higher than a first threshold; and entering, by a processor, into a normal mode by re-self-allocating the virtual machine memory block and forcing the running application to resume its normal processing activity in response to the computed memory usage average becoming lower than a second threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product embodied in a computer readable storage medium for optimizing memory usage of an application running on a virtual machine, said virtual machine providing a monitoring application programming interface (API) to communicate with said virtual machine and said virtual machine including a garbage collector, the computer program product comprising the programming instructions for:
-
self-allocating a virtual machine memory block; periodically collecting and storing virtual machine memory usage statistics; periodically computing an average virtual machine memory usage from the memory usage statistics in a time window; entering into a recovery mode by releasing the virtual machine memory block and forcing the running application to reduce its processing activity in response to the computed virtual machine memory usage average becoming higher than a first threshold; and entering into a normal mode by re-self-allocating the virtual machine memory block and forcing the running application to resume its normal processing activity in response to the computed memory usage average becoming lower than a second threshold. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system, comprising:
-
a memory unit for storing a computer program for optimizing memory usage of an application running on a virtual machine, said virtual machine providing a monitoring application programming interface (API) to communicate with said virtual machine and said virtual machine including a garbage collector; and a processor coupled to the memory unit, wherein the processor, responsive to the computer program, comprises; circuitry for self-allocating a virtual machine memory block; circuitry for periodically collecting and storing virtual machine memory usage statistics; circuitry for periodically computing an average virtual machine memory usage from the memory usage statistics in a time window; circuitry for entering into a recovery mode by releasing the virtual machine memory block and forcing the running application to reduce its processing activity in response to the computed virtual machine memory usage average becoming higher than a first threshold; and circuitry for entering into a normal mode by re-self-allocating the virtual machine memory block and forcing the running application to resume its normal processing activity in response to the computed memory usage average becoming lower than a second threshold. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification