Diagnosis of application server performance problems via thread level pattern analysis
First Claim
1. A method of monitoring performance of an application server for a group of servers in which one or more threads associated with multiple tasks that manage the group of servers are executed, said method comprising:
- issuing a command to an operating system of the application server to return a resource consumption value representative of the amount of computing resource consumed by one or more threads, the resource consumption value including at least an identification of one of the threads and a corresponding amount of computing resource consumed by the one of the treads;
storing the resource consumption value;
repeating said issuing and said storing multiple times over a time period;
generating a graph of the amount of computing resources consumed by the one of the threads over the time period based on the stored resource consumption values;
identifying tasks in the one of the threads in the graph, including determining at least one task switch location on the graph based on a rate of change in resource consumption;
comparing the graph with predetermined patterns, wherein the predetermined patterns include a duplicate task pattern that indicates duplicate tasks defined by active periods of resource consumption separated by at least one inactive period of resource consumption; and
identifying potential performance improvement areas in the application server based on said comparing, including determining that the graph indicates at least two duplicate tasks based on whether the graph includes the duplicate task pattern; and
determining that the graph has the duplicate task pattern if two consecutive tasks represented in the graph as active periods of resource consumption separated by at least one inactive period of resource consumption have similar thread areas and similar latencies during their active periods of resource consumption, wherein the predetermined patterns include at least one of an inactive period pattern that includes an inactive period of an undesirable duration between two consecutive tasks represented in the pattern.
2 Assignments
0 Petitions
Accused Products
Abstract
Performance of server that is managing a group of servers, such as in a cloud, is analyzed by identifying patterns of threads executed in the server. A command is issued, repeatedly over a time period, to an operating system of the server to return a resource consumption value representative of the amount of computing resources consumed by one or more threads. The returned resource consumption values are stored and used to generate points on a graph which depicts the amount of computing resources consumed by the one or more threads over the time period and provide task breakdowns and latency information for each of the tasks.
-
Citations
11 Claims
-
1. A method of monitoring performance of an application server for a group of servers in which one or more threads associated with multiple tasks that manage the group of servers are executed, said method comprising:
-
issuing a command to an operating system of the application server to return a resource consumption value representative of the amount of computing resource consumed by one or more threads, the resource consumption value including at least an identification of one of the threads and a corresponding amount of computing resource consumed by the one of the treads; storing the resource consumption value; repeating said issuing and said storing multiple times over a time period; generating a graph of the amount of computing resources consumed by the one of the threads over the time period based on the stored resource consumption values; identifying tasks in the one of the threads in the graph, including determining at least one task switch location on the graph based on a rate of change in resource consumption; comparing the graph with predetermined patterns, wherein the predetermined patterns include a duplicate task pattern that indicates duplicate tasks defined by active periods of resource consumption separated by at least one inactive period of resource consumption; and identifying potential performance improvement areas in the application server based on said comparing, including determining that the graph indicates at least two duplicate tasks based on whether the graph includes the duplicate task pattern; and determining that the graph has the duplicate task pattern if two consecutive tasks represented in the graph as active periods of resource consumption separated by at least one inactive period of resource consumption have similar thread areas and similar latencies during their active periods of resource consumption, wherein the predetermined patterns include at least one of an inactive period pattern that includes an inactive period of an undesirable duration between two consecutive tasks represented in the pattern. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of identifying potential performance improvement areas in an application server for a group of servers in which one or more threads associated with multiple tasks that manage the group of servers are executed, said method comprising:
-
issuing a command to an operating system of the application server to return a resource consumption value representative of the amount of computing resource consumed by one or more threads, the resource consumption value including at least an identification of one of the threads and a corresponding amount of computing resource consumed by the one of the treads; storing the resource consumption value; repeating said issuing and said storing multiple times over a time period; generating a graph of changes in the resource consumption value for the one of the threads over the time period based on the stored resource consumption values; identifying tasks in the one of the threads in the graph, including determining at least one task switch location on the graph based on a rate of change in resource consumption; comparing changes in the resource consumption value for the one of the threads over the time period with predetermined patterns, wherein the predetermined patterns include a duplicate task pattern that indicates duplicate tasks defined by active periods of resource consumption separated by at least one inactive period of resource consumption; and identifying potential performance improvement areas in the application server based on said comparing, including determining that the graph indicates at least two duplicate tasks based on whether the graph includes the duplicate task pattern; and determining that the graph has the duplicate task pattern if two consecutive tasks represented in the graph as active periods of resource consumption separated by at least one inactive period of resource consumption have similar thread areas and similar latencies during their active periods of resource consumption, wherein the predetermined patterns include at least one of an inactive period pattern that includes an inactive period of an undesirable duration between two consecutive tasks represented in the pattern.
-
-
9. A non-transitory computer readable storage medium comprising instructions to be executed by a processing unit of an application server for a group of servers in which one or more threads associated with multiple tasks that manage the group of servers are executed, wherein the instructions, when executed by the processing unit, cause the application server to carry out the steps of:
-
issuing a command to an operating system of the application server to return a resource consumption value representative of the amount of computing resource consumed by one or more threads, the resource consumption value including at least an identification of one of the threads and a corresponding amount of computing resource consumed by the one of the treads; storing the resource consumption value; repeating said issuing and said storing multiple times over a time period; generating data points for a graph showing the amount of computing resource consumed by the one of the threads over the time period using the stored resource consumption values; identifying tasks in the one of the threads in the graph, including determining at least one task switch location on the graph based on a rate of change in resource consumption; comparing the graph with predetermined patterns, wherein the predetermined patterns include a duplicate task pattern that indicates duplicate tasks defined by active periods of resource consumption separated by at least one inactive period of resource consumption; and identifying potential performance improvement areas in the application server based on said comparing, including determining that the graph indicates at least two duplicate tasks based on whether the graph includes the duplicate task pattern; and determining that the graph has the duplicate task pattern if two consecutive tasks represented in the graph as active periods of resource consumption separated by at least one inactive period of resource consumption have similar thread areas and similar latencies during their active periods of resource consumption, wherein the predetermined patterns include at least one of an inactive period pattern that includes an inactive period of an undesirable duration between two consecutive tasks represented in the pattern. - View Dependent Claims (10, 11)
-
Specification