Autonomic workload classification using predictive assertion for wait queue and thread pool selection
First Claim
1. A computer program product for programmatically analyzing execution behavior of work units, the computer program product comprising at least one computer-usable storage media having computer-usable program code embodied therein for:
- recording, for each of a plurality of work units, information regarding each of at least one instrumented wait point encountered in code executed by that one of the work units;
determining, for each of the plurality of work units from the recorded information, a set comprising the wait points encountered by that one of the work units;
determining all unique ones of the determined sets of wait points;
determining characteristics of the work units that encountered the wait points in each of the unique ones of the wait point sets;
using the determined characteristics to programmatically build one or more recognizers which are adapted to recognizing those characteristics in arriving work units that are to be subsequently executed;
executing the recognizers to programmatically recognize the characteristics in the arriving work units; and
using the programmatically-recognized characteristics when allocating execution resources to the arriving work units.
5 Assignments
0 Petitions
Accused Products
Abstract
Incoming work units (e.g., requests) in a computing workload are analyzed and classified according to predicted execution. Preferred embodiments track which instrumented wait points are encountered by the executing work units, and this information is analyzed to dynamically and autonomically create one or more recognizers to programmatically recognize similar, subsequently-received work units. When a work unit is recognized, its execution behavior is then predicted. Execution resources are then allocated to the work units in view of these predictions. The recognizers may be autonomically evaluated or tuned, thereby adjusting to changing workload characteristics. The disclosed techniques may be used advantageously in application servers, message-processing software, and so forth.
75 Citations
27 Claims
-
1. A computer program product for programmatically analyzing execution behavior of work units, the computer program product comprising at least one computer-usable storage media having computer-usable program code embodied therein for:
-
recording, for each of a plurality of work units, information regarding each of at least one instrumented wait point encountered in code executed by that one of the work units; determining, for each of the plurality of work units from the recorded information, a set comprising the wait points encountered by that one of the work units; determining all unique ones of the determined sets of wait points; determining characteristics of the work units that encountered the wait points in each of the unique ones of the wait point sets; using the determined characteristics to programmatically build one or more recognizers which are adapted to recognizing those characteristics in arriving work units that are to be subsequently executed; executing the recognizers to programmatically recognize the characteristics in the arriving work units; and using the programmatically-recognized characteristics when allocating execution resources to the arriving work units. - View Dependent Claims (2, 3, 4)
-
-
5. A method of programmatically analyzing execution behavior of work units using computer-readable code executed by a computer, comprising:
-
recording, for each of a plurality of work units, information regarding each of at least one instrumented wait point encountered in code executed by that one of the work units; determining, for each of the plurality of work units from the recorded information, a set comprising the wait points encountered by that one of the work units; determining all unique ones of the determined sets of wait points; determining characteristics of the work units that encountered the wait points in each of the unique ones of the wait point sets; using the determined characteristics to programmatically build one or more recognizers which are adapted to recognizing those characteristics in arriving work units that are to be subsequently executed; and using the programmatically-built recognizers when allocating execution resources to the arriving work units. - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A system for programmatically analyzing execution behavior of work units, comprising:
-
a computer comprising at least one processor; and instructions which execute using at least one of the at least one processor to implement functions comprising; recording, for each of a plurality of work units, information regarding at each of least one instrumented wait point encountered in code executed by that one of the work units; determining, for each of the plurality of work units from the recorded information, a set comprising the wait points encountered by that one of the work units; determining all unique ones of the determined sets of wait points; determining characteristics of the work units that encountered the wait points in each of the unique ones of the wait point sets; using the determined characteristics to programmatically build one or more recognizers which are adapted to recognizing those characteristics in arriving work units that are to be subsequently executed; executing the recognizers to programmatically recognize the characteristics in the arriving work units; and using the programmatically-recognized characteristics when allocating execution resources to the arriving work units. - View Dependent Claims (21, 22, 23)
-
-
24. A method of analyzing execution information for work units using computer-readable code executed by a computer, comprising:
-
determining, from information that has been recorded for each of a plurality of work units, a set comprising each of at least one instrumented wait point encountered in code executed by that one of the work units; determining all unique ones of the determined sets of wait points; determining characteristics of the work units that encountered the wait points in each of the unique ones of the wait point sets; determining which of the characteristics are discriminators as to the wait points that are encountered in each of the unique ones of the wait point sets; programmatically building one or more recognizers which are adapted to recognizing, in arriving work units that are to be executed, the characteristics which are determined to be discriminators; executing the recognizers to recognize, in the arriving work units, the characteristics which are determined to be discriminators; and allocating execution resources to each of the arriving work units according to which of the recognizers recognizes, for that one of the arriving work units, the characteristics which are determined to be discriminators. - View Dependent Claims (25, 26, 27)
-
Specification