Identifying optimal platforms for workload placement in a networked computing environment

Embodiments of the present invention provide a workload optimization approach that measures workload performance across combinations of hardware (platform, network configuration, storage configuration, etc.) and operating systems, and which provides a workload placement on the platforms where jobs perform most efficiently. This type of placement may be based on performance measurements (e.g., throughput, response, and other such service levels), but it can also be based on other factors such as power consumption or reliability. In a typical embodiment, ideal platforms are identified for handling workloads based on performance measurements and any applicable service level agreement (SLA) terms.

TECHNICAL FIELD

The present invention relates to workload placement. Specifically, the present invention relates to optimizing the placement of a workload (e.g., among platforms) in a networked computing environment (e.g., a cloud computing environment).

BACKGROUND

The cloud computing environment is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further abstracted by a cloud layer, thus making disparate devices appear to an end-consumer as a single pool of seamless resources. These resources may include such things as physical or logical compute engines, servers and devices, device memory, and storage devices.

Corporate and/or enterprise systems customers often make server purchase decisions based on the number of processors, size and speed versus cost, effective implementation, and/or usage parameters. In evaluating new server solutions, customers frequently consider processor numbers and speed as the key decision factors for accomplishing workload. Currently, operating system or application-based utilization tools are used to measure system and processor utilization. Output provided by these toos may then be graphed, statistically analyzed, reported, and correlated back to the original purchase criteria. However, in many complex environments, such as those surrounding networked (e.g., cloud) computing installations, these measurements may be insufficient, and additional functionality is needed to ascertain whether the server decision is correct for the system implementation and application load running on the server infrastructure.

SUMMARY

Embodiments of the present invention provide a workload optimization approach that measures workload performance across combinations of hardware (platform, network configuration, storage configuration, etc.) and operating systems, and which provides a workload placement on the platforms where jobs perform most efficiently. This type of placement may be based on performance measurements (e.g., throughput, response, and other such service levels), but it can also be based on other factors such as power consumption or reliability. In a typical embodiment, optimal platforms are identified for handling workloads based on performance measurements and any applicable service level agreement (SLA) terms.

A first aspect of the present invention provides a method for optimizing workload placement in a networked computing environment, comprising: monitoring a workload; measuring a performance of the workload on a current platform using a set of performance metrics; identifying an optimal platform for handling the workload based on the performance and a set of service level agreement (SLA) terms; and migrating the workload from the current platform to the optimal platform.

A second aspect of the present invention provides a system for optimizing workload placement in a networked computing environment, comprising: a bus; a processor coupled to the bus; and a memory medium coupled to the bus, the memory medium comprising instructions to: monitor a workload; measure a performance of the workload on a current platform using a set of performance metrics; identify an optimal platform for handling the workload based on the performance and a set of service level agreement (SLA) terms; and migrate the workload from the current platform to the optimal platform.

A third aspect of the present invention provides a computer program product for optimizing workload placement in a networked computing environment, the computer program product comprising a computer readable storage media, and program instructions stored on the computer readable storage media, to: monitor a workload; measure a performance of the workload on a current platform using a set of performance metrics; identify an optimal platform for handling the workload based on the performance and a set of service level agreement (SLA) terms; and migrate the workload from the current platform to the optimal platform.

A fourth aspect of the present invention provides a method for deploying a system for optimizing workload placement in a networked computing environment, comprising: providing a computer infrastructure being operable to: monitor a workload; measure a performance of the workload on a current platform using a set of performance metrics; identify an optimal platform for handling the workload based on the performance and a set of service level agreement (SLA) terms; and migrate the workload from the current platform to the optimal platform.

DETAILED DESCRIPTION

Embodiments of the present invention provide a workload optimization approach that measures workload performance across combinations of hardware (platform, network configuration, storage configuration, etc.) and operating systems, and which provides a workload placement on the platforms where jobs perform most efficiently. This type of placement may be based on performance measurements (e.g., throughput, response, and other such service levels), but it can also be based on other factors such as power consumption or reliability. In a typical embodiment, ideal platforms are identified for handling workloads based on performance measurements and any applicable service level agreement (SLA) terms.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

Workloads layer66provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation; software development and lifecycle management; virtual classroom education delivery; data analytics processing; transaction processing; and workload placement optimization. As mentioned above, all of the foregoing examples described with respect toFIG. 3are illustrative only, and the invention is not limited to these examples.

It is understood all functions of the present invention as described herein typically may be performed by the workload placement optimization function/engine, which can be tangibly embodied as modules of program code42of workload placement program/utility/engine40(FIG. 1). However, this need not be the case. Rather, the functionality recited herein could be carried out/implemented and/or enabled by any of the layers60-66shown inFIG. 3.

It is reiterated that although this disclosure includes a detailed description on cloud computing, implementation of the teachings recited herein are not limited to a cloud computing environment. Rather, the embodiments of the present invention are intended to be implemented with any type of networked computing environment now known or later developed.

However, in order to first provide a contrast with that which is known, existing methods have static value assignments for different hardware characteristics. The static workload results may be seen as follows.

In the above table, it may be seen that Workload A has a response time of 10 seconds on Vendor A's platform, even though the platform features an older operating system and slower CPU speed than does Vendor C's. Conversely Workload B performs worse on that same platform (Vendor A's). Other workload placement algorithms typically use benchmarks to determine job placement. Such algorithms assume that the highest benchmarks represent the fastest platforms generically, when in fact, certain workloads will have characteristics causing them to excel on different platforms (e.g., CPU architectures, hyper-threading, superscalar pipelines, memory bandwidth, etc.).

Under embodiments of the present invention, an approach is provided that determines which workloads should be placed in specific software and/or hardware combinations. Furthermore, this approach then optimizes workload placement in a networked computing environment, such as a cloud computing environment, based on such values. To optimize performance beyond those standards known today, job placement logic must discern which workloads perform best on multiple platforms. To accomplish this, an additional workload management function may be added to the environment. This workload manager may take action after the environment has already provisioned one or more assets. The workload manager then discovers the type of workload deployed among virtual machine(s), registers that workload, and begins to measure its effective performance.

After the effective performance of various workloads is measured, the workload manager evaluates current active workloads with previously collected performance metrics, and communicates placement recommendations to the cloud manager. It should be noted that the workload manager may be contained within the same, or a differing, entity as the cloud manager. Nevertheless, if a workload type is known, and a new provisioning request is being fulfilled by the cloud, then the workload manager may make a determination pertaining to where to initially place the workload. If the workload already exists and has previously been identified, the workload manager may periodically evaluate placement decisions that would improve performance and communicate back to the cloud manager a preferred migration of the workload to a new platform.

Referring toFIG. 4, a process flow diagram according to embodiments of the present invention is shown. Steps to implement workload placement using the Workload Manager may include those similar to the following:

A. Monitor/Discover701. In step P1, new workloads are monitored/discovered (e.g., either in an automated or manual fashion). This could be aggregated coarsely (e.g., via Java, Objective C, a batch process, a grid arrangement, etc) or in highly granular fashion (e.g., via a Java API, a retail bank loan application, etc.).2. In step P2, it is determined whether the workload is new.3. If so, the new workload is registered in step P3.4. If not, the existing workload and platform are identified in step P4. Among the hardware/software attributes that can be identified are the following:a. architecture (CPU type, speed, memory type, bandwidth, storage type, etc.);b. manufacturer and model (model will identify some elements of the architecture); andc. operating system and version.

B. Measure workload performance721. In step P5, a sample workload is identified/measured. This could be submitted by the owner of a particular resource, or selected independently (e.g., at random).2. In step P6, a set of performance metrics are selected to measure performance of the sample workload. Such performance metrics could include response time, throughput, energy consumed, etc.3. In step P7, a baseline measurement is taken/run using a set of the performance metrics.4. In step P8, a sample workload is run (e.g., while collecting a second measurement).5. In steps P9and P10, results can be logged. Specifically, the sample workload results are logged, while in step P10, prioritized workload results can be logged. As further depicted, the measurement process72can be repeated for all platforms.

C. Optimize the workload741. In step P11, all platforms where the workload has been measured will be identified, and the identity of an optimal platform for handling the workload will be determined. The identification of an optimal platform is typically based on the above performance metrics and any applicable SLA terms (e.g., the optimal platform must be able to accommodate the workload without violating any SLA terms).2. In step P12, it is determined whether the optimal platform has availability to handle the workload. If a “scarce” resource is needed, then the effect of swapping active resources can be evaluated.3. If in step P12it is determined that the optimal platform does not have sufficient availability to handle the workload, then a next workload can be fetched in step P13, and the results logged.4. If, however, the optimal platform can handle the workload, such a recommendation can be communicated to a network manager or the like in step P14.5. Thereafter, the workload can be migrated from its existing platform to the optimal platform in step P15.

Apparatus to measure workload affinities:

Such an apparatus could be constructed, for example, as a low power consumption device with a solid state memory card, a CPU and embedded Linux operating system running the system management, data collection, and retention services/logic. Alternatively, it could be provided as a logical software product, utilizing cycles on a computer server within the stated environment. Typically, but not required, the system might include tables with mean, average, and best in class usage for all system components. Furthermore, it could have access to various system sensors, including service processor(s), and the operating system and networking resources through simple network management protocol (SNMP) queries. The data provided could conceivably include correlation between best-in-class versus actual usage for all components, which then can be statistically and cost-performance evaluated.

In one implementation, a “black box” device, running independently of existing server components, could be installed in servers to measure and record system implementation, configuration, and usage information. This data could then be used to evaluate the usage and server implementation and allow the enterprise to make proactive, system-wide configuration, implementation, and server recommendations for customers to meet specific business needs. One advantage of such a system is that it is not interfering with or impacting the normal operations of the server while collecting valuable information that the customer can use for problem determination and/or return on investment evaluation. Furthermore, it could be proactively utilized to make server/architecture recommendations for customers' specific requirements and implementations.

Referring now toFIG. 5, a method flow diagram according to embodiments of present invention is shown. As depicted, in step S1, a workload is monitored. In this step, it can be determined if the workload is an existing workload or a new workload. If new, the workload can be registered. In step S2, a performance of the workload (or a sample thereof) is measured on a current platform using a set of performance metrics. This step can include one or more of the following operations: identifying a sample of the workload; identifying the set of performance metrics; taking a baseline measurement of the sample; running the sample; and/or logging a set of results of the measuring. In step S3, an optimal platform for handling the workload is identified based on the performance and a set of service level agreement (SLA) terms. This step can include one or more of the following operations: evaluating all platforms where the workload has been measured; and/or determining if the optimal platform has availability to handle the workload. Then, in step S4, the workload is migrated from the current platform to the optimal platform.

While shown and described herein as a workload placement optimization solution, it is understood that the invention further provides various alternative embodiments. For example, in one embodiment, the invention provides a computer-readable/useable medium that includes computer program code to enable a computer infrastructure to provide workload placement optimization functionality as discussed herein. To this extent, the computer-readable/useable medium includes program code that implements each of the various processes of the invention. It is understood that the terms computer-readable medium or computer-useable medium comprise one or more of any type of physical embodiment of the program code. In particular, the computer-readable/useable medium can comprise program code embodied on one or more portable storage articles of manufacture (e.g., a compact disc, a magnetic disk, a tape, etc.), on one or more data storage portions of a computing device, such as memory28(FIG. 1) and/or storage system34(FIG. 1) (e.g., a fixed disk, a read-only memory, a random access memory, a cache memory, etc.).

In another embodiment, the invention provides a method that performs the process of the invention on a subscription, advertising, and/or fee basis. That is, a service provider, such as a Solution Integrator, could offer to provide workload placement optimization functionality. In this case, the service provider can create, maintain, support, etc., a computer infrastructure, such as computer system12(FIG. 1) that performs the processes of the invention for one or more consumers. In return, the service provider can receive payment from the consumer(s) under a subscription and/or fee agreement and/or the service provider can receive payment from the sale of advertising content to one or more third parties.

A data processing system suitable for storing and/or executing program code can be provided hereunder and can include at least one processor communicatively coupled, directly or indirectly, to memory elements through a system bus. The memory elements can include, but are not limited to, local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input/output and/or other external devices (including, but not limited to, keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening device controllers.

Network adapters also may be coupled to the system to enable the data processing system to become coupled to other data processing systems, remote printers, storage devices, and/or the like, through any combination of intervening private or public networks. Illustrative network adapters include, but are not limited to, modems, cable modems, and Ethernet cards.