Memory leak detection using transient workload detection and clustering
First Claim
Patent Images
1. A method, comprising:
- performing, by one or more computing devices;
classifying, based at least in part on a first statistical analysis, one or more performance metric collections corresponding to an observation period of an executing process into a first set of metrics representing one or more sub-periods during which a workload of the executing process exhibited a change trend, and a second set of metrics representing one or more sub-periods during which the workload did not exhibit a change trend;
grouping, based at least in part on a second statistical analysis, the second set of metrics into one or more metric clusters, wherein each metric cluster of the one or more metric clusters represents a respective statistically stable workload level;
detecting, based at least in part on a third statistical analysis of a particular performance metric corresponding to the one or more metric clusters, whether an upward trend in memory usage at the executing process during the observation time period is indicated; and
in response to detecting that an upward trend in memory usage at the executing process during the observation time period is indicated, providing a notification of a potential memory leak at the executing process, wherein said notification of the potential memory leak comprises an indication of a confidence level associated with the upward trend in memory usage.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus for memory leak detection using clustering and trend detection are disclosed. Performance metrics are collected from an executing process. A first statistical analysis of at least one metric is used to identify trending and non-trending workload periods for the process. A second statistical analysis on the metrics for the non-trending workload periods is used to determine clusters of metrics corresponding to stable workload levels. A third statistical analysis is performed on each of the clusters to determine whether an upward trend in memory usage occurred. If an upward trend in memory usage is detected, a notification of a potential memory leak is generated.
-
Citations
19 Claims
-
1. A method, comprising:
performing, by one or more computing devices; classifying, based at least in part on a first statistical analysis, one or more performance metric collections corresponding to an observation period of an executing process into a first set of metrics representing one or more sub-periods during which a workload of the executing process exhibited a change trend, and a second set of metrics representing one or more sub-periods during which the workload did not exhibit a change trend; grouping, based at least in part on a second statistical analysis, the second set of metrics into one or more metric clusters, wherein each metric cluster of the one or more metric clusters represents a respective statistically stable workload level; detecting, based at least in part on a third statistical analysis of a particular performance metric corresponding to the one or more metric clusters, whether an upward trend in memory usage at the executing process during the observation time period is indicated; and in response to detecting that an upward trend in memory usage at the executing process during the observation time period is indicated, providing a notification of a potential memory leak at the executing process, wherein said notification of the potential memory leak comprises an indication of a confidence level associated with the upward trend in memory usage. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
8. A system, comprising:
one or more hardware computing devices configured to; classify, based at least in part on a first statistical analysis, one or more performance metric collections corresponding to an observation period of an executing process into a first set of metrics representing one or more sub-periods during which a workload of the executing process exhibited a change trend, and a second set of metrics representing one or more sub-periods during which the workload did not exhibit a change trend; group, based at least in part on a second statistical analysis, the second set of metrics into one or more metric clusters, wherein each metric cluster of the one or more metric clusters represents a respective statistically stable workload level, and wherein the second statistical analysis comprises a k-means clustering analysis; determine, based at least in part on a third statistical analysis of a particular performance metric corresponding to the one or more metric clusters, whether an upward trend in memory usage at the executing process during the observation time period is indicated; and in response to a determination that an upward trend in memory usage is indicated, provide a notification of a potential memory leak at the executing process. - View Dependent Claims (9, 10, 11, 12)
-
13. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
classify, based at least in part on a first statistical analysis, one or more performance metric collections corresponding to an observation period of an executing process into a first set of metrics representing one or more sub-periods during which a workload of the executing process exhibited a change trend, and a second set of metrics representing one or more sub-periods during which the workload did not exhibit a change trend; determine, based at least in part on a second statistical analysis of the second set of metrics, one or more metric clusters, wherein each metric cluster of the one or more metric clusters represents a respective statistically stable workload level; detect, based at least in part on a third statistical analysis of a particular performance metric corresponding to the one or more metric clusters, whether an upward trend in memory usage at the executing process during the observation time period is indicated, wherein the particular performance metric comprises an indication of an amount of free heap memory measured after a garbage collection cycle, and wherein the third statistical analysis comprises a determination of whether, for a particular metric cluster, the free heap memory decreases over a time period corresponding to the metric cluster; and in response to a detection that an upward trend in memory usage at the executing process during the observation time period is indicated, provide a notification of a potential memory leak at the executing process. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A method, comprising:
performing, by one or more computing devices; collecting a set of metrics of an executing process over an observation period; identifying, using at least a particular metric of the set, one or more sub-periods of the observation period corresponding to a statistically stable workload level; determining, using at least a different metric of the set, whether memory usage at the executing process increased during the one or more sub-periods corresponding to the statistically stable workload level; and in response to determining that the memory usage at the executing process increased during the one or more sub-periods, generating a notification of a potential memory leak at the executing process, wherein notification of the potential memory leak comprises an indication of a confidence level associated with the increased memory usage.
-
19. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors:
-
collect a set of metrics of an executing process over an observation period; identify, using at least a particular metric of the set, one or more sub-periods of the observation period corresponding to a statistically stable workload level; determine, using at least a different metric of the set, whether memory usage at the executing process increased during the one or more sub-periods corresponding to the statistically stable workload level; and in response to a determination that the memory usage at the executing process increased during the one or more sub-periods, generate a notification of a potential memory leak at the executing process, wherein notification of the potential memory leak comprises an indication of a confidence level associated with the increased memory usage.
-
Specification