Management of heterogeneous workloads
First Claim
1. A method for managing a system of heterogeneous workloads, comprising the steps of:
- separating work that enters the system into a plurality of heterogeneous workloads, wherein the step of separating work comprises the steps of;
receiving web application requests at a request router; and
receiving jobs at a job scheduler;
gathering a plurality of high-level quality of service goals, wherein at least one of the plurality of high-level quality of service goals corresponds to each of the plurality of heterogeneous workloads, wherein the high-level quality of service goals comprise information regarding at least one of a target application and a service class of the heterogeneous workloads;
determining a plurality of control functions that are provided by virtualizations on one or more containers in which one or more of the plurality of heterogeneous workloads run, wherein the step of determining a plurality of control functions comprises the steps of;
placing web applications on one or more of a plurality of heterogeneous server machines;
dispatching the web application requests from the request router to one or more web applications on one or more of the plurality of heterogeneous server machines in accordance with a scheduling mechanism; and
managing virtual machines inside a given heterogeneous server machine by a machine agent in a first domain of the given heterogeneous server machine in communication with a node agent in a second domain of the given heterogeneous server machine, wherein;
the given heterogeneous server machine is a node including each of the machine agent, node agent, first domain and second domain therein;
the machine agent includes a command executor operatively coupled to the node agent, and the node agent interacts with the command executor of the machine agent to control a job; and
the command executor is further operatively coupled to an image management subsystem which dispenses pre-created virtual images for use during runtime, and a configuration management subsystem which provides the pre-created virtual images with configuration files prior to booting to set up devices and networking for the pre-created virtual images;
wherein a process is created in at least one of the pre-created virtual images by populating the pre-created virtual image with process data necessary to run the process; and
wherein, after the pre-created virtual image is used, the used pre-created virtual image is scrubbed of the process data so that the pre-created virtual image can be reused by a future process;
determining an expected utility of a plurality of settings of at least one of the plurality of control functions in response to the plurality of high-level quality of service goals;
exercising at least one of the plurality of control functions in response to the expected utility to effect changes in the behavior of the system, wherein the step of exercising at least one of the one or more control functions comprises the step of dynamically adjusting the scheduling mechanism in response to changing workload intensity and system configuration, and wherein the step of dynamically adjusting the scheduling mechanism comprises the steps of;
building a model of the system that allows a flow controller to predict performance of a flow for any choice of concurrency limit and weights of a weighted-fair scheduling discipline; and
dynamically adjusting the weights of the weighted-fair scheduling discipline and the concurrency limit of the system in response to the changing workload intensity and system configuration;
at least one of suspending or pausing a given pre-created virtual image that is running on the given heterogeneous server machine;
transferring and copying the suspended or paused pre-created virtual image from the given heterogeneous server machine to another node; and
restoring or resuming the suspended or paused pre-created virtual image on the other node;
wherein the steps of separating, gathering, determining a plurality of control functions, determining an expected utility, exercising at least one of the plurality of control functions, suspending or pausing, transferring and copying, and restoring or resuming are executed by a processor device.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems and methods for managing a system of heterogeneous workloads are provided. Work that enters the system is separated into a plurality of heterogeneous workloads. A plurality of high-level quality of service goals is gathered. At least one of the plurality of high-level quality of service goals corresponds to each of the plurality of heterogeneous workloads. A plurality of control functions are determined that are provided by virtualizations on one or more containers in which one or more of the plurality of heterogeneous workloads run. An expected utility of a plurality of settings of at least one of the plurality of control functions is determined in response to the plurality of high-level quality of service goals. At least one of the plurality of control functions is exercised in response to the expected utility to effect changes in the behavior of the system.
47 Citations
9 Claims
-
1. A method for managing a system of heterogeneous workloads, comprising the steps of:
-
separating work that enters the system into a plurality of heterogeneous workloads, wherein the step of separating work comprises the steps of; receiving web application requests at a request router; and receiving jobs at a job scheduler; gathering a plurality of high-level quality of service goals, wherein at least one of the plurality of high-level quality of service goals corresponds to each of the plurality of heterogeneous workloads, wherein the high-level quality of service goals comprise information regarding at least one of a target application and a service class of the heterogeneous workloads; determining a plurality of control functions that are provided by virtualizations on one or more containers in which one or more of the plurality of heterogeneous workloads run, wherein the step of determining a plurality of control functions comprises the steps of; placing web applications on one or more of a plurality of heterogeneous server machines; dispatching the web application requests from the request router to one or more web applications on one or more of the plurality of heterogeneous server machines in accordance with a scheduling mechanism; and managing virtual machines inside a given heterogeneous server machine by a machine agent in a first domain of the given heterogeneous server machine in communication with a node agent in a second domain of the given heterogeneous server machine, wherein; the given heterogeneous server machine is a node including each of the machine agent, node agent, first domain and second domain therein; the machine agent includes a command executor operatively coupled to the node agent, and the node agent interacts with the command executor of the machine agent to control a job; and the command executor is further operatively coupled to an image management subsystem which dispenses pre-created virtual images for use during runtime, and a configuration management subsystem which provides the pre-created virtual images with configuration files prior to booting to set up devices and networking for the pre-created virtual images; wherein a process is created in at least one of the pre-created virtual images by populating the pre-created virtual image with process data necessary to run the process; and wherein, after the pre-created virtual image is used, the used pre-created virtual image is scrubbed of the process data so that the pre-created virtual image can be reused by a future process; determining an expected utility of a plurality of settings of at least one of the plurality of control functions in response to the plurality of high-level quality of service goals; exercising at least one of the plurality of control functions in response to the expected utility to effect changes in the behavior of the system, wherein the step of exercising at least one of the one or more control functions comprises the step of dynamically adjusting the scheduling mechanism in response to changing workload intensity and system configuration, and wherein the step of dynamically adjusting the scheduling mechanism comprises the steps of; building a model of the system that allows a flow controller to predict performance of a flow for any choice of concurrency limit and weights of a weighted-fair scheduling discipline; and dynamically adjusting the weights of the weighted-fair scheduling discipline and the concurrency limit of the system in response to the changing workload intensity and system configuration; at least one of suspending or pausing a given pre-created virtual image that is running on the given heterogeneous server machine; transferring and copying the suspended or paused pre-created virtual image from the given heterogeneous server machine to another node; and restoring or resuming the suspended or paused pre-created virtual image on the other node; wherein the steps of separating, gathering, determining a plurality of control functions, determining an expected utility, exercising at least one of the plurality of control functions, suspending or pausing, transferring and copying, and restoring or resuming are executed by a processor device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. Apparatus for managing a system of heterogeneous workloads, comprising:
-
a memory; and at least one processor coupled to the memory and operative to; (i) separate work that enters the system into a plurality of heterogeneous workloads, wherein in separating the work, the at least one processor is further operative to; receive web application requests at a request router; and receive jobs at a job scheduler; (ii) gather a plurality of high-level quality of service goals, wherein at least one of the plurality of high-level quality of service goals corresponds to each of the plurality of heterogeneous workloads, wherein the high-level quality of service goals comprise information regarding at least one of a target application and a service class of the heterogeneous workloads; (iii) determine a plurality of control functions that are provided by virtualizations on one or more containers in which one or more of the plurality of heterogeneous workloads run, wherein in determining the plurality of control functions, the at least one processor is further operative to;
place web applications on one or more of a plurality of heterogeneous server machines;
dispatch the web application requests from the request router to one or more web applications on one or more of the plurality of heterogeneous server machines in accordance with a scheduling mechanism; and
manage virtual machines inside a given heterogeneous server machine by a machine agent in a first domain of the given heterogeneous server machine in communication with a node agent in a second domain of the given heterogeneous server machine, wherein;the given heterogeneous server machine is a node including each of the machine agent, node agent, first domain and second domain therein; the machine agent includes a command executor operatively coupled to the node agent, and the node agent interacts with the command executor of the machine agent to control a job; and the command executor is further operatively coupled to an image management subsystem which dispenses pre-created virtual images for use during runtime, and a configuration management subsystem which provides the pre-created virtual images with configuration files prior to booting to set up devices and networking for the pre-created virtual images; wherein a process is created in at least one of the pre-created virtual images by populating the pre-created virtual image with process data necessary to run the process; and wherein, after the pre-created virtual image is used, the used pre-created virtual image is scrubbed of the process data so that the pre-created virtual image can be reused by a future process; (iv) determine an expected utility of a plurality of settings of at least one of the plurality of control functions in response to the plurality of high-level quality of service goals; (v) exercise at least one of the plurality of control functions in response to the expected utility to effect changes in the behavior of the system, wherein in exercising at least one of the one or more control functions, the at least one processor is further operative to dynamically adjust the scheduling mechanism in response to changing workload intensity and system configuration, and wherein in dynamically adjusting the scheduling mechanism, the at least one processor is further operative to; build a model of the system that allows a flow controller to predict performance of a flow for any choice of concurrency limit and weights of a weighted-fair scheduling discipline; and dynamically adjust the weights of the weighted-fair scheduling discipline and the concurrency limit of the system in response to the changing workload intensity and system configuration; (vi) at least one of suspend or pause a given pre-created virtual image that is running on the given heterogeneous server machine; (vii) transfer and copy the suspended or paused pre-created virtual image from the given heterogeneous server machine to another node; and (viii) restore or resume the suspended or paused pre-created virtual image on the other node.
-
-
9. A method for making a computer implemented process to enable management of a system of heterogeneous workloads comprising the steps of:
-
instantiating first computer instructions onto a computer readable medium, the first computer instructions configured to separate work that enters the system into a plurality of heterogeneous workloads, wherein separating the work comprises; receiving web application requests at a request router; and receiving jobs at a job scheduler; instantiating second computer instructions onto a computer readable medium, the second computer instructions configured to gather a plurality of high-level quality of service goals, wherein at least one of the plurality of high-level quality of service goals corresponds to each of the plurality of heterogeneous workloads, wherein the high-level quality of service goals comprise information regarding at least one of a target application and a service class of the heterogeneous workloads; instantiating third computer instructions onto a computer readable medium, the third computer instructions configured to determine a plurality of control functions that are provided by virtualizations on one or more containers in which one or more of the plurality of heterogeneous workloads run, wherein determining the plurality of control functions comprises;
placing web applications on one or more of a plurality of heterogeneous server machines;
dispatching the web application requests from the request router to one or more web applications on one or more of the plurality of heterogeneous server machines in accordance with a scheduling mechanism; and
managing virtual machines inside a given heterogeneous server machine by a machine agent in a first domain of the given heterogeneous server machine in communication with a node agent in a second domain of the given heterogeneous server machine, wherein;the given heterogeneous server machine is a node including each of the machine agent, node agent, first domain and second domain therein; the machine agent includes a command executor operatively coupled to the node agent, and the node agent interacts with the command executor of the machine agent to control a job; and the command executor is further operatively coupled to an image management subsystem which dispenses pre-created virtual images for use during runtime, and a configuration management subsystem which provides the pre-created virtual images with configuration files prior to booting to set up devices and networking for the pre-created virtual images; wherein a process is created in at least one of the pre-created virtual images by populating the pre-created virtual image with process data necessary to run the process; and wherein, after the pre-created virtual image is used, the used pre-created virtual image is scrubbed of the process data so that the pre-created virtual image can be reused by a future process; instantiating fourth computer instructions onto a computer readable medium, the fourth computer instructions configured to determine an expected utility of a plurality of settings of at least one of the plurality of control functions in response to the plurality of high-level quality of service goals; instantiating fifth computer instructions onto a computer readable medium, the fifth computer instructions configured to exercise at least one of the plurality of control functions in response to the expected utility to effect changes in the behavior of the system, wherein exercising at least one of the one or more control functions comprises dynamically adjusting the scheduling mechanism in response to changing workload intensity and system configuration, and wherein dynamically adjusting the scheduling mechanism comprises; building a model of the system that allows a flow controller to predict performance of a flow for any choice of concurrency limit and weights of a weighted-fair scheduling discipline; and dynamically adjusting the weights of the weighted-fair scheduling discipline and the concurrency limit of the system in response to the changing workload intensity and system configuration; instantiating sixth computer instructions onto a computer readable medium, the sixth computer instructions configured to at least one of suspend or pause a given pre-created virtual image that is running on the given heterogeneous server machine; instantiating seventh computer instructions onto a computer readable medium, the seventh computer instructions configured to transfer and copy the suspended or paused pre-created virtual image from the given heterogeneous server machine to another node; and instantiating eighth computer instructions onto a computer readable medium, the eighth computer instructions configured to restore or resume the suspended or paused pre-created virtual image on the other node.
-
Specification