Detection and remediation of memory leaks
First Claim
1. A system for detecting and remediating memory leaks associated with an application environment, the system comprising:
- a memory configured to store data and one or more processor-executable routines; and
a processor configured to communicate with the memory and to execute the routines stored therein, wherein the routines, when executed, cause the system to;
monitor allocations of memory from a managed memory space to respective operations to produce memory allocation data, wherein the managed memory space is provisioned to the application environment;
monitor deallocations of memory to at least some of the respective operations to produce memory deallocation data;
determine that samples of memory allocation data and memory deallocation data observed over a time interval indicate a trend in memory leakage or a trend change in memory leakage;
determine a projection of future memory usage by operations associated with the trend using binned sets of the memory allocation data and the memory deallocation data;
determine a predicted time at which memory usage by the operations associated with the trend is expected to exceed a threshold using the projection of future memory usage; and
perform a remediation action before the predicted time, wherein the remediation action comprises;
terminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a fast memory leak, wherein the executing operation is the oldest executing operation or the executing operation is using the most amount of memory in the application environment;
orterminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a slow memory leak, wherein the executing operation executes throughout the trend.
1 Assignment
0 Petitions
Accused Products
Abstract
Detecting and remediating memory leaks associated with an application environment can include monitoring allocations of memory from a managed memory space to respective operations to produce memory allocation data and monitoring deallocations of memory to at least some of the respective operations to produce memory deallocation data. A trend in memory leakage can be determined based on samples of the memory allocation or deallocation data. A projection of future memory usage by operations associated with the trend can be determined using binned sets of the memory allocation data and the memory deallocation data. A predicted time at which memory usage by the operations associated with the trend is expected to exceed a threshold can be determined using the projection of future memory usage. A remediation action can be performed before the predicted time to prevent a memory constraint from occurring with respect to the application environment. The application environment can be configured to automatically allocate unallocated portions of memory to execute operations and periodically deallocate unused allocated memory.
33 Citations
21 Claims
-
1. A system for detecting and remediating memory leaks associated with an application environment, the system comprising:
-
a memory configured to store data and one or more processor-executable routines; and a processor configured to communicate with the memory and to execute the routines stored therein, wherein the routines, when executed, cause the system to; monitor allocations of memory from a managed memory space to respective operations to produce memory allocation data, wherein the managed memory space is provisioned to the application environment; monitor deallocations of memory to at least some of the respective operations to produce memory deallocation data; determine that samples of memory allocation data and memory deallocation data observed over a time interval indicate a trend in memory leakage or a trend change in memory leakage; determine a projection of future memory usage by operations associated with the trend using binned sets of the memory allocation data and the memory deallocation data; determine a predicted time at which memory usage by the operations associated with the trend is expected to exceed a threshold using the projection of future memory usage; and perform a remediation action before the predicted time, wherein the remediation action comprises; terminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a fast memory leak, wherein the executing operation is the oldest executing operation or the executing operation is using the most amount of memory in the application environment;
orterminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a slow memory leak, wherein the executing operation executes throughout the trend. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for detecting and remediating memory leaks associated with an application environment, the method comprising:
-
monitoring allocations of memory from a managed memory space to respective operations to produce memory allocation data, wherein the managed memory space is provisioned to the application environment; monitoring deallocations of memory to at least some of the respective operations to produce memory deallocation data;
determining that samples of memory allocation data and memory deallocation data observed over a time interval indicate a trend in memory leakage or a trend change in memory leakage;determining a projection of future memory usage by operations associated with the trend using binned sets of the memory allocation data and the memory deallocation data; determining a predicted time at which memory usage by the operations associated with the trend is expected to exceed a threshold using the projection of future memory usage; and performing a remediation action before the predicted time, wherein the remediation action comprises; terminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a fast memory leak, wherein the executing operation is the oldest executing operation or the executing operation is using the most amount of memory in the application environment;
orterminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a slow memory leak, wherein the executing operation executes throughout the trend. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising:
-
an application environment configured to automatically allocate unallocated memory from a managed memory space to operations executed in the application environment and periodically deallocate unused allocated memory; and a memory monitor module configured to; determine that sampled observation points of memory allocation data and memory deallocation data observed over a time interval indicate a trend in memory leakage or a trend change in memory leakage; determine a predicted time at which a total memory usage of the application environment is expected to exceed a threshold using a projection of future memory usage by operations associated with the trend, the projection of future memory usage determined using binned sets of the sampled observation points; and perform a remediation action before the predicted time to prevent a memory constraint from occurring within application environment, wherein the remediation action comprises; terminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a fast memory leak, wherein the executing operation is the oldest executing operation or the executing operation is using the most amount of memory in the application environment;
orterminating an executing operation within the application environment in response to a determination that the projection of future memory usage comprises a slow memory leak, wherein the executing operation executes throughout the trend. - View Dependent Claims (18, 19, 20, 21)
-
Specification