Management of heterogeneous workloads
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.
Claims
exact text as granted — not AI-modified1 . A system for management of heterogeneous workloads comprising:
a plurality of heterogeneous server machines; a placement controller, driven by utility functions of allocated computer processing unit (CPU) demand, that places web applications on one or more of the plurality of heterogeneous server machines; a request router that receives and dispatches requests to one or more web applications on one or more of the plurality of heterogeneous server machines in accordance with a scheduling mechanism; a flow controller in communication with the request router and the placement controller that dynamically adjusts the scheduling mechanism in response to at least one of workload intensity and system configuration; and a job scheduler that allocates jobs to one or more of the plurality of heterogeneous server machines in accordance with placement decisions communicated to the job scheduler by the placement controller.
2 . The system of claim 1 , wherein the web applications placed on one or more of the plurality of heterogeneous server machines comprise application server clusters.
3 . The system of claim 1 , wherein the placement controller comprises:
a job scheduler proxy that receives jobs from the job scheduler and communicates job placement decisions to the job scheduler; a job utility estimator that estimates requirements for jobs for a given value of utility function; a placement optimizer that calculates job and web application placement that maximizes the minimum utility across all web applications; and a web application executor that places web applications on one or more of the plurality of heterogeneous server machines.
4 . The system of claim 1 wherein the request router classifies requests into flows depending on at least one of target web applications and service class.
5 . The system of claim 4 , wherein the request router places classified requests into per-flow queues within the request router.
6 . The system of claim 5 , wherein the request router dispatches requests from the per-flow queues based on a weighted-fair scheduling discipline that observes a concurrency limit of the system.
7 . The system of claim 6 , wherein the flow controller adjusts at least one of weights of the weighted-fair scheduling discipline and the concurrency limit of the system in response to at least one of changing workload intensity and system configuration.
8 . The system of claim 7 , wherein the flow controller builds a model of the system that allows it to predict the performance of a flow for any choice of concurrency limit and weights.
9 . The system of claim 1 , wherein the flow controller comprises a utility function calculator in communication with the placement controller.
10 . The system of claim 1 , wherein the job scheduler manages dependencies among jobs and performs resource matching of the jobs with one or more of the plurality of heterogeneous server machines.
11 . The system of claim 1 , further comprising:
a web application workload profiler that obtains profiles for web application requests in the form of an average number of CPU cycles consumed by requests of a given flow, and provides the profiles for web application requests to the flow controller and placement controller; and a job workload profiler that obtains profiles for jobs in the form of at least one of the number of CPU cycles required to complete the job, the number of threads used by the job, and the maximum CPU speed at which the job may progress, and provides the profiles for jobs to the job scheduler.
12 . The system of claim 1 , wherein the each of the plurality of heterogeneous server machines comprise a plurality of domains.
13 . The system of claim 1 , wherein a first domain of the plurality of domains comprises a node agent in communication with the placement controller and the job scheduler.
14 . The system of claim 13 , wherein a second domain of the plurality of domains comprises a machine agent in communication with the node agent that manages virtual machines inside a given heterogeneous server machine.
15 . The system of claim 14 , wherein the node agent provides job management functionality within the heterogeneous server machine through interaction with the machine agent.
16 . The system of claim 14 , wherein the machine agent is capable of at least one of creating and configures a virtual machine image for a new domain, copying files from the second domain to another domain, starting a process in another domain, and controlling the mapping of physical resources to virtual resources.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.