JPWO2011118424A1 - マシン稼動計画作成装置、マシン稼動計画作成方法、及びマシン稼動計画作成用プログラム - Google Patents

マシン稼動計画作成装置、マシン稼動計画作成方法、及びマシン稼動計画作成用プログラム Download PDF

Info

Publication number
JPWO2011118424A1
JPWO2011118424A1 JP2012506940A JP2012506940A JPWO2011118424A1 JP WO2011118424 A1 JPWO2011118424 A1 JP WO2011118424A1 JP 2012506940 A JP2012506940 A JP 2012506940A JP 2012506940 A JP2012506940 A JP 2012506940A JP WO2011118424 A1 JPWO2011118424 A1 JP WO2011118424A1
Authority
JP
Japan
Prior art keywords
machine
time zone
time
plan creation
operation plan
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2012506940A
Other languages
English (en)
Inventor
育大 網代
育大 網代
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2011118424A1 publication Critical patent/JPWO2011118424A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Factory Administration (AREA)
  • Debugging And Monitoring (AREA)

Abstract

要求性能を満たす最低限のサーバ(処理ノード)の稼動計画を作成し、稼動する必要のないサーバの電源を切ることによって、消費電力や計算機リソースを節約する。具体的には、マシン稼動計画作成装置は、時間帯別の必要マシン台数と、1から順に番号付けられたマシンの識別子とを比較し、マシンの識別子の方が大きくない場合に当該マシンの稼動が必要と判定する。また、各マシンが複数の時間帯を持つ時、複数の時間帯を連結して、複数の時間帯の個数を削減する。このとき、2つの時間帯が時間的に連続している場合に、2つの時間帯を連結し、新たな時間帯とする。或いは、複数の時間帯の中から、最初の時間帯の開始時刻と、最後の時間帯の終了時刻を取り出し、開始時刻から終了時刻までを新たな時間帯とする。更に、時間帯別の必要マシン台数のリストから、必要マシン台数の最大値を算出する。

Description

本発明は、マシン稼動計画作成装置に関し、特にWebシステム等のサーバの稼動計画を作成するためのマシン稼動計画作成装置に関する。
特許文献1(特許第3003440号公報)には、負荷分散制御方法の一部として、運行計画作成支援機能が開示されている。ここでいう負荷分散とは、複数ある業務の各業務を、複数の処理ノードに適切に割り当てて処理させることを意味する。特許文献1の負荷分散制御方法は、どの業務をどのノードに割り当てるかを定めた業務マッピングテーブルを複数用意し、各時間帯にどの業務マッピングテーブルを参照するかを定めた運行管理テーブルを基に、ノードのユーザから受信したリクエストをどのノードが処理すればよいかを決定する。このようにすることで、時間帯毎に異なるそれぞれの業務の負荷を柔軟に分散させることができる。
運行計画作成支援機能は、これら業務マッピングテーブルと運行管理テーブルの作成を支援する機能である。本機能は、各時間帯の各業務の負荷がどれくらいかを定義及び表示する負荷特性定義画面と、ユーザが手動で行った業務割当ての結果、各ノードの負荷率がどのくらいになるかを示すシミュレータ画面を提供する。これらの画面を参照しながら、ユーザは各時間帯の業務の割当てを試行錯誤できるため、各ノードの負荷が均等になるような割当て方法を早く見つけることができる。
また、特許文献2(特開2005−141441号公報)には、負荷分散システムが用いるサービスサーバ運転計画表が開示されている。負荷分散システムが備える管理サーバ装置は、各時間帯のアクセス統計を基に、リクエストを何台のサーバに振り分けるかを表す振り分け台数と、台数分のサーバのアドレスを設定する。このときのサーバの割当て方法として、常にアドレスの小さい方から割り当てる方法や、最後に割り当てたサーバのアドレスを基準に割り当てるローテーション方式が記載されている。
特許文献1の問題点は、計算機の支援を受けてはいるものの、サーバ(処理ノード)の運行計画を人間が試行錯誤で作成しなければならない点にある。
特許文献2の問題点は、IPアドレスを使って割当て先を決めるため、複数のIPアドレスを持つサーバや、IPアドレスが割り当てられていないサーバに関する運行計画を作成できない点にある。また、IPアドレスは単純な数値でないため、IPアドレスの大小を比較するための演算を別途定義しなくてはならないという問題点もある。
特許第3003440号公報 特開2005−141441号公報
本発明の目的は、IPアドレスのような識別子を参照することなく、要求性能を満たす最低限のサーバ台数に基づく稼動計画を作成するマシン稼動計画作成装置を提供することにある。
本発明のマシン稼動計画作成装置は、時間帯別の必要マシン台数を格納する時間帯別必要マシン数記憶部と、時間帯別の必要マシン台数と、1から順に番号付けられたマシン識別子とを比較し、マシン識別子の方が大きくない場合、マシン識別子に対応するマシンの稼動が必要と判定する稼働時間帯判定処理部とを具備する。
本発明のマシン稼動計画作成方法は、時間帯別の必要マシン台数と、1から順に番号付けられたマシン識別子とを比較することと、マシン識別子の方が大きくない場合、マシン識別子に対応するマシンの稼動が必要と判定することとを含む。
本発明のマシン稼動計画作成用プログラムは、上記のマシン稼動計画作成方法を、計算機に実行させるためのプログラムである。なお、本発明のマシン稼動計画作成用プログラムは、記憶装置や記憶媒体に格納することが可能である。
要求性能を満たすにあたって稼働する必要のないマシンを停止させ、消費電力や計算機リソースを節約することが可能となる。
本発明の第1実施形態におけるマシン稼動計画作成装置の構成を示すブロック図である。 時間帯別必要スループットをテーブル上に表現した例を示す図である。 時間帯別必要マシン数をテーブル上に表現した例を示す図である。 第1実施形態におけるマシン稼動計画作成装置の処理を示すフローチャートである。 マシンが仮想マシン(VM)である場合の稼動時間帯判定結果(稼動計画)の例を示す図である。 本発明の第2実施形態における稼動計画作成処理部の構成を示すブロック図である。 第2実施形態における稼動計画作成処理部の処理を示すフローチャートである。 第2実施形態における稼動計画作成処理部の処理を示すフローチャートである。 第2実施形態における第1の連結処理を用いた場合の連結結果の例を示す図である。 第2実施形態における第2の連結処理を用いた場合の連結結果の例を示す図である。
<第1実施形態>
以下に、本発明の第1実施形態について添付図面を参照して説明する。
図1に示すように、本発明の第1実施形態におけるマシン稼動計画作成装置は、記憶装置10と、処理装置20と、出力装置30を備える。
記憶装置10は、時間帯別必要マシン数記憶部11を備える。
時間帯別必要マシン数記憶部11は、時間帯別必要マシン数に関するデータを格納する。
時間帯別必要マシン数は、各時間帯に何台のマシンが必要かを表す数値である。通常、時間帯別必要マシン数は、時間帯別必要スループットに関するデータから導かれる。時間帯別必要スループットは、各時間帯にどの程度のスループットが必要かを表す数値である。
ここでいう「マシン」とは、物理的な実体のある物理マシン(PM:Physical Machine)や、仮想化技術によって物理マシン上にソフトウェア的に実現された仮想マシン(VM:Virtual Machine)のことである。これらのマシンは、サーバとして利用される場合、それぞれ物理サーバや仮想サーバと呼ばれる。
Webサービス等を提供するサーバは、クライアントから発行されるリクエストに対して所定の処理を行い、処理の結果をレスポンスとしてクライアントに返す。スループット(TP:Throughput)は、サーバが単位時間(例えば、1秒や1分)あたりに処理するリクエストの個数を表し、その単位はtps(transactions per second)やtpm(transactions per minute)等である。
所定のプロセッサやメモリ等に関する既定のリソースを備えたマシンが、既定のサービスを既定の品質で提供する場合、マシンのスループットは、ほぼ一定である。1マシン(1台のマシン)で必要なスループットを実現できない場合は、複数台のマシンを用意してクラスタ化する。クラスタ化された複数台のマシンの各々は、リクエストの処理をクラスタ内で分担する負荷分散を行う。
図2Aは、時間帯別必要スループットをテーブル上に表現した例を示す。また、図2Bは、時間帯別必要マシン数をテーブル上に表現した例を示す。処理の都合上、各時間帯には一意のID(identifier:識別子)が付与されている。
図2A、図2Bの例は、1マシンのスループットが「60tps」だと仮定した場合の、時間帯別必要スループット(図2A)と時間帯別必要マシン数(図2B)の関係を表している。例えば、時間帯1(0:00〜4:00)のように、時間帯別必要スループットが「110tps」で、1マシンあたり「60tps」の性能が得られる場合、時間帯別必要マシン数は、「110/60」を切り上げで計算した値「2」となる。なお、時間帯1は、時間帯IDが「1」のものを示す。
処理装置20は、最大必要マシン数算出処理部21と、稼動計画作成処理部22を備える。
最大必要マシン数算出処理部21は、時間帯別必要マシン数のデータを取得し、最大必要マシン数Nとして、各時間帯の必要マシン数のうちの最大値を算出する。
稼動計画作成処理部22は、時間帯別必要マシン数と、時間帯数と、最大必要マシン数を取得する。
稼動計画作成処理部22は、稼動時間帯判定処理部221を備える。
稼動時間帯判定処理部221は、時間帯別必要マシン数と、時間帯数と、最大必要マシン数に基づいて、稼動計画を作成する。
出力装置30は、処理装置20から稼動計画を受け取り、稼動計画を表示/印刷/保存する。或いは、出力装置30は、稼動計画の内容に応じた処理を行うようにしても良い。例えば、出力装置30は、要求性能を満たすにあたって稼働する必要のないマシンの電源を切ることによって、マシンを停止させるようにしても良い。なお、出力装置30自体が稼働する必要のないマシンとなる場合は、出力装置30は、処理装置20から稼動計画に基づく電源OFFの命令(コマンド)や信号を受け取り、電源を切るようにしても良い。
[ハードウェアの例示]
マシン稼動計画作成装置の例として、PC(パソコン)、アプライアンス(appliance)、シンクライアントサーバ、ワークステーション、メインフレーム、スーパーコンピュータ等の計算機を想定している。なお、マシン稼動計画作成装置は、物理マシン上で動作する仮想マシン(VM)でも良い。
記憶装置10の例として、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)やフラッシュメモリ等の半導体記憶装置、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置、又は、DVD(Digital Versatile Disk)等のリムーバブルディスクやSDメモリカード(Secure Digital memory card)等の記憶媒体(メディア)等が考えられる。また、記憶装置10は、計算機本体に内蔵された記憶装置に限らず、周辺機器(外付けHDD等)や外部のサーバ(Webサーバやファイルサーバ等)に設置された記憶装置、或いは、DAS(Direct Attached Storage)、FC−SAN(Fibre Channel − Storage Area Network)、NAS(Network Attached Storage)、IP−SAN(IP − Storage Area Network)等を用いたストレージ装置でも良い。また、レジスタ(register)でも良い。
処理装置20の例として、CPU(Central Processing Unit)、マイクロプロセッサ(microprocessor)、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路(Integrated Circuit(IC))等が考えられる。
また、記憶装置10、及び処理装置20は、一体化していても良い。例えば、近年では、マイコン等の1チップ化が進んでいる。従って、本発明のマシン稼動計画作成装置に搭載される1チップマイコンが、記憶装置10、及び処理装置20を備えている事例も考えられる。
また、記憶装置10、及び処理装置20は、それぞれ独立した計算機でも良い。
出力装置30の例として、LCD(液晶ディスプレイ)やPDP(プラズマディスプレイ)、有機ELディスプレイ(organic electroluminescence display)等の表示装置、出力内容を用紙等に印刷するプリンタ等の印刷装置、又は、出力内容を壁やスクリーンに投影するプロジェクタ等の映写装置等が考えられる。或いは、出力装置30は、外部の表示装置や記憶装置に情報を出力するためのインターフェース(I/F:interface)でも良い。更に、出力装置30は、他の計算機でも良い。
最大必要マシン数算出処理部21、及び稼動計画作成処理部22は、それぞれ機能単位のモジュールである。最大必要マシン数算出処理部21、及び稼動計画作成処理部22は、プログラムに基づいて駆動し所定の処理を実行するプロセッサと、当該プログラムや各種データを記憶するメモリによって実現される。或いは、最大必要マシン数算出処理部21、及び稼動計画作成処理部22は、専用の機能を有する半導体集積回路(IC)でも良い。
但し、実際には、これらの例に限定されない。
[マシン稼動計画作成処理]
図3を参照して、本実施形態に係るマシン稼動計画作成処理を説明する。
ここでは、時間帯別必要マシン数は、予め記憶装置10の時間帯別必要マシン数記憶部11に格納されているものとする。
(1)ステップS101
まず、最大必要マシン数算出処理部21は、時間帯別必要マシン数のデータを取得し、最大必要マシン数Nとして、各時間帯の必要マシン数のうちの最大値を算出する。図2A、図2Bの例では、最大必要マシン数Nは、時間帯3(8:00〜12:00)における必要マシン数「4」である(N=4)。
(2)ステップS102
次に、稼動計画作成処理部22は、時間帯別必要マシン数と、時間帯数Tと、最大必要マシン数Nを取得する。時間帯数Tは、時間帯の個数を表す。図2A、図2Bの例では、時間帯数Tは、時間帯のエントリの総数「6」である(T=6)。
稼動計画作成処理部22の一部である稼動時間帯判定処理部221は、ステップS103以降の処理を行うことで、稼動計画を作成する。ステップS103以降では、最大でNとなるi(1≦i≦N)と、最大でTとなるj(1≦j≦T)を用いて、時間帯jにおける必要マシン数がXであれば、マシン1〜Xの稼動が必要という判定を行っている。この判定結果に基づいて、処理装置20は、マシン1〜Xの稼動を実行する。ここでは、iは、マシンIDを示す変数である。マシンIDは、1からNまで1つずつ昇順に割り当てられているものとする。マシンiは、マシンIDがiであるマシンを示す。jは、時間帯IDを示す変数である。時間帯IDは、1からTまで1つずつ昇順に割り当てられているものとする。時間帯jは、時間帯IDがjである時間帯を示す。
(3)ステップS103
稼動時間帯判定処理部221は、iに対して1を代入し、初期化する。
(4)ステップS104
稼動時間帯判定処理部221は、「i≦最大必要マシン数N」が成立するか確認する。「i≦最大必要マシン数N」が成立すれば、ステップS105に移行する。「i≦最大必要マシン数N」が成立せず、「i>最大必要マシン数N」が成立すれば、処理を終了し、稼動時間帯判定結果を、稼動計画として出力する。
(5)ステップS105
稼動時間帯判定処理部221は、jに対して1を代入し、初期化する。
(6)ステップS106
稼動時間帯判定処理部221は、「j≦時間帯数T」が成立するか確認する。「j≦時間帯数T」が成立すれば、ステップS107に移行する。「j≦時間帯数T」が成立しなければ、ステップS110に移行する。
(7)ステップS107
稼動時間帯判定処理部221は、「時間帯jの必要マシン数がi以上」であるか確認する。「時間帯jの必要マシン数がi以上」であれば、ステップS108に移行する。「時間帯jの必要マシン数がi以上」でなければ、ステップS109に移行する。
(8)ステップS108
稼動時間帯判定処理部221は、「時間帯jの必要マシン数がi以上」であれば、マシンiを時間帯jで稼動させる必要があると判定する。例えば、「i=1」の場合、マシン1を時間帯jで稼動させる。
(9)ステップS109
稼動時間帯判定処理部221は、jの値を1だけ繰り上げる(increment)。その後、ステップS106に移行する。
(10)ステップS110
稼動時間帯判定処理部221は、iの値を1だけ繰り上げる(increment)。その後、ステップS104に移行する。
ここでは、「i≦N」のループを先に実行し、「j≦T」のループをその中で実行することで、マシン毎に(1台ずつ)、全ての時間帯を対象に、各時間帯において当該マシンの稼動が必要か判定を行うようにしている。但し、実際には、「j≦T」のループを先に実行し、「i≦N」のループをその中で実行することで、時間帯毎に、全てのマシンを対象に、当該時間帯において各マシンの稼動が必要か判定を行うようにすることも可能である。すなわち、ステップS103とステップS105を入れ替え、ステップS104とステップS106を入れ替え、ステップS109とステップS110を入れ替えても良い。どちらであっても、本質的に違いは無い。
[稼動時間帯判定処理の詳細]
図3のステップS103以降の具体的な処理について、図2A、図2Bの例を用いて説明する。本例では、「最大必要マシン数N=4、時間帯数T=6」である。また、図4は、マシンが仮想マシン(VM)である場合の稼動時間帯判定結果(稼動計画)の1例である。
ステップS103では、稼動時間帯判定処理部221は、マシンIDを示す変数であるiの値を1に初期化する(i=1)。次のステップS104では、「i=1、N=4」であるため、「i≦N」(1≦4)が成立し、ステップS105を実行し、時間帯IDを示す変数であるjの値を1に初期化する(j=1)。
続くステップS106では、「j=1、T=6」であるため、「j≦T」(1≦6)が成立し、ステップS107の判定を行う。ステップS107では、「時間帯1の必要マシン数=2、i=1」であるため、「時間帯jの必要マシン数≧i」(2≧1)が成立する。次のステップS108では、マシン1を時間帯1で稼動させる必要があると判定する。
次のステップS109では、jの値を1つ増加させて(j=2)、次の時間帯2に関して、同様に、ステップS106以降を実行する。この「j=2」の場合も、ステップS108において、マシン1を時間帯2で稼動させる必要があると判定する。「j=3〜6」の場合も同様である。すなわち、ステップS108において、マシン1を時間帯3〜6で稼動させる必要があると判定する。
図4の表(テーブル)のVM─1の列が、「i=1」のときの実行結果を表している。VM─1は、マシン1に相当する。表中の「○」はマシンの稼動が必要であることを意味し、表中の「×」はマシンの稼動が必要ないことを意味する。
ステップS106以降の6回目のループが完了し、「j=7」となると、ステップS106において、「j=7、T=6」であり、「j>T」(7>6)であるため、j≦Tが不成立となり、ステップS110を実行し、iの値を1つ増加させて「i=2」とする。その後、ステップS104以降のループを再度実行する。
「変数i=2〜4」のときのステップS104以降のループの処理によって、図4のVM─2〜4の列が得られる。VM─2〜4は、マシン2〜4に相当する。その次の「i=5」のときのループでは、ステップS104において、「i=5、N=4」であり、「i>N」(5>4)であるため、「i≦N」が不成立となり、全体の処理を終了する。その結果、図4のVM─1〜4の列が全て得られる。
上記の稼動時間帯判定処理の終了後、処理装置20は、得られた稼動時間帯判定結果を、稼動計画として、出力装置30に出力する。或いは、処理装置20は、得られた稼動時間帯判定結果に基づく命令(コマンド)や信号を、稼動計画として、出力装置30に出力するようにしても良い。
以上に説明した手続きにより、時間帯毎の必要マシン数とマシンのIDとに基づいて、稼動する必要のあるマシンと、必要のないマシンを示す稼動計画が提供される。この情報を参照することにより、要求性能を満たすにあたって稼動する必要のないマシンを停止させ、消費電力や計算機リソースを節約することが可能となる。
また、もう1つの効果として、本発明によれば、所定の台数のマシンが必要な時間帯で稼動するマシンが常に同一になるため、負荷分散のために必要な設定作業を削減できる。図4の例では、2台のマシンが必要な時間帯1と時間帯6では、どちらもマシン1とマシン2が稼動する計画が立てられる。
クライアントから到着するリクエストを振り分けて負荷分散するには、ロードバランサ(Load Balancer)と呼ばれる負荷分散装置に対して、どのマシンにリクエストを転送すべきかを、マシンのIPアドレス等を使って設定しなければならない。従って、2台の負荷分散を行う場合でも、その2台が別の組合せであれば、異なる設定が必要となる。本発明によれば、このような無駄が排除できる。
<第2実施形態>
以下に、本発明の第2実施形態について添付図面を参照して説明する。
本実施形態では、第1実施形態において得られた稼動時間帯判定結果(稼動計画)に基づいて、稼動時間帯連結結果を作成する。
本実施形態は、稼動計画作成処理部22が、稼動時間帯判定処理部221に加えて、稼動時間帯連結処理部222を更に備える点で、第1実施形態と異なる。他の点は、第1実施形態と同じである。
図5に示すように、本発明の第2実施形態におけるマシン稼動計画作成装置は、記憶装置10と、処理装置20と、出力装置30を備える。
記憶装置10及び出力装置30は、基本的に、第1実施形態と同じである。
処理装置20は、最大必要マシン数算出処理部21と、稼動計画作成処理部22を備える。
稼動計画作成処理部22は、稼動時間帯判定処理部221と、稼動時間帯連結処理部222を備える。
最大必要マシン数算出処理部21及び稼動時間帯判定処理部221は、基本的に、第1実施形態と同じである。
稼動時間帯連結処理部222は、第1実施形態において稼動時間帯判定処理部221が作成した稼動時間帯判定結果を入力とし、稼動時間帯連結結果を作成する。
[稼動時間帯連結処理]
図6及び図7は、本実施形態に係る稼動時間帯連結処理部222の2種類の処理内容を示すフローチャートである。図6は、第1の連結処理を示すフローチャートである。図7は、第2の連結処理を示すフローチャートである。
図8Aの表(テーブル)は、図4に示す稼動時間帯判定結果を入力として、第1の連結処理(図6)を用いた場合の連結結果を表し、図8Bの表(テーブル)は、図4に示す稼動時間帯判定結果を入力として、第2の連結処理(図7)を用いた場合の連結結果を表している。
[第1の連結処理]
最初に、図6を参照して、第1の連結処理について説明する。
(1)ステップS201
稼動時間帯連結処理部222は、iに対して1を代入し、初期化する。
(2)ステップS202
稼動時間帯連結処理部222は、「i≦最大必要マシン数N」が成立するか確認する。「i≦最大必要マシン数N」が成立すれば、ステップS203に移行する。「i≦最大必要マシン数N」が成立せず、「i>最大必要マシン数N」が成立すれば、処理を終了し、稼動時間帯判定結果を作成する。
(3)ステップS203
稼動時間帯連結処理部222は、マシンiの稼動時間帯をID順に列挙する。例えば、稼動時間帯連結処理部222は、時間帯IDの昇順/降順に、稼動時間帯を列挙する。
(4)ステップS204
稼動時間帯連結処理部222は、隣接する2つの稼動時間帯が存在するか確認する。隣接する2つの稼動時間帯が存在する場合、ステップS205に移行する。隣接する2つの稼動時間帯が存在しない場合、ステップS207に移行する。
(5)ステップS205
稼動時間帯連結処理部222は、隣接する2つの稼動時間帯が時間的に連続しているか確認する。隣接する2つの稼動時間帯が時間的に連続している場合、ステップS206に移行する。隣接する2つの稼動時間帯が時間的に連続していない場合、ステップS204に移行する。
(6)ステップS206
稼動時間帯連結処理部222は、隣接する2つの稼動時間帯を連結する。その後、ステップS204に移行する。
(7)ステップS207
稼動時間帯連結処理部222は、iの値を1だけ繰り上げる(increment)。その後、ステップS202に移行する。
[第2の連結処理]
次に、図7を参照して、第2の連結処理について説明する。
(1)ステップS301
稼動時間帯連結処理部222は、iに対して1を代入し、初期化する。
(2)ステップS302
稼動時間帯連結処理部222は、「i≦最大必要マシン数N」が成立するか確認する。「i≦最大必要マシン数N」が成立すれば、ステップS303に移行する。「i≦最大必要マシン数N」が成立せず、「i>最大必要マシン数N」が成立すれば、処理を終了し、稼動時間帯判定結果を作成する。
(3)ステップS303
稼動時間帯連結処理部222は、マシンiの稼動時間帯をID順に列挙する。例えば、稼動時間帯連結処理部222は、時間帯IDの昇順/降順に、稼動時間帯を列挙する。
(4)ステップS304
稼動時間帯連結処理部222は、最初の稼動時間帯の稼動開始時刻から、最後の稼動時間帯の稼動終了時刻までを、新たな稼動時間帯とする。すなわち、稼動時間帯連結処理部222は、最初の稼動時間帯から最後の稼動時間帯までの全ての稼動時間帯を連結する。
(5)ステップS305
稼動時間帯連結処理部222は、iの値を1だけ繰り上げる(increment)。その後、ステップS302に移行する。
[第1の連結処理の詳細]
図6に示す第1の連結処理の具体的な処理について、図4に示す稼動時間帯判定結果の例を用いて、本実施形態に係る稼動時間帯連結処理部222の具体的な処理について説明する。本例では、第1実施形態と同様、「最大必要マシン数N=4、時間帯数T=6」である。
ステップS201では、稼動時間帯連結処理部222は、マシンのIDに対応するiを1に初期化する(i=1)。次のステップS202では、「i=1、N=4」であり、「i≦N」(1≦4)が成立するため、ステップS203を実行する。
ステップS203では、稼動時間帯連結処理部222は、マシン1の稼動時間帯をID順に列挙する。
図4の例では、稼動時間帯をID順に列挙すると、以下のようになる。
(1)時間帯0:00〜4:00
(2)時間帯4:00〜8:00
(3)時間帯8:00〜12:00
(4)時間帯12:00〜16:00
(5)時間帯16:00〜20:00
(6)時間帯20:00〜24:00
続くステップS204では、稼動時間帯連結処理部222は、隣接する2つの稼動時間帯を先頭から順に取り出す。その後、ステップS205では、取り出した2つの稼動時間帯が連続しているかどうか判定する。まず、時間帯0:00〜4:00と時間帯4:00〜8:00を取り出す。時間帯0:00〜4:00と時間帯4:00〜8:00は時間的に連続しているため、ステップS205の条件が成立する。従って、ステップS206において、時間帯0:00〜4:00と時間帯4:00〜8:00を連結し、時間帯0:00〜8:00とする。
再度ステップS204に戻り、今度は連結された時間帯0:00〜8:00と、これに隣接する時間帯8:00〜12:00について、ステップS205の判定を行う。時間帯0:00〜8:00と時間帯8:00〜12:00は時間的に連続しているため、ステップS205の条件が成立する。従って、ステップS206において、時間帯0:00〜8:00と時間帯8:00〜12:00を連結し、時間帯0:00〜12:00とする。
同様に、ステップS204〜S206の処理を繰り返し、最終的にマシン1の稼動時間帯を、時間帯0:00〜24:00とする。すなわち、マシン1は常時稼動することになる。図8Aの表(テーブル)のVM─1の行が、連結の結果として得られるマシン1(VM─1)の稼動時間帯を表している。
マシン1に関して、隣接する2つの時間帯の処理が全て完了すると、ステップS204の条件が不成立となり、次にステップS207を実行する。ステップS207では、iの値を1つ増加させて(i=2)、ステップS202以降のループを再度実行する。
マシン2(VM─2)に関する次のステップS202では、「i=2、N=4」であり、「i≦N」(2≦4)が成立するため、ステップS203を実行する。
ステップS203では、稼動時間帯連結処理部222は、マシン2の稼動時間帯を次のように列挙する。
(1)時間帯0:00〜4:00
(2)時間帯8:00〜12:00
(3)時間帯12:00〜16:00
(4)時間帯20:00〜24:00
続くステップS204で、隣接する時間帯0:00〜4:00と時間帯8:00〜12:00が取り出されるが、時間帯0:00〜4:00と時間帯8:00〜12:00は時間的に連続していないため、ステップS205の条件は成立せず、ステップS204に戻る。
2回目のステップS204では、次の隣接する時間帯8:00〜12:00と時間帯12:00〜16:00について、ステップS205の判定を行う。時間帯8:00〜12:00と時間帯12:00〜16:00は時間的に連続しているため、ステップS205の条件が成立し、時間帯8:00〜12:00と時間帯12:00〜16:00を連結し、時間帯8:00〜16:00とする。
3回目のステップS204では、次の隣接する時間帯8:00〜16:00と時間帯20:00〜24:00について、ステップS205の判定を行う。時間帯8:00〜16:00と時間帯20:00〜24:00は時間的に連続していないため、ステップS205の条件は成立せず、ステップS204に戻る。
4回目のステップS204では、もはや未処理の隣接する時間帯が存在しないため、ステップS207において、iの値を1つ増やした後(i=3)、3回目のステップS202以降を実行する。
この結果、マシン2に関しては、3つの時間帯0:00〜4:00、時間帯8:00〜16:00、時間帯20:00〜24:00が得られる(図8AのVM─2の行)。なお、この結果からマシン2の電源投入時刻が8:00と20:00であることと、電源切断時刻が4:00と16:00であることがわかる。電源ボタンを押下してから、実際にマシンが利用可能な状態になるまでには時間がかかるため、電源投入時酷は余裕を見て8:00や20:00より早い時間にしてもよい。
その後、マシン3、マシン4についても、ステップS202以降の処理によって、それぞれ時間帯8:00〜16:00と時間帯8:00〜12:00が得られる。すなわち、「i=3」の場合は時間帯8:00〜16:00が得られ、「i=4」の場合は時間帯8:00〜12:00が得られる。
稼動時間帯連結処理部222は、マシン4に関する処理が完了し、「i=5」となると、ステップS202において、「i=5、N=4」であり、「i>N」(5>4)となり、「i≦N」が不成立となるため、全体の処理を終了する。
最終的に、図8Aの表(テーブル)に示した各マシン(VM)の稼動時間帯連結結果が得られる。
処理装置20は、得られた稼動時間帯連結結果を、稼動計画として出力装置30に出力する。或いは、処理装置20は、得られた稼動時間帯判定結果に基づく命令(コマンド)や信号を、稼動計画として、出力装置30に出力するようにしても良い。
以上に説明した手続きにより、各マシンの連続する稼動時間帯をまとめることで、電源の投入及び切断にかかる操作コストを節約できる。また、電源の投入・切断を人間が行う場合は、操作ミスが発生する可能性もある。更には、電源の投入・切断処理によって機械が物理的に消耗し、機械の寿命が短くなるという負の効果も存在する。従って、稼動時間帯連結結果を参照することで、マシンの故障や操作ミスの発生リスクを低減することができる。
[第2の連結処理の詳細]
次に、図7に示す第1の連結処理の具体的な処理について、図4に示す稼動時間帯判定結果の例を用いて、本実施形態に係る稼動時間帯連結処理部222の具体的な処理について説明する。本例でも、第1の連結処理と同様、「最大必要マシン数N=4、時間帯数T=6」である。
図7におけるステップS301〜S303の処理は、第1の連結処理(図6)におけるステップS201〜S203の処理と同様である。
まず、「i=1」のとき、ステップS303において、稼動時間帯連結処理部222は、マシン1の稼動時間帯をID順に列挙する。
ステップS303では、稼動時間帯連結処理部222は、マシン1の稼動時間帯を次のように列挙する。
(1)時間帯0:00〜4:00
(2)時間帯4:00〜8:00
(3)時間帯8:00〜12:00
(4)時間帯12:00〜16:00
(5)時間帯16:00〜20:00
(6)時間帯20:00〜24:00
ステップS304では、稼動時間帯連結処理部222は、最初の時間帯0:00〜4:00の稼動開始時刻0:00と、最後の時間帯20:00〜24:00の稼動終了時刻24:00を抽出し、新たな時間帯0:00〜24:00を生成する。すなわち、マシン1の稼動時間帯は、抽出された時刻をもって時間帯0:00〜24:00となる。従って、稼動時間帯連結処理部222は、0:00から24:00の間に稼動していない時間帯があったとしても、無視する。
次のステップS305では、稼動時間帯連結処理部222は、iの値を1つ増やし(i=2)、ステップS302以降のループに戻る。
「i=2」のとき、ステップS302では、「i≦N」(2≦4)が成立し、ステップS303において、稼動時間帯連結処理部222は、マシン1の稼動時間帯をID順に列挙する。
ステップS303では、稼動時間帯連結処理部222は、マシン2の稼動時間帯を次のように列挙する。
(1)時間帯0:00〜4:00
(2)時間帯8:00〜12:00
(3)時間帯12:00〜16:00
(4)時間帯20:00〜24:00
ステップS304では、マシン1の場合と同様に、稼動時間帯連結処理部222は、時間帯0:00〜4:00の稼動開始時刻0:00と、時間帯20:00〜24:00の稼動終了時刻24:00を取り出し、時間帯0:00〜24:00を新しい稼動時間帯とする。連結処理1のときとは異なり、マシン2も常時稼動となる。
続くステップS305では、稼動時間帯連結処理部222は、iの値を1つ増やし(i=3)、ステップS302以降のループに戻る。
稼動時間帯連結処理部222は、マシン3、マシン4についても同様に、稼動時間帯を更新する。すなわち、「i=3」、「i=4」の場合も同様に、稼動時間帯を更新する。
マシン4に関する処理が完了し、「i=5」となると、ステップS302において、「i=5、N=4」であり、「i>N」(5>4)となるため、「i≦N」が不成立となり、全体の処理を終了する。
最終的に、図8Bの表(テーブル)に示した各マシン(VM)の稼動時間帯連結結果が得られる。
処理装置20は、得られた稼動時間帯連結結果を、稼動計画として出力装置30に出力する。或いは、処理装置20は、得られた稼動時間帯判定結果に基づく命令(コマンド)や信号を、稼動計画として、出力装置30に出力するようにしても良い。
マシン2(VM─2)に関して、第1の連結処理と第2の連結処理で結果が異なるのは、稼動の必要な時間帯の間に稼動の不要な時間帯が存在するためである。第2の連結処理では、電源の投入・切断操作を節約する代償として、稼動の不要な時間帯もマシンが稼動することになり、その分の電力を余分に消費する。第1の連結処理と第2の連結処理のどちらを選択するかは、電源操作のコストやリスクと、電力コストのどちらの節約を優先するかによる。
以上に説明した手続きにより、電源の投入・切断に伴う操作コストやリスクを、より一層低減できる。
なお、上記の各実施形態は、組み合わせて実施することも可能である。
本発明は、多数のサーバが稼動するデータセンターにおいて、サーバの稼動計画を立案するための装置又はシステムに適用可能である。
[本発明の特徴]
本発明のマシン稼動計画作成装置は、時間帯別の必要マシン台数と、1から順に番号付けられたマシンのIDとを比較し、マシンのIDの方が大きくない場合に当該マシンの稼動が必要と判定する稼働時間帯判定処理部を備えることを特徴とする。
また、本発明のマシン稼動計画作成装置は、各マシンが複数の稼動時間帯を持つ時、複数の稼動時間帯を連結して、複数の稼動時間帯の個数を削減する稼働時間帯連結処理部を更に備えることを特徴とする。
また、本発明のマシン稼動計画作成装置は、上記の稼働時間帯連結処理部が、2つの稼動時間帯が時間的に連続している場合に、2つの稼動時間帯を連結し、新たな稼動時間帯とすることを特徴とする。
また、本発明のマシン稼動計画作成装置は、上記の稼働時間帯連結処理部が、複数の稼動時間帯の中から、最初の時間帯の開始時刻と、最後の時間帯の終了時刻を取り出し、開始時刻から終了時刻までを新たな稼動時間帯とすることを特徴とする。
また、本発明のマシン稼動計画作成装置は、時間帯別の必要マシン台数のリストから、必要マシン台数の最大値を算出する最大必要マシン数算出処理部を更に備えることを特徴とする。
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
<備考>
なお、本出願は、日本出願番号2010−069229に基づく優先権を主張するものであり、日本出願番号2010−069229における開示内容は引用により本出願に組み込まれる。

Claims (10)

  1. 時間帯別の必要マシン台数を格納する時間帯別必要マシン数記憶部と、
    前記時間帯別の必要マシン台数と、1から順に番号付けられたマシン識別子とを比較し、前記マシン識別子の方が大きくない場合、前記マシン識別子に対応するマシンの稼動が必要と判定する稼働時間帯判定処理部と
    を具備する
    マシン稼動計画作成装置。
  2. 請求項1に記載のマシン稼動計画作成装置であって、
    マシン毎に複数の稼働時間帯が存在する場合、前記複数の稼働時間帯を連結して、前記複数の稼働時間帯の個数を削減する稼働時間帯連結処理部
    を更に具備する
    マシン稼動計画作成装置。
  3. 請求項2に記載のマシン稼動計画作成装置であって、
    前記稼働時間帯連結処理部は、前記複数の稼働時間帯のうち、2つの稼働時間帯が時間的に連続している場合、前記2つの稼働時間帯を連結し、新たな稼働時間帯とする
    マシン稼動計画作成装置。
  4. 請求項2に記載のマシン稼動計画作成装置であって、
    前記稼働時間帯連結処理部は、前記複数の稼働時間帯の中から、最初の時間帯の開始時刻と、最後の時間帯の終了時刻を取り出し、前記開始時刻から前記終了時刻までを新たな稼働時間帯とする
    マシン稼動計画作成装置。
  5. 請求項1乃至4のいずれか一項に記載のマシン稼動計画作成装置であって、
    前記時間帯別の必要マシン台数から、必要マシン台数の最大値を算出する最大必要マシン数算出処理部
    を更に具備し、
    前記稼働時間帯判定処理部は、前記必要マシン台数の最大値と、前記マシン識別子とを比較し、前記マシン識別子の方が大きい場合、処理結果を出力する
    マシン稼動計画作成装置。
  6. 計算機により実施されるマシン稼動計画作成方法であって、
    時間帯別の必要マシン台数と、1から順に番号付けられたマシン識別子とを比較することと、
    前記マシン識別子の方が大きくない場合、前記マシン識別子に対応するマシンの稼動が必要と判定することと
    を含む
    マシン稼動計画作成方法。
  7. 請求項6に記載のマシン稼動計画作成方法であって、
    マシン毎に複数の稼働時間帯が存在する場合、前記複数の稼働時間帯を連結して、前記複数の稼働時間帯の個数を削減すること
    を更に含む
    マシン稼動計画作成方法。
  8. 請求項7に記載のマシン稼動計画作成方法であって、
    前記複数の稼働時間帯の個数を削減する際に、前記複数の稼働時間帯のうち、2つの稼働時間帯が時間的に連続している場合、前記2つの稼働時間帯を連結し、新たな稼働時間帯とすること
    を更に含む
    マシン稼動計画作成方法。
  9. 請求項7に記載のマシン稼動計画作成方法であって、
    前記複数の稼働時間帯の個数を削減する際に、前記稼働時間帯連結処理部は、前記複数の稼働時間帯の中から、最初の時間帯の開始時刻と、最後の時間帯の終了時刻を取り出し、前記開始時刻から前記終了時刻までを新たな稼働時間帯とすること
    を更に含む
    マシン稼動計画作成方法。
  10. 請求項6乃至9のいずれか一項に記載のマシン稼動計画作成方法を、計算機に実行させるためのマシン稼動計画作成用プログラム。
JP2012506940A 2010-03-25 2011-03-14 マシン稼動計画作成装置、マシン稼動計画作成方法、及びマシン稼動計画作成用プログラム Withdrawn JPWO2011118424A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010069229 2010-03-25
JP2010069229 2010-03-25
PCT/JP2011/055883 WO2011118424A1 (ja) 2010-03-25 2011-03-14 マシン稼動計画作成装置、マシン稼動計画作成方法、及びマシン稼動計画作成用プログラム

Publications (1)

Publication Number Publication Date
JPWO2011118424A1 true JPWO2011118424A1 (ja) 2013-07-04

Family

ID=44672982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012506940A Withdrawn JPWO2011118424A1 (ja) 2010-03-25 2011-03-14 マシン稼動計画作成装置、マシン稼動計画作成方法、及びマシン稼動計画作成用プログラム

Country Status (3)

Country Link
US (1) US20130014113A1 (ja)
JP (1) JPWO2011118424A1 (ja)
WO (1) WO2011118424A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013225204A (ja) * 2012-04-20 2013-10-31 Fujitsu Frontech Ltd トラフィック量予測に基づき、稼働サーバ台数を自動で最適化する負荷分散方法及び装置
WO2014045549A1 (ja) * 2012-09-19 2014-03-27 日本電気株式会社 マシン配置計画を生成する情報処理装置及びマシン配置計画生成方法
WO2015004785A1 (ja) * 2013-07-11 2015-01-15 富士通株式会社 管理装置、管理方法及びプログラム
JP7092345B2 (ja) * 2018-07-27 2022-06-28 Necプラットフォームズ株式会社 サーバ制御装置、サーバ制御方法およびサーバ制御プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004021608A (ja) * 2002-06-17 2004-01-22 Nec Corp 二重化サーバの障害検知方式及びその方法
JP4197303B2 (ja) * 2004-02-17 2008-12-17 株式会社日立製作所 計算機リソース管理方法及び実施装置並びに処理プログラム
JP4290125B2 (ja) * 2005-01-13 2009-07-01 三洋電機株式会社 サーバ装置
JP3967752B2 (ja) * 2005-03-25 2007-08-29 株式会社東芝 計算機ネットワーク構成制御システム及び方法
US8554799B2 (en) * 2005-07-01 2013-10-08 Microsoft Corporation Blocks of time with metadata
JP5338906B2 (ja) * 2009-06-01 2013-11-13 富士通株式会社 サーバ管理プログラム、管理サーバ、仮想サーバ配置方法

Also Published As

Publication number Publication date
WO2011118424A1 (ja) 2011-09-29
US20130014113A1 (en) 2013-01-10

Similar Documents

Publication Publication Date Title
US11226846B2 (en) Systems and methods of host-aware resource management involving cluster-based resource pools
US9977689B2 (en) Dynamic scaling of management infrastructure in virtual environments
US10824215B2 (en) Managing power budget of multiple computing node clusters in a computing rack system
JP4519098B2 (ja) 計算機の管理方法、計算機システム、及び管理プログラム
JP3978199B2 (ja) リソースの利用およびアプリケーションの性能の監視システムおよび監視方法
JP6102949B2 (ja) 仮想計算機管理プログラム,仮想計算機管理方法及び仮想計算機システム
US20100211958A1 (en) Automated resource load balancing in a computing system
US20090089780A1 (en) Method and apparatus to convey physical resource relationships
US20120290865A1 (en) Virtualized Application Power Budgeting
US20160156568A1 (en) Computer system and computer resource allocation management method
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
US11599395B2 (en) Dynamic core allocation
JP2010086145A (ja) 分散処理システム
US20200409806A1 (en) Virtual-machine-specific failover protection
WO2011118424A1 (ja) マシン稼動計画作成装置、マシン稼動計画作成方法、及びマシン稼動計画作成用プログラム
US7668938B1 (en) Method and system for dynamically purposing a computing device
US20230038612A1 (en) Optimizing vm numa configuration and workload placement in a heterogeneous cluster
JP5151509B2 (ja) 仮想マシンシステム及びそれに用いる仮想マシン分散方法
US10157066B2 (en) Method for optimizing performance of computationally intensive applications
CN115102851B (zh) 一种面向hpc与ai融合计算的融合平台及其资源管理方法
JP2008158687A (ja) 帯域制御プログラム及びマルチプロセッサシステム
JP2009087213A (ja) 計算機余力算出装置、計算機余力算出方法
CN108196936A (zh) 一种资源调度方法、设备及***
JP2008269440A (ja) 仮想計算機システム
Stalio et al. Resource management on a VM based computer cluster for scientific computing

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140603