System and method for controlling heat dissipation through service level agreement analysis by modifying scheduled processing jobs

The system and method generally relate to reducing heat dissipated within a data center, and more particularly, to a system and method for reducing heat dissipated within a data center through service level agreement analysis, and resultant reprioritization of jobs to maximize energy efficiency. A computer implemented method includes performing a service level agreement (SLA) analysis for one or more currently processing or scheduled processing jobs of a data center using a processor of a computer device. Additionally, the method includes identifying one or more candidate processing jobs for a schedule modification from amongst the one or more currently processing or scheduled processing jobs using the processor of the computer device. Further, the method includes performing the schedule modification for at least one of the one or more candidate processing jobs using the processor of the computer device.

FIELD OF THE INVENTION

The present invention generally relates to reducing heat dissipated within a data center, and more particularly, to a system and method for reducing heat dissipated within a data center through service level agreement analysis, and resultant reprioritization of jobs to maximize energy efficiency.

BACKGROUND

A traditional data center may conventionally include a plurality of individual computing resources in one open area having, e.g., four walls. A data center (or other physical space) beneficially has, where possible, an optimized heating and cooling infrastructure. Maintaining data centers at desired temperatures (e.g., set points) helps prevent computer hardware (e.g., information technology (IT) infrastructure) from overheating and malfunctioning. To this end, many data centers are cooled to relatively low temperatures (e.g., 65° F.) to increase equipment reliability and useful life, and to avoid downtime for repair and/or replacement.

Conventional cooling systems cool the entire data center to a temperature well below the set point so that IT equipment operating in the hot spots does not exceed the set point. In other words, existing cooling systems resort to a sort of ‘overkill’ by cooling the entire volume of the data center to well below the set point, which increases operational costs and wastes energy. Moreover, with the increasing awareness and desire to operate in a “green” manner, such excessive use of energy is undesirable.

A service level agreement (frequently abbreviated as SLA) is a part of a service contract where the level of service, e.g., for performing a process, is formally defined. In practice, the term SLA is sometimes used to refer to the contracted delivery time (of the service) or performance. For example, an SLA may be a negotiated agreement between two parties where one is the customer and the other is the service provider. The SLA can be a legally binding formal or informal “contract.”

More specifically, the SLA may record a common understanding about, for example, services, priorities, responsibilities, guarantees and warranties. Each area of service scope may have the “level of service” defined. The SLA may specify the levels of availability, serviceability, performance, operation, or other attributes of the service such as billing. The “level of service” can also be specified as “target” and “minimum,” which allows customers to be informed as to what to expect (the minimum), whilst providing a measurable (average) target value that shows the level of organization performance. In some contracts, penalties may be agreed in the case of non compliance of the SLA. The “agreement” relates to the services the customer receives, and not how the service provider delivers that service.

A data center may begin to process jobs, for example, once they are received by the data center and/or according to a scheduler. That is, for example, a data center may receive a number of processing jobs, e.g., three processing jobs. Moreover, the data center may begin processing these jobs upon receiving them.

However, while some of these jobs may need to be, for example, started right away and/or run at maximum capacity, in order to meet those jobs' SLAs, other jobs may have more time, while remaining in compliance with their respective SLAs, to complete the processing. That is, continuing with the above example, the SLAs for the first job may indicate that this job should be started right away and/or run at maximum capacity, in order to meet the SLA. However, the SLAs for the second and third jobs may indicate that these jobs may not need to be started right away and/or run at maximum capacity in order to maintain compliance with their respective SLAs.

SUMMARY

In a first aspect of the invention, a computer implemented method includes performing a service level agreement (SLA) analysis for one or more currently processing or scheduled processing jobs using a processor of a computer device. Additionally, the method comprises identifying one or more candidate processing jobs for a schedule modification from amongst the one or more currently processing or scheduled processing jobs using the processor of the computer device. Further, the method comprises performing the schedule modification for at least one of the one or more candidate processing jobs using the processor of the computer device.

In another aspect of the invention, a system comprises a service level agreement (SLA) analysis tool operable to perform a service level agreement (SLA) analysis for one or more currently processing or scheduled processing jobs of a data center, and identify one or more candidate processing jobs for a schedule modification from amongst the one or more currently processing or scheduled processing jobs. Additionally, the system comprises a scheduling tool operable to perform the schedule modification for at least one of the one or more candidate processing jobs.

In an additional aspect of the invention, a computer program product comprising a computer usable storage medium having readable program code embodied in the medium is provided. The computer program product includes at least one component operable to perform a service level agreement (SLA) analysis for one or more currently processing or scheduled processing jobs of a data center using a processor of a computer device to determine one or more processing jobs, from the one or more currently processing or scheduled processing jobs, which can be subject to a schedule modification without incurring an SLA violation. Additionally, the at least one component operable to identify one or more candidate processing jobs for the schedule modification from amongst the one or more currently processing or scheduled processing jobs and perform the schedule modification for at least one of the one or more candidate processing jobs. The schedule modification comprises at least one of: a delay of the one or more candidate processing jobs; a slowing of the one or more candidate processing jobs; and a relocation of the one or more candidate processing jobs.

In a further aspect of the invention, a computer system for controlling heat dissipation through a service level agreement (SLA) analysis comprises a CPU, a computer readable memory and a computer readable storage media. Additionally, the computer system comprises first program instructions to perform the service level agreement (SLA) analysis for one or more currently processing or scheduled processing jobs of a data center. Furthermore, the computer system comprises second program instructions to identify one or more candidate processing jobs for a schedule modification from amongst the one or more currently processing or scheduled processing jobs. Moreover, the computer system comprises third program instructions to perform the schedule modification for at least one of the one or more candidate processing jobs. The first, second and third program instructions are stored on the computer readable storage media for execution by the CPU via the computer readable memory.

DETAILED DESCRIPTION

The present invention generally relates to reducing heat dissipated within a data center, and more particularly, to a system and method for reducing heat dissipated within a data center through service level agreement analysis, and resultant reprioritization of jobs to maximize energy efficiency. By analyzing the service level agreements and application job schedules, the application workload of a data center may be scaled back (e.g., by not running the job at maximum speed) to reduce the heat and energy output within a data center while still meeting a SLA. For example, application jobs that have a lower priority (as indicated by the SLA) may be delayed for execution during known periods of maximum workload, when overall heat output may be a concern.

By implementing the present invention, unevenness (or burstiness) of jobs may be reduced so that periods of intense heat in the data center (which would require additional cooling, and thus, additional energy expenditure) are not unnecessarily produced. To reduce such burstiness, for example, low-priority jobs (which will increase the data center cooling requirements) may be run only when other jobs are not running (when the data center is cooler). In embodiments, this can include, for example, throttling back processor speeds of the computing resources performing the low-priority jobs or by delaying computations for the low-priority jobs until expected lower-utilized times.

By delaying these lower priority jobs, the present invention is operable to maintain the data center temperature as close to constant as possible. This smoothing of “heat loads” on the data center will result in lower data center cooling requirements and thus, will result in lower cooling costs.

Implementing the present invention allows for a data center to better utilize its resources by throttling the application workload managed by its service level agreement (SLA) target. An aim of the present invention is to conserve energy and computing power by recognizing the time of the application job, the SLA target for the job and the current environmental parameters, e.g., within the data center, so that lower priority jobs (e.g., as indicated by their respective SLAs) may, for example, be throttled-back to limit their energy usage but still meet their SLA targets.

By adhering to the SLA targets for the application workload, the application jobs within the data center may be, for example, delayed or otherwise throttled back to limit their energy usage and heat output. This may help reduce the heat output, control power consumption and heat dissipation within a data center by controlling the speed at which the jobs are processed. Using the SLAs as a guide, jobs may be delayed to run during times at which energy costs are lower (for example, at night) or when the environmental parameters of the data center are best suited for running their workload. By time-shifting, throttling and/or relocating workload based upon other computational workloads within a data center, the present invention is operable to smooth the heat characteristics within a given data center. Additionally, throttling back the processing power may reduce the costs to cool the data center and lengthen the mean-time to failure for critical systems that are affected by changes in heat, temperature and humidity.

System Environment

Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following:an electrical connection having one or more wires,a portable computer diskette,a hard disk,a random access memory (RAM),a read-only memory (ROM),an erasable programmable read-only memory (EPROM or Flash memory),an optical fiber,a portable compact disc read-only memory (CDROM),an optical storage device,a transmission media such as those supporting the Internet or an intranet, and/ora magnetic storage device.

The computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory.

In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.

FIG. 1shows an illustrative environment10for managing the processes in accordance with the invention. To this extent, the environment10includes a server or other computing system12that can perform the processes described herein. In particular, the server12includes a computing device14. The computing device14can be resident on a network infrastructure or computing device of a third party service provider (any of which is generally represented inFIG. 1).

The computing device14includes an historical analysis (HA) tool30, an environmental analysis (EA) tool35, a service level agreement (SLA) analysis tool40, and a scheduling tool45, which are operable to determine data center historical conditions, determine data center environmental conditions (including data center processing conditions), determine SLA requirements for processing jobs, and schedule processing jobs based on the output of the HA tool30, the EA tool35and the SLA analysis tool40, e.g., the processes described herein. The HA tool30, the EA tool35, the SLA analysis tool40and the scheduling tool45can be implemented as one or more program code in the program control44stored in memory22A, as separate or as combined single or multipurpose hardware modules. For example, the HA tool30, the EA tool35and/or the SLA analysis tool40can also be a separate hardware device, such as a server, each having its own processor(s) as discussed herein. The HA tool30, the EA tool35and/or the SLA analysis tool40can also be separate computing devices associated with one or more servers represented by server12ofFIG. 1.

The computing device14also includes a processor20, memory22A, an I/O interface24, and a bus26. The memory22A can include local memory employed during actual execution of program code, bulk storage, and cache memories which 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. In addition, the computing device includes random access memory (RAM), a read-only memory (ROM), and an operating system (O/S).

The computing device14is in communication with the external I/O device/resource28and the storage system22B. The I/O device28, for example, can comprise any device that enables an individual to interact with the computing device14or any device that enables the computing device14to communicate with one or more other computing devices using any type of communications link. The external I/O device/resource28may be for example, a handheld device, PDA, handset, keyboard etc. Moreover, as shown inFIG. 1and explained further below, the computing device14is in communication with one or more environmental sensors50.

In general, the processor20executes computer program code (e.g., program control44), which can be stored in the memory22A and/or storage system22B. Moreover, in accordance with aspects of the invention, the program control44(having program code) controls the HA tool30, the EA tool35, the SLA analysis tool40and the scheduling tool45. While executing the computer program code, the processor20can read and/or write data to/from memory22A, storage system22B, and/or I/O interface24. The program code executes the processes of the invention. The bus26provides a communications link between each of the components in the computing device14.

Historical Analysis Tool

In embodiments, the historical analysis (HA) tool30is operable to determine a historical analysis of the processing jobs in a data center. For example, with a reoccurring job, the HA tool30may determine how long this job typically requires based on, for example, historical or other empirical data. Additionally, in embodiments, the HA tool30may, for example, determine a percentage of overall data center processing capacity a job, e.g., a reoccurring job, may typically require. For example, the HA tool30may determine that a given transaction processing job typically only runs around forty percent of overall data center capacity, e.g., using a statistical analysis.

In embodiments, the HA tool30may store historical data center usage in a database, e.g., storage system22B (as shown inFIG. 1). Additionally, the percentages of overall data center processing capacity may be stored in a database, e.g., storage system22B. Moreover, the HA tool30may access the stored historical data center usage information, for example, in order to determine how long a reoccurring job typically requires. Additionally, the HA tool30may access the stored historical data center usage information to estimate processing requirements for at least one currently processing or scheduled processing job.

Environmental Analysis Tool

According to an aspect of the invention, the environmental analysis (EA) tool35may be used to perform an environmental analysis of a data center. An environmental analysis of a data center is performed to determine, for example, the hot and cold zones and catalog the current environmental factors (temperature by zone, humidity, analysis of airflow, etc.). More specifically, a plurality of environmental sensors50may be located throughout the data center. In embodiments, the plurality of environmental sensors50may include indoor temperature sensors, outdoor temperature sensors, airflow sensors and humidity sensors, amongst other environmental sensors known to those of skill in the art. Moreover, in embodiments, the environmental sensors50may be, for example, evenly spaced throughout the data center. In embodiments, the environmental sensors50may be located in known data center hot spots. For example, in embodiments, the environmental sensors50may be located on the ceiling of the data center, the floor of the data center and/or the walls of the data center (e.g., at differing elevations in the walls of the data center).

The EA tool35may receive real-time environmental, e.g., temperature and/or humidity, readings from the plurality of environmental sensors50. In embodiments, the EA tool35may determine average temperatures for regions of the data center based on the real-time temperature readings from the plurality of environmental sensors50. Moreover, based on the real-time temperature readings, the EA tool35can determine an environmental analysis of the data center. For example, the EA tool35can determine regions of the data center that are very hot, e.g., regions having a number of currently operating computer resources, and regions of the data center that are very cool, e.g., regions in which no computer resources are currently operating. The EA tool35can also determine air flow paths, e.g., hot air flow paths, based on the real-time temperature readings from the plurality of environmental sensors50. For example, the EA tool35can utilize the real-time temperature readings to determine, for example, upon activation of a computer resource, the flow path of hot air traveling from the computer resource in the data center.

The EA tool35may access a job schedule (e.g., stored in storage system22B), such that the EA tool35is aware of scheduled jobs for the different computing resources of the data center. Furthermore, the EA tool35may determine current percentages of overall data center processing capacity particular processing jobs are currently requiring, e.g., in real time. In embodiments, the EA tool35is also operable to determine environmental conditions of other data centers. For example, the EA tool35may receive environmental conditions of other data centers in order to determine whether one or more of the other data centers would be suitable for a processing job relocation, as discussed further below.

Service Level Agreement Analysis Tool

According to further aspects of the invention, the service level agreement (SLA) analysis tool40is operable to examine SLAs for the one or more processing jobs, e.g., currently processing jobs and/or pending jobs. SLAs for the data center processing jobs, e.g., currently processing jobs and/or pending jobs, may be stored in a database, e.g., storage system22B. The SLA analysis tool40is operable to access the database to examine the SLAs and to determine those jobs (or applications) that may, for example, be delayed, slowed and/or relocated while still meeting their respective SLAs. For example, if an application has an SLA target to finish within two hours, but would likely finish within one hour based on the current data center loading and CPU clock speed (as determined from the HA tool30and/or the EA tool35), then the SLA analysis tool40may determine that the application is a candidate for delay or slowing, e.g., CPU clock speed reduction. That is, continuing to execute the job may result in a short term temperature increase of the data center. Thus, as described further below, the infrastructure running the application job may be throttled back to complete the workload within the two hours, by slowing and/or delaying processing on the underlying IT infrastructure. The slowing and/or delaying ensures that maximized energy efficiencies and reduced ‘burstiness’ occurs during the job duration.

In other words, the present invention is operable to throttle back workload for lower priority job workloads to maximize the energy efficiencies within a data center. As opposed to running the application workload or job at full-speed and as fast as possible, as long as the SLAs are met, the present invention may throttle back the capacity to lower energy consumption while still maintaining the SLA targets for the application.

According to an aspect of the invention, the SLA analysis tool40is operable to check the application job SLAs to determine a scheduled completion time of the job. In embodiments, the SLA analysis tool40may determine the application job SLAs before execution of the application job. Additionally, in embodiments, the SLA analysis tool40is operable to determine the application job SLAs during execution, e.g., in real time.

According to an exemplary embodiment, the SLA analysis tool40may assign a numerical value, e.g., between 1-7 based on priority of the application's SLAs. Applications having a job priority value of, for example, between 4-7 may be candidates to participate in the throttling of workloads. For example, if an application has an SLA requiring job completion in ten hours when the job historically takes nine hours (e.g., based on historical data, for example, as determined by the HA tool30), the SLA analysis tool40may assign the application a numerical value (e.g., a throttle/delay numerical value) of 1, indicating that the application is not a candidate for the throttling of workloads. That is, with this example, there is not much excess time (9 hours−8 hours=1 hour) for delaying or slowing of this application.

However, with another example, an application may have an SLA indicating a required job completion in twenty-four hours when the job historically takes two hours (e.g., based on historical data, for example, as determined by the HA tool30). The SLA analysis tool40may assign the application a numerical value of 6, indicating that the application is a candidate for the throttling of workloads. Additionally, the SLA analysis tool40may rank the applications (e.g., currently processing and pending applications) according to their respective numerical value(s). Moreover, as discussed further below, in embodiments, the scheduling tool45may select those application candidates for, e.g., delaying, slowing and/or relocating, based on their respective numerical value(s), e.g., with those applications having the highest rank (e.g., 7 with the example set forth above) being selected for delaying, slowing and/or relocating prior to applications with lower numerical values.

In an exemplary non-limiting embodiment, the SLA analysis tool35may determine a numerical value for an application by determining the ratio of time required (as indicated by, for example, the HA tool30) to the time remaining (as indicated by the SLA). For example, with the first above example, the ratio is 9 hours/10 hours=0.90. With the second above example, the ratio is 2 hours/24 hours=0.083. Furthermore, the SLA analysis tool40may access a database, e.g., storage system22B (as shown inFIG. 1) containing predetermined ranges of ratios with their respective corresponding numerical values. The predetermined ranges of ratios may be modified and/or updated by, for example, a user or service provider, amongst others.

In a further embodiment, data centers located, for example, in different locations, climates and/or geographical regions, may have different energy costs at any given time. For example, if a data center is in a hot climate, e.g., on a particularly hot day, when energy demand, and thus, energy costs, are relatively high for that data center, cooling costs for that data center may be lowered by relocating one or more processing jobs to another data center. Thus, with a further aspect of the invention, the SLA analysis tool40may examine SLAs with regard to where (e.g., at what data center or where in the world) the job processing occurs. For example, a processing job application may have an SLA that requires that the processing job be performed at a particular data center. Alternatively, another processing job may have an SLA that may, for example, specify a particular geographic region or may not have any requirements with regard to the location of the job processing. Accordingly, the SLA analysis tool40is further operable to examine SLAs for any requirements with regard to where a particular processing job occurs.

Based on the examination, the SLA analysis tool40is also able to assign a numerical value based on whether a particular job may be processed at a different data center, while still meeting the SLA for that job processing application. Expanding on the immediately above example, the SLA analysis tool40may assign the first processing job a numerical value (e.g., a relocation numerical value) of 1, as this processing job must be performed at this particular data center, and thus is not a candidate for processing job relocation. Furthermore, the SLA analysis tool40may identify a processing job having an SLA indicating no job location constraints for the processing job. Thus, the SLA analysis tool40may assign this processing job a numerical value of 7, indicating that this job is an excellent candidate for job relocation, while still maintaining the processing job's SLAs.

By reviewing the SLAs of applications, e.g., currently processing and/or scheduled to be processed by a data center, the SLA analysis tool40can identify those applications (e.g., processing jobs) that, based on their respective SLAs, may be candidates for, e.g., delaying slowing and/or relocation. In embodiments, the SLA analysis tool40may forward the identified candidates to the scheduling tool45, described further below.

Scheduling Tool

According to aspects of the invention, the scheduling tool45is operable to maximize the energy efficiency of a data center by, for example, throttling back the application job workload as adjusted by its service level targets. The scheduling tool45may throttle back the application job workload for a data center by, for example, delaying, slowing and/or relocating one or more currently processing and/or scheduled jobs for the data center.

The scheduling tool45may determine whether to delay those lower priority jobs (e.g., as identified as the SLA analysis tool45) until high priority jobs have finished. Reducing concurrent data center processing will result in lower heat output of the data center, and consequently lower cooling requirements and costs.

Additionally, the scheduling tool45may determine whether to slow one or more jobs which has been identified as a candidate for slowing by the SLA analysis tool40(e.g., will complete ahead of schedule may be slowed by, e.g., reducing CPU clock speed, while the SLA associated with the lower priority job is not violated). Long running jobs that may be delayed without affecting an SLA may, for example, be slowed, or throttled back, through the use of slowing CPU clock speeds to reduce the energy requirements for the application workload. By the scheduling tool45reducing clock speeds of those jobs that will complete ahead of schedule (e.g., based on the HA tool30), lower heat output of the data center will result. For example, instead of running a job at maximum capacity for a short duration, the scheduling tool45may dictate that the application job may be extended for a longer period of time at a lower capacity in order to reduce the heat output and energy usage.

Furthermore, the scheduling tool45may determine whether to relocate jobs (e.g., determined by the SLA analysis tool40as candidates for relocation), e.g., to another region of the data center or another data center, in order to reduce the heat output and energy usage. In embodiments, the scheduling tool45may also utilize more efficient servers in the process or route workload to systems in a cooler part of the data center. Reducing concurrent data center processing, excessive processing on servers in a hotter region of a data center and/or processing on inefficient servers, for example, will result in lower heat output of the data center, and consequently lower cooling requirements and costs.

In embodiments, along with the application job priority, for example, in order to select one or more applications for relocation, e.g., within the data center and/or to another data center, the scheduling tool45may also account for the data center's average temperature, the location of the physical systems and/or the current power consumption. The scheduling tool45may review the application priority (as determined by the SLA analysis tool40), mean temperature of the data center environmental parameters (as determined by the EA tool35and/or environmental sensors50) and run time (as determined by the HA tool30) to determine if a particular job may be a candidate and participant in an application job workload throttling to reduce energy needs and costs.

According to further aspects of the invention, the scheduling tool45is operable to invoke application job workload throttling whenever possible based on maintaining respective SLAs of current and pending processing jobs. In additional embodiments, the scheduling tool45may invoke application job workload throttling based on real time job processing conditions (e.g., as determined by the EA tool35). For example, if the EA tool35determines that a predetermined, user-configurable threshold has been met or exceeded (e.g., a temperature threshold, a humidity threshold, a processing threshold and/or a power draw threshold, amongst other thresholds), the scheduling tool45may delay a lower priority batch job until the observed level drops below a predefined level. Additionally, for example, if the EA tool35determines a transaction job (e.g., an OLAP/OLTP job) is above some critical level, e.g., a given transaction processing job is running at 70% of capacity and it typically only runs around 40% capacity (e.g., as determined by the HA tool30), the scheduling tool45may delay a lower priority batch job until the transaction job drops below a predefined level.

Online analytical processing, or OLAP, is an approach to quickly answer multi-dimensional analytical queries. The typical applications of OLAP are, for example, in business reporting for sales, marketing, management reporting, business process management (BPM), budgeting and forecasting, financial reporting and similar areas. Online transaction processing, or OLTP, refers to a class of systems that facilitate and manage transaction-oriented applications, typically for data entry and retrieval transaction processing.

Exemplary Analysis

FIGS. 2 and 3show exemplary depictions of a long-running application job, e.g., that is about to be scheduled within the data center, processed at maximum capacity (as shown inFIG. 2) and at throttled capacity (as shown inFIG. 3) in accordance with aspects of the invention. Long-running jobs may be characterized, for example, by any application job that may take longer than 30 minutes to complete based on average run time. With this illustrative, non-limiting example, the job characteristics are as follows:Average Run Time: 5 hours (e.g., as determined by the HA tool30)SLA Target: 12 hours (e.g., as determined by the SLA analysis tool40)Application Priority—“5” (e.g., as determined by the SLA analysis tool40)Application Use Case: ETL (Extract, Transform, Load)Systems Involved: (Extract—Server1, Transform—Server2, Load—Server3)

As shown inFIG. 2, if the job (e.g., application “A”) is executed at maximum capacity, the job will complete in 5 hours. That is, two hours on server1operating at 100% capacity, one and one-half hours on server2operating at 100% capacity and one and one-half hours on server3operating at 100% capacity. As should be understood, processing the job at maximum capacity generates excessive heat, which requires additional cooling capacity, and thus, increased cooling costs.

As shown inFIG. 3, when the job (e.g., application “A”) is executed at throttled capacity, in accordance with aspects of the invention, the job will complete in 11 hours. As can be observed, completing the job in 11 hours will still be in compliance with the SLA, which requires job completion within 12 hours. Thus, the scheduling tool45schedules the extract process to run for four hours on server1operating at 35% capacity, the transform process to run for three hours on server2operating at 40% capacity and the load process to run for four hours on server3operating at 20% capacity. As should be understood, by executing the job (e.g., application “A”) at throttled capacity, excessive heat, which requires additional cooling capacity, is avoided, thus decreasing cooling costs.

Based on the criteria outlined above, the job is executed at a reduced capacity and will be finished in 11 hours versus the previous 5 hours. At the end of 11 hours, the application job is completed. Using the reduction of CPU and heat capacity, the application job has improved the energy efficiencies of the data center and still meets the SLA targets. Calculating the energy improvements and monitoring the environmental factors of the data center, the application job may determine the energy improvements and cost savings by throttling back the infrastructure resources. By time-shifting, throttling and/or relocating workload based upon other computational workloads within a data center, the present invention is operable to smooth the heat characteristics within a given data center.

Flow Diagrams

FIGS. 4 and 5show exemplary flows for performing aspects of the present invention. The steps ofFIGS. 4 and 5may be implemented in the environment ofFIG. 1, for example. The flow diagrams may equally represent high-level block diagrams of the invention. The flowcharts and/or block diagrams inFIGS. 4 and 5illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. Each block of each flowchart, and combinations of the flowchart illustrations can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions and/or software, as described above. Moreover, the steps of the flow diagram may be implemented and executed from either a server, in a client server relationship, or they may run on a user workstation with operative information conveyed to the user workstation. In an embodiment, the software elements include firmware, resident software, microcode, etc.

FIG. 4shows an exemplary flow400in accordance with aspects of the invention. At step405, the HA tool performs a historical analysis of the data center. In embodiments, the historical analysis may include reviews of historical application processing and/or determinations of typical processing times for applications, amongst other analyses. At step410, the EA tool performs an environmental analysis of the data center. In embodiments, the environmental analysis may include a determination of current environmental conditions, including temperature levels, humidity levels, processing levels, hot spot locations, amongst other environmental conditions. At step415, the EA tool reviews the job scheduler data (e.g., accesses a database containing the job scheduler data) to determine currently scheduled (e.g., upcoming) processing jobs. While steps405,410and415have been shown as sequential steps, the invention contemplates that these steps may occur concurrently and constantly, updating, for example, in real time.

At step420, the SLA analysis tool performs a service level agreement (SLA) analysis for one or more currently processing and/or upcoming jobs. In embodiments, the SLA analysis may include a determination of SLAs for the one or more currently processing and/or upcoming jobs, which may include agreements pertaining to, for example, time requirements, location requirements and/or certification requirements, amongst other agreements. At optional step425(as indicated by the dashed lines), the SLA analysis tool assigns a numerical value to one or more currently processing and/or upcoming jobs. In embodiments, the numerical value may be, for example, a throttle/delay numerical value and/or a relocation numerical value. At step430, the SLA analysis tool identifies one or more candidate job processing applications for, e.g., delay, slowing and/or relocation based on the SLA analysis.

At step435, the scheduling tool modifies the job workload for a data center by modifying the schedule of one or more candidate application processing jobs, e.g., delay, slowing and/or relocating the job. Subsequent to step435, the process returns to step405.

FIG. 5shows an exemplary flow500in accordance with aspects of the invention. Steps505-530ofFIG. 5correspond to steps405-430ofFIG. 4discussed above. At step535, the scheduling tool determines whether current conditions are suitable for an application workload modification. In embodiments, the scheduling tool may determine that current conditions are suitable for an application workload modification, for example, based on current data center environmental conditions, e.g., excessive temperature, local hot spots, large power draws and/or large current processing loads, amongst other environmental conditions (for example, levels beyond one or more user-configurable thresholds).

If, at step535, the scheduling tool determines that the current conditions are not suitable for an application job workload modification, the process returns to step505. If, at step535, the scheduling tool determines that the current conditions are suitable for an application job workload modification, at step540, the scheduling tool modifies the job workload for a data center by modifying the schedule of one or more candidate application processing jobs, e.g., delay, slowing and/or relocating the job. Subsequent to step540, the process returns to step505.