JP6724631B2 - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP6724631B2
JP6724631B2 JP2016147640A JP2016147640A JP6724631B2 JP 6724631 B2 JP6724631 B2 JP 6724631B2 JP 2016147640 A JP2016147640 A JP 2016147640A JP 2016147640 A JP2016147640 A JP 2016147640A JP 6724631 B2 JP6724631 B2 JP 6724631B2
Authority
JP
Japan
Prior art keywords
processing
instance
virtual machine
type
processing amount
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.)
Expired - Fee Related
Application number
JP2016147640A
Other languages
English (en)
Other versions
JP2018018275A (ja
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2016147640A priority Critical patent/JP6724631B2/ja
Publication of JP2018018275A publication Critical patent/JP2018018275A/ja
Application granted granted Critical
Publication of JP6724631B2 publication Critical patent/JP6724631B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置及びプログラムに関する。
従来、仮想マシンが広く用いられている。仮想マシンとは、仮想機械、仮想コンピュータ、あるいはバーチャルマシンなどとも称されるものであり、物理マシン上においてソフトウェアにより定義あるいは構築され、利用者をしてあたかも1台の物理マシンとして利用し得るものである。
仮想マシンを利用することで、利用者は、仮想マシンが実行すべき処理の処理量に応じて当該仮想マシンの処理能力を容易に変更することができる。例えば仮想マシンの台数を変更する、あるいは仮想マシンのCPU(Central Processing Unit)やメモリといったハードウェア資源量を変更することなどによって仮想マシンの処理能力を変更できる。一般的に、仮想マシンは仮想マシンベンダから提供され、契約者は、仮想マシンの処理能力に応じた額の使用料を仮想マシンベンダに支払う。したがって、契約者は、必要な処理を処理可能な限りにおいて、仮想マシンの処理能力をできるだけ低くしておくことが望まれる。
特許文献1及び2には、物理マシン上で実行される仮想マシンを管理する情報処理装置であって、仮想マシンの過去のハードウェア資源使用量に基づいて、当該仮想マシンの将来におけるハードウェア資源使用量を予測し、当該予測に基づいて当該仮想マシンのハードウェア資源量を決定する情報処理装置が開示されている。
特開2013−206321号公報 特許2015−087936号公報
仮想マシンが実行すべき処理の処理量に応じて仮想マシンの処理能力を決定する場合、当該仮想マシンの過去における処理能力、あるいは当該仮想マシンが過去において実行した処理の処理量に基づいて、仮想マシンの処理能力を決定することが考えられる。しかしながら、仮想マシンの過去の処理能力あるいは処理量から、将来において当該仮想マシンに割り当てられる処理の処理量を推認することは可能なものの、それが必ずしも将来の処理量と一致するとは限らない。つまり、過去における仮想マシンの処理能力あるいは処理量に基づいて設定された仮想マシンの処理能力が、将来当該仮想マシンに割り当てられる処理の処理量に対して適切な能力とならない場合が生じるおそれがあった。
本発明の目的は、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来当該仮想マシンに割り当てられる処理量に適した能力に設定することにある。
請求項1に係る発明は、入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させる情報処理装置であって、前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻を予測する処理スケジュール予測部と、現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、を備えることを特徴とする情報処理装置である。
請求項2に係る発明は、前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記1又は複数の処理の処理量の最大値が、前記仮想マシンの割り当て可能処理量を超える場合に、前記仮想マシンの処理能力を増大させる、ことを特徴とする請求項1に記載の情報処理装置である。
請求項3に係る発明は、前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記仮想マシンの割り当て可能処理量と、前記1又は複数の処理の処理量の最大値との差分が所定量以上である場合に、前記仮想マシンの処理能力を減少させる、ことを特徴とする請求項1又は2に記載の情報処理装置である。
請求項4に係る発明は、前記仮想マシン制御部により前記仮想マシンの処理能力が変更された場合に、前記記憶部に記憶された、当該仮想マシンの前記処理速度情報及び前記割り当て可能処理量の少なくとも一方を更新する更新部、をさらに備えることを特徴とする請求項1から3のいずれか1項に記載の情報処理装置である。
請求項5に係る発明は、コンピュータに、入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させるためのプログラムであって、前記コンピュータを、前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻を予測する処理スケジュール予測部と、現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、として機能させることを特徴とするプログラムである。
請求項1及び5に記載の発明によれば、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来仮想マシンに割り当てられる処理量に適した能力に設定することができる。
請求項2に記載の発明によれば、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来当該仮想マシンに割り当てられる処理量に応じて増大させることができる。
請求項3に記載の発明によれば、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来仮想マシンに割り当てられる処理量に応じて減少させることができる。
請求項4に記載の発明によれば、処理速度情報及び割り当て可能処理量が、常に現時点における仮想マシンの処理能力を示すものとなる。
本実施形態に係るサービス提供システムの構成概略図である。 処理順序情報の例を示す概念図である。 処理能力DBの内容の例を示す概念図である。 タイプAインスタンスの処理スケジュール情報の例を示す概念図である。 スケールアウト処理の流れを示すフローチャートである。 タイプBインスタンスの処理スケジュール情報の例を示す概念図である。 タイプCインスタンスの処理スケジュール情報の例を示す概念図である。 タイプAインスタンスの処理スケジュール情報の第2の例を示す概念図である。 スケールイン処理の流れを示すフローチャートである。
以下、本発明の実施形態を図面に基づいて説明する。
図1は、本実施形態に係るサービス提供システム10の構成概略図である。サービス提供システム10は、利用者(ユーザ)が使用するクライアント端末12、情報処理装置としてのサーバ14、複数の仮想マシンとしての複数のタイプA〜Cのインスタンス、及び、記憶装置(ハードディスクなど)群から構成されるストレージ16を含んで構成される。クライアント端末12とサーバ14間は、LANあるいはインターネットを含む通信回線を介して通信可能に接続されている。また、サーバ14、複数のタイプ(A〜C)のインスタンス、及びストレージ16は互いに通信回線を介して通信可能に接続されている。なお、図1には1つのクライアント端末12が示されているが、サービス提供システム10には複数のユーザが利用する複数のクライアント端末12が含まれていてもよい。また、図1には3つのインスタンスタイプが示されているが、サービス提供システム10としてはそれ以外の数のインスタンスタイプを有するようにしてもよい。
サービス提供システム10は、ユーザにマルチクラウドサービスを提供するものである。具体的には、サービス提供システム10においては、通信回線を介してクライアント端末12から入力された処理要求としてのジョブに関する処理をサーバ14が複数のインスタンスタイプに順次処理させる。その処理結果がクライアント端末12に返されてもよい。例えば、サービス提供システム10は、ユーザから入力されたジョブに係る電子ドキュメントをストレージ16に格納する処理、ストレージ16に格納された電子ドキュメントを検索あるいは出力(ダウンロード)処理を行う。
タイプAインスタンス、タイプBインスタンス、及びタイプCインスタンスの各インスタンスタイプは、それぞれ1又は複数のインスタンスから構成される。各インスタンスはインスタンスベンダから提供されるものである。サービス提供システム10の管理者がインスタンスベンダと契約することによって、所定の処理能力を有するインスタンスが提供される。インスタンスベンダとの契約内容を変更(例えば各タイプに属するインスタンスの数を変更、あるいは各インスタンスの能力を変更)することで、各タイプのインスタンスの能力を動的に変更することが可能となっている。
本実施形態においては、タイプの異なるインスタンスは異なる処理を行う。例えば、タイプAインスタンスは、クライアント端末12から入力されたジョブの中継処理を行う。中継処理とは、クライアント端末12とストレージ16間におけるデータの中継処理、及び、各インスタンスタイプ間におけるデータの中継処理を含む。タイプBインスタンスは、ジョブに係るドキュメントに対してOCR(Optical character recognition)処理、つまり光学文字認識処理を行う。また、タイプCインスタンスは、ジョブに係るドキュメントの形式変換(例えばWORDファイルからPDFファイルへの変換)処理を行う。
クライアント端末12は、例えばPC(Personal Computer)、あるいはタブレット端末などである。図1には示されていないが、クライアント端末12は、通常のコンピュータが有する構成、例えば制御部、記憶部、入力部、表示部、あるいは通信部を備えている。クライアント端末12は、ユーザからの指示に基づいて、サービス提供システム10に処理を要求するジョブをサーバ14に送信する。
サーバ14は、クライアント端末12から入力されるジョブに関する処理を1又は複数のインスタンスタイプに順次割り当てて処理させる。サーバ14は、以下の機能を実現する限りにおいてどのようなコンピュータであってもよい。なお、サーバ14自体もインスタンスで構成されるようにしてもよく、また、サーバ14にマルチクラウドサービスに関する処理を実行するインスタンスタイプ(例えばタイプAインスタンス)の機能が含まれていてもよい。以下、サーバ14が有する各機能について説明する。
制御部20は、例えばCPUなどから構成され、後述の記憶部30に記憶されたプログラムに従って、サーバ14の各部を制御するものである。制御部20は、記憶部30に記憶されたプログラムにより、ジョブ解析部22及びインスタンス制御部24としても機能する。
ジョブ解析部22は、クライアント端末12から入力された1又は複数のジョブを解析して、種々の情報を取得する。本実施形態では、ジョブ解析部22は、入力されたジョブに関する処理に対する各インスタンスタイプの処理順序、及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量を示す処理順序情報を取得する。さらに、処理スケジュール予測部としてのジョブ解析部22は、インスタンスタイプ毎に、入力されたジョブに関する処理がどのタイミングでどれだけの処理量が割り当てられるかを予測し、それらを示す処理スケジュール情報を生成する。ジョブ解析部22の解析により得られた情報は記憶部30に記憶される。ジョブ解析部22の処理内容の詳細については後述する。
仮想マシン制御部としてのインスタンス制御部24は、ジョブ解析部22が演算した処理スケジュール情報に基づいて、複数のインスタンスタイプA〜Cの処理能力の設定(変更)処理を行うものである。インスタンス制御部24は、各インスタンスタイプを提供するインスタンスベンダとの契約内容を更新することで、各インスタンスタイプの処理能力を変更する。本実施形態では、例えばタイプAインスタンスとして機能するインスタンスの数を増加させる(スケールアウト)あるいは減少させる(スケールイン)ことでタイプAインスタンスの処理能力を決定する。あるいは、1つのインスタンスのハードウェア資源(CPUコアの数あるいはメモリの数)を変更することで各インスタンスタイプの処理能力を変化させてもよい。また、更新部としてのインスタンス制御部24は、インスタンスタイプの処理能力を変更した場合に、各インスタンスタイプの処理能力を示す情報が記憶される処理能力DB34(後述)の更新処理を行う。インスタンス制御部24の処理内容については、図5あるいは図6のフローチャートに沿って後に詳述する。
記憶部30は、例えばハードディスク、ROM(Read Only Memory)、あるいはRAM(Random Access Memory)を含んで構成され、サーバ14を動作させるためのプログラムが記憶される。また、記憶部30には、処理順序情報32、処理能力DB34、処理スケジュール情報36、及び判定対象時間Tが記憶される。
処理順序情報32は、サーバ14に入力されたジョブに関する処理に対する各インスタンスタイプの処理順序、及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量が示されている。上述の通り、処理順序情報32は、ジョブ解析部22が入力されたジョブを解析することによって取得され、記憶部30に記憶される。
図2に、処理順序情報32の内容の例が示されている。例えば、入力されたジョブが、電子ドキュメントに対してOCR処理及び形式変換処理を行った上で、当該電子ドキュメントをストレージ16に格納することを要求するものである場合、当該ジョブに関する処理の処理順序としては、タイプAインスタンス(中継)→タイプBインスタンス(OCR処理)→タイプAインスタンス(中継)→タイプCインスタンス(形式変換処理)→タイプAインスタンス(中継)となる。ジョブ解析部22は、入力されたジョブを解析することにより、上述の処理順を示す情報を処理順序情報32として取得する。
さらに、ジョブ解析部22は、入力されたジョブを解析することで、当該ジョブを実行するために各インスタンスタイプに割り当てられる処理の処理量を演算する。例えば、ジョブに係る電子ドキュメントのデータ容量あるいはデータ内容などに基づいて処理量を演算する。ここでは、1、3、5場目の処理においてタイプAインスタンスに割り当てられる処理量が「10」であり、2番目の処理においてタイプBインスタンスに割り当てられる処理量が「20」であり、4番目の処理においてタイプCインスタンスに割り当てられる処理量が「15」であるとする。そのような処理量を示す情報(値)が処理順序情報32に記憶される。なお、本明細書における処理量を示す数値は、処理量を相対的に表す指標である。
処理能力DB34は、各インスタンスタイプの現在の処理能力を示す情報が記憶される。図3に、本実施形態における処理能力DB34の例が示されている。本実施形態においては、処理能力DB34には、各インスタンスタイプのインスタンス数、可能処理量情報、及び処理速度情報が記憶される。可能処理量情報は、各インスタンスタイプが現在処理可能な処理量を示すものである。本実施形態では、可能処理量情報は、各インスタンスタイプに現在割り当てることができる割り当て可能処理量を示すものである。また、処理速度情報は、各インスタンスタイプの単位時間当たりの処理量を示すものである。本実施形態では、処理速度情報として各インスタンスタイプの1秒当たりの処理量が記憶されている。
可能処理量情報及び処理速度情報は、各インスタンスタイプの処理能力を示すものであるから、あるインスタンスタイプの処理能力が変更されれば、当該インスタンスタイプの可能処理量情報及び処理速度情報の少なくとも一方が変更(更新)される。本例では、あるインスタンスタイプがスケールアウトされた場合に、処理能力として可能処理量が変更されるものとする。例えば、タイプAインスタンスとして機能するインスタンスが1つの場合に可能処理量が「20」である場合に、スケールアウトによりタイプAインスタンスとして機能するインスタンスが2つになった場合、タイプAインスタンスのインスタンス数が「2」になると共に、タイプAインスタンスの可能処理量は2倍の「40」となる。もちろん、インスタンスタイプの処理能力の変更によって可能処理量及び処理速度の両方が変更される場合は、当該インスタンスタイプの可能処理量情報及び処理速度情報の両方が変更される。上述の通り、処理能力DB34の内容、つまり各インスタンスタイプのインスタンス数、可能処理量情報、及び処理速度情報の更新処理はインスタンス制御部24が行う。
処理スケジュール情報36は、上述のように、各インスタンスタイプにおいて、将来割り当てられる処理の処理量、及び当該処理の割り当て時刻を示す情報であり、ジョブ解析部22によってインスタンスタイプ毎に生成される。
図4には、タイプAインスタンスの処理スケジュール情報36Aの例が示されている。本実施形態においては、図4に示される通り、横軸が時間軸であり、縦軸が当該インスタンスタイプが処理すべき残処理量である残処理量グラフが処理スケジュール情報36として生成される。ジョブ解析部22は、ジョブの解析により得られた処理順序情報32、及び処理能力DB34に含まれる各インスタンスタイプの処理速度情報に基づいて、処理スケジュール情報36を生成する。以下、図2〜図4を参照してジョブ解析部22による処理スケジュール情報36の生成処理について説明する。
図4に示す例は、図2に示す処理順序情報32を有するジョブが同時期に3つ入力された場合におけるタイプAインスタンスの処理スケジュール情報36Aである。このような場合、当該3つのジョブは各インスタンスタイプにおいて並行処理される。つまり、各インスタンスタイプに割り当てられる処理量は、図2に示す値の3倍となる(例えば、処理順1ではタイプAインスタンスに処理量「30」の処理が割り当てられ、処理順2ではタイプBインスタンスに処理量「60」の処理が割り当てられ、以下同様である)。
まず、処理順1において、処理量「30」がタイプAインスタンスに割り当てられるから、時刻=0[s]におけるタイプAインスタンスの残処理量は「30」となる。タイプAインスタンスの処理速度情報によれば(図3参照)、タイプAインスタンスは毎秒3処理量を処理するから、残処理量グラフは(時間,残処理量)=(0,30)の点から傾き−3の直線を描き、時刻=10[s]において残処理量は「0」となる。
次いで、時刻=10[s]から処理順2、つまりタイプBインスタンスにおいて処理が開始される。タイプBインスタンスには時刻=10[s]に処理量「60」が割り当てられ、タイプBインスタンスは毎秒6処理量を処理するから、処理順2の処理は10秒間で終了し、つまり時刻=20[s]に終了する。その間タイプAインスタンスには処理が割り当てられないから、時刻=10[s]〜20[s]の間は、タイプAインスタンスの残処理量グラフは残処理量=0が維持される。
次いで、時刻=20[s]から処理順3、つまりタイプAインスタンスにおいて処理が開始される。処理順3において、処理量「30」がタイプAインスタンスに割り当てられるから、時刻=20[s]における残処理量は30となる。その後タイプAインスタンスは処理順1と同様に処理を行うから、処理順1のときと同様に、残処理量グラフは傾き−3の直線を描き、時刻=30[s]において残処理量は「0」となる。
次いで、時刻=30[s]から処理順4、つまりタイプCインスタンスにおいて処理が開始される。タイプCインスタンスには時刻=30[s]に処理量「45」が割り当てられる。ここで、当該処理量45はタイプCの可能処理量を超えているが、処理スケジュール情報36の生成処理においては、各タイプのインスタンスは可能処理量を超えた処理量を受け付けるものとして処理する。タイプCインスタンスは毎秒9処理量を処理するから、処理順4の処理は5秒間で終了し、つまり時刻=35[s]に終了する。その間タイプAインスタンスには処理が割り当てられないから、時刻=30[s]〜35[s]の間は、タイプAインスタンスの残処理量グラフは残処理量=0が維持される。
最後に、時刻=35[s]から処理順5、つまりタイプAインスタンスにおいて処理が開始される。処理順5において、処理量「30」がタイプAインスタンスに割り当てられるから、時刻=35[s]における残処理量は「30」となる。その後タイプAインスタンスは処理順1及び3と同様に処理を行うから、処理順1及び3のときと同様に、残処理量グラフは傾き−3の直線を描き、時刻=45[s]において残処理量は「0」となる。
上述のように、ジョブ解析部22は処理スケジュール情報36を生成して記憶部30に記憶させる。上述の同様の処理によって、ジョブ解析部22は他のインスタンスタイプについての処理スケジュール情報36も生成し、記憶部30に記憶させる。
判定対象時間Tは、インスタンス制御部24が各インスタンスタイプの処理能力を変更するか否かを判定する際に用いられるものである。具体的には、インスタンス制御部24は、現時点から判定対象時間T内における、あるインスタンスタイプの残処理量の最大値と、処理能力DB34に記憶された当該インスタンスタイプの可能処理量との比較に基づいて、当該インスタンスタイプの処理能力を設定する。判定対象時間Tは、例えばサービス提供システム10の管理者などによって予め設定される。
サーバ14の構成概略としては以上の通りである。その他、図1には示されていないが、サーバ14には、クライアント端末12、複数のタイプのインスタンス、及びストレージ16と通信を行うための通信部などが設けられる。
以下、図5に示すフローチャートに従って、サーバ14の処理の流れを説明する。図5に示すフローチャートは、各インスタンスタイプの処理能力を増大させるスケールアウト処理に関するものである。なお、図5のフローチャートの開始時においては、タイプAインスタンス、タイプBインスタンス、及びタイプCインスタンスはそれぞれ1つのインスタンスから構成されており、記憶部30には図3に示す処理能力DB34が記憶されているものとする。また、判定対象時間Tとして40[s]が記憶されているものとする。
ステップS10において、サーバ14は、1又は複数のクライアント端末12からジョブを受信する。本例では、3つのジョブを受信したとする。
ステップS12において、ジョブ解析部22は、受信した3つのジョブそれぞれを解析して、各ジョブに関する処理に対する各インスタンスタイプの処理順序、及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量を取得する。ここでは、3つのジョブは同様のジョブであり、ジョブ解析部22の解析により、各ジョブから図2に示す処理順序情報32が取得され記憶部30に記憶されたとする。ここで、上述のように同様のジョブは並行処理されるから、本例においても当該3つのジョブは並行処理される。したがって、実際に各インスタンスタイプに割り当てられる処理は図2に示す処理量の3倍となる。
ステップS14において、ジョブ解析部22は、ステップS12で取得された処理順序情報32、及び処理能力DB34(そのうち各インスタンスタイプの処理速度情報)に基づいて、処理スケジュール情報36を生成して記憶部30に記憶させる。ここでは、上述の処理によって、タイプAインスタンスについて図4に示す処理スケジュール情報36Aが生成されたとする。また、同様の処理によってタイプBインスタンスについて図6に示す処理スケジュール情報36Bが、タイプCインスタンスについて図7に示す処理スケジュール情報36Cが生成されたとする。
ステップS16において、インスタンス制御部24は、インスタンスタイプ毎に、ステップS14で生成した処理スケジュール情報36に基づいて、現時点から判定対象時間T以内における残処理量の最大値が、処理能力DB34に設定された可能処理量を超えるか否かを判定する。ここでは、インスタンス制御部24は、まずタイプAインスタンスについて判定を行う。
図3及び図4を参照して、タイプAインスタンスについて説明する。図3に示された処理能力DB34によれば、タイプAインスタンスの可能処理量は「20」である。図4においては、参考のため可能処理量ライン50A(可能処理量=20の一点鎖線)が示されている。また、本例では、判定対象時間T=40[s]であるから、図4において参考のために時間=40[s]のラインが示されている。
インスタンス制御部24は、現時点から判定対象時間Tの間に、タイプAインスタンスに割り当てられた1又は複数の処理の処理量の最大値が可能処理量を超えるか否かを判定する。本実施形態では、現時点(時刻=0[s])から時刻=40[s]までの間における、図4に示すタイプAインスタンスの残処理量グラフの最大値が可能処理量ライン50Aを超えるか否かを判定する。図4の例では、残処理量グラフは、時刻=0[s]、時刻=20[s]、及び時刻=35[s]において最大値「30」を取り、これが可能処理量「20」を超えるから、タイプAインスタンスについては、ステップS16の判定は「はい」となる。
ステップS18において、インスタンス制御部24は、タイプAインスタンスの処理能力を増大させる。本実施形態では、タイプAインスタンスのインスタンス数を増やすことでタイプAインスタンスの処理能力を増大させる。つまりタイプAインスタンスのスケールアウトを実行する。増やすインスタンスの数は、ステップS16で演算された、現時点から判定対象時間Tの間におけるタイプAインスタンスの残処理量グラフの最大値と、インスタンス1つあたりの可能処理量に基づいて決定されてよい。具体的には、増大後のタイプAインスタンスの処理能力(可能処理量)が、現時点から判定対象時間Tの間におけるタイプAインスタンスの残処理量グラフの最大値を超えるようにタイプAインスタンスの数を設定する。
本例では、現時点から判定対象時間Tの間におけるタイプAインスタンスの残処理量グラフの最大値は「30」であり、タイプAインスタンスの1つあたりの可能処理量は「20」であるから、タイプAインスタンスの数を2つにすれば、可能処理量は「40」となり、判定対象時間T内の残処理量グラフの最大値を超える。したがって、インスタンス制御部24は、ここではタイプAインスタンスを2つにスケールアウトする。仮に、判定対象時間T内のタイプAインスタンスの残処理量グラフの最大値が「50」である場合は、インスタンス制御部24は、タイプAインスタンスを3つにスケールアウトさせ、その可能処理量を当該最大値である「50」を超える「60」に設定する。
ステップS20において、インスタンス制御部24は、処理能力DB34の内容の更新処理を行う。ここでは、タイプAインスタンスのインスタンス数及び可能処理量を更新する。ステップS18において、タイプAインスタンスの数を「1」から「2」に変更したため、インスタンス制御部24は、タイプAインスタンスのインスタンス数を「2」とし、可能処理量を2倍の「40」とする。
ステップS22において、インスタンス制御部24は、入力されたジョブを処理するのに必要な全てのインスタンスタイプについて、その処理能力を増大させるか否かを判定する判定処理が終了したか否かを判断する。ここでは、タイプBインスタンス及びタイプCインスタンスについて処理が終わっていないため、ステップS24を経由してステップS16に戻る。
ステップS24において、ジョブ解析部22は、ステップS20で更新された処理能力DBに基づいて、各インスタンスタイプの処理スケジュール情報を更新する。スケールアウトにより、あるインスタンスタイプについての処理能力が変わった場合、それに応じて各インスタンスタイプにおける処理が完了するまでの時間が変動するからである。
再度のステップS16において、タイプBインスタンスについて上述の処理を行う。図3に示された処理能力DB34によれば、タイプBインスタンスの可能処理量は「60」である。図6において、図4同様、参考のため可能処理量ライン50B(可能処理量=60の一点鎖線)、判定対象時間=40[s]のラインが示されている。図6に示されるように、判定対象時間40[s]以内におけるタイプBインスタンスの残処理量グラフの最大値は「60」となっており、タイプBインスタンスの可能処理量「60」を超えない。したがって、タイプBインスタンスについては、ステップS16の判定は「いいえ」となる。
再度のステップS22において、未だタイプCインスタンスについて処理が終わっていないため、ステップS16に戻る。なお、タイプBインスタンスについては処理能力DBの更新が行われていないため、ステップS24においては処理スケジュールの更新処理は行わずにステップS16に戻る。
再々度のステップS16において、タイプCインスタンスについて上述の処理を行う。図3に示された処理能力DB34によれば、タイプCインスタンスの可能処理量は30である。図7において、図4及び図6同様、参考のため可能処理量ライン50C(可能処理量=30の一点鎖線)、判定対象時間=40[s]のラインが示されている。図7に示されるように、判定対象時間40[s]以内におけるタイプCインスタンスの残処理量グラフの最大値は「45」となっており、これがタイプCインスタンスの可能処理量「30」を超える。したがって、タイプCインスタンスについては、ステップS16の判定は「はい」となる。
ステップS18において、インスタンス制御部24は、タイプAインスタンス同様に、時点から判定対象時間Tの間におけるタイプCインスタンスの残処理量グラフの最大値と、インスタンス1つあたりの可能処理量に基づいてタイプCインスタンスをスケールアウトさせる。ここでは、タイプCインスタンスの数を1つ増やし2つとする。また、ステップS20において、インスタンス制御部24は、処理能力DB34におけるタイプCインスタンスのインスタンス数を「2」とし、可能処理量を2倍の「60」とする。
入力されたジョブを処理するのに必要な全てのインスタンスタイプについて、その処理能力を増大させるか否かを判定する判定処理が終了すると、ステップS26において、サーバ14の制御部20は、ジョブの実行を開始する。具体的には、クライアント端末12から入力された3つのジョブに関する処理をタイプA〜Cのインスタンスにそれぞれ実行させる。
図8に、図4に示したタイプAインスタンスの処理スケジュール情報36Aとしての残処理量グラフの続きが示されている。図8に示す通り、タイプAインスタンスにおいては、図5のフローチャートにおいて処理した3つのジョブ以来、しばらく処理が割り当てられないものとする。以下、図8を参照しながら、図9に示すフローチャートに従って、各インスタンスタイプの処理能力を減少させるスケールイン処理について説明する。
スケールイン処理は、ジョブがサーバ14に入力され、当該ジョブの処理に関する処理スケジュール情報36が生成された後(図5のステップS14の後)において間欠的に実行される。スケールイン処理が実行される間隔は、サービス提供システム10の管理者などによって適宜設定されてよい。本例では、5秒に1回の割合で実行される。なお、スケールイン処理の実行間隔がより小さい方が、各インスタンスタイプに割り当てられる処理量の変化により早期に対応してスケールイン処理を行うことができるが、その反面、インスタンス制御部24の処理量が増加する。
ここでは、図5のステップS26においてジョブが実行開始された後にスケールイン処理が実行された場合を例に説明する。したがって、図9のフローチャートの開始時においては、タイプAインスタンスのインスタンス数は2であり、その可能処理量は「40」であるとする。また、判定対象時間Tは変わらず40[s]であるとする。
まず、時刻=35[s]の時点でスケールイン処理が開始された場合を考える。
スケールイン処理が開始されると、ステップS30において、インスタンス制御部24は、生成済みの処理スケジュール情報36及び処理能力DB34に基づいて、インスタンスタイプ毎に、可能処理量と、現時点から判定対象時間T以内における残処理量の最大値との差分が、所定量以上となるか否かを判定する。当該所定量は、インスタンス1つ分の可能処理量に基づいて定められる値である。本実施形態では、インスタンス1つ分の可能処理量そのものが当該所定量として利用される。ここでは、インスタンス制御部24は、まずタイプAインスタンスについて判定を行う。
現在、処理能力DB34には、タイプAインスタンスについて、インスタンス数が「2」であり、その可能処理量は「40」であるから、インスタンス制御部24はタイプAインスタンスの1つ当たりの可能処理量が「20」であることが把握である。図8においては、参考のために、現在のタイプAインスタンスの可能処理量ライン50A(可能処理量=40の一点鎖線)が示されている。また、この場合の現在時刻である35[s]から判定対象時間T=40[s]の間の時間がTで示されている。
まず、インスタンス制御部24は、現時点から判定対象時間Tの間における、タイプAインスタンスの残処理量グラフの最大値を特定する。図8を参照して、ここでは、最大値として、時刻=35[s]における残処理量「30」が特定される。次いで、インスタンス制御部24は、現在のタイプAインスタンスの可能処理量「40」と、特定した最大値「30」との差分を演算し、差分「10」を取得する。そして、差分「10」とタイプAインスタンスの1つ当たりの可能処理量「20」を比較する。ここでは、差分「10」がタイプAインスタンスの1つ当たりの可能処理量「20」以上とはならないため、ステップS30の判定は「いいえ」となり、タイプAインスタンスのインスタンス数を減少させずに、タイプAインスタンスのスケールイン処理を終了する。なお、その後時刻=35[s]においても、タイプBインスタンス及びタイプCインスタンスについてのスケールイン処理が実行されるが、当該処理はタイプAインスタンと同様であるため、その説明は省略する。
次に、時刻=40[s]の時点でスケールイン処理が開始された場合を考える。なお、図8においては、参考のために、この場合の現在時刻である40[s]から判定対象時間T=40[s]の間の時間がTで示されている。
インスタンス制御部24は、現時点から判定対象時間Tの間におけるタイプAインスタンスの残処理量グラフの最大値を特定する。図8を参照して、ここでは、最大値として、時刻=40[s]における残処理量「15」が特定される。次いで、インスタンス制御部24は、現在のタイプAインスタンスの可能処理量「40」と、特定した最大値「15」との差分を演算し、差分「25」を取得する。そして、差分「25」とタイプAインスタンスの1つ当たりの可能処理量「20」を比較する。ここでは、差分「25」がタイプAインスタンスの1つ当たりの可能処理量「20」以上となっているため、ステップS30の判定は「はい」となり、ステップS32に進む。
ステップS32において、インスタンス制御部24は、タイプAインスタンスの処理能力を減少させる。本実施形態では、タイプAインスタンスのインスタンス数を1つ減らすことでタイプAインスタンスの処理能力を減少させる。つまりタイプAインスタンスのスケールインを実行する。詳しくは、タイプAインスタンスのインスタンス数を1つ減らす処理を行う。これにより、タイプAインスタンスのインスタンス数が「2」から「1」へ減少される。
ステップS34において、インスタンス制御部24は、処理能力DB34の内容の更新処理を行う。ここでは、タイプAインスタンスのインスタンス数及び可能処理量を更新する。ステップS32において、タイプAインスタンスの数を「2」から「1」に変更したため、インスタンス制御部24は、タイプAインスタンスのインスタンス数を「1」とし、可能処理量を半分の「20」とする。
ステップS36において、インスタンス制御部24は、入力されたジョブを処理するのに必要な全てのインスタンスタイプについて、その処理能力を減少させるか否かを判定する判定処理が終了したか否かを判断する。ここでは、タイプBインスタンス及びタイプCインスタンスについて処理が終わっていないため、ステップS38を経由してステップS30に戻る。
ステップS38において、ジョブ解析部22は、ステップS34で更新された処理能力DBに基づいて、各インスタンスタイプの処理スケジュール情報を更新する。スケールインにより、あるインスタンスタイプについての処理能力が変わった場合、それに応じて各インスタンスタイプにおける処理が完了するまでの時間が変動するからである。
以後、タイプBインスタンス及びタイプCインスタンスについても上述と同様の処理を行う。
以上説明した本実施形態によれば、サーバ14に入力されたジョブの分析により得られた処理スケジュール情報36に基づいて、各インスタンスタイプの処理能力が設定(つまりスケールイン又はスケールアウト)される。これにより、過去における各インスタンスタイプの処理能力あるいは処理量に基づいて各インスタンスタイプ仮想マシンの処理能力を決定する場合に比して、より確実に、各インスタンスタイプの処理能力を、各インスタンスタイプが実行すべき処理の処理量に適した能力に設定することができる。
また、本実施形態によれば、ジョブの実行前に処理スケジュール情報36が生成されるから、あるインスタンスタイプについてスケールアウトが必要になることを事前に把握することができる。スケールアウトを行うためには多少時間を要するところ、事前にスケールアウトを行っておくことで、スケールアウトの実行が間に合わなくなることがなく、当該インスタンスタイプに割り当てられた処理を滞らせることなく処理することができる。
以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。
例えば、上記実施形態においては、ジョブの実行前にスケールアウトを実行していたが、インスタンス制御部24は、処理スケジュール情報36に基づいて、あるインスタンスタイプの処理能力を増大させる必要があるタイミングを把握できるため、当該タイミングの直前において当該インスタンスタイプのスケールアウトを実行するようにしてもよい。例えば、図7に示す処理スケジュール情報36Cが得られた場合、インスタンス制御部24は、時刻=30[s]の直前(もちろんスケールアウトに必要な時間を考慮した上で)にタイプCインスタンスのスケールアウトを実行するようにしてもよい。
また、上記実施形態においては、ジョブに関する処理が複数タイプのインスタンスに割り当てられていたが、ジョブが1つのタイプのインスタンスのみを使用する場合であっても、本発明を適用し得る。例えば、サーバ14がクライアント端末12から、単にストレージ16に電子ドキュメントを格納(あるいは検索、ダウンロードなど)する処理(つまりタイプAインスタンスのみを使用する処理)を要求する複数のジョブを連続して受信した場合、複数のジョブに係る複数の処理は順次タイプAインスタンスに割り当てられることになる。このような場合であっても、本実施形態のように、タイプAインスタンスの処理スケジュール情報36を生成し、それに応じてタイプAインスタンスのスケールアウト処理あるいはスケールイン処理を行うことができる。
10 サービス提供システム、12 クライアント端末、14 サーバ、16 ストレージ、20 制御部、22 ジョブ解析部、24 インスタンス制御部、30 記憶部、32 処理順序情報、34 処理能力DB、36 処理スケジュール情報。

Claims (5)

  1. 入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させる情報処理装置であって、
    前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、
    前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻を予測する処理スケジュール予測部と、
    現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、
    を備えることを特徴とする情報処理装置。
  2. 前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記1又は複数の処理の処理量の最大値が、前記仮想マシンの割り当て可能処理量を超える場合に、前記仮想マシンの処理能力を増大させる、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記仮想マシンの割り当て可能処理量と、前記1又は複数の処理の処理量の最大値との差分が所定量以上である場合に、前記仮想マシンの処理能力を減少させる、
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記仮想マシン制御部により前記仮想マシンの処理能力が変更された場合に、前記記憶部に記憶された、当該仮想マシンの前記処理速度情報及び前記割り当て可能処理量の少なくとも一方を更新する更新部、
    をさらに備えることを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5. コンピュータに、入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させるためのプログラムであって、
    前記コンピュータを、
    前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、
    前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻を予測する処理スケジュール予測部と、
    現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、
    として機能させることを特徴とするプログラム。
JP2016147640A 2016-07-27 2016-07-27 情報処理装置及びプログラム Expired - Fee Related JP6724631B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016147640A JP6724631B2 (ja) 2016-07-27 2016-07-27 情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016147640A JP6724631B2 (ja) 2016-07-27 2016-07-27 情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2018018275A JP2018018275A (ja) 2018-02-01
JP6724631B2 true JP6724631B2 (ja) 2020-07-15

Family

ID=61076241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016147640A Expired - Fee Related JP6724631B2 (ja) 2016-07-27 2016-07-27 情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP6724631B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020009246A (ja) * 2018-07-10 2020-01-16 富士ゼロックス株式会社 情報処理装置、及び情報処理プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5277062B2 (ja) * 2009-04-20 2013-08-28 株式会社エヌ・ティ・ティ・データ コンピュータリソース提供システム、コンピュータリソース提供方法、リソース取引装置およびリソース取引プログラム
JP5378946B2 (ja) * 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
JP6044131B2 (ja) * 2012-06-25 2016-12-14 富士通株式会社 プログラム、管理サーバおよび仮想マシン移動制御方法
JP2014115905A (ja) * 2012-12-11 2014-06-26 Canon Marketing Japan Inc 情報処理装置、情報処理方法、およびプログラム
EP3014804B1 (en) * 2013-06-25 2019-08-07 Amazon Technologies, Inc. Burst mode control
EP3188017A1 (en) * 2015-12-29 2017-07-05 Harmonic Inc. Scheduler of processes having timed predictions of computing loads

Also Published As

Publication number Publication date
JP2018018275A (ja) 2018-02-01

Similar Documents

Publication Publication Date Title
US20220083395A1 (en) Scheduling system for computational work on heterogeneous hardware
EP3553657A1 (en) Method and device for allocating distributed system task
US20170149875A1 (en) Deployment of multi-task analytics applications in multi-clouds
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
JP7119082B2 (ja) 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け
JP7081514B2 (ja) オートスケール型性能保証システム及びオートスケール型性能保証方法
CN112181664B (zh) 负载均衡方法及装置、计算机可读存储介质及电子设备
JP2018160149A (ja) 情報処理システム、オートスケーリング連携装置及びプログラム
JP7182836B2 (ja) 分散コンピューティング環境における作業負荷の自動対角スケーリング
JP6724631B2 (ja) 情報処理装置及びプログラム
JP4368730B2 (ja) 処理割当管理装置、処理割当管理装置の制御方法、及びプログラム
JP6140052B2 (ja) 情報処理システム
JP6885441B2 (ja) ライセンス管理装置、ライセンス管理方法、及び、ライセンス管理プログラム
JP6619938B2 (ja) リソース制御システムおよびリソース制御方法
Galleguillos et al. Constraint programming-based job dispatching for modern HPC applications
JP5664376B2 (ja) 仮想計算機割り当てシステム、及び仮想計算機割り当て方法
JP2017174194A (ja) 画像処理装置、負荷分散方法および負荷分散プログラム
JP4999932B2 (ja) 仮想計算機システム及び仮想計算機重み付け設定処理方法及び仮想計算機重み付け設定処理プログラム
CN106605214B (zh) 标识用于执行服务请求的多个资源
WO2022202676A1 (ja) 情報資源割当支援装置、情報資源割当支援方法、及び、情報資源割当支援プログラムが格納された記録媒体
JPWO2018198745A1 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
US20230010895A1 (en) Information processing apparatus, information processing method, and computer-readable recording medium storing information processing program
JP7478918B2 (ja) 分散型異機種混在システムに基づくタスクインテリジェント処理方法
JP5458030B2 (ja) 並列カウント処理装置、通信装置、並列カウント処理方法、およびプログラム
EP2698713A2 (en) Load balancing in data processing system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190520

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200526

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200608

R150 Certificate of patent or registration of utility model

Ref document number: 6724631

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees