図面 (/)

技術 情報処理装置及びプログラム

出願人 富士ゼロックス株式会社
発明者 中村隆之
出願日 2016年7月27日 (4年3ヶ月経過) 出願番号 2016-147640
公開日 2018年2月1日 (2年9ヶ月経過) 公開番号 2018-018275
状態 特許登録済
技術分野 マルチプログラミング
主要キーワード スケールイン 処理速度情報 処理順序情報 スケールアウト 複数タイプ 処理スケジュール インスタンス数 仮想コンピュータ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年2月1日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

過去における仮想マシン処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来当該仮想マシンに割り当てられる処理量に適した能力に設定する。

解決手段

ジョブ解析部22は、入力されたジョブに関する処理に対する各インスタンスタイプの処理順序及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量を示す処理順序情報32、及び各インスタンスタイプの処理速度情報に基づいて、インスタンスタイプ毎に、当該ジョブに関する処理の割り当て時刻及び当該処理の処理量を示す処理スケジュール情報36を生成する。インスタンス制御部24は、現時点から判定対象時間T内における、各インスタンスタイプの残処理量最大値と、各インスタンスタイプの可能処理量との比較に基づいて、各インスタンスタイプの処理能力を設定する。

概要

背景

従来、仮想マシンが広く用いられている。仮想マシンとは、仮想機械仮想コンピュータ、あるいはバーチャルマシンなどとも称されるものであり、物理マシン上においてソフトウェアにより定義あるいは構築され、利用者をしてあたかも1台の物理マシンとして利用し得るものである。

仮想マシンを利用することで、利用者は、仮想マシンが実行すべき処理の処理量に応じて当該仮想マシンの処理能力を容易に変更することができる。例えば仮想マシンの台数を変更する、あるいは仮想マシンのCPU(Central Processing Unit)やメモリといったハードウェア資源量を変更することなどによって仮想マシンの処理能力を変更できる。一般的に、仮想マシンは仮想マシンベンダから提供され、契約者は、仮想マシンの処理能力に応じた額の使用料を仮想マシンベンダに支払う。したがって、契約者は、必要な処理を処理可能な限りにおいて、仮想マシンの処理能力をできるだけ低くしておくことが望まれる。

特許文献1及び2には、物理マシン上で実行される仮想マシンを管理する情報処理装置であって、仮想マシンの過去のハードウェア資源使用量に基づいて、当該仮想マシンの将来におけるハードウェア資源使用量を予測し、当該予測に基づいて当該仮想マシンのハードウェア資源量を決定する情報処理装置が開示されている。

概要

過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来当該仮想マシンに割り当てられる処理量に適した能力に設定する。ジョブ解析部22は、入力されたジョブに関する処理に対する各インスタンスタイプの処理順序及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量を示す処理順序情報32、及び各インスタンスタイプの処理速度情報に基づいて、インスタンスタイプ毎に、当該ジョブに関する処理の割り当て時刻及び当該処理の処理量を示す処理スケジュール情報36を生成する。インスタンス制御部24は、現時点から判定対象時間T内における、各インスタンスタイプの残処理量最大値と、各インスタンスタイプの可能処理量との比較に基づいて、各インスタンスタイプの処理能力を設定する。

目的

本発明の目的は、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来当該仮想マシンに割り当てられる処理量に適した能力に設定することにある

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させる情報処理装置であって、前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻予測する処理スケジュール予測部と、現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、を備えることを特徴とする情報処理装置。

請求項2

前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記1又は複数の処理の処理量の最大値が、前記仮想マシンの割り当て可能処理量を超える場合に、前記仮想マシンの処理能力を増大させる、ことを特徴とする請求項1に記載の情報処理装置。

請求項3

前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記仮想マシンの割り当て可能処理量と、前記1又は複数の処理の処理量の最大値との差分が所定量以上である場合に、前記仮想マシンの処理能力を減少させる、ことを特徴とする請求項1又は2に記載の情報処理装置。

請求項4

前記仮想マシン制御部により前記仮想マシンの処理能力が変更された場合に、前記記憶部に記憶された、当該仮想マシンの前記処理速度情報及び前記割り当て可能処理量の少なくとも一方を更新する更新部、をさらに備えることを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。

請求項5

コンピュータに、入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させるためのプログラムであって、前記コンピュータを、前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻を予測する処理スケジュール予測部と、現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、として機能させることを特徴とするプログラム。

技術分野

0001

本発明は、情報処理装置及びプログラムに関する。

背景技術

0002

従来、仮想マシンが広く用いられている。仮想マシンとは、仮想機械仮想コンピュータ、あるいはバーチャルマシンなどとも称されるものであり、物理マシン上においてソフトウェアにより定義あるいは構築され、利用者をしてあたかも1台の物理マシンとして利用し得るものである。

0003

仮想マシンを利用することで、利用者は、仮想マシンが実行すべき処理の処理量に応じて当該仮想マシンの処理能力を容易に変更することができる。例えば仮想マシンの台数を変更する、あるいは仮想マシンのCPU(Central Processing Unit)やメモリといったハードウェア資源量を変更することなどによって仮想マシンの処理能力を変更できる。一般的に、仮想マシンは仮想マシンベンダから提供され、契約者は、仮想マシンの処理能力に応じた額の使用料を仮想マシンベンダに支払う。したがって、契約者は、必要な処理を処理可能な限りにおいて、仮想マシンの処理能力をできるだけ低くしておくことが望まれる。

0004

特許文献1及び2には、物理マシン上で実行される仮想マシンを管理する情報処理装置であって、仮想マシンの過去のハードウェア資源使用量に基づいて、当該仮想マシンの将来におけるハードウェア資源使用量を予測し、当該予測に基づいて当該仮想マシンのハードウェア資源量を決定する情報処理装置が開示されている。

先行技術

0005

特開2013−206321号公報
特許2015−087936号公報

発明が解決しようとする課題

0006

仮想マシンが実行すべき処理の処理量に応じて仮想マシンの処理能力を決定する場合、当該仮想マシンの過去における処理能力、あるいは当該仮想マシンが過去において実行した処理の処理量に基づいて、仮想マシンの処理能力を決定することが考えられる。しかしながら、仮想マシンの過去の処理能力あるいは処理量から、将来において当該仮想マシンに割り当てられる処理の処理量を推認することは可能なものの、それが必ずしも将来の処理量と一致するとは限らない。つまり、過去における仮想マシンの処理能力あるいは処理量に基づいて設定された仮想マシンの処理能力が、将来当該仮想マシンに割り当てられる処理の処理量に対して適切な能力とならない場合が生じるおそれがあった。

0007

本発明の目的は、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来当該仮想マシンに割り当てられる処理量に適した能力に設定することにある。

課題を解決するための手段

0008

請求項1に係る発明は、入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させる情報処理装置であって、前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻を予測する処理スケジュール予測部と、現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、を備えることを特徴とする情報処理装置である。

0009

請求項2に係る発明は、前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記1又は複数の処理の処理量の最大値が、前記仮想マシンの割り当て可能処理量を超える場合に、前記仮想マシンの処理能力を増大させる、ことを特徴とする請求項1に記載の情報処理装置である。

0010

請求項3に係る発明は、前記仮想マシン制御部は、現時点から前記判定対象時間の間に、前記仮想マシンの割り当て可能処理量と、前記1又は複数の処理の処理量の最大値との差分が所定量以上である場合に、前記仮想マシンの処理能力を減少させる、ことを特徴とする請求項1又は2に記載の情報処理装置である。

0011

請求項4に係る発明は、前記仮想マシン制御部により前記仮想マシンの処理能力が変更された場合に、前記記憶部に記憶された、当該仮想マシンの前記処理速度情報及び前記割り当て可能処理量の少なくとも一方を更新する更新部、をさらに備えることを特徴とする請求項1から3のいずれか1項に記載の情報処理装置である。

0012

請求項5に係る発明は、コンピュータに、入力された処理要求に関する処理を仮想マシンに順次割り当てて処理させるためのプログラムであって、前記コンピュータを、前記仮想マシンの単位時間当たりの処理量を示す処理速度情報と、前記仮想マシンに対して割り当て可能な処理量を示す割り当て可能処理量を記憶する記憶部と、前記処理要求に関する処理の処理量、及び前記処理速度情報に基づいて、前記仮想マシンに対して将来割り当てられる処理の処理量及び当該処理の割り当て時刻を予測する処理スケジュール予測部と、現時点から予め定められた判定対象時間の間における、前記仮想マシンに割り当てられると予測された1又は複数の処理の処理量の最大値、及び前記仮想マシンの割り当て可能処理量に基づいて、前記仮想マシンの処理能力を設定する仮想マシン制御部と、として機能させることを特徴とするプログラムである。

発明の効果

0013

請求項1及び5に記載の発明によれば、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来仮想マシンに割り当てられる処理量に適した能力に設定することができる。

0014

請求項2に記載の発明によれば、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来当該仮想マシンに割り当てられる処理量に応じて増大させることができる。

0015

請求項3に記載の発明によれば、過去における仮想マシンの処理能力あるいは処理量に基づいて当該仮想マシンの処理能力を決定する場合に比して、より確実に、仮想マシンの処理能力を将来仮想マシンに割り当てられる処理量に応じて減少させることができる。

0016

請求項4に記載の発明によれば、処理速度情報及び割り当て可能処理量が、常に現時点における仮想マシンの処理能力を示すものとなる。

図面の簡単な説明

0017

本実施形態に係るサービス提供システムの構成概略図である。
処理順序情報の例を示す概念図である。
処理能力DBの内容の例を示す概念図である。
タイプAインスタンスの処理スケジュール情報の例を示す概念図である。
スケールアウト処理の流れを示すフローチャートである。
タイプBインスタンスの処理スケジュール情報の例を示す概念図である。
タイプCインスタンスの処理スケジュール情報の例を示す概念図である。
タイプAインスタンスの処理スケジュール情報の第2の例を示す概念図である。
スケールイン処理の流れを示すフローチャートである。

実施例

0018

以下、本発明の実施形態を図面に基づいて説明する。

0019

図1は、本実施形態に係るサービス提供システム10の構成概略図である。サービス提供システム10は、利用者(ユーザ)が使用するクライアント端末12、情報処理装置としてのサーバ14、複数の仮想マシンとしての複数のタイプA〜Cのインスタンス、及び、記憶装置ハードディスクなど)群から構成されるストレージ16を含んで構成される。クライアント端末12とサーバ14間は、LANあるいはインターネットを含む通信回線を介して通信可能に接続されている。また、サーバ14、複数のタイプ(A〜C)のインスタンス、及びストレージ16は互いに通信回線を介して通信可能に接続されている。なお、図1には1つのクライアント端末12が示されているが、サービス提供システム10には複数のユーザが利用する複数のクライアント端末12が含まれていてもよい。また、図1には3つのインスタンスタイプが示されているが、サービス提供システム10としてはそれ以外の数のインスタンスタイプを有するようにしてもよい。

0020

サービス提供システム10は、ユーザにマルチクラウドサービスを提供するものである。具体的には、サービス提供システム10においては、通信回線を介してクライアント端末12から入力された処理要求としてのジョブに関する処理をサーバ14が複数のインスタンスタイプに順次処理させる。その処理結果がクライアント端末12に返されてもよい。例えば、サービス提供システム10は、ユーザから入力されたジョブに係る電子ドキュメントをストレージ16に格納する処理、ストレージ16に格納された電子ドキュメントを検索あるいは出力(ダウンロード)処理を行う。

0021

タイプAインスタンス、タイプBインスタンス、及びタイプCインスタンスの各インスタンスタイプは、それぞれ1又は複数のインスタンスから構成される。各インスタンスはインスタンスベンダから提供されるものである。サービス提供システム10の管理者がインスタンスベンダと契約することによって、所定の処理能力を有するインスタンスが提供される。インスタンスベンダとの契約内容を変更(例えば各タイプに属するインスタンスの数を変更、あるいは各インスタンスの能力を変更)することで、各タイプのインスタンスの能力を動的に変更することが可能となっている。

0022

本実施形態においては、タイプの異なるインスタンスは異なる処理を行う。例えば、タイプAインスタンスは、クライアント端末12から入力されたジョブの中継処理を行う。中継処理とは、クライアント端末12とストレージ16間におけるデータの中継処理、及び、各インスタンスタイプ間におけるデータの中継処理を含む。タイプBインスタンスは、ジョブに係るドキュメントに対してOCR(Optical character recognition)処理、つまり光学文字認識処理を行う。また、タイプCインスタンスは、ジョブに係るドキュメントの形式変換(例えばWORDファイルからPDFファイルへの変換)処理を行う。

0023

クライアント端末12は、例えばPC(Personal Computer)、あるいはタブレット端末などである。図1には示されていないが、クライアント端末12は、通常のコンピュータが有する構成、例えば制御部、記憶部、入力部、表示部、あるいは通信部を備えている。クライアント端末12は、ユーザからの指示に基づいて、サービス提供システム10に処理を要求するジョブをサーバ14に送信する。

0024

サーバ14は、クライアント端末12から入力されるジョブに関する処理を1又は複数のインスタンスタイプに順次割り当てて処理させる。サーバ14は、以下の機能を実現する限りにおいてどのようなコンピュータであってもよい。なお、サーバ14自体もインスタンスで構成されるようにしてもよく、また、サーバ14にマルチクラウドサービスに関する処理を実行するインスタンスタイプ(例えばタイプAインスタンス)の機能が含まれていてもよい。以下、サーバ14が有する各機能について説明する。

0025

制御部20は、例えばCPUなどから構成され、後述の記憶部30に記憶されたプログラムに従って、サーバ14の各部を制御するものである。制御部20は、記憶部30に記憶されたプログラムにより、ジョブ解析部22及びインスタンス制御部24としても機能する。

0026

ジョブ解析部22は、クライアント端末12から入力された1又は複数のジョブを解析して、種々の情報を取得する。本実施形態では、ジョブ解析部22は、入力されたジョブに関する処理に対する各インスタンスタイプの処理順序、及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量を示す処理順序情報を取得する。さらに、処理スケジュール予測部としてのジョブ解析部22は、インスタンスタイプ毎に、入力されたジョブに関する処理がどのタイミングでどれだけの処理量が割り当てられるかを予測し、それらを示す処理スケジュール情報を生成する。ジョブ解析部22の解析により得られた情報は記憶部30に記憶される。ジョブ解析部22の処理内容の詳細については後述する。

0027

仮想マシン制御部としてのインスタンス制御部24は、ジョブ解析部22が演算した処理スケジュール情報に基づいて、複数のインスタンスタイプA〜Cの処理能力の設定(変更)処理を行うものである。インスタンス制御部24は、各インスタンスタイプを提供するインスタンスベンダとの契約内容を更新することで、各インスタンスタイプの処理能力を変更する。本実施形態では、例えばタイプAインスタンスとして機能するインスタンスの数を増加させる(スケールアウト)あるいは減少させる(スケールイン)ことでタイプAインスタンスの処理能力を決定する。あるいは、1つのインスタンスのハードウェア資源(CPUコアの数あるいはメモリの数)を変更することで各インスタンスタイプの処理能力を変化させてもよい。また、更新部としてのインスタンス制御部24は、インスタンスタイプの処理能力を変更した場合に、各インスタンスタイプの処理能力を示す情報が記憶される処理能力DB34(後述)の更新処理を行う。インスタンス制御部24の処理内容については、図5あるいは図6のフローチャートに沿って後に詳述する。

0028

記憶部30は、例えばハードディスク、ROM(Read Only Memory)、あるいはRAM(Random Access Memory)を含んで構成され、サーバ14を動作させるためのプログラムが記憶される。また、記憶部30には、処理順序情報32、処理能力DB34、処理スケジュール情報36、及び判定対象時間Tが記憶される。

0029

処理順序情報32は、サーバ14に入力されたジョブに関する処理に対する各インスタンスタイプの処理順序、及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量が示されている。上述の通り、処理順序情報32は、ジョブ解析部22が入力されたジョブを解析することによって取得され、記憶部30に記憶される。

0030

図2に、処理順序情報32の内容の例が示されている。例えば、入力されたジョブが、電子ドキュメントに対してOCR処理及び形式変換処理を行った上で、当該電子ドキュメントをストレージ16に格納することを要求するものである場合、当該ジョブに関する処理の処理順序としては、タイプAインスタンス(中継)→タイプBインスタンス(OCR処理)→タイプAインスタンス(中継)→タイプCインスタンス(形式変換処理)→タイプAインスタンス(中継)となる。ジョブ解析部22は、入力されたジョブを解析することにより、上述の処理順を示す情報を処理順序情報32として取得する。

0031

さらに、ジョブ解析部22は、入力されたジョブを解析することで、当該ジョブを実行するために各インスタンスタイプに割り当てられる処理の処理量を演算する。例えば、ジョブに係る電子ドキュメントのデータ容量あるいはデータ内容などに基づいて処理量を演算する。ここでは、1、3、5場目の処理においてタイプAインスタンスに割り当てられる処理量が「10」であり、2番目の処理においてタイプBインスタンスに割り当てられる処理量が「20」であり、4番目の処理においてタイプCインスタンスに割り当てられる処理量が「15」であるとする。そのような処理量を示す情報(値)が処理順序情報32に記憶される。なお、本明細書における処理量を示す数値は、処理量を相対的に表す指標である。

0032

処理能力DB34は、各インスタンスタイプの現在の処理能力を示す情報が記憶される。図3に、本実施形態における処理能力DB34の例が示されている。本実施形態においては、処理能力DB34には、各インスタンスタイプのインスタンス数、可能処理量情報、及び処理速度情報が記憶される。可能処理量情報は、各インスタンスタイプが現在処理可能な処理量を示すものである。本実施形態では、可能処理量情報は、各インスタンスタイプに現在割り当てることができる割り当て可能処理量を示すものである。また、処理速度情報は、各インスタンスタイプの単位時間当たりの処理量を示すものである。本実施形態では、処理速度情報として各インスタンスタイプの1秒当たりの処理量が記憶されている。

0033

可能処理量情報及び処理速度情報は、各インスタンスタイプの処理能力を示すものであるから、あるインスタンスタイプの処理能力が変更されれば、当該インスタンスタイプの可能処理量情報及び処理速度情報の少なくとも一方が変更(更新)される。本例では、あるインスタンスタイプがスケールアウトされた場合に、処理能力として可能処理量が変更されるものとする。例えば、タイプAインスタンスとして機能するインスタンスが1つの場合に可能処理量が「20」である場合に、スケールアウトによりタイプAインスタンスとして機能するインスタンスが2つになった場合、タイプAインスタンスのインスタンス数が「2」になると共に、タイプAインスタンスの可能処理量は2倍の「40」となる。もちろん、インスタンスタイプの処理能力の変更によって可能処理量及び処理速度の両方が変更される場合は、当該インスタンスタイプの可能処理量情報及び処理速度情報の両方が変更される。上述の通り、処理能力DB34の内容、つまり各インスタンスタイプのインスタンス数、可能処理量情報、及び処理速度情報の更新処理はインスタンス制御部24が行う。

0034

処理スケジュール情報36は、上述のように、各インスタンスタイプにおいて、将来割り当てられる処理の処理量、及び当該処理の割り当て時刻を示す情報であり、ジョブ解析部22によってインスタンスタイプ毎に生成される。

0035

図4には、タイプAインスタンスの処理スケジュール情報36Aの例が示されている。本実施形態においては、図4に示される通り、横軸時間軸であり、縦軸が当該インスタンスタイプが処理すべき残処理量である残処理量グラフが処理スケジュール情報36として生成される。ジョブ解析部22は、ジョブの解析により得られた処理順序情報32、及び処理能力DB34に含まれる各インスタンスタイプの処理速度情報に基づいて、処理スケジュール情報36を生成する。以下、図2図4を参照してジョブ解析部22による処理スケジュール情報36の生成処理について説明する。

0036

図4に示す例は、図2に示す処理順序情報32を有するジョブが同時期に3つ入力された場合におけるタイプAインスタンスの処理スケジュール情報36Aである。このような場合、当該3つのジョブは各インスタンスタイプにおいて並行処理される。つまり、各インスタンスタイプに割り当てられる処理量は、図2に示す値の3倍となる(例えば、処理順1ではタイプAインスタンスに処理量「30」の処理が割り当てられ、処理順2ではタイプBインスタンスに処理量「60」の処理が割り当てられ、以下同様である)。

0037

まず、処理順1において、処理量「30」がタイプAインスタンスに割り当てられるから、時刻=0[s]におけるタイプAインスタンスの残処理量は「30」となる。タイプAインスタンスの処理速度情報によれば(図3参照)、タイプAインスタンスは毎秒3処理量を処理するから、残処理量グラフは(時間,残処理量)=(0,30)の点から傾き−3の直線を描き、時刻=10[s]において残処理量は「0」となる。

0038

次いで、時刻=10[s]から処理順2、つまりタイプBインスタンスにおいて処理が開始される。タイプBインスタンスには時刻=10[s]に処理量「60」が割り当てられ、タイプBインスタンスは毎秒6処理量を処理するから、処理順2の処理は10秒間で終了し、つまり時刻=20[s]に終了する。その間タイプAインスタンスには処理が割り当てられないから、時刻=10[s]〜20[s]の間は、タイプAインスタンスの残処理量グラフは残処理量=0が維持される。

0039

次いで、時刻=20[s]から処理順3、つまりタイプAインスタンスにおいて処理が開始される。処理順3において、処理量「30」がタイプAインスタンスに割り当てられるから、時刻=20[s]における残処理量は30となる。その後タイプAインスタンスは処理順1と同様に処理を行うから、処理順1のときと同様に、残処理量グラフは傾き−3の直線を描き、時刻=30[s]において残処理量は「0」となる。

0040

次いで、時刻=30[s]から処理順4、つまりタイプCインスタンスにおいて処理が開始される。タイプCインスタンスには時刻=30[s]に処理量「45」が割り当てられる。ここで、当該処理量45はタイプCの可能処理量を超えているが、処理スケジュール情報36の生成処理においては、各タイプのインスタンスは可能処理量を超えた処理量を受け付けるものとして処理する。タイプCインスタンスは毎秒9処理量を処理するから、処理順4の処理は5秒間で終了し、つまり時刻=35[s]に終了する。その間タイプAインスタンスには処理が割り当てられないから、時刻=30[s]〜35[s]の間は、タイプAインスタンスの残処理量グラフは残処理量=0が維持される。

0041

最後に、時刻=35[s]から処理順5、つまりタイプAインスタンスにおいて処理が開始される。処理順5において、処理量「30」がタイプAインスタンスに割り当てられるから、時刻=35[s]における残処理量は「30」となる。その後タイプAインスタンスは処理順1及び3と同様に処理を行うから、処理順1及び3のときと同様に、残処理量グラフは傾き−3の直線を描き、時刻=45[s]において残処理量は「0」となる。

0042

上述のように、ジョブ解析部22は処理スケジュール情報36を生成して記憶部30に記憶させる。上述の同様の処理によって、ジョブ解析部22は他のインスタンスタイプについての処理スケジュール情報36も生成し、記憶部30に記憶させる。

0043

判定対象時間Tは、インスタンス制御部24が各インスタンスタイプの処理能力を変更するか否かを判定する際に用いられるものである。具体的には、インスタンス制御部24は、現時点から判定対象時間T内における、あるインスタンスタイプの残処理量の最大値と、処理能力DB34に記憶された当該インスタンスタイプの可能処理量との比較に基づいて、当該インスタンスタイプの処理能力を設定する。判定対象時間Tは、例えばサービス提供システム10の管理者などによって予め設定される。

0044

サーバ14の構成概略としては以上の通りである。その他、図1には示されていないが、サーバ14には、クライアント端末12、複数のタイプのインスタンス、及びストレージ16と通信を行うための通信部などが設けられる。

0045

以下、図5に示すフローチャートに従って、サーバ14の処理の流れを説明する。図5に示すフローチャートは、各インスタンスタイプの処理能力を増大させるスケールアウト処理に関するものである。なお、図5のフローチャートの開始時においては、タイプAインスタンス、タイプBインスタンス、及びタイプCインスタンスはそれぞれ1つのインスタンスから構成されており、記憶部30には図3に示す処理能力DB34が記憶されているものとする。また、判定対象時間Tとして40[s]が記憶されているものとする。

0046

テップS10において、サーバ14は、1又は複数のクライアント端末12からジョブを受信する。本例では、3つのジョブを受信したとする。

0047

ステップS12において、ジョブ解析部22は、受信した3つのジョブそれぞれを解析して、各ジョブに関する処理に対する各インスタンスタイプの処理順序、及び当該ジョブを処理する場合の各インスタンスタイプが処理すべき処理量を取得する。ここでは、3つのジョブは同様のジョブであり、ジョブ解析部22の解析により、各ジョブから図2に示す処理順序情報32が取得され記憶部30に記憶されたとする。ここで、上述のように同様のジョブは並行処理されるから、本例においても当該3つのジョブは並行処理される。したがって、実際に各インスタンスタイプに割り当てられる処理は図2に示す処理量の3倍となる。

0048

ステップS14において、ジョブ解析部22は、ステップS12で取得された処理順序情報32、及び処理能力DB34(そのうち各インスタンスタイプの処理速度情報)に基づいて、処理スケジュール情報36を生成して記憶部30に記憶させる。ここでは、上述の処理によって、タイプAインスタンスについて図4に示す処理スケジュール情報36Aが生成されたとする。また、同様の処理によってタイプBインスタンスについて図6に示す処理スケジュール情報36Bが、タイプCインスタンスについて図7に示す処理スケジュール情報36Cが生成されたとする。

0049

ステップS16において、インスタンス制御部24は、インスタンスタイプ毎に、ステップS14で生成した処理スケジュール情報36に基づいて、現時点から判定対象時間T以内における残処理量の最大値が、処理能力DB34に設定された可能処理量を超えるか否かを判定する。ここでは、インスタンス制御部24は、まずタイプAインスタンスについて判定を行う。

0050

図3及び図4を参照して、タイプAインスタンスについて説明する。図3に示された処理能力DB34によれば、タイプAインスタンスの可能処理量は「20」である。図4においては、参考のため可能処理量ライン50A(可能処理量=20の一点鎖線)が示されている。また、本例では、判定対象時間T=40[s]であるから、図4において参考のために時間=40[s]のラインが示されている。

0051

インスタンス制御部24は、現時点から判定対象時間Tの間に、タイプAインスタンスに割り当てられた1又は複数の処理の処理量の最大値が可能処理量を超えるか否かを判定する。本実施形態では、現時点(時刻=0[s])から時刻=40[s]までの間における、図4に示すタイプAインスタンスの残処理量グラフの最大値が可能処理量ライン50Aを超えるか否かを判定する。図4の例では、残処理量グラフは、時刻=0[s]、時刻=20[s]、及び時刻=35[s]において最大値「30」を取り、これが可能処理量「20」を超えるから、タイプAインスタンスについては、ステップS16の判定は「はい」となる。

0052

ステップS18において、インスタンス制御部24は、タイプAインスタンスの処理能力を増大させる。本実施形態では、タイプAインスタンスのインスタンス数を増やすことでタイプAインスタンスの処理能力を増大させる。つまりタイプAインスタンスのスケールアウトを実行する。増やすインスタンスの数は、ステップS16で演算された、現時点から判定対象時間Tの間におけるタイプAインスタンスの残処理量グラフの最大値と、インスタンス1つあたりの可能処理量に基づいて決定されてよい。具体的には、増大後のタイプAインスタンスの処理能力(可能処理量)が、現時点から判定対象時間Tの間におけるタイプAインスタンスの残処理量グラフの最大値を超えるようにタイプAインスタンスの数を設定する。

0053

本例では、現時点から判定対象時間Tの間におけるタイプAインスタンスの残処理量グラフの最大値は「30」であり、タイプAインスタンスの1つあたりの可能処理量は「20」であるから、タイプAインスタンスの数を2つにすれば、可能処理量は「40」となり、判定対象時間T内の残処理量グラフの最大値を超える。したがって、インスタンス制御部24は、ここではタイプAインスタンスを2つにスケールアウトする。仮に、判定対象時間T内のタイプAインスタンスの残処理量グラフの最大値が「50」である場合は、インスタンス制御部24は、タイプAインスタンスを3つにスケールアウトさせ、その可能処理量を当該最大値である「50」を超える「60」に設定する。

0054

ステップS20において、インスタンス制御部24は、処理能力DB34の内容の更新処理を行う。ここでは、タイプAインスタンスのインスタンス数及び可能処理量を更新する。ステップS18において、タイプAインスタンスの数を「1」から「2」に変更したため、インスタンス制御部24は、タイプAインスタンスのインスタンス数を「2」とし、可能処理量を2倍の「40」とする。

0055

ステップS22において、インスタンス制御部24は、入力されたジョブを処理するのに必要な全てのインスタンスタイプについて、その処理能力を増大させるか否かを判定する判定処理が終了したか否かを判断する。ここでは、タイプBインスタンス及びタイプCインスタンスについて処理が終わっていないため、ステップS24を経由してステップS16に戻る。

0056

ステップS24において、ジョブ解析部22は、ステップS20で更新された処理能力DBに基づいて、各インスタンスタイプの処理スケジュール情報を更新する。スケールアウトにより、あるインスタンスタイプについての処理能力が変わった場合、それに応じて各インスタンスタイプにおける処理が完了するまでの時間が変動するからである。

0057

再度のステップS16において、タイプBインスタンスについて上述の処理を行う。図3に示された処理能力DB34によれば、タイプBインスタンスの可能処理量は「60」である。図6において、図4同様、参考のため可能処理量ライン50B(可能処理量=60の一点鎖線)、判定対象時間=40[s]のラインが示されている。図6に示されるように、判定対象時間40[s]以内におけるタイプBインスタンスの残処理量グラフの最大値は「60」となっており、タイプBインスタンスの可能処理量「60」を超えない。したがって、タイプBインスタンスについては、ステップS16の判定は「いいえ」となる。

0058

再度のステップS22において、未だタイプCインスタンスについて処理が終わっていないため、ステップS16に戻る。なお、タイプBインスタンスについては処理能力DBの更新が行われていないため、ステップS24においては処理スケジュールの更新処理は行わずにステップS16に戻る。

0059

再々度のステップS16において、タイプCインスタンスについて上述の処理を行う。図3に示された処理能力DB34によれば、タイプCインスタンスの可能処理量は30である。図7において、図4及び図6同様、参考のため可能処理量ライン50C(可能処理量=30の一点鎖線)、判定対象時間=40[s]のラインが示されている。図7に示されるように、判定対象時間40[s]以内におけるタイプCインスタンスの残処理量グラフの最大値は「45」となっており、これがタイプCインスタンスの可能処理量「30」を超える。したがって、タイプCインスタンスについては、ステップS16の判定は「はい」となる。

0060

ステップS18において、インスタンス制御部24は、タイプAインスタンス同様に、時点から判定対象時間Tの間におけるタイプCインスタンスの残処理量グラフの最大値と、インスタンス1つあたりの可能処理量に基づいてタイプCインスタンスをスケールアウトさせる。ここでは、タイプCインスタンスの数を1つ増やし2つとする。また、ステップS20において、インスタンス制御部24は、処理能力DB34におけるタイプCインスタンスのインスタンス数を「2」とし、可能処理量を2倍の「60」とする。

0061

入力されたジョブを処理するのに必要な全てのインスタンスタイプについて、その処理能力を増大させるか否かを判定する判定処理が終了すると、ステップS26において、サーバ14の制御部20は、ジョブの実行を開始する。具体的には、クライアント端末12から入力された3つのジョブに関する処理をタイプA〜Cのインスタンスにそれぞれ実行させる。

0062

図8に、図4に示したタイプAインスタンスの処理スケジュール情報36Aとしての残処理量グラフの続きが示されている。図8に示す通り、タイプAインスタンスにおいては、図5のフローチャートにおいて処理した3つのジョブ以来、しばらく処理が割り当てられないものとする。以下、図8を参照しながら、図9に示すフローチャートに従って、各インスタンスタイプの処理能力を減少させるスケールイン処理について説明する。

0063

スケールイン処理は、ジョブがサーバ14に入力され、当該ジョブの処理に関する処理スケジュール情報36が生成された後(図5のステップS14の後)において間欠的に実行される。スケールイン処理が実行される間隔は、サービス提供システム10の管理者などによって適宜設定されてよい。本例では、5秒に1回の割合で実行される。なお、スケールイン処理の実行間隔がより小さい方が、各インスタンスタイプに割り当てられる処理量の変化により早期に対応してスケールイン処理を行うことができるが、その反面、インスタンス制御部24の処理量が増加する。

0064

ここでは、図5のステップS26においてジョブが実行開始された後にスケールイン処理が実行された場合を例に説明する。したがって、図9のフローチャートの開始時においては、タイプAインスタンスのインスタンス数は2であり、その可能処理量は「40」であるとする。また、判定対象時間Tは変わらず40[s]であるとする。

0065

まず、時刻=35[s]の時点でスケールイン処理が開始された場合を考える。

0066

スケールイン処理が開始されると、ステップS30において、インスタンス制御部24は、生成済みの処理スケジュール情報36及び処理能力DB34に基づいて、インスタンスタイプ毎に、可能処理量と、現時点から判定対象時間T以内における残処理量の最大値との差分が、所定量以上となるか否かを判定する。当該所定量は、インスタンス1つ分の可能処理量に基づいて定められる値である。本実施形態では、インスタンス1つ分の可能処理量そのものが当該所定量として利用される。ここでは、インスタンス制御部24は、まずタイプAインスタンスについて判定を行う。

0067

現在、処理能力DB34には、タイプAインスタンスについて、インスタンス数が「2」であり、その可能処理量は「40」であるから、インスタンス制御部24はタイプAインスタンスの1つ当たりの可能処理量が「20」であることが把握である。図8においては、参考のために、現在のタイプAインスタンスの可能処理量ライン50A(可能処理量=40の一点鎖線)が示されている。また、この場合の現在時刻である35[s]から判定対象時間T=40[s]の間の時間がT1で示されている。

0068

まず、インスタンス制御部24は、現時点から判定対象時間T1の間における、タイプ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インスタンと同様であるため、その説明は省略する。

0069

次に、時刻=40[s]の時点でスケールイン処理が開始された場合を考える。なお、図8においては、参考のために、この場合の現在時刻である40[s]から判定対象時間T=40[s]の間の時間がT2で示されている。

0070

インスタンス制御部24は、現時点から判定対象時間T2の間におけるタイプAインスタンスの残処理量グラフの最大値を特定する。図8を参照して、ここでは、最大値として、時刻=40[s]における残処理量「15」が特定される。次いで、インスタンス制御部24は、現在のタイプAインスタンスの可能処理量「40」と、特定した最大値「15」との差分を演算し、差分「25」を取得する。そして、差分「25」とタイプAインスタンスの1つ当たりの可能処理量「20」を比較する。ここでは、差分「25」がタイプAインスタンスの1つ当たりの可能処理量「20」以上となっているため、ステップS30の判定は「はい」となり、ステップS32に進む。

0071

ステップS32において、インスタンス制御部24は、タイプAインスタンスの処理能力を減少させる。本実施形態では、タイプAインスタンスのインスタンス数を1つ減らすことでタイプAインスタンスの処理能力を減少させる。つまりタイプAインスタンスのスケールインを実行する。詳しくは、タイプAインスタンスのインスタンス数を1つ減らす処理を行う。これにより、タイプAインスタンスのインスタンス数が「2」から「1」へ減少される。

0072

ステップS34において、インスタンス制御部24は、処理能力DB34の内容の更新処理を行う。ここでは、タイプAインスタンスのインスタンス数及び可能処理量を更新する。ステップS32において、タイプAインスタンスの数を「2」から「1」に変更したため、インスタンス制御部24は、タイプAインスタンスのインスタンス数を「1」とし、可能処理量を半分の「20」とする。

0073

ステップS36において、インスタンス制御部24は、入力されたジョブを処理するのに必要な全てのインスタンスタイプについて、その処理能力を減少させるか否かを判定する判定処理が終了したか否かを判断する。ここでは、タイプBインスタンス及びタイプCインスタンスについて処理が終わっていないため、ステップS38を経由してステップS30に戻る。

0074

ステップS38において、ジョブ解析部22は、ステップS34で更新された処理能力DBに基づいて、各インスタンスタイプの処理スケジュール情報を更新する。スケールインにより、あるインスタンスタイプについての処理能力が変わった場合、それに応じて各インスタンスタイプにおける処理が完了するまでの時間が変動するからである。

0075

以後、タイプBインスタンス及びタイプCインスタンスについても上述と同様の処理を行う。

0076

以上説明した本実施形態によれば、サーバ14に入力されたジョブの分析により得られた処理スケジュール情報36に基づいて、各インスタンスタイプの処理能力が設定(つまりスケールイン又はスケールアウト)される。これにより、過去における各インスタンスタイプの処理能力あるいは処理量に基づいて各インスタンスタイプ仮想マシンの処理能力を決定する場合に比して、より確実に、各インスタンスタイプの処理能力を、各インスタンスタイプが実行すべき処理の処理量に適した能力に設定することができる。

0077

また、本実施形態によれば、ジョブの実行前に処理スケジュール情報36が生成されるから、あるインスタンスタイプについてスケールアウトが必要になることを事前に把握することができる。スケールアウトを行うためには多少時間を要するところ、事前にスケールアウトを行っておくことで、スケールアウトの実行が間に合わなくなることがなく、当該インスタンスタイプに割り当てられた処理を滞らせることなく処理することができる。

0078

以上、本発明に係る実施形態を説明したが、本発明は上記実施形態に限られるものではなく、本発明の趣旨を逸脱しない限りにおいて種々の変更が可能である。

0079

例えば、上記実施形態においては、ジョブの実行前にスケールアウトを実行していたが、インスタンス制御部24は、処理スケジュール情報36に基づいて、あるインスタンスタイプの処理能力を増大させる必要があるタイミングを把握できるため、当該タイミングの直前において当該インスタンスタイプのスケールアウトを実行するようにしてもよい。例えば、図7に示す処理スケジュール情報36Cが得られた場合、インスタンス制御部24は、時刻=30[s]の直前(もちろんスケールアウトに必要な時間を考慮した上で)にタイプCインスタンスのスケールアウトを実行するようにしてもよい。

0080

また、上記実施形態においては、ジョブに関する処理が複数タイプのインスタンスに割り当てられていたが、ジョブが1つのタイプのインスタンスのみを使用する場合であっても、本発明を適用し得る。例えば、サーバ14がクライアント端末12から、単にストレージ16に電子ドキュメントを格納(あるいは検索、ダウンロードなど)する処理(つまりタイプAインスタンスのみを使用する処理)を要求する複数のジョブを連続して受信した場合、複数のジョブに係る複数の処理は順次タイプAインスタンスに割り当てられることになる。このような場合であっても、本実施形態のように、タイプAインスタンスの処理スケジュール情報36を生成し、それに応じてタイプAインスタンスのスケールアウト処理あるいはスケールイン処理を行うことができる。

0081

10サービス提供システム、12クライアント端末、14サーバ、16ストレージ、20 制御部、22ジョブ解析部、24インスタンス制御部、30 記憶部、32処理順序情報、34処理能力DB、36処理スケジュール情報。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ