U.S. patent application number 12/835077 was filed with the patent office on 2010-11-04 for method, computing system, and computer program for reducing power consumption of a computing system by relocating jobs and deactivating idle servers.
Invention is credited to Keisuke Hatasaki, Takao Nakajima, Yoshifumi Takamoto.
Application Number | 20100281286 12/835077 |
Document ID | / |
Family ID | 38713292 |
Filed Date | 2010-11-04 |
United States Patent
Application |
20100281286 |
Kind Code |
A1 |
Hatasaki; Keisuke ; et
al. |
November 4, 2010 |
METHOD, COMPUTING SYSTEM, AND COMPUTER PROGRAM FOR REDUCING POWER
CONSUMPTION OF A COMPUTING SYSTEM BY RELOCATING JOBS AND
DEACTIVATING IDLE SERVERS
Abstract
In a computing system where multiple servers are connected
through a network and one or more jobs are run, a power reduction
facility of a supervisory server relocates jobs according to
predetermined conditions, thereby reducing the amount of power
consumed by the computing system. For relocating the jobs, the
power reduction facility obtains server-related information such as
the power properties of the servers constituting the computing
system and job-related information such as performance requirements
for the jobs which are run in the computing system, and searches
for one or more jobs to be relocated and destination servers, based
on these server-related information and job-related information, to
the extent that the performance requirements for each job are
fulfilled. Based on the search results, the jobs are relocated to
the destination servers, and servers on which no job is running, as
a result of the relocation, are powered off.
Inventors: |
Hatasaki; Keisuke;
(Kawasaki, JP) ; Nakajima; Takao; (Yokohama,
JP) ; Takamoto; Yoshifumi; (Kokubunji, JP) |
Correspondence
Address: |
BRUNDIDGE & STANGER, P.C.
2318 MILL ROAD, SUITE 1020
ALEXANDRIA
VA
22314
US
|
Family ID: |
38713292 |
Appl. No.: |
12/835077 |
Filed: |
July 13, 2010 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11522374 |
Sep 18, 2006 |
7783909 |
|
|
12835077 |
|
|
|
|
Current U.S.
Class: |
713/324 |
Current CPC
Class: |
Y02D 10/24 20180101;
G06F 9/5094 20130101; Y02D 10/32 20180101; G06F 1/329 20130101;
G06F 1/3203 20130101; G06F 9/5088 20130101; Y02D 10/22 20180101;
Y02D 10/00 20180101 |
Class at
Publication: |
713/324 |
International
Class: |
G06F 1/26 20060101
G06F001/26 |
Foreign Application Data
Date |
Code |
Application Number |
May 22, 2006 |
JP |
2006-141426 |
Claims
1. A method for reducing power consumption of a computing system
having a plurality of servers by relocating jobs and deactivating
idle servers, the method comprising: maintaining server-related
information including power properties of each of the servers
constituting the computing system; maintaining job-related
information including performance requirements for each of the jobs
which are run in the computing system; searching for one or more
jobs to be relocated and one or more destination servers to which
the one or more jobs are relocated, based on the server-related
information and the job-related information, to the extent that the
performance requirements for each of the jobs are fulfilled;
relocating the one of more jobs selected to the one or more
destination servers selected; and turning off a power supply of one
or more of the plurality of servers on which the power supply is
powered on and no job is running.
2. The method according to claim 1, wherein each of the plurality
of servers has a power property measuring program for measuring the
power properties, and wherein in the step of maintaining the
server-related information, maintaining performance values and
associated power consumptions of the plurality of servers, as
measured by operating the power property measuring program.
3. The method according to claim 1, further comprising: obtaining
the server-related information including power properties of each
of the servers constituting the computing system and the
job-related information including performance requirements for each
of the jobs which are run in the computing system, in response to
detecting an event that involves at least one of a change in
configuration of the computing system, a change in power supply
environment, and a change in the power consumption of each or all
of the servers.
4. The method according to claim 1, further comprising: in the
searching step, calculating a power consumption efficiency for the
one or more destination servers, based on performance requirements
for all jobs to be run and the job to be relocated to the one or
more destination servers.
5. The method according to claim 1, further comprising: in the
searching step, searching for the one or more jobs to be relocated,
based on priority of job relocation given to each of the jobs; and
preferentially selecting the one having a high priority.
6. The method according to claim 1, further comprising: in the
searching step, searching for the one or more jobs to be relocated
and the one or more destination servers, based on at least one of
search policies, each of the search policies stating relation of
servers and jobs, which can be defined by a user.
7. The method according to claim 1, further comprising: comparing a
power consumption after the job relocation in the relocating step
with the one before the job relocation; and returning the relocated
jobs when the power consumption after the job relocation is larger
than the one before the job relocation.
8. A supervisory server for reducing power consumption of a
computing system having a plurality of servers by relocating jobs
and deactivating idle servers, the supervisory server comprising: a
memory unit, wherein the memory unit maintains server-related
information including power properties of each of the servers
constituting the computing system, and maintains job-related
information including performance requirements for each of the jobs
which are run in the computing system; and a processing unit,
wherein the processing unit searches for one or more jobs to be
relocated and one or more destination servers to which the one or
more jobs are relocated, based on the server-related information
and the job-related information, to the extent that the performance
requirements for each of the jobs are fulfilled, relocates the one
or more jobs selected to the one or more destination servers
selected, searches for one or more of the plurality of servers, on
which no job is running and a power supply is powered on, and turns
off the power supply of the one or more of the plurality of servers
on which no job is running.
9. The supervisory server according to claim 8, wherein each of the
plurality of servers has a power property measuring program for
measuring the power properties, and wherein the server-related
information maintained in the memory unit is measured by the power
property measuring program.
10. The supervisory server according to claim 8, wherein the
processing unit obtains the server-related information and the
job-related information, in response to detecting an event that
involves at least one of a change in the configuration of the
computing system, a change in power supply environment, and a
change in the power consumption of each or all of the servers.
11. The supervisory server according to claim 8, wherein the
processing unit compares a power consumption after the job
relocation in the relocating step with the one before the job
relocation, and returns the relocated jobs when the power
consumption after the job relocation is larger than the one before
the job relocation.
12. A system having a plurality of servers for reducing power
consumption by relocating jobs and deactivating idle servers, the
system comprising: a plurality of servers, each of the servers
running one or more jobs; and a supervisory server, which maintains
server-related information including power properties of each of
the servers, and job-related information including performance
requirements for each of the jobs which are run in the system,
searches for one or more jobs to be relocated and one or more
destination servers to which the one or more jobs are relocated,
based on the server-related information and the job-related
information, to the extent that the performance requirements for
each of the jobs are fulfilled, relocates the one or more jobs
selected to the one or more destination servers selected, and turns
off a power supply of the one or more of the plurality of servers
on which the power supply is powered on and no job is running.
13. The system according to claim 12, wherein each of the plurality
of servers has a power property measuring program for measuring the
power properties, and wherein the supervisory server maintains the
server-related information, and performance values and associated
power consumptions of the plurality of servers, as measured by
operating the power property measuring program.
14. The system according to claim 12, wherein the supervisory
server obtains the server-related information and the job-related
information, in response to detecting an event that involves at
least one of a change in the configuration of the computing system,
a change in power supply environment, and a change in the power
consumption of each or all of the servers.
15. The system according to claim 12, wherein the supervisory
server compares a power consumption after the job relocation in the
relocating step with the one before the job relocation, and returns
the relocated jobs when the power consumption after the job
relocation is larger than the one before the job relocation.
16. A computer-readable storage medium having tangibly embodied
thereon a program for reducing the power consumption of a computing
system having a plurality of servers, the program being executed in
the computing system, the program causing at least one of the
plurality of servers to perform the steps of: maintaining
server-related information including power properties of each of
the servers constituting the computing system; maintaining
job-related information including performance requirements for each
of the jobs which are run in the computing system; searching for
one or more jobs to be relocated and one or more destination
servers to which the one or more jobs are relocated, based on the
server-related information and the job-related information, to the
extent that the performance requirements for each of the jobs are
fulfilled; relocating the one or more jobs selected to the one or
more destination servers selected; and turning off a power supply
of the one or more of the plurality of servers on which no job is
running, and the power supply is powered on.
17. The computer-readable storage medium according to claim 16,
wherein the server-related information maintained is measured by a
power property measuring program for measuring the power
properties, which operates in each of the plurality of servers.
18. The computer-readable storage medium according to claim 16, the
program causing at least one of the plurality of servers to perform
the further step of: obtaining the server-related information and
the job-related information, in response to detect one of events
that involves at least one of change in the configuration of the
computing system, a change in power supply environment, and a
change in the power consumption of each or all of the servers.
19. The computer-readable storage medium according to claim 16, the
program causing at least one of the plurality of servers to further
perform the steps of: comparing a power consumption after the job
relocation in the relocating step with the one before the job
relocation; and returning the relocated jobs when the power
consumption after the job relocation is larger than the one before
the job relocation.
Description
CLAIM OF PRIORITY
[0001] The present application claims priority from Japanese
application serial JP 2006-141426 filed on May 22, 2006 and is a
continuation application of U.S. application Ser. No. 11/522,374
filed on Sep. 18, 2006, the contents of which are hereby
incorporated by reference into this application.
BACKGROUND OF THE INVENTION
[0002] The present invention relates to a technique for reducing
the power consumption of a computing system.
[0003] For information processing equipment such as servers which
constitute a computing system, the amount of power consumed by each
server increases with enhanced server performance. Further, the use
of high-density information processing systems such as blade
servers requires a huge amount of power to be distributed to them
at a high density. Thus, the cost required for supplying power to
such information processing equipment and/or systems and cooling
them increases more and more.
[0004] In view hereof, in a distributed processing system such as a
grid computing where computer processing tasks of assumed amounts
of computing are allocated to and executed by systems which reside
in a plurality of areas respectively, there is a method for
avoiding a high power demand localized in an area making it hard to
supply power to the system in that area by leveling the power loads
used in each area, for example, as described in Japanese Patent
Laid-Open No. 2005-63066.
[0005] There is also a technique for reducing the power consumption
of a server by decreasing the operating frequency of its CPU and
decreasing the CPU performance, which is provided by a CPU (Central
Processing Unit) manufacturer such as Intel Corporation.
SUMMARY OF THE INVENTION
[0006] However, the technique as described above allows for
reducing the power consumption of a computing system in an area,
but cannot reduce the power consumption of the whole computing
system covering all the areas and, therefore, cannot reduce the
cost required for supplying power to the whole computing
system.
[0007] However, by the technique for power consumption reduction by
decreasing the CPU operating frequency, the server performance is
decreased, which results in a decrease in the performance of a job
being run on the server. This may result in that performance
requirements for the job such as Service Level Agreement (SLA)
required of the computing system by a user to run the job required
by a user cannot be fulfilled.
[0008] An object of the present invention is to provide a method, a
system and a computer program for reducing the power consumption of
a computing system, the method, the system and the computer program
capable of reducing the power consumed by the computing system in
which a plurality of servers are connected by a network and one or
more jobs are run.
[0009] To achieve the above object, an aspect of the present
invention provides a method for reducing the power consumption of a
computing system where a plurality of servers are connected via a
network and one or more jobs are run, the method comprising the
following steps which are executed by at least one of the plurality
of servers: obtaining server-related information including power
properties of each of the servers constituting the computing
system; obtaining job-related information including performance
requirements for each of the jobs which are run in the computing
system; searching for one or more jobs to be relocated and one or
more destination servers, based on these server-related information
job-related information, to the extent that the performance
requirements for each job are fulfilled; relocating one or more
jobs selected to be relocated through the search to one or more
destination servers selected through the search; and controlling
power supply to turn off the power supply of one or more servers on
which no job is running in consequence of the relocation, if such a
server exists. Another aspect of the invention provides a system
for reducing the power consumption thereof and a computer program
for reducing the power consumption.
[0010] Terms used herein are described. A server refers to all
system components having a minimum configuration with at least a
processor (CPU) and a storage device (memory) (i.e., a
computer-readable storage medium) and capable of executing a job.
Among the servers, a supervisory server refers to a special server
on which only a power reduction program is executed and for which
the method for reducing power consumption is not applied. A job is
a generic term used to refer to programs which perform processing
in response to an input and returns an output. The program for
reducing the power consumption, which will be described by using a
concrete example, is not included in the jobs.
[0011] In a computing system where a plurality of servers are
connected via a network and one or more jobs are run, the method
according to the invention searches for one or more jobs to be
relocated and one or more destination servers, based on the power
properties of the servers and the performance requirements for each
job, to the extent that the performance requirements for each job
are fulfilled, relocates the one or more jobs, and shuts off the
power supply of one or more servers on which no job is running.
Thus, it is possible to reduce the power consumed, while complying
with the SLA of the computing system.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 shows an overall structural diagram of a computing
system according to a first embodiment of the invention.
[0013] FIG. 2 shows a structural diagram of each server 111-114 in
the first embodiment.
[0014] FIG. 3 shows a structural diagram of a supervisory server
101 in the first embodiment.
[0015] FIG. 4 shows a structural diagram of a power reduction
facility 110 in the first embodiment.
[0016] FIG. 5 illustrates a server table 410 in the first
embodiment.
[0017] FIG. 6 illustrates a job table 411 in the first
embodiment.
[0018] FIG. 7 shows a flowchart of operation of the first
embodiment.
[0019] FIG. 8 shows a sub-flowchart of a server properties
obtaining function in the first embodiment.
[0020] FIG. 9 illustrates a server information input screen in the
first embodiment.
[0021] FIG. 10 illustrates a server table 410A to which a column
for power consumption per unit of performance of a server was
added.
[0022] FIG. 11 shows a sub-flowchart of a job properties obtaining
function 405 in the first embodiment.
[0023] FIG. 12 shows a sub-flowchart of a search function 402 in
the first embodiment.
[0024] FIG. 13 shows a sub-flowchart of a job relocating function
403 in the first embodiment.
[0025] FIG. 14 illustrates a job relocation confirmation screen
1301 in the first embodiment.
[0026] FIG. 15 shows a schematic diagram explaining an example of a
job relocation method in the first embodiment.
[0027] FIG. 16 shows a schematic diagram explaining another example
of a job relocation method in the first embodiment.
[0028] FIG. 17 shows a schematic diagram explaining another example
of a job relocation method in the first embodiment.
[0029] FIG. 18 shows a schematic diagram explaining another example
of a job relocation method in the first embodiment.
[0030] FIG. 19 shows a sub-flowchart of a server power supply
control function 405 in the first embodiment.
[0031] FIG. 20 shows a structural diagram of the power reduction
facility in a second embodiment of the invention.
[0032] FIG. 21 shows an overall structural diagram of a computing
system according to a third embodiment of the invention.
[0033] FIG. 22 shows a structural diagram of a server 200A in the
third embodiment.
[0034] FIG. 23 shows a sub-flowchart of a power property measuring
function 2101 in the third embodiment.
[0035] FIG. 24 illustrates a sever table 410B in the third
embodiment.
[0036] FIG. 25 illustrates a job table 411A in a fourth embodiment
of the invention.
[0037] FIG. 26 shows an overall system structural diagram in the
fourth embodiment.
[0038] FIG. 27 illustrates a job table 411B in a fifth embodiment
of the invention.
[0039] FIG. 28 shows a structural diagram of the power reduction
facility 110B in a sixth embodiment of the invention.
[0040] FIG. 29 illustrates a search policy table 412 in the sixth
embodiment.
[0041] FIG. 30 shows a sub-flowchart of the search function in the
sixth embodiment.
[0042] FIG. 31 shows a structural diagram of the power reduction
facility 110C in a seventh embodiment of the invention.
[0043] FIG. 32 shows a flowchart of operation of the seventh
embodiment.
[0044] FIG. 33 shows a sub-flowchart of a verification function
3201 in the seventh embodiment.
[0045] FIG. 34 shows a sub-flowchart of the server power supply
control function 404A in an eighth embodiment of the invention.
[0046] FIG. 35 shows an overall system structural diagram according
to a ninth embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
Embodiment 1
[0047] In the following, illustrative embodiments of the present
invention will be described with the drawings.
[0048] FIG. 1 shows an overall structural diagram of a computing
system according to a first embodiment of the present invention.
The computing system of the present embodiment comprises a
plurality of servers 111-114 and a supervisory server 101. The
servers 111-114 and the supervisory server are interconnected
through a network 102. On the servers 111-114, jobs 120-124 are
running. However, a server with no job running on it may exist like
a server 114. In the figure, the jobs 120-124 are particularly
appended with identifiers like Job a and Job b, if their contents
are different.
[0049] Here, the jobs 120-124 are generic terms used to refer to
programs which perform processing in response to an input and
returns an output. A job may be, for example, an application
program, EJB (registered trademark) application, Java (registered
trademark) application, and one of processes running in an OS
(Operating System). Furthermore, all programs such as an OS,
drivers, middleware, and applications running together on a server
may be regarded as a single job. Alternatively, by means of server
virtualization technology such as Xen open source software and
VMware (registered trademark) from VMware, Inc., it is possible to
run one of more virtual servers on a single physical server. The
servers 111-114 are equipped with resources such as processors
(CPUs) and storage devices (memories).
[0050] Using the server virtualization technology, the resources of
the servers 111-114 may be divided and allocated to different
virtual servers, thereby allowing for simultaneous run of one of
more virtual servers on a single physical server. Job a and Job b
may be run on such virtual servers.
[0051] On the supervisory server 101, a power reduction facility
110 is run. The power reduction facility 110 is a computer program
that performs control to reduce the power consumed by the servers
111-114; the details thereof will be described later. The number of
the servers 111-114 and the number of the jobs 120-124, used in
this embodiment, are only exemplary and these numbers may vary as
required. There should be at least one supervisory server 101 and
at least one power reduction facility.
[0052] FIG. 2 shows a detailed structure of each server 111-114 in
the first embodiment, wherein each server is represented as a
server 200. The server 200 is composed of a memory 201 which stores
programs such as jobs 120, 121, at least one CPU 202 which executes
the programs from the memory, a chip set 203, an I/O device 204
such as a Host Bus Adapter (HBA) and a Network Interface Card
(NIC), a NIC 205 for making connection to the network 102 in FIG.
1, a Baseboard Management Controller (BMC) 206 which is responsible
for status monitoring and power supply control, a cooling device
207 such as a fan or a water cooler, a power supply device 208 for
supplying the power of the server, and an auxiliary storage device
209 such as a hard disk or a flash memory. The BMC 206 is provided
with a power supply control function 260, enabling power supply
control, turning the power supply of the server 200 on and off from
the outside via the NIC 205. Here, the server 200 does not always
have to include all components shown in FIG. 2. It may be
configured with at least the CPU 202 and the memory 201. By this
configuration, jobs 120, 121 stored in the memory 201 can be
executed by the CPU 202 and functionality as the server can be
provided.
[0053] FIG. 3 shows a detailed structure of the supervisory server
101 as mentioned in FIG. 1 which illustrates the first embodiment.
The supervisory server 101 is composed of a storage device (memory)
301 which stores the power reduction facility 110, at least one
processor (CPU) 302 which executes programs from the memory, a NIC
303 for making connection to the network 102 in FIG. 1, and an I/O
device 304 to which input devices such as a mouse, a keyboard,
etc., storage such as USB media, a display device such as a display
are connected and which is responsible for input/output of
information to/from the server. To the I/O device 304, the input
devices 305 such as the mouse and keyboard and the display device
306 such as a display are connected. Additionally, to the I/O
device 304, an external storage device (not shown) may be connected
for reading/writing information. Further, an internal storage
device may be built into the supervisory server 101.
[0054] FIG. 4 shows details of the power reduction facility 110 as
mentioned in FIG. 1 illustrating the first embodiment. The power
reduction facility 110 is stored in the memory 301 of the
supervisory server 101 and consists of subprograms for performing
several functions and tables in which information that is processed
by these subprograms are stored. Specifically, the power reduction
facility 110 is composed of a server properties obtaining function
401 which obtains the properties of the servers, a search function
402 which searches among the servers 111-114 in the computing
system for a source server and a destination server from which/to
which a job is relocated and searches among the jobs 120-124 for a
job to be relocated, a job relocating function 403 which performs
control to relocate a job from the source server to the destination
server, a server power supply control function 404 which shuts off
the power supply of a server on which no job is running, a job
properties obtaining function 405 which obtains the properties of
the jobs, a server table 410 containing a list of information for
the servers 111-114 constituting the computing system, and a job
table 411 containing a list of information for the jobs 120-124 to
be run in the computing system. Here, the job table 411 may include
information for other jobs along with the jobs 120-124 running in
the computing system. The search function 402 searches for jobs and
servers according to the following condition for relocation: more
jobs shall be allocated to a server with a smallest or smaller
value of power consumption per unit of performance to the extent
that performance requirements for each job are fulfilled, thus
maximizing the number of servers on which no job is running, as
will be further detailed later.
[0055] FIG. 5 shows details of a concrete example of the server
table 410 as mentioned in FIG. 4. The server table 410 contains
information for all servers constituting the computing system. The
method of obtaining the server table 410 will be described later. A
first column 501 has the identifier of each server. A second column
502 has a value of performance of the corresponding server in the
first column 501. A third column 503 has power consumption for the
performance in the second column 502 of the corresponding server.
In the present embodiment, the value of performance given in the
second column 502 indicates the value of peak performance of the
server identified by the server identifier in the first column 501.
The power consumption given in the third column 503 includes, in
addition to the power consumed by the CPU of the server identified
in the first column 501, the power consumed by all components of
the server, namely, memory, chip set, I/O device, NIC, cooling
device, power supply device, auxiliary storage device, BMC, etc.
The third column 503 may be subdivided to specify power consumption
fractions for the components, namely, CPU, memory, chip set, I/O
device, NIC, cooling device, power supply device, auxiliary storage
device, BMC, etc. of the server identified in the first column
501.
[0056] FIG. 6 shows details of the job table 411 as mentioned in
FIG. 4. The job table 411 contains information related to all jobs
to be run in the computing system. How to obtain the job table 411
will be described later. A first column 601 has the identifier of a
job. A second column 602 has the identifier of a server running the
job identified in the first column 601 and the second column 602
corresponds to the first column 501 in the server table 410 shown
in FIG. 5. Here, if the job identified in the first column 601 is
not running, the second column 602 will be empty, like the job "f"
in the first column 601. A third column 603 has a value of
performance requirements for the job identified in the first column
601. In the figure, for example, the job with the identifier "a"
given in the first column 601 is required to be run at 100 bops as
the performance given in the third column 603. Here, the third
column 603 may be subdivided to specify performance requirements of
not only the CPU performance, but also I/O performance to the
network, internal storage device, and external storage device, and
memory performance. The third column 603 value may be added and
updated, triggered by an event that updates this table 411 or an
event that updates only the third column 603 individually.
[0057] FIG. 7 shows a general operation flow of the first
embodiment. The start (700) of this operation flow (procedure) may
be triggered by addition and removal of a server to/from the
computing system, addition and removal or completion of a job,
change in a server configuration, change in the contents of a job
or performance requirements for a job, change in the power supply
environment of a server such as connection to Uninterruptible Power
Supply (UPS), electricity expense, and stable distribution of
power, and start request from a user. This procedure may be
triggered by building a new computing system like initial
installation or transition from a test environment to an actual
operation environment. Further, this procedure may be executed
periodically. Step 701 is to obtain the identifiers of the servers
111-114 constituting the computing system, the performance values
of the servers, and the power consumptions to attain the
performance values. Step 702 is to obtain the identifiers of the
jobs that run in the computing system and the identifiers of the
servers running the jobs, respectively, and performance
requirements for each job to meet the Service Level Agreement
(SLA).
[0058] Step 703 is to determine among the servers 111-114
constituting the computing system a source server from which and a
destination server to which a job is relocated and a job to be
relocated, according to the condition for relocation that more jobs
shall be allocated to a server with a smallest or smaller value of
power consumption per unit of performance to the extent that
performance requirements for each job are fulfilled, thus
maximizing the number of servers on which no job is running, as
will be further detailed later. Here, the job to be relocated
resides on the source server. However, no source server may exist,
if the job to be relocated is not running. Step 704 is to relocate
the job determined to be relocated from the source server to the
destination server. Here, if no source server exists, then the job
is added to the destination server. Step 705 is to look for a
server on which no job will run and, if there is such a server, to
turn off the power supply of that server. However, no action will
occur if the power supply of that server is already off. In the
following, details of each step of the procedure of FIG. 7 will be
described.
[0059] FIG. 8 illustrates details of step 701 as mentioned in FIG.
7. Step 701 in FIG. 7 corresponds to the server properties
obtaining function 401 as mentioned in FIG. 4. Now, step 801 is to
obtain the identifiers of the servers 111-114 constituting the
computing system and know the number of the servers constituting
the computing system. Step 802 is to obtain the servers'
performance values and the servers' power consumptions to attain
the performance values. The performance values and power
consumptions to be obtained are peak performance values and the
power consumptions at the time and may include other permanence
values and associated power consumptions. However, the peak
performance values and associated power consumptions must be
obtained. The power consumption of a server includes, in addition
to the power consumed by the servers CPU, the power consumed by the
components of the server including the memory, chip set, I/O
device, NIC, cooling device, power supply device, auxiliary storage
device, BMC, etc. Further, the power consumption fractions for each
component of the server, namely, the memory, chip set, I/O device,
NIC, cooling device, power supply device, auxiliary storage device,
BMC, etc. may be obtained. There are possible methods of obtaining
the servers' properties. The servers' properties may be entered by
a user by means of a Graphical User Interface (GUI) provided by the
power reduction facility 110 or using command lines (CUI), may be
retrieved from a file stored in a storage device (not shown)
connected to the supervisory server 101, and may be acquired via a
network.
[0060] Step 803 is to register the information related to
performance and power consumption obtained at step 802 into the
server table 410. As a result, the peak performance value and
associated power consumption of each server must be stored in the
server table 410, 410A. Step 804 is to calculate power consumption
per unit of performance of each server, referring to the
information registered in the server table 410. Here, a method of
calculation is to divide the power consumption at the time of a
performance value by the performance value, thus obtaining the
amount of power consumption per unit of performance. However, other
than this method, a method for obtaining the power consumption
efficiency of a server quantitatively may be used. Step 805 is to
add the calculated power consumption per unit of performance of
each server to the server table 410 in a new column on the
corresponding line. This will be described later.
[0061] FIG. 9 shows an example of the GUI by which the user enters
the performance and associated power consumption of each server, as
described for steps 801 and 802 in FIG. 8. The power reduction
facility 110 displays this GUI on the display device 306 as
mentioned in FIG. 3, using a browser or a special program and in
text form, etc. In fields 911, 912, 913 shown in the figure, a
value can be entered. Using the keyboard or the like, the user will
enter the identifier of a server in the first field 911, and in the
second field 912, a performance value of the server entered in the
first field 911, and in the third field 913, power consumption
associated with the performance entered in the second field 912.
After the entry, by user action such as choosing and clicking on a
Set button with the mouse, the information entered to the GUI is
sent to the server properties obtaining function 401.
[0062] FIG. 10 shows an example a server table 410A to which the
power consumption per unit of performance of each server was added,
as described for step 805 in FIG. 8. The power consumption per unit
of performance of each server is entered in a fourth column 504. A
value in the fourth column 504 indicates the power consumption per
unit of performance, when the server identified in the first column
501 operates at the performance value given in the second column
502, consuming the power given in the third column 503. In the
present embodiment, a smaller value in the fourth column 504
denotes better power consumption efficiency.
[0063] FIG. 11 illustrates details of step 702 as mentioned in FIG.
7. Step 702 in FIG. 7 corresponds to the job properties obtaining
function 405. Step 1101 is to obtain information for the jobs to be
run in the computer system and know the type(s) and the number of
the jobs to be run in the computing system. Step 1102 is to obtain
performance requirements for the jobs obtained at step 1101. At
these steps 1101 and 1102, the jobs' properties may be obtained in
different ways; for example, they may be entered by a user by means
of the GUI provided by the power reduction facility 110 or using
command lines, may be retrieved from a file stored in a storage
device (not shown) connected to the supervisory server 101, and may
be acquired via a network. For the performance requirements to be
obtained, for example, the number of instructions of a job executed
per unit time or throughput of processing Web requests, transaction
requests and I/O requests to a job may be obtained and converted to
a value such as Billions of Operations Per Second (bops)
representing the CPU performance. Step 1103 is to register the jobs
and jobs' properties obtained at steps 1101 and 1102 into the job
table 411.
[0064] FIG. 12 illustrates details of step 703 as mentioned in FIG.
7. Step 703 in FIG. 7 corresponds to the search function 402. Step
1201 is to search among all jobs for a job to be relocated and
search for the source server from which and the destination server
to which the job is relocated. In the present invention, the search
at this step 1201 is performed, according to the condition for
relocation that more jobs shall be allocated to a server with a
smallest or smaller value of power consumption per unit of
performance to the extent that performance requirements for each
job are fulfilled, thus maximizing the number of servers on which
no job is running. This intensive allocation of jobs to a subset of
the servers is realized by job relocation. Here, the power
consumption per unit of performance can be obtained by reference to
the server table 410A shown in FIG. 10. The performance
requirements for each job can be obtained by reference to the job
table 411 shown in FIG. 6. In the present embodiment, to determine
whether or not more jobs can intensively be allocated to a server
to the extent that performance requirements for each job are
fulfilled, the peak performance of each server is obtained from the
server table 410. If the sum of the performance requirements for
all jobs to be run on the server does not exceed the peak
performance of the server, the intensive allocation of the jobs to
the server is allowed. If the sum exceeds the peak performance, the
intensive allocation of the jobs to the server is not allowed. Also
in the present embodiment, to maximize the number of servers on
which no job is running, all jobs running on a server with a high
value as the power consumption per unit of performance should be
candidates to be relocated preferentially.
[0065] If a job is not running, there is no source server. A
plurality of sets of a job to be relocated, the source server, and
the destination server may be determined as the result of the
search at step 1201. Step 1202 is to notify the job relocating
function 403 of the destination server identifier, the identifier
of the job to be relocated, the identifier of the source server, if
such a source server exists, obtained at step 1201. This function
403 will be detailed, using FIG. 13. If there are a plurality of
sets of the destination server identifier, the identifier of the
job to be relocated, and the source server identifier, obtained at
step 1201, step 1202 is to notify the job relocating function 403
of all the sets. If it is found at step 1201 that the whole
computing system performance is not enough to meet the performance
requirements for all jobs, the search function may signal this
situation to a function that automatically adds resources to the
computing system or present a warning on the display device 306 of
the supervisory server 101. Additionally, the search at step 1201
may be conditioned in terms of stability of power distribution of
the source server and the destination server and electricity
expenses per server and the search may be performed to allocate
more jobs to a server to which power is distributed stably and
costing less electricity expense. In the present embodiment,
however, it is needed to satisfy the condition that more jobs are
allocated to a server to the extent that performance requirements
for each job are fulfilled.
[0066] FIG. 13 illustrates details of step 704 as mentioned in FIG.
7. Step 703 in FIG. 7 corresponds to the job relocating function
403. Step 1301 is to obtain the source server identifier, the
identifier of the job to be relocated, and the destination server
identifier from the search function 402. Here, this step may not
obtain the source server identifier, if no source server identifier
exists. Step 1302 is to stop the job to be relocated on the source
server, if the source server exits. However, if a technique that
enables relocation of a job without stopping the job to be
relocated, it is not needed to perform step 1302. As the technique
enabling seamless job relocation, for example, a function "Live
migration" provided by Xen open source software and Vmotion
provided by VirtualCenter software supplied from VMware, Inc. may
be available. Also, in the case where no source server exists, it
is not needed to perform step 1302. Step 1303 is to relocate the
job from the source server to the destination server.
[0067] There are possible methods of relocation of a job, including
copying the image of the job program from the source server to the
destination server, pre-storing of the image of the job program on
both the source server and the destination server, and sharing the
image of the same job program by the source server and the
destination server. Here, the image of the job program is a
combination of a program and its associated data. The program may
be any of the types, for example, OS, middleware, application,
driver, etc. If no source server exists, the supervisory server 101
may be regarded as the source server or a method may be used for
distributing the image of the job program to the destination serve,
using job program image distribution software or the like. Step
1304 is to restart the relocated job on the destination server.
Step 1305 is to change the server running the relocated job to the
destination server in the second column 602 in the job table 411 of
FIG. 6. If a plurality of sets of the source server, destination
server, and the job to be relocated are received at step 1301, the
subsequent steps 1302 to 1305 are repeated as many times as the
number of the sets received at step 1301.
[0068] FIG. 14 is an example of GUI display prompting the user to
confirm job relocation before the job relocating function 403
relocates the jobs before starting the job relocation. The GUI
displays a screen 1401 shown here on the display device 306 as
mentioned in FIG. 3, using a browser or a special program and in
text form, etc., thereby asking the user whether or not to perform
job relocation before starting the job relocation. A first column
1411 lists the identifiers of the jobs to be relocated. A second
column 1412 lists the identifiers of the destination servers to
which the jobs listed in the first column are relocated. A third
column 1413 lists the identifiers of the servers that currently run
the jobs listed in the first column 1411. If a job given in the
first column 1411 is not running, the corresponding field in the
third column 1413 will be empty. A value 1414 of power indicates
the expected power that can be cut after the execution of the job
relocation. The expected value of the power that can be cut may be
fractionized into those per server and per job. If the user
performs the relocation, by choosing and clicking on the "Do
Relocation" button 1415 with the mouse, then the job relocating
function 403 is executed. If the user cancels the job relocation,
click on the "Cancel" button 1416 with the mouse. The GUI screen
for the present embodiment is, for example, shown for an instance
where a plurality of jobs are relocated at a time, whereas a single
job may be relocated. On this GUI screen, the remaining margins of
performance capacity for each server and for the whole computing
system may be shown.
[0069] FIG. 15 shows an example of a job relocation method in step
1303 in FIG. 13. On the source server 1501 and the destination
server 1502, image copy functions 1510, 1520 for copying the
contents of the auxiliary storage device are activated. The image
copy functions 1510, 1520 may be implemented by, for example, a ftp
command, a rcp command, or an agent program for copy. The image
1502 of the job program on the source server is copied to the
auxiliary storage device of the destination server 1502 via the
image copy functions 1510, 1520. Thereby, the job can be run on the
destination server. A data disk or the like required by the job may
be shared using an external storage device.
[0070] FIG. 16 shows another example of a job relocation method in
step 1303 in FIG. 13. In this method, images of the same job
program 1612, 1622 are pre-stored in the auxiliary storage devices
1611, 1621 of both the source server 1601 and the destination
server 1602.
[0071] FIG. 17 shows another example of a job relocation method in
step 1303 in FIG. 13. In this method, the source server 1701 and
the destination server 1702 can refer to the same image of the job
program 1740 stored in an external storage device 1704.
[0072] FIG. 18 shows another example of a job relocation method in
step 1303 in FIG. 13. This method is to relocate a job, when jobs
are run on virtual servers realized by virtual server functions
1810, 1820 of Xen open-source software, VMware registered
trademark) from VMware, Inc., and the like. The image 1840 of the
job is held in an external storage device 1804 which is shared by
the source server 1801 and the destination server 1802. The virtual
server function 1810 being run on the source server 1801 holds the
job status 1811. Here, the job status is the information that is
temporarily retained on the memory of the server during the run of
the program such as OS, middleware, driver, and application on the
server. In the example of FIG. 18, when the job is relocated from
the source server 1801 to the destination server 1802, the job
status 1811 on the source is copied to the destination server 1802
through the network 1803. Thereby, the destination server 1802 can
restart the relocated job promptly. The job image 1840 may be
shared by the source server 1801 and the destination server 1802
via the network without using the external storage device 1804.
[0073] FIG. 19 shows details of step 705 as mentioned in FIG. 7.
Step 705 in FIG. 7 corresponds to the flow of the server power
supply control function 404. Step 1901 is to search for a server on
which no job is running in the computing system, using the server
table 410 and the job table 411. At step 1902, if a server on which
no job is running is found as the result of step 1901, the
procedure proceeds to step 1903; if such server does not exist, the
procedure terminates. Step 1903 is to obtain the power supply
status of the server. Here, the servers power supply status may be
obtained from a server management module such as BMC built in the
server or an agent running on the server. At step 1904, if the
servers power supply is on as the result of step 1903, the
procedure proceeds to step 1905; otherwise, the procedure
terminates. If a plurality of servers on which no job is running
are found at step 1901, the subsequent steps 1902 to 1904 are
repeated as many times as the number of the servers found at step
1901. Step 1905 is to turn off the power supply of the server found
to be on as the result of step 1903. Here, the server's power
supply may be turned off by requesting the BMC built in the server
to turn off the power supply or requesting the agent running on the
server to shut down the power. Step 1905 may issue an instruction
to put the server in standby mode and transfer the information
existing in the server memory to the auxiliary storage device
temporarily, instead of turning off the power supply, thus allowing
for faster recovery from standby mode when the servers power supply
is turned on.
[0074] For reducing the power consumption of the computing system,
the method of the present embodiment searches among all jobs for a
job to be relocated and searches for the source server from which
and the destination server to which the job is relocated, according
to the condition for relocation that more jobs shall be allocated
to a server with a smallest or smaller value of power consumption
per unit of performance to the extent that performance requirements
for each job are fulfilled, thus maximizing the number of servers
on which no job is running. By this relocation of jobs, it is
possible to minimize the power to be consumed, while complying with
the SLA of the system.
Embodiment 2
[0075] A second embodiment (Embodiment 2) of the present invention
is a method for intensive allocation of jobs to a subset of the
servers, based on an event triggering the power reduction procedure
by the power reduction facility 110 in Embodiment 1. A combination
of the second embodiment and any other embodiment can be regarded
as one embodiment of the present invention.
[0076] FIG. 20 shows details of the power reduction facility 110A
in the second embodiment. Difference from Embodiment 1 lies in that
the power reduction facility is provided with a trigger event
detecting facility 420 which detects what event triggers the
procedure of the invention illustrated in FIG. 7 in Embodiment 1.
The trigger event detecting facility 420 detects one of the trigger
events as will be specified below and starts the procedure
illustrated in FIG. 7 in Embodiment 1. The trigger events are
addition and removal of a server to/from the computing system;
addition and removal or completion of a job, change in a server
configuration; change in the contents of a job or performance
requirements for a job; change in the power supply environment of a
server such as connection to UPS, electricity expense, and stable
distribution of power; start request from a user; and an event that
the power consumed by each of the servers constituting the
computing system or the power consumed by the whole computing
system has exceeded or is below a predefined amount of power
consumption. The trigger event detecting facility 420 can notify
each function of the power reduction facility 110A of the type of
the trigger event detected. If the trigger event is addition of a
server to the computing system or addition of a job, information
for the added server or job will be added to the server table 410
or the job table 411 by the server properties obtaining function
401 or the jobs properties obtaining function 405. On an event of
deletion of a server from the computing system, an event of
deletion of a job, and an event of change in a server configuration
or the contents of a job, the change occurring will be reflected in
the server table 410 and the job table 411. This reflection may be
performed automatically by the trigger event detecting facility 420
or by some other method.
Embodiment 3
[0077] A third embodiment (Embodiment 3) of the present invention
is a method of obtaining server power properties from a power
property measuring function installed in each server in the server
properties obtaining function in Embodiment 1. A combination of the
third embodiment and any other embodiment can be regarded as one
embodiment of the present invention.
[0078] FIG. 21 shows an overall structural diagram of the computing
system in Embodiment 3. Difference from Embodiment 1 lies in that
each server 111A-114A is provided with a power property measuring
function 2101. The power property measuring function 2101 can
measure performance that the server utilizes (utilization
performance) and the amount of power consumed by the whole server
at the time as well as the amount of power consumed by each of its
components and can report its measurement values to the power
reduction facility 110.
[0079] FIG. 22 shows a detailed structure of each server 111A-114A
in the third embodiment, wherein each server is represented as a
server 200A. Difference from Embodiment 1 lines in that the server
is provided with a measurement device 2201 and the power property
measuring function 2101. The measurement device 2201 is able to
measure the amount of power consumed by the whole server 200A and
the amount of power consumed by each component and report the
results to the power property measuring function 2101. Here, the
amount of power consumed by each component is the amount of power
consumed separately by the memory 201, CPU 202, chip set 203, I/O
device 204, NIC 205, BMC 206, cooling device 207, power supply
device 208, and auxiliary storage device 209, which constitute the
server.
[0080] FIG. 23 shows an operation flow (procedure) of the power
property measuring function 2101. This procedure is performed as a
means for obtaining server performance and power consumption at the
time in step 802 of the procedure performed by the server
properties obtaining function 401, shown in FIG. 8 in Embodiment 1.
Step 2301 is to determine whether or not to perform the measurement
of server power properties. At this decision, if a server is the
one whose power properties have never been measured, the procedure
proceeds to step 2302 to perform the measurement. If the power
properties of the server have been measured, the procedure proceeds
to step 2304 without performing the measurement. However, in the
case where the server configuration has been changed by, for
example, adding a device to the server, the procedure proceeds to
step 2302 to execute the measurement of the server power properties
again. Step 2302 is to perform the measurement of the server power
properties. Here, the power property measuring function itself has
a mechanism to apply varying load to the server. While this
mechanism gradually changes the computational amount from low to
high to gradually increase the utilization performance of the
server up to the peak performance, the amount of power consumption
depending on the utilization performance is measured by the
measurement device. Based on the measurements, the power property
measuring function creates a power properties list indicating the
server performance and the power consumption characteristic
depending on the performance. Here, during a job run on the server,
that is, when a program producing a load is running, the program
may be automatically terminated or shut down and restarted after
the measurement or may be terminated manually by the user. In the
latter case, a message may be displayed on the GUI. Step 2303 is to
report the power properties list created at step 2302 to the server
properties obtaining function 401. Step 2304 is to measure the
server utilization performance and power consumption periodically
and repeat the reporting to the power reduction facility 110.
However, in the present embodiment, step 2304 may not be
performed.
[0081] FIG. 24 shows an example of a server table 410B in the third
embodiment. While the examples of the server tables 410 410A shown
in Embodiment 1 list only the peak performance values and
associated power consumptions of the servers, performance values
other than the peak and associated power consumptions are added to
the server table 410B in the third embodiment. When a server is on
standby with a performance value of 0, the power consumption per
unit of performance is empty, as it cannot be measured. In the
present embodiment, the search function 402 can obtain power
consumptions per unit of performance for utilization performance
values other than the peak of each server, referring to the server
table 410B. Thus, it can obtain the power consumption per unit of
performance for a utilization performance value corresponding to
the sum of the performance requirements for all jobs running on the
server. Using this value, the search function 402 can search for
one or more sets of a job to be relocated, its source server and
destination server, so that the power consumption of the whole
computing system can be reduced.
[0082] By obtaining the power consumed by each server or the power
consumed by the whole computing system utilizing the power property
measuring function 2101 in the third embodiment, the trigger event
detecting facility 420 as described in Embodiment 2 can determines
whether or not the power consumed by each of the servers
constituting the computing system or the power consumed by the
whole computing system has exceeded or is less than the predefined
amount of power consumption.
Embodiment 4
[0083] A fourth embodiment (Embodiment 4) of the present invention
is a method in which the job properties obtaining function in
Embodiment 1 obtains the load variation characteristic of each job
and a search for a job to be relocated is performed based on this
load variation characteristic. A combination of the fourth
embodiment and any other embodiment can be regarded as one
embodiment of the present invention.
[0084] FIG. 25 shows a job table 411A in the fourth embodiment.
Difference from Embodiment 1 lies in that a fourth column 604 is
added. The fourth column 604 has the load variation characteristic
of the job given in the first column 601. The load variation
characteristic indicates how the utilization performance for the
job varies with regard to the time axis; for example, "constant"
indicates almost no variation of load and "large variation"
indicates that load varies largely. For example, for a job like Web
server, in most cases, the load is high during a time zone when a
great quantity of service requests from users come, whereas the
load is low during other hours. Thus, the load variation
characteristic for this job is "large variation". The load
variation characteristic is obtained by the jobs properties
obtaining function 405. When searching for a job to be relocated,
the search function 402 refers to the job table 411A and
preferentially selects jobs whose load variation characteristic is
"constant" as candidates to be relocated rather than those of
"large variation". The load variation characteristic may include
information such as variation degrees in terms of I/O utilization
performance and memory utilization as performance.
[0085] FIG. 26 shows a computing system structure in the fourth
embodiment. The job property measuring function 2601 within each
server 111B-114B can obtain the load variation characteristic of
each job by measuring the utilization performance of the running
jobs. Also, the job property measuring function 2601 can notify the
jobs properties obtaining function 405 of the obtained jobs' load
variation characteristics. Here, the job property measuring
function 2601 can make use of a program such as, for example,
IPI/Performance Management or Linux's top command.
Embodiment 5
[0086] A fifth embodiment (Embodiment 5) of the present invention
is a method in which the job properties obtaining function in
Embodiment 4 obtains priority of job relocation and a search for a
job to be relocated is performed based on this priority. A
combination of the fifth embodiment and any other embodiment can be
regarded as one embodiment of the present invention.
[0087] FIG. 27 shows a job table 411B in the fifth embodiment.
Difference from Embodiment 4 lies in that a fifth column 605 is
added. The fifth column 605 has priority of job relocation for the
job given in the first column 601. In the example show here, a
priority level is given to each job in selecting a job to be
relocated in order of "high", "medium" and "low" and "impossible"
denotes impossibility of relocation of the job. The search function
402 refers to this priority value and preferentially selects a job
with a "high" priority as the job to be relocated and deselects a
job for which the priority value is "impossible".
Embodiment 6
[0088] A sixth embodiment (Embodiment 6) of the present invention
is a method allowing the user to specify as a search policy a
condition for relocation by which the search function 402 in
Embodiment 1 searches for a job to be relocated, its source and
destination servers. A combination of the sixth embodiment and any
other embodiment can be regarded as one embodiment of the present
invention.
[0089] FIG. 28 shows details of the power reduction facility 1108
in the sixth embodiment. Difference from Embodiment 1 lies in that
a search policy table 412 is added. The search function 402A
searches for a job to be relocated and its source and destination
servers, using one or more conditions defined in the search policy
table 412 in addition to the condition that more jobs are allocated
to a subset of the servers, while complying with the performance
requirements for all jobs running in the computing system, as
described in Embodiment 1.
[0090] FIG. 29 shows details of the search policy table 412. A
first column 2901 has the identifier number of a search policy. The
user can set a condition for relocation as the condition to be used
by the search function 402A by specifying its identifier number and
may set a plurality of search policies as the conditions at a time.
A second column 2902 has the description of a search policy whose
identifier number is given in the first column 2901. Search
policies may be registered into this table in different ways: they
may be entered by a user by means of the GUI provided by the power
reduction facility 110 or using command lines, may be retrieved
from a file stored in a storage device connected to the supervisory
server 101, and may be acquired via a network. In FIG. 29, a search
policy with policy number 1 states that jobs should be relocated to
level the powers consumed by each server in the computing system. A
search policy with policy number 2 states that jobs should be
relocated to have utilization performance at the lowest power
consumption per unit of performance at each server, as given in the
server table 410. A search policy with policy number 3 states that
jobs should be relocated so that only one job runs on the server
2.
[0091] FIG. 30 shows an operation flow (procedure) of the search
function 402A in the sixth embodiment. Difference from Embodiment 1
is step 3001. Step 3001 is to search for a job to be relocated, its
source server and destination server under conditions based on the
contents of the search policy table 412. The user can set a policy
as the condition to be used by specifying its identifier number and
may set a plurality of search policies as the conditions at a time.
There are possible methods of setting conditions to be used by the
user. Setting may be entered by a user by means of the GUI provided
by the power reduction facility 110 or using command lines, may be
retrieved from a file stored in a storage device connected to the
supervisory server 101, and may be acquired via a network.
[0092] In the above description, one or more search policies set by
the user are assumed to be used in combination with the default
condition for relocation by which the search is performed at step
1201 described in FIG. 12 in Embodiment 1. However, a search policy
may be provided to state that the performance requirements for the
jobs be ignored. According to this policy, the performance
requirements for the jobs may not be fulfilled.
Embodiment 7
[0093] A seventh embodiment (Embodiment 7) of the present invention
is a method in which verification is performed after the execution
of job relocation in Embodiment 1 and recovery processing is
performed if a problem is detected. A combination of the seventh
embodiment and any other embodiment can be regarded as one
embodiment of the present invention.
[0094] FIG. 31 shows details of the power reduction facility 110C
in the seventh embodiment. Difference from Embodiment 1 lies in
that a verification function 421 is added. The verification
function verify the operation status of the computing system after
the execution of job relocation.
[0095] FIG. 32 shows a general operation flow of Embodiment 7.
Difference from Embodiment 1 is step 3201. Step 3201 is to verify
the operating status of the whole computing system after job
relocation performed at step 704.
[0096] FIG. 33 shows details of step 3201 as mentioned in FIG. 32.
Step 3201 in FIG. 33 corresponds to the operation flow of the
verification function 421 as mentioned in FIG. 31. Step 3301 is to
obtain the operating status of each of the servers constituting the
computing system and each job. Here, the operating status of each
server is obtained by obtaining the utilization performance and
power consumption of the server by means of the power property
measuring function 2101 or the like, as described in Embodiment 3.
The operating status of each job is obtained by obtaining the
utilization performance for the job by means of the job property
measuring function 2601 or the like, as described in Embodiment 4.
Step 3302 is to very the operating status of each server and each
job obtained at step 3301. The verification function verifies that
the performance requirements for all jobs running in the computing
system are fulfilled and that the power consumption of the whole
computing system is lower than the power consumption before the
execution of job relocation. It is determined that there is a
problem, if a server does not meet the performance requirements for
all jobs running on the server, or if the measured power
consumption of the server is significantly larger than the
performance and associated power consumption given in the server
table 410. However, because the power consumption of the whole
computing system varies depending on the operating status of each
job, some margin may be added taking this variation into account,
when comparing the power consumption after the job relocation with
that before the job relocation. Because the power supply of the
source server remains on, the verification ignores the power
consumption of the source server. At step 3303, a branch occurs,
depending on whether there is a problem or not as the result of the
verification at step 3302. If there is a problem, the procedure
proceeds to step 3304; if there is no problem, the procedure
terminates. Step 3304 is to perform a problem solution process for
the problem detected at step 3302. The problem solution process may
include returning the relocated jobs to the source servers and
re-executing the procedure of the search function 402.
Embodiment 8
[0097] An eighth embodiment (Embodiment 8) of the present invention
is a method in which the server power supply control function 404
in Embodiment 1 turns off the power supply of a server and
automatically sets the server to be used as a cold standby server.
A combination of the eighth embodiment and any other embodiment can
be regarded as one embodiment of the present invention.
[0098] FIG. 34 an operation flow (procedure) of the server power
supply control function 404A in the eighth embodiment. Difference
from Embodiment 1 lies in that step 3401 is added. At step 3401,
after the servers power supply is turned off at step 1905, the
information for the server is sent to a cold standby function.
Having received the information, the cold standby function
automatically uses the server as a cold standby server. Here, the
cold standby function hands over the job(s) running on an active
server to another standby server if a fault occurs in the active
server and makes the job(s) impossible to continue or when
instructed by the user.
Embodiment 9
[0099] A ninth embodiment (Embodiment 9) of the present invention
is a system configuration where a special supervisory server is not
installed. This is an example of operation in which power reduction
facilities run on each sever running jobs, unlike Embodiment 1
where the power reduction facility 110 runs in the supervisory
server 101, as described for FIG. 1. A combination of the ninth
embodiment and any other embodiment can be regarded as one
embodiment of the present invention.
[0100] FIG. 35 shows a structure of the computing system in
Embodiment 9. Difference from Embodiment 1 lies in that power
reduction facilities 110D run on the servers 111C-114C. In the
present embodiment, the power reduction facilities 110D may be
regarded as jobs as defined herein, but these power reduction
facilities 110D are not the objects to be relocated. To exclude the
power reduction facilities 110D from the objects to be relocated,
they are not included in the job table 411, 411A, 411B. That is,
the power reduction facilities 110D are not listed up when creating
the job table 411.
[0101] The power reduction facilities 110D are regarded as programs
that are automatically start when each server is booted, like OS.
In the system structure of FIG. 35, if, for example, a job e 124
existing on a server 113C is relocated to a server 111C or 112C by
the power reduction facility 110D, there will be no job running on
the server 113C. Therefore, the power supply of the server 113C is
turned off and, at the same time, the power reduction facility 110D
on the server 113C is deactivated. Thereafter, control is exercised
by the power reduction facility 110D on the server 111C or
112C.
[0102] By the method and computer program for reducing the power
consumption of a computing system of the present invention,
described above in detail, in the computing system where a
plurality of servers are connected by a network and one or more
jobs are run, it is possible to reduce the power consumed, while
complying with the SLA of the computing system.
[0103] The computing system in which the present invention is
applied may be an intelligent home appliance system. The invention
is also effective as the method for reducing the power consumption
of the intelligent home appliance system. For example, in a
situation where, during the operation of an air conditioner, a
microwave oven connected to the air condition by home networking or
the like is used, by applying the present invention, such
application is possible that the air conditioner is temporarily
deactivated so that no power is consumed by it, thereby ensuring
stable power distribution to the microwave oven. Needless to say,
each server is configured with the controller's CPU and a program
memory in each of home appliance products constituting the
intelligent home appliance system.
* * * * *