×

Management of heterogeneous workloads

  • US 9,405,585 B2
  • Filed: 04/30/2007
  • Issued: 08/02/2016
  • Est. Priority Date: 04/30/2007
  • Status: Expired due to Fees
First Claim
Patent Images

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 all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×