Scheduling applications in a clustered computer system
First Claim
1. A method for scheduling applications for use in a clustered computer system comprising a plurality of computers and at least one resource, the clustered computer system executing one or more applications, the method comprising the steps of:
- monitoring one or more hardware counters in at least one of the at least one resource and the plurality of computers of the clustered computer system for each of the one or more applications;
responsive to said step of monitoring, determining the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system by each of the one or more applications;
for each of the one or more applications, storing said utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system; and
upon receiving a request to schedule an application on one of said plurality of computers, scheduling a selected computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers, wherein the selected computer is determined by identifying applications on the plurality of computers that are compatible with the application to be scheduled, and assigning the application to a computer having a compatible application;
wherein applications are deemed compatible if each application utilizes predominately different resources.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a method for scheduling applications for a clustered computer system having a plurality of computers and at least one resource, the clustered computer system executing one or more applications. A method includes: monitoring hardware counters in at least one of the resources and the plurality of computers of the clustered computer system for each of the applications; responsive to said monitoring, determining the utilization of at least one of the resources and the plurality of computers of the clustered computer system by each of the applications; for each of the applications, storing said utilization of at least one of the resource and plurality of computers of the clustered computer system; and upon receiving a request to schedule an application on one of said computers, scheduling a computer to execute the application based on stored utilization for the application and stored utilizations of other applications executing on the computers.
-
Citations
18 Claims
-
1. A method for scheduling applications for use in a clustered computer system comprising a plurality of computers and at least one resource, the clustered computer system executing one or more applications, the method comprising the steps of:
-
monitoring one or more hardware counters in at least one of the at least one resource and the plurality of computers of the clustered computer system for each of the one or more applications; responsive to said step of monitoring, determining the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system by each of the one or more applications; for each of the one or more applications, storing said utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system; and upon receiving a request to schedule an application on one of said plurality of computers, scheduling a selected computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers, wherein the selected computer is determined by identifying applications on the plurality of computers that are compatible with the application to be scheduled, and assigning the application to a computer having a compatible application; wherein applications are deemed compatible if each application utilizes predominately different resources. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for scheduling applications for use in a clustered computer system comprising a plurality of computers and at least one resource, the clustered computer system executing one or more applications, at least one of the at least one resource and the plurality of computers having one or more hardware counters for monitoring hardware utilization, the system comprising:
-
a memory and a processor; an agent, executable by the processor, for monitoring said one or more hardware counters for each of the one or more applications; an application monitoring subsystem, executable by the processor, for determining the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system by each of the one or more applications; and an engine, executable by the processor, and repository for storing said utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system for each of the one or more applications and for, upon receiving a request to schedule an application on one of said plurality of computers, scheduling a selected computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers, wherein the selected computer is determined by identifying applications on the plurality of computers that are compatible with the application to be scheduled, and assigning the application to a computer having a compatible application; wherein applications are deemed compatible if each application utilizes predominately different resources. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product for scheduling applications for use in a clustered computer system comprising a plurality of computers and at least one resource, the clustered computer system executing one or more applications, the computer program product comprising:
-
a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code adapted to; monitor one or more hardware counters in at least one of the at least one resource and the plurality of computers of the clustered computer system for each of the one or more applications; determine the utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system by each of the one or more applications; for each of the one or more applications, store said utilization of at least one of the at least one resource and the plurality of computers of the clustered computer system; and in response to receiving a request to schedule an application on one of said plurality of computers, schedule a selected computer to execute the application based on said stored utilization for the application and stored utilizations of other applications executing on the plurality of computers, wherein the selected computer is determined by identifying applications on the plurality of computers that are compatible with the application to be scheduled, and assigning the application to a computer having a compatible application; wherein applications are deemed compatible if each application utilizes predominately different resources. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification