# Patent

## Title
Estimating power consumption for a target host

## Abstract

A method for estimating power consumption by a target host involves estimating a per-workload in-scenario utilization function of time for each workload running on said host in said what-if scenario so as to yield per-workload in-scenario utilization functions of time. The utilization functions are aggregated to yield a target host utilization function of time. The target host utilization function of time is converted to a host power-consumption function of time.

## Background
This patent document claims the benefit of the filing date of 2008 Aug. 14 filing date of U.S. Provisional Application 61/089,040.


BACKGROUND
With energy costs rising and computer systems demanding more power, power-consumption has become an increasingly important consideration in planning data centers. Some large installations must address infrastructure limits on the amount of power that can be delivered to a computer system without causing a problem, e.g., tripping a circuit breaker. Accordingly, power ratings for computers and their components can be taken into account when allocating workloads to hosts for running those workloads.



BRIEF DESCRIPTION OF THE DRAWINGS
The figures depict implementations/embodiments of the invention and not the invention itself.
FIG. 1 is a schematic block diagram of a system in accordance with an embodiment of the invention.
FIG. 2 is a flow chart of a method in accordance with an embodiment of the invention.



DETAILED DESCRIPTION
In the course of the present invention, it was recognized that using power ratings for computers and components often results in an inaccurate estimation of power consumption for a system configuration under consideration. Most of the time, computers and components operate at power levels substantially below their maximum ratings.
The present invention provides an accurate estimation of power-consumption by a proposed “what-if” host computer configuration. This estimate is generated by aggregating utilization functions of time for individual workloads and then converting the resulting aggregate utilization function of time to a power-consumption function of time for a target host. The power-consumption function of time can be statistically analyzed to provide a variety of possible power consumption statistics, such as average power consumption, peak power consumption, 90% peak power consumption, etc. This approach not only takes the actual requirements of individual workloads into account, but also takes into account packing efficiencies achieved when workload demands peak at different times (e.g., night versus day).
In accordance with an embodiment of the invention, a computer system AP1 includes a data center 11 and a console 13 through which a human administrator 15 can manage data center AP1. Data center 11 includes a management server 17 and managed workload hosts 21 and 23. These systems communicate over a network 25, while console 13 communicates with data center 11 over the Internet 26, or corporate wide-area network (WAN), or a local-area network (LAN). In an example described hereinbelow, host 21 is the source or original of a migrant workload, while host 23 is its target or destination. Accordingly, herein, host 21 is referred to as “source host 21” and host 23 is referred to as “target host 23”.
Source host 21 includes a per-workload utilization monitor 27, which indicates the contribution of each workload to utilization of computing resources on source host 21. Utilization monitor 27 tracks processor utilization on a per-workload basis. At the time represented in FIG. 1, workloads WA, WB, and WC are running on source host 21. Accordingly, utilization monitor 27 provides individual utilization histories UA(t), UB(t), and UC(t) respectively for workloads WA, WB, and WC.
Target host 23 includes a utilization monitor 29 and a power monitor 31. At the time represented in FIG. 1, workloads WD and WE are running on target host 23. Utilization monitor 29 provides per-workload utilization histories, e.g., utilization histories UD(t) and UE(t) respectively for workloads WD and WE. Utilization monitor 29 also provides an overall utilization history U(t) for target host 23. Power monitor 31 provides an overall power-consumption history P(t) for target host 23. (Utilization monitor 27 also provides an overall utilization history for source host 21, which also includes a power monitor that provides an overall power consumption history for source host 21 so that the roles of source host 21 and target host 23 can be reversed.)
In the illustrated embodiment, workloads WA-WE are virtual machine guests, running in a virtual machine host on source host 21 and target host 23, each with their own applications, operating systems and management agents. Hosts 21 and 23 are hardware servers plus a host operating system for virtual-machine guests, e.g., workloads WA-WE. Other embodiments of the invention include different types of workloads, e.g., each of plural applications running on a common operating system can be considered a workload that can be migrated independently of other applications running on the same operating system. In the illustrated embodiment, the utilization is processor utilization, the percentage of processor cycles actually doing work. Processor utilization has been shown to correlate well with power consumption of a system as a whole. In other embodiments, utilization of other components, e.g., storage media and communications devices, can be monitored instead of or in addition to processors.
Management server 17 includes processors 33, communications devices 35, and computer-readable storage media 37, a manufacture for storing physical manifestations of data and instructions for manipulation and execution by processors 33. These programs include a node manager 40, which includes a data collector 41, a utilization-power calibrator 43, a utilization projector 45, a utilization converter 47, a utilization aggregator 49, utilization-to-power converter 51, a statistical analyzer 53, a user interface 55, and a web server 57. In addition, node manager 40 can include a power-consumption estimation model 59, as explained further below.
Node manager 40, directly or by virtue of its components 41-57, manages hosts 21 and 23 and workloads WA-WE. In particular, node manager 40 provides for adding, deleting, and migrating workloads to, from, and between hosts 21 and 23. This functionality is provided to administrator 15 through a user interface 55, which is made available to a console 13 via web server 57. The what-if configuration represented at graphical representation 23i of host 23 depicts the simulated migrations of workloads from, and between hosts 21 and 23, that is the desired state for target 23.
Console 13 includes a processor 61, communications devices 63, and a manufacture in the form of computer-readable storage media 65 encoded with data and programs computer-executable instructions. In particular, media 65 can store a world-wide-web browser 67 and a model 70 of data center 11. Console 13 includes a touchscreen display 71. FIG. 1 represents a state after user 15 has manipulated workload icons to represent a what-if configuration 73 for target host 23. In what-if configuration 73, host 23 runs workloads WB-WD. Workload WE has been deleted from target host 23, and workloads WB and WC have been migrated from source host 21 to target host 23. Workload WA remains on source host 21.
System AP1 provides for projecting a power-consumption function U′′(t) of time for configuration 73 using a method ME1, flow charted in FIG. 2. At method segment M1, monitors 27, 29, and 31 track per-workload utilization, overall host utilization, and overall-host power consumption. Monitors 27, 29, and 31 provide and data collector 41 collects utilization and power histories. In particular: 1) utilization monitor 27 provides per-workload utilization histories UB(t) and UC(t) for workloads WB and WC in their pre-migration location on source host 21; 2) utilization monitor 29 provides a pre-migration per-workload utilization history UD(t) for workload WD on target host 23; 3) utilization monitor 29 provides a utilization history U(t) for target host 23; and 4) power monitor 31 provides a power history P(t) for target host 23. Other histories are provided as well, but are not used in projecting power-consumption for the configuration of host 23 represented at 23i. 
At method segment M2, utilization-to-power calibrator 43 determines a function P(U) for calculating power consumption by target host 23 as a function of utilization by host 23. This calculation can involve correlating utilization and power-consumption histories for target host 23. More specifically, a linear regression can be applied to the histories. For hosts without suitable historical data, a power-consumption function of utilization can be obtained by linearly interpolating between minimum and maximum power-consumption specifications for host 23.
At method segment M3, utilization projector 45 projects utilization functions of time for the workloads. In particular, utilization projector 45 detects patterns and trends in per-workload utilization histories and uses them to project respective utilization functions of time. Alternatively, utilization projector 45 can have a user specified growth forecast for each utilization metric including CPU, memory, network, and disk, etc. Specifically, utilization projector 45 determines utilization functions UB′(t), UC′(t), and UD′(t), for workloads WA-WC from histories UB(t), UC(t), and UD(t). Of course, information other than the histories can be used to help project utilization functions of time.
At method segment M4, administrator 15 specifies a what-if reconfiguration of data center 11 to be considered for implementation. To this end, administrator 15 interacts with console 13, which in turn interacts with management server 17. Administrator 15 manipulates objects on touchscreen display 71 to generate new configuration 73 for target host 23. In the illustrated case, workload WE is deleted or migrated to host 21, while workloads WE and WC migrate from source host 21 to target host 23, joining still-resident workload WD.
Method ME1 provides for alternative modes for implementing method segment M4, as well as method segments M5-M8. In a basic mode, administrator 15 is basically interacting with management server 17, with console 13 relegated to the role of a conduit for the interactions. In an enhanced mode, model 59 is copied to provide model 70, which is downloaded to console 13. In this case, administrator 15 interacts with model 70 for the remainder of method ME1. The enhanced approach tends to be more responsive and minimizes network traffic. However, it requires a java or other runtime environment that not all browsers have. The basic mode accommodates browsers with more basic feature sets.
At method segment M5, utilization converter 47 or model 70 projects post-migration utilization functions UB′(t). UC′(t), and UD′(t) for workloads WB-WD. If source host 21 and target host 23 have different numbers and/or types of processors, it is likely that a workload will represent different utilization percentages on the two hosts. Thus, some conversion is required to obtain a post-migration utilization function of time for a migrant workload. In the case of still-resident workload WB no conversion is required, UB′(t)=UB(t). However, in the case of migrant workloads WC and WD, a conversion is required. Typically a linear coefficient will do such that UC′(t)−k*UC(t) and UD′(t)−k*UD(t). The same coefficient is applied to both workloads WC and WD since they are from the same source host. For workloads from different source hosts, different conversion coefficients would generally be required.
At method segment M6, utilization aggregator 49 or model 70 projects target host utilization function U′′(t) of time by summing individual workload utilizations UB′(t), UC′(t), and UD′ (t). Since time functions are being added, the sum of the peaks is typically higher than the peak of the sums. Thus, workloads can be more efficiently combined using the time functions rather than a constant manufacturer specification.
At method segment M7, utilization-to-power converter 51 or model 70 projects post-migration power consumption P′′(t), e.g., by converting post-migration utilization function U′′(t) and using power consumption function P′(U) determined at method segment M2.
At method segment M8, administrator 15 requests a statistic characterizing power consumption function P′′(t). In response, statistical analyzer 53 or model 70 evaluates post-migration power-consumption function P′′(t) to yield one or more statistics such as average power Pavg, peak power Ppeak, or some percentage of peak power.
At method segment M9, console 13 presents the request statistic or statistics on display 71 for administrator 15 to read. Steps M4-M9 can be iterated to evaluate alternative plans for reconfiguring data center 11. A best reconfiguration can be selected based on power consumption alone or based on power consumption and other parameters, such as utilization. These and other variations upon and modifications to the illustrated embodiment are provided by the present invention, the scope of which is defined by the following

## Claims

1. A process comprising:
tracking Ui(t) for each of N virtual-machine guests VMGi, where Ui(t) corresponds to utilization over time of a pre-migration host by an ith virtual-machine guest prior to migration to a target host, where i is an index ranging from 1 to N, and t is time;
projecting Ui′(t) for each VMGi based at least in part on Ui(t), where Ui′(t) is a projected utilization over time by VMGi of the respective pre-migration host;
projecting Ui′′(t) for each VMGi, based at least in part on Ui(t), where Ui′′(t) is a projected utilization over time by VMGi of the target host, each Ui′′(t) having a respective peak value Vi;
calculating UT′′(t) at least in part by combining Ui′′(t) over i, where UT′′(t) is a projected utilization over time of the target host, UT′′(t) having a peak value VT, the calculating being such that the sum of the peak values Vi is greater than the peak value VT of the sum; and
projecting P′′(t) based at least in part on UT′′(t), where P′′(t) is a projected power consumption for the target host for a scenario in which all VMGi are hosted by the target host.

2. A process as recited in claim 1 further comprising:
tracking UT(t) and PT(t), where UT(t) is utilization over time of the target host, and where PT(t) is a power-consumption over time of the target host; and
determining P′(U), based at least in part on UT(t) and PT(t), where P′(U) is a power-consumption function of utilization for the target host, wherein the projecting P′′(t) being based, at least in part, according to P′(UT′′(t)).

3. A process as recited in claim 2 further comprising detecting patterns and trends in the Ui(t), the projecting Ui′(t) being based at least in part on the detected patterns and trends.

4. A process as recited in claim 3 further comprising calculating a time-independent statistic for the scenario based on P′′(t).

5. A process as recited in claim 2 wherein the statistic is an average or a peak value for P′′(t).

6. A system comprising media encoded with code that, when executed by a processor, implements a process including:
tracking Ui(t) for each of N virtual-machine guests VMGi, where Ui(t) corresponds to utilization over time of a pre-migration host by an ith virtual-machine guest prior to migration to a target host, where i is an index ranging from 1 to N, and t is time;
projecting Ui′(t) for each VMGi based at least in part on Ui(t), where Ui′(t) is a projected utilization over time by VMGi of the respective pre-migration host;
projecting Ui′′(t) for each VMGi, based at least in part on Ui′(t), where Ui′′(t) is a projected utilization over time by VMGi of the target host, each Ui′′(t) having a respective peak value Vi;
calculating UT′′(t) at least in part by combining Ui′′(t) over i, where UT′′(t) is a projected utilization over time of the target host, UT′′(t) having a peak value VT, the calculating being such that the sum of the peak values Vi is greater than the peak value VT of the sum; and
projecting P′′(t) based at least in part on UT′′(t), where P′′(t) is a projected power consumption for the target host for a scenario in which all VMGi are hosted by the target host.

7. A process as recited in claim 6 further comprising detecting patterns and trends in the Ui(t), the projecting Ui′(t) being based at least in part on the detected patterns and trends.

8. A system as recited in claim 6 further comprising:
tracking UT(t) and PT(t), where UT(t) is utilization over time of the target host, and where PT(t) is a power-consumption over time of the target host; and
determining P′(U), based at least in part on UT(t) and PT(t), where P′(U) is a power-consumption function of utilization for the target host, wherein the projecting P′′(t) being based, at least in part, according to P′(UT′′(t)).

9. A system as recited in claim 8 further comprising calculating time-independent statistic for the scenario based on P′′(t).

10. A system as recited in claim 9 wherein the statistic is an average or a peak value for P′′(t).

11. A system as recited in claim 6 further comprising the processor.