JP2016184357A - 情報処理装置、プログラム及び情報処理方法 - Google Patents

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

Info

Publication number
JP2016184357A
JP2016184357A JP2015065199A JP2015065199A JP2016184357A JP 2016184357 A JP2016184357 A JP 2016184357A JP 2015065199 A JP2015065199 A JP 2015065199A JP 2015065199 A JP2015065199 A JP 2015065199A JP 2016184357 A JP2016184357 A JP 2016184357A
Authority
JP
Japan
Prior art keywords
state
processing
request
processing unit
stop
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.)
Granted
Application number
JP2015065199A
Other languages
English (en)
Other versions
JP6492865B2 (ja
Inventor
小坂 史
Chikashi Kosaka
史 小坂
森田 雅夫
Masao Morita
雅夫 森田
五十嵐 龍也
Tatsuya Igarashi
龍也 五十嵐
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
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 filed Critical Fuji Xerox Co Ltd
Priority to JP2015065199A priority Critical patent/JP6492865B2/ja
Publication of JP2016184357A publication Critical patent/JP2016184357A/ja
Application granted granted Critical
Publication of JP6492865B2 publication Critical patent/JP6492865B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】負荷がなくなった処理部をすぐに停止させる方式と比較して、処理要求への対応の遅れを少なくする。【解決手段】VM管理装置14は、ログイン中のユーザが一人もいない起動状態のVM12があると、それを停止準備状態に遷移させる。停止準備状態のVM12は、ログイン要求もジョブも割り当てられないが、既に割り当てられたジョブは実行する。ログイン要求等の要求が来た際に、起動状態のVM12のすべてが上限までログインユーザやジョブを受け入れ済みの場合、停止準備中のVM12があればそれを起動状態に戻し、戻したVM12にその要求を割り当てる。停止準備状態のVM12は、時間のかかる起動処理を経なくても、単に状態を切り替えるだけで、起動状態に戻ることができるので、停止した処理部を起動する場合よりもその要求に早く応えることができる。【選択図】図1

Description

本発明は、情報処理装置、プログラム及び情報処理方法に関する。
近年、クラウドコンピューティングサービスのように、サービス提供者の有するプロセッサやメモリ等の計算リソースをユーザに対して例えば課金方式等の形で利用させるシステムが普及しつつある。このようなサービスは、一般に、ユーザのための処理に用いる計算リソースを必要に応じて自動的に増減する、いわゆるオートスケーリング機能を有する。例えばAmazon EC2 (Elastic Compute Cloud)というクラウドサービスでは、ユーザに対してEC2インスタンスと呼ぶ仮想マシンを割り当てるが、処理負荷に応じてそのインスタンスの数を自動的に増減する。一般的に、インスタンスの数を増加させることを「スケールアウト」、減少させることを「スケールイン」と呼んでいる。例えば、サービスの利用料金が使用するリソースの量に応じて定められている場合、処理負荷が低下したときに使用リソースの量を自動的に減らすことで、利用料金が節約される。
特許文献1に開示されたシステムでは、負荷情報収集部は、物理サーバと仮想サーバの負荷を収集して、各負荷を採取した時間に対応づけて、負荷情報として負荷情報テーブルに格納し、類似負荷情報選択部は、管理対象の負荷がスケールアウト閾値またはスケールイン閾値から外れたときに、現在時刻の負荷に類似する過去の負荷情報を負荷情報テーブルから選択し、スケールアウト判断部またはスケールイン判断部は、選択された負荷情報に従って管理対象の負荷が変化すると仮定して、管理対象の負荷が、その後も、いずれかの閾値から外れると予測したときには、スケールアウトまたはスケールインを実行する。
特開2011−118525号公報
1つ以上の処理部を負荷状況に応じて起動したり停止したりして処理能力を動的に調整するシステムでは、負荷がない処理部を停止させることが一般的である。しかし、負荷が増大してきて処理能力が足りなくなった場合、停止している処理部を起動することで処理能力を増大させるが、その起動のための処理にはある程度の時間がかかるので、負荷増大への対応が遅くなる。
本発明は、負荷がなくなった処理部をすぐに停止させる方式と比較して、処理要求への対応の遅れを少なくすることを目的とする。
請求項1に係る発明は、コンピュータを、処理要求に応じた処理をあらかじめ定められた上限負荷まで実行可能であり、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が可能である起動状態、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が不可能である停止状態、処理要求に応じた処理の実行は可能であるが処理要求の受け入れは禁止されている停止準備状態、の3つの状態を選択的にとることができる処理部であって、停止状態の処理部が処理要求を受け入れるためには起動処理を行って起動状態に移行する必要があるのに対し、停止準備状態の処理部が処理要求を受け入れるためには起動処理を行わずに起動状態に戻せばよい、複数の処理部、各処理部の負荷状況の情報を保持する負荷状況保持手段、負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその処理要求を割り当てる割り当て手段、負荷がなくなった起動状態の処理部を停止準備状態に移行させ、停止準備状態のままあらかじめ定めた時間が経過した処理部を停止状態に移行させる制御を行う状態制御手段、として機能させるためのプログラムである。
請求項2に係る発明は、前記処理には、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理とがあり、前記負荷状況保持手段は、前記各処理部について、前記接続処理と前記データ処理のそれぞれの負荷状況の情報を保持し、前記状態制御手段は、前記接続処理の負荷がなくなった起動状態の処理部を停止準備状態に移行させる、ことを特徴とする請求項1に記載のプログラムである。
請求項3に係る発明は、前記割り当て手段は、到来した接続要求については、接続処理の負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した接続要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその接続要求を割り当てると共に、接続処理の負荷状況が上限負荷に達していない起動状態の処理部が複数ある場合は、それら複数のうちのデータ処理を実行していない処理部よりもデータ処理を実行中の処理部に優先的に前記接続要求を割り当てる、ことを特徴とする請求項2に記載のプログラムである。
請求項4に係る発明は、前記割り当て手段は、到来したデータ処理要求については、データ処理の負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来したデータ処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にそのデータ処理要求を割り当てると共に、データ処理の負荷状況が上限負荷に達していない起動状態の処理部が複数ある場合は、それら複数のうちの接続処理を実行していない処理部よりも接続処理を実行中の処理部に優先的に前記接続要求を割り当てる、ことを特徴とする請求項2又は3に記載のプログラムである。
請求項5に係る発明は、処理要求に応じた処理をあらかじめ定められた上限負荷まで実行可能であり、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が可能である起動状態、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が不可能である停止状態、処理要求に応じた処理の実行は可能であるが処理要求の受け入れは禁止されている停止準備状態、の3つの状態を選択的にとることができる処理部であって、停止状態の処理部が処理要求を受け入れるためには起動処理を行って起動状態に移行する必要があるのに対し、停止準備状態の処理部が処理要求を受け入れるためには起動処理を行わずに起動状態に戻せばよい、複数の処理部と、各処理部の負荷状況の情報を保持する負荷状況保持手段と、負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその処理要求を割り当てる割り当て手段と、負荷がなくなった起動状態の処理部を停止準備状態に移行させ、停止準備状態のままあらかじめ定めた時間が経過した処理部を停止状態に移行させる制御を行う状態制御手段と、を含む情報処理装置である。
請求項6に係る発明は、処理要求に応じた処理をあらかじめ定められた上限負荷まで実行可能であり、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が可能である起動状態、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が不可能である停止状態、処理要求に応じた処理の実行は可能であるが処理要求の受け入れは禁止されている停止準備状態、の3つの状態を選択的にとることができる処理部であって、停止状態の処理部が処理要求を受け入れるためには起動処理を行って起動状態に移行する必要があるのに対し、停止準備状態の処理部が処理要求を受け入れるためには起動処理を行わずに起動状態に戻せばよい、複数の処理部を制御する方法であって、負荷状況保持手段が、各処理部の負荷状況の情報を保持するステップと、割り当て手段が、負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその処理要求を割り当てるステップと、状態制御手段が、負荷がなくなった起動状態の処理部を停止準備状態に移行させ、停止準備状態のままあらかじめ定めた時間が経過した処理部を停止状態に移行させる制御を行うステップと、を含む情報処理方法である。
請求項1、5又は6に係る発明によれば、負荷がなくなった処理部をすぐに停止させる方式と比較して、処理要求への対応の遅れを少なくすることができる。
請求項2に係る発明によれば、接続処理よりも時間がかかる可能性が高いデータ処理が終わらない状況でも停止準備状態に移行することができ、停止状態への移行が行われやすくすることができる。
請求項3に係る発明によれば、データ処理を実行している処理部と実行していない処理部に差別無く割り当てる場合よりも、データ処理を実行していない処理部を停止準備状態に移行させやすくすることができる。
請求項4に係る発明によれば、接続処理を実行している処理部と実行していない処理部に差別無く割り当てる場合よりも、接続処理を実行していない処理部を停止準備状態に移行させやすくすることができる。
実施形態のシステム構成の一例を示す図である。 VM(仮想マシン)情報のデータ内容の一例を示す図である。 VMの状態遷移を説明するための図である。 ジョブ情報のデータ内容の一例を示す図である。 ログイン要求の割り当て処理の手順の例を示す図である。 ジョブの割り当て処理の手順の例を示す図である。 スケールインのための制御の手順の例を示す図である。 実施形態の制御を行った場合に、ログイン要求及びジョブの振り分けや、オートスケールの具体的な進み方の例を示す図である。
図1を参照して、実施形態のシステム構成の例を説明する。
図1に示すジョブ処理システム10は、PC(パーソナルコンピュータ)やモバイル端末等のクライアント30を操作するユーザに対して、印刷ジョブを実行するというサービスを提供する。印刷ジョブ(以下単に「ジョブ」とも呼ぶ)とは、ユーザが指定した印刷対象の文書データをプリンタで印刷するために行うデータ処理である。ジョブ処理システム10は、図示しないネットワークを介してクライアント30から文書データを受け取り、その文書データをプリンタ(図示省略)で取扱可能なデータ形式の印刷データに変換し、変換結果の印刷データをネットワーク経由でプリンタに提供して印刷を実行させる。
ジョブ処理システム10は、0以上のVM(Virtual Machine:仮想マシン)12を有しており、それらVM12がそれぞれユーザからの印刷指示に対応するジョブを実行する。VM12は、例えば、IaaS(Infrastructure as a Service)プロバイダから提供されるインフラ上に構築されるものであってよい。なお同様に、後述するVM管理装置14、振り分け装置16も、そのインフラ上に構築される仮想マシン上に構築されたものであってよく、共有ストレージ20はそのインフラ上のストレージであってよい。
VM12が実行するジョブ処理は、文書データを印刷データに変換する処理や、変換結果の印刷データをユーザから指定されたプリンタに送信する処理を含む。
個々のVM12は、割り当てられたジョブの処理の他に、ユーザからの要求を処理するユーザインタフェース処理も実行する。ユーザインタフェース処理には、ジョブ処理システム10に対するユーザの接続(ログイン)の可否を判定するログイン処理、ジョブについてのパラメータ(例えば印刷部数等の印刷属性)の設定を受け付ける処理、ジョブの実行開始要求を受け付ける処理、ジョブの状態確認の要求を受け付けてジョブの状態情報をユーザに提供する処理等が含まれる。
この例では、VM12がユーザ(クライアント30)から受け付ける処理要求には、ログイン要求、ジョブ実行要求、ジョブ状態確認要求などがある。
クライアント30からログイン要求を受けると、振り分け装置16からそのログイン要求を割り当てられたVM12が、クライアント30から受け取ったパスワード等のユーザ認証情報を用いてユーザのログインを認めるか否かを判定する。ログインが認められると、ユーザはジョブ処理システム10に対してログインしている状態となる。ログイン状態のユーザからの要求は、ログインを受け付けたVM12が受け取って処理する。すなわち、ユーザは、そのVM12にログインしたと捉えることもできる。
ログイン状態において、例えば、ユーザ(クライアント30)からそのVM12に印刷データや印刷パラメータの入力が行われる。すると、VM12は一意なジョブ識別子を発行し、それら入力された情報をそのジョブ識別子に対応づけて共有ストレージ20に保存する(ジョブ情報24)。その後クライアント30からそのVM12にジョブ実行要求が入力されると、VM12は、そのジョブ識別子をキュー(印刷待ち行列:図示省略)の末尾に追加する。このキューは、例えば振り分け装置16が管理している。キュー内のジョブは、振り分け装置16によりいずれかのVM12に振り分け(割り当て)られる。ログイン要求やジョブ実行要求を受けたVM12が、その要求に係るジョブを実行するとは限らない。
ユーザは、キューに入れられたジョブの状態を確認したい場合、ジョブ状態の確認を要求する。これに応じて、クライアント30からジョブ処理システム10にジョブ状態確認要求が送られる。この要求を受け取ったシステム10内のVM12は、その要求の対象であるジョブの現在の状態を示す情報をクライアント30に返す。
ユーザが明示的にログアウトを要求した場合、または操作をしない状態が所定時間続いてタイムアウトとなった場合、ユーザのログイン状態は解除される。ログイン解除の後、ユーザがジョブ処理システム10に対して要求を行う場合は、再度ログインを行う必要がある。例えば、ユーザがログインしてジョブを投入し、ジョブ実行要求を行った後、ログインが解除され、その後そのユーザがそのジョブの状態を知りたいと思った場合、そのユーザは再びログイン要求を行ってシステム10にログインした上で、ジョブ状態確認要求を行う。
VM管理装置14は、VM12の管理を行う装置であり、例えば停止状態のVM12を起動したり、起動状態(すなわち稼働状態)のVM12を停止させたりする。例えばジョブ処理システム10の運営者とIaaSプロバイダとの契約により、ジョブ処理システム10内で起動状態のVM12の上限数が決まっている。起動状態のVM12だけでは負荷に十分対応できなくなった場合でも、起動状態のVM数がその上限数に達していない場合には、停止状態のVM12を起動することでシステムの処理能力を高めることができる(スケールアウト)。また、システムの負荷が低下してきた場合、起動状態のVM12を停止させる(スケールイン)ことで、起動状態のVM12の数に応じたIaaSプロバイダの従量制課金を抑制できる。
振り分け装置16は、ユーザからの要求を各VM12に振り分ける(割り当てる)機能と、キュー内のジョブを各VM12に振り分ける機能を有する。ユーザからの要求のうちログイン要求の振り分け先の決定手順については、後で具体例を挙げて説明する。ログイン後の要求(例えばジョブ実行要求やジョブ状態確認要求)については、従来からあるセッション維持技術を用いて、ログイン処理を行ったVM12に振り分けることで、セッション情報をVM12間で受け渡すためのオーバーヘッドをなくすようにしてもよい。振り分け装置16のジョブ振り分けの処理についても、後で詳しく説明する。
共有ストレージ20は、VM12群、VM管理装置14及び振り分け装置16の間で共有される記憶装置である。共有ストレージ20にはVM情報22とジョブ情報24が記憶されており、VM12群、VM管理装置14及び振り分け装置16はこれらの情報を参照しながら処理を進める。
図2にVM情報22のデータ内容の一例を示す。この例では、VM情報22には、VM12ごとに、そのVM12を一意に識別する「VM識別子」、そのVM12の「状態」 、そのVM12が同時に受付可能な「最大ユーザ数」、そのVM12に現在ログインしているユーザ数(「ログインユーザ数」)、現在ログインしているユーザのユーザ識別子のリスト(「ログインユーザ」)、そのVM12が並列的に実行可能な「最大ジョブ数」、そのVM12が現在実行しているジョブのジョブ識別子のリスト(「実行中ジョブ」)が登録されている。図2に示したテーブルの1つの行が、その行に対応するVM12の管理情報である。
「最大ジョブ数」及び「最大ユーザ数」は、個々のVM12の処理能力に応じてあらかじめ定められた値である。図示例ではこれらの値は全てのVM12で同じ値になっているが、VM12毎に能力が異なる場合には、それらの値もVM12毎に異なってくる。
VM12の「状態」として、前述の「起動」及び「停止」という状態の他に、「停止準備」状態がある。「起動」状態とは、VM12が起動済みである状態、すなわちジョブやユーザインタフェース処理を実行可能な状態である。「停止」状態とは、VM12が停止している状態である。VM情報22内には「停止」状態のVM12の管理情報は存在するが、クラウドコンピューティングのインフラ上にはそのVM12は既に存在していない。「停止」状態のVM12(管理情報としてのみ存在)がジョブやユーザインタフェース処理(ユーザからの要求の受付等)を実行可能になるには、そのVM12を起動する起動処理が必要であり、この起動処理にはある程度の時間がかかる。「停止準備」状態とは、「起動」状態と「停止」状態の中間の状態であり、「停止」の準備段階である。この状態ではVM12はまだ停止しておらず、既に受け入れ済みのジョブを実行しているが、新たなジョブは受け入れないし、ユーザインタフェース処理も実行しない。新たなジョブの受け入れやユーザインタフェース処理を実行するには、VM12は「起動」状態に復帰する必要がある。ただし、「停止準備」状態のVM12は、まだ停止していないので、起動処理を行わなくてもほぼ即座に「起動」状態に復帰し、新たなジョブやユーザインタフェース処理を実行することができる。
VM情報22の内容は、VM管理装置14、振り分け装置16、及び各VM12により随時更新される。例えばVM管理装置14がVM12の状態を遷移させた場合、VM情報22内のそのVM12の「状態」が遷移後の値に更新される。また、振り分け装置16がユーザからのログイン要求をいずれかのVM12に振り分けた場合、VM情報22内のそのVM12の「ログインユーザ数」に1が加算される。また、VM12がログイン処理を実行してユーザを認証した場合、そのユーザ識別子が「ログインユーザ」の欄に追加される。また、VM12にログイン中のユーザがログアウトした場合、そのVM12の「ログインユーザ数」が1減算され、「ログインユーザ」の欄からそのユーザのユーザ識別子が削除される。また、振り分け装置16がキュー内のジョブをいずれかのVM12に割り当て、そのVM12がそのジョブの実行を開始すると、そのVM12の「実行中ジョブ」の欄にそのジョブのジョブ識別子が追加される。そして、VM12がジョブの実行を完了すると、「実行中ジョブ」の欄からそのジョブのジョブ識別子が削除される。
図3に、この例における「停止」、「起動」、「停止準備」の3状態間の状態遷移を示す。まず、「停止」から「起動」への遷移は、ジョブ処理システム10の初期起動時又はVM管理装置14の管理下でのスケールアウト時に起こる。初期起動時は、あらかじめ定めた待機VMの下限数のVM12が起動されて「起動」状態となる。この例では、ジョブ処理システム10は、少なくともその下限数のVM12は常に「起動」(又は「停止準備」)状態としておくことで、ある程度の要求には即座に応えることができるようにしている。「起動」状態のVM12は、典型的には、ジョブ又はユーザインタフェース処理等を実行している。「起動」状態のVM12に対してログインしているユーザが無くなった場合、そのVM2は「停止準備」状態に遷移する。「停止準備」状態のVM12は、VM管理装置14からの停止準備解除指示に応じて「起動」状態に戻る。停止準備解除指示は、「起動」状態のVM12群の上限負荷(それらVM12の最大ユーザ数又は最大ジョブ数の総和)を超える場合に発行される。また「停止準備」状態に遷移してから、停止準備解除指示を受けないまま、あらかじめ定めた時間が経過すると、VM12は「停止」状態に遷移する。ただし、そのVM12を「停止」させると、「起動」又は「停止準備」のVM数が待機VMの下限数を下回ってしまう場合は、「停止」させずに「停止準備」状態を維持するようにしてもよい。
図4に、ジョブ情報24のデータ内容の一例を示す。ジョブ情報24には、ジョブ毎に、そのジョブを一意に識別する「ジョブ識別子」、そのジョブを投入したユーザのユーザ識別子(「ユーザ」)、そのジョブの印刷画質設定(「設定」)、そのジョブでの印刷対象の印刷データの格納場所(「入力」)、そのジョブの処理負荷の総量(言い換えれば、VM12がそのジョブを処理するのに要する時間)を示す情報(「総ページ」)、そのジョブの現在の「状況」、及びそのジョブの処理済み量を示す情報(「完了ページ」)の各項目が含まれる。この例でVM12が実行するジョブ処理の負荷は、大略的には印刷する画像のサイズ(用紙サイズ)に比例し、また当然ながらページ数にも比例する。このため、ジョブの処理負荷の総量や処理済み量は用紙サイズとページ数の組で表現している。例えば、図4の例では、ジョブ「Job1」の総処理負荷は、A4サイズ10ページ分であり、現時点ではそのうちのA4サイズ4ページの処理が完了している。
ジョブ情報24の内容は、各VM12により随時更新される。例えばVM12がユーザからジョブ実行要求を受けた場合、一意なジョブ識別子が生成され、そのジョブ識別子に対応するエントリがジョブ情報24内に作成され、そのエントリ内に、その要求を発した「ユーザ」、そのジョブについての「設定」(実行要求の発行前にユーザが入力済み)、そのジョブの印刷データの格納場所を示す「入力」、そのジョブの「総ページ」の値が登録される。このとき、そのジョブは「実行待ち」状態となり、実行要求の受付順にキューに入れられている。また、振り分け装置16からキュー内のジョブの割り当てを受けたVM12がそのジョブの実行を開始すると、ジョブ情報24内のそのジョブの「状況」が「(そのVM12で)実行中」に変更され、そのVM12がそのジョブの処理(例えば印刷可能なデータ形式への変換)を1ページ終える毎に、そのジョブの「完了ページ」のページ数に1が加算される。
次に図5を参照して、振り分け装置16が実行するログイン要求の割り当て処理の手順の例を説明する。この手順では、「停止準備」状態のVM12よりも「起動」状態のVM12を優先的にログイン要求を割り当てる。
この手順では、まず振り分け装置16は、ユーザからログイン要求を受けた場合、VM情報22を参照して、「起動」状態でありかつ「ログインユーザ数」が上限、すなわち「最大ユーザ数」に達していないVM12があるかどうかを判定する(S10)。そして、該当するVM12があれば、そのVM12にそのログイン要求を割り当てる(S12)。S10の判定条件に該当するVM12が複数ある場合には、選択基準に従ってその中からログイン要求の割当先を選択する。選択基準は、その時点での各VM12の状況を考慮しない固定的な基準(例えばVM12の識別子の若い順)であってもよいし、各VM12の状況を考慮に入れた基準であってもよい。状況を考慮に入れた基準の例としては、(i)ログインユーザ数が多いVM12ほど優先的に選択する、(ii)実行中のジョブの終了タイミングが遅いVM12ほど優先的に選択する、等がある。基準(i)は、ログインユーザを少ない数のVM12に集中させる(ただし最大ユーザ数以内に制限される)という作用をもつ。ログインユーザを特定のVM12に集中させることで、他のVM12にはログイン処理等のユーザインタフェース処理が割り振られにくくなるので、それら「他のVM12」は停止準備状態、ひいては停止状態へと遷移しやすくなる。基準(ii)は、実行中のジョブの終了が相対的に早いVM12にユーザインタフェース処理が割り当てられにくいので、そのようなVM12が停止準備状態、ひいては停止状態へと遷移しやすくなる。逆の観点から言えば、実行中のジョブの終了が早いVM12にログイン要求を割り振ると、ジョブが終了したにもかかわらず、ユーザインタフェース処理を実行しているために停止準備状態に移行できないといった事態が起こりやすいが、基準(ii)によればそのような事態が生じにくくなる。
なお、S10の条件に該当するVM12の中に、ジョブを実行中のものとジョブを実行していないものとの両方が含まれる場合には、前者に優先的にログイン要求を割り当てるようにしてもよい。このようにすることで、ジョブを実行していないVM12にログイン要求が割り当てられにくくなり、そのVM12が停止準備状態(ひいては停止状態)に移行しやすくなる。
S10の判定結果がNoの場合、起動状態のVM12はすべて上限(最大ユーザ数)一杯のログインユーザを有していることになる。この場合、対象のログイン要求を起動状態のVM12に割り当ててしまうと、上限を超えてしまう。そこで、この場合振り分け装置16は、VM情報22を参照して、停止準備状態のVM12があるかどうかを判定する(S14)。そして、該当するVM12があれば、そのVM12の状態を起動状態に戻し(S16)、その後そのVM12にそのログイン要求を割り当てる(S18)。
停止準備状態のVM12が複数ある場合には、選択基準に従ってその中からログイン要求の割当先を選択する。ここで用いる選択基準としては、例えば、(a)VM識別子が小さい順に選択するという基準、(b)起動されたタイミングが早い順に選択するという基準、(c)起動されたタイミングが遅い順に選択するという基準等がある。これらの基準は、「停止準備」状態のVM12がスケールイン可能になるタイミングを考慮に入れない、固定的で簡便な選択基準である。これに対し、スケールイン(停止)可能になるタイミングを考慮に入れた選択基準の例として、「停止準備」状態に遷移してからの経過時間が短いものほど優先的に選択するという基準がある。経過時間が長いものは「停止準備」状態が維持されやすいので、もう少しでスケールインできるVM12が「起動」状態に戻ってしまうという事態が生じにくい。
また選択基準の別の例として、「停止準備」のVM12のうちその選択の時点でジョブを実行しているものとしていないものとがある場合、ジョブを実行しているものを優先的に選択するという基準がある。ジョブを実行していないVM12は停止準備状態(ひいては停止状態)に遷移しやすいので、そのようなVM12を起動状態に戻さないことで、スケールインが妨げられにくくすることができる。
更に選択基準の別の例として、「停止準備」のVM12のうち、実行しているジョブの処理が終了するまでの残り時間が長いVM12ほど優先的に選択するという基準もある。その残り時間が長いほどスケールイン(「停止」状態への遷移)が可能になるタイミングが遅いので、この基準によれば、スケールインしやすい(残り時間が短い)VM12が「起動」状態に戻るという事態が起こりにくい。ここで残り時間の長さを示す値としては、VM情報22及びジョブ情報24から、「停止準備」のVM12が実行中のジョブの「総ページ数」から「完了ページ」を引き算した結果の値を用いればよい。このとき、「総ページ数」及び「完了ページ」は、基準とする用紙サイズでのページ数に換算した上で上述の引き算を行う。
更に別の選択基準として、停止準備状態に遷移した時点で実行中のジョブの実行開始時刻が遅いVM12ほど優先的に選択するという基準もある。この基準は、例えば各ジョブの残り時間(言い換えれば、そのジョブが終了すると予測される時刻)が見積もれない場合に用いる。図4の例のように、実行中のジョブの完了ページ数をジョブ情報24内に含め、随時更新している例では、残り時間の見積もりが可能であるが、そのようなことをおこなっていない場合、残り時間の見積もりができないことがある。この場合に対応すべく、この選択基準では、全てのジョブの処理に要する時間は同じであると仮定し、遅く開始されたジョブほど遅くまで実行されているとみなしている。
S14の判定結果がNoの場合、振り分け装置16は、起動状態のVM12の数と停止準備状態のVM12の数との和が、契約により定められた最大VM数に達しているかどうかを判定する(S20)。この判定は、停止状態のVM12が存在するか否かの判定と等価である(起動状態、停止準備状態、停止状態のVM12の合計数は、最大VM数に等しい)。S20の判定結果がYesの場合、これ以上VM12を増やすことはできないので、その時点ではログイン要求を割り当てることはできない。この場合、例えばあらかじめ定めた時間だけ待って再度S10からの処理を繰り返す。時間の経過によりいずれかのユーザがログアウトするなどにより、そのログイン要求を受け入れ可能なVM12が出てくる可能性がある。なお、S20の判定結果がYesの場合、ログインできるまでにある程度の時間がかかることなどを説明するメッセージをユーザに返すようにしてもよい。
S20の判定結果がNoの場合、スケールアウトを行う余地がある。この場合、図5の例では、振り分け装置16は、直ちにスケールアウトを実行するようVM管理装置14に依頼する(S22)。VM管理装置14はその依頼に応じ、停止状態のVM12を起動する起動処理を実行する。なお、起動処理にはある程度の時間を要するので、図5の手順では、S22の後、新たなVM12が起動状態になるのを待たず、(あらかじめ定めた時間だけ待って)S10に戻っている。そして、その間に他のユーザがログアウトするなどしてそのログイン要求を受け入れ可能なVM12が現れていれば、そのVM12にそのログイン要求を割り当てる。こうすることで、スケールアウトしてVM12の起動処理の完了を待つよりもログイン処理を早く実行できる場合が出てくる。
次に、図6を参照して、振り分け装置16が行うジョブ割り当て処理の例を説明する。この処理は、あらかじめ定めた時間間隔毎に実行される。
この処理では、まず振り分け装置16は、キュー内にジョブが有るかどうかを判定する(S30)。キュー内にジョブがない場合、VM12へ割り当てる対象がないので、処理は終了する。
キュー内にジョブがある場合には、ログイン中のユーザがあり、かつ実行中のジョブ数が上限(図2の「最大ジョブ数」)に達していないVM12が有るかどうかを判定する(S32)。このようなVM12は、起動状態である。該当するVM12があれば、そのVM12にキューの先頭のジョブを割り当てる(S34)。S32の条件に該当するVM12が複数ある場合には、ラウンドロビン方式等の公知の負荷分散アルゴリズムに従って、それら複数のVM12の中からジョブの割当先を決定すればよい。
S32の判定結果がNoの場合、起動状態のVM12の中に、ログイン中のユーザが無く、かつ実行中のジョブ数が上限に達していないものが有るかどうかを判定する(S36)。該当するVM12があれば、そのVM12にキューの先頭のジョブを割り当てる(S38)。該当するVM12が複数ある場合には、公知の負荷分散アルゴリズムに従ってジョブの割当先を決定すればよい。
このように、図6の手順では、実行中のジョブ数が上限に達していない起動状態のVM12のうち、ログイン中のユーザがあるものに優先的にジョブを割り当てる。こうすることで、ユーザが一人もログインしていないVM12にジョブが割り当てられにくくなり、そのVM12が停止準備状態に遷移しやすくなる。
S36の判定結果がNoの場合、起動状態のVM12はすべて上限(最大ジョブ数)一杯のジョブを有していることになる。この場合、対象のジョブを起動状態のVM12に割り当ててしまうと、上限を超えてしまう。そこで、この場合振り分け装置16は、VM情報22を参照して、停止準備状態のVM12があるかどうかを判定する(S40)。そして、該当するVM12があれば、そのVM12の状態を起動状態に戻し(S42)、その後そのVM12にそのログイン要求を割り当てる(S44)。
ここで停止準備状態のVM12が複数ある場合には、S18の場合と同様の選択基準に従ってその中からログイン要求の割当先を選択してもよいし、ラウンドロビン方式等の公知の負荷分散アルゴリズムに従って割当先を決めてもよい。
S40の判定結果がNoの場合、振り分け装置16は、起動状態のVM12の数と停止準備状態のVM12の数との和が、契約により定められた最大VM数に達しているかどうかを判定する(S46)。S46の判定結果がYesの場合、これ以上VM12を増やすことはできないので、その時点ではジョブをVM12に割り当てて実行させることはできない。この場合、例えばあらかじめ定めた時間だけ待って再度S10からの処理を繰り返す。時間の経過によりいずれかのジョブの実行が完了するなどにより、そのジョブを受け入れ可能なVM12が出てくる可能性がある。なお、S46の判定結果がYesの場合、ログインできるまでにある程度の時間がかかることなどを説明するメッセージをユーザに返すようにしてもよい。
S46の判定結果がNoの場合、スケールアウトを行う余地がある。この場合、直ちにスケールアウトを行ってもよいが、図6の手順では、キュー内のジョブ数(実行待ち状態のジョブの数)と、起動状態及び停止準備状態のVM12のうち現在ジョブを実行中のものの数とを比較し(S48)、キュー内のジョブ数の方が多い(S50の判定結果がYes)場合にのみ、スケールアウトを実行する(S52)ようにしている。キュー内のジョブ数の方が多いということは、それだけジョブが待たされる傾向が強いということであり、スケールアウトしてVM12の数を増やす必要性が高いといえる。これに対し、キュー内のジョブ数がジョブ実行中のVM12の数以下の場合は、スケールアウトしなくてもジョブの実行待ちは許容範囲内であると見なし、スケールアウトを行わない。S48及びS50では、スケールアウトしなくてもキュー内のジョブが実行を待機させられる時間が許容できるそうかどうかを判定できればよく、キューのジョブ数とジョブ実行中のVM12の数の大小関係以外の判定条件を用いてもよい。
図6の手順でも、スケールアウトの実行(S52)により新たなVM12が起動するのを待たず、S10に戻って、既に起動状態にあるVM12がジョブを受け入れ可能になっていないかどうかを調べる。
次に図7を参照して、VM管理装置14が行うスケールイン制御の手順の例を説明する。この手順は、例えばあらかじめ定められた時間間隔毎に実行される。
この手順では、VM管理装置14は、まずVM情報22を参照して、起動状態のVM12の中にログイン中のユーザがいないものがあるかどうかを判定する(S50)。該当するVM12がある場合には、該当するすべてのVM12の状態を起動状態から停止準備状態に変更する(S52)。そして、あらかじめ定めた判断期間の長さのタイマーをセットし、その判断期間が経過するのを待つ。判断期間が経過する前に、ログイン要求やジョブの増加によりそのVM12の状態を起動状態に戻すと、タイマーはリセットされる。停止準備状態を維持したまま判断期間が経過すると、VM管理装置14は、そのVM12がジョブを実行中か否かを判定する(S56)。ここでは、停止準備状態に遷移した時点でそのVM12が既に受け入れていたジョブが完了していることを確認する。完了していない場合(S56の判定結果がYes)、あらかじめ定めた時間だけ待ってS54、S56の処理を繰り返し、受け入れ済みのジョブの実行が完了するのを待つ。そして受け入れ済みのジョブが完了すると(S56の判定結果がNo)、そのVM12を停止準備状態から停止状態へと遷移させる(S58)。
次に図8を参照して、本実施形態の方法を用いた場合のログイン要求及びジョブの処理の様子のシミュレーション例を説明する。
このシミュレーション例は、11人のユーザ「user 1」〜「user 11」が順にジョブ処理システム10にログインし、1人1つずつジョブを投入し、ジョブの実行を要求してログアウトした場合に、ログイン要求やジョブがどのようにVM12群に割り当てられ、またVM12群のオートスケールがどのように行われていくのかを示している。
このシミュレーションでは、1つのVM12に同時にログインできるユーザの最大数は3人であるとし、1つのVM12が同時に処理可能なジョブの最大数は1ジョブである。また、停止状態のVM12が起動状態になるための起動処理には2分を要し、停止準備状態から停止状態に移行するまでの判断期間は4分間である。
図8に示される4つのチャートのうち最も左側のものは、各ユーザがジョブ処理システム10にログイン要求を発してからログアウトするまでの期間を示している。縦軸が時間の流れを示し、区切り1つが1分を示す。横軸はユーザ識別子を示す。ユーザ識別子の縦列と時間の横行が交差するセル内の符号は、「1」がログイン要求を発してからログアウトするまでの期間内であることを示し、「0」がその期間でないことを示す。例えばユーザ「user 1」は、1分目にログイン要求を発し、その後5分目にログアウトするまでの間、ジョブ処理システム10に対していくつかの要求(例えばログイン要求、印刷パラメータ設定要求、ジョブ実行要求)を発していることが読み取れる。
左から2番目のチャートは、各ユーザが投入したジョブがいずれかのVM12で実行されている期間を示している。ユーザ識別子の縦列と時間の横行が交差したセル内の符号は、「1」が当該ユーザのジョブの実行期間内であることを示し、「0」がその期間でないことを示す。例えばユーザ「user 1」については、(そのユーザが4分目にジョブ実行要求を発してログアウトした後)6分目にそのジョブの実行が開始され、9分目にそのジョブの実行が完了している
左から3番目のチャートは、各VM12のユーザインタフェース処理の実行状況を示す。横軸は各VM12の識別子を示す。識別子の縦列と時間の横行が交差したセルは、その時間スロットにおいてそのVM12にログインしているユーザの識別子のリストを表している。例えば、「VM1」には、1分目では「user 1」のみがログインしているが、2分目では「user 1」及び「user 2」がログインしており、3分目では「user 1」〜「user 3」の3人がログインしている。
またこのチャート及びその右隣のチャートにおけるセルの背景の濃さは、そのセルにおけるVM12の状態を示している。白色のセルは「起動」状態を、最も濃いグレーのセルは「停止」状態を、それら両者の中間濃度のグレーのセルは「停止準備」状態を示している。また、「起動処理」と記載されたセルは、当該VM12が「停止」から「起動」に遷移するための起動処理(ブートアップ)を行っていることを示している。例えば「VM2」は4分目までは停止状態であるが、5〜6分目に起動処理を行い、7分目以降は起動状態となっている。そして、15分目に停止準備状態に遷移し、その後起動状態に戻ることなく4分間が経過して、19分目に停止状態に遷移(スケールイン)している。
最も右側のチャートは、各VM12のユーザインタフェース処理の実行状況を示す。横軸は各VM12の識別子を示す。識別子の縦列と時間の横行が交差したセルは、その時間スロットにおいてそのVM12が実行しているジョブの識別子を表している。このシミュレーションでは、各ユーザがそれぞれ1つずつジョブを投入しているので、ジョブの識別子にはユーザの識別子と同じ数字を用いている。例えば、「VM1」は、6分目に「user 1」のジョブの実行を開始して9分目にそのジョブを完了し、7分目から9分目までは「user 3」のジョブを実行している。
このシミュレーション例では、「VM1」はジョブ処理システム10の起動時から起動しており、最初のログイン要求(「user 1」からのもの)は「VM1」が受け付ける。VMは3人までのユーザに同時に対応できるので、ログイン期間が重なっている「user 1」から「user 3」までについても同時に対応している。5分目に「user 4」からログイン要求が来た際、起動状態である唯一の「VM1」は既に最大ユーザ数3人までのユーザに対応しており、停止準備中のVMもないので、「VM2」が起動される(スケールアウト)。「VM2」は2分間の起動処理を経て7分目には起動状態になる。5分目の「user 4」からのログイン要求は、その時点では受け入れ可能なVMは存在しないが、5分目で「user 1」がログアウトして「VM1」に1人分の空きができた結果、6分目に「VM1」に割り当てられる。この時点では「VM2」はまだ起動処理中である。
「user 1」のジョブは、6〜9分目の間「VM1」で処理される。「user 2」がジョブ実行要求を行った7分目では、「VM1」は他のジョブを実行していてその要求を受け付けられないが、「VM2」が起動状態となっているので、その要求は「VM2」に振り分けられる。「user 3」がジョブ実行要求を行った8分目では、起動状態にある「VM1」及び「VM2」は共に他のジョブを実行していてその要求を受け付けることができない。このため、新に「VM3」が起動される。
「VM3」は2分後の10分目に起動状態となるが、「VM1」及び「VM2」はその10分目の時点では他のジョブの処理を完了しており、他のジョブを受け入れ可能になっている。したがって、起動状態の「VM1」〜「VM3」の全てが、「user 3」のジョブの振り分け先の候補となる。図6のジョブ割り当ての手順によれば、そのうちの「VM1」と「VM2」が、ログイン中のユーザがあり且つ実行中のジョブ数が上限(1個)に達していないので、S32の判定結果はYesとなり、この例では例えば識別子の若い順という選択基準(あくまで一例である)からそのうちの「VM1」がそのジョブの振り分け先に選ばれる。したがって、10分目では、「VM1」はユーザインタフェース処理とジョブ処理の両方を実行しており、「VM1」はユーザインタフェース処理のみを実行しており、「VM3」はユーザインタフェース処理とジョブ処理のどちらも行っていない。せっかく起動した「VM3」であるが、10分目の時点でユーザインタフェース処理を行っていない状態となったので、停止準備状態に移行する(図7のS50及びS52参照)。
「user 5」及び「user 6」のジョブの実行が要求された12分目では、起動状態の「VM1」及び「VM2」は共に上限(1個)のジョブを実行中であり、新たなジョブを受け入れることができない。そこで停止準備状態のVMを探すと、「VM3」が見つかるので、「VM3」を起動状態に戻す(図6のS40、S42)。「VM3」は即座に起動状態に戻り、それら2つのジョブのうち例えば「user 5」のジョブの割り当てを受けて実行する。この時点では「user 6」のジョブの割当先が決まっていないが、起動状態の「VM1」〜「VM3」は全て上限までジョブを実行しており、停止準備状態のVMもないので、スケールアウトを試みる。この例では最大VM数は5なので、スケールアウトの余地がある。そこで、「VM4」を起動する。
「user 1」〜「user 11」に対するユーザインタフェース処理は、時間がずれているため「VM1」と「VM2」の2つでまかなえている。したがって、12分目にジョブの割り当てを受けた「VM3」はユーザインタフェース処理をしないので、次の13分目で停止準備状態に戻る。「VM3」は、その後ログイン処理もジョブも割り当てられないので、4分後の17分目に停止状態に移行する(スケールイン)。
起動された「VM4」及び「VM5」には14分目及び15分目にそれぞれジョブが割り当てられるが、ログイン要求が割り当てられることはないので、次の15分目及び16分目にそれぞれ停止準備状態に移行する。
「VM2」は、15分目にログインユーザが0になったので、16分目に停止準備状態に移行するが、17分目に「user 10」のジョブを処理するために起動状態に戻される。そして、ログイン要求が無いため、次の18分目に停止準備状態に戻り、その後再び起動状態に戻ること無く判断期間(4分)が経過し、20分目に停止状態に移行する(スケールイン)。
以上では、ジョブ処理システム10が印刷ジョブの実行サービスをユーザに提供する例を説明したが、ジョブ処理システム10は、スキャンした画像に対するデータ処理や画像の転送処理等の他のジョブを実行するものであってもよい。この場合クライアント30は、スキャナ、ファクシミリ装置、複合機(プリンタ、スキャナ、コピー機、ファクシミリ装置等の機能を併せ持つ装置)等であってもよい。
また、仮想マシンではなく物理的なコンピュータでジョブ処理やユーザインタフェース処理を分散して実行するシステムにおいても、上記実施形態の手法を用いてそれらコンピュータの起動(スケールアウト)や停止(スケールイン)を制御することができる。
以上に例示したVM12、ジョブ管理装置14、振り分け装置16は、例えば、汎用のコンピュータにそれら各装置の処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、CPU等のマイクロプロセッサ、ランダムアクセスメモリ(RAM)およびリードオンリメモリ(ROM)等のメモリ(一次記憶)、HDD(ハードディスクドライブ)を制御するHDDコントローラ、各種I/O(入出力)インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばI/Oインタフェース経由で、CDやDVDなどの可搬型ディスク記録媒体に対する読み取り及び/又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び/又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがRAMに読み出されCPU等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。なお、それら機能モジュール群のうちの一部又は全部を、専用LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit、特定用途向け集積回路)又はFPGA(Field Programmable Gate Array)等のハードウエア回路として構成してもよい。
10 ジョブ処理システム、12 VM(仮想マシン)、14 VM管理装置、16 振り分け装置、20 共有ストレージ、22 VM情報、24 ジョブ情報、30 クライアント。

Claims (6)

  1. コンピュータを、
    処理要求に応じた処理をあらかじめ定められた上限負荷まで実行可能であり、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が可能である起動状態、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が不可能である停止状態、処理要求に応じた処理の実行は可能であるが処理要求の受け入れは禁止されている停止準備状態、の3つの状態を選択的にとることができる処理部であって、停止状態の処理部が処理要求を受け入れるためには起動処理を行って起動状態に移行する必要があるのに対し、停止準備状態の処理部が処理要求を受け入れるためには起動処理を行わずに起動状態に戻せばよい、複数の処理部、
    各処理部の負荷状況の情報を保持する負荷状況保持手段、
    負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその処理要求を割り当てる割り当て手段、
    負荷がなくなった起動状態の処理部を停止準備状態に移行させ、停止準備状態のままあらかじめ定めた時間が経過した処理部を停止状態に移行させる制御を行う状態制御手段、
    として機能させるためのプログラム。
  2. 前記処理には、ユーザからの接続要求を処理する接続処理と、データ処理要求に応じてデータを処理するデータ処理とがあり、
    前記負荷状況保持手段は、前記各処理部について、前記接続処理と前記データ処理のそれぞれの負荷状況の情報を保持し、
    前記状態制御手段は、前記接続処理の負荷がなくなった起動状態の処理部を停止準備状態に移行させる、
    ことを特徴とする請求項1に記載のプログラム。
  3. 前記割り当て手段は、
    到来した接続要求については、接続処理の負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した接続要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその接続要求を割り当てると共に、
    接続処理の負荷状況が上限負荷に達していない起動状態の処理部が複数ある場合は、それら複数のうちのデータ処理を実行していない処理部よりもデータ処理を実行中の処理部に優先的に前記接続要求を割り当てる、
    ことを特徴とする請求項2に記載のプログラム。
  4. 前記割り当て手段は、
    到来したデータ処理要求については、データ処理の負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来したデータ処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にそのデータ処理要求を割り当てると共に、
    データ処理の負荷状況が上限負荷に達していない起動状態の処理部が複数ある場合は、それら複数のうちの接続処理を実行していない処理部よりも接続処理を実行中の処理部に優先的に前記接続要求を割り当てる、
    ことを特徴とする請求項2又は3に記載のプログラム。
  5. 処理要求に応じた処理をあらかじめ定められた上限負荷まで実行可能であり、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が可能である起動状態、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が不可能である停止状態、処理要求に応じた処理の実行は可能であるが処理要求の受け入れは禁止されている停止準備状態、の3つの状態を選択的にとることができる処理部であって、停止状態の処理部が処理要求を受け入れるためには起動処理を行って起動状態に移行する必要があるのに対し、停止準備状態の処理部が処理要求を受け入れるためには起動処理を行わずに起動状態に戻せばよい、複数の処理部と、
    各処理部の負荷状況の情報を保持する負荷状況保持手段と、
    負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその処理要求を割り当てる割り当て手段と、
    負荷がなくなった起動状態の処理部を停止準備状態に移行させ、停止準備状態のままあらかじめ定めた時間が経過した処理部を停止状態に移行させる制御を行う状態制御手段と、
    を含む情報処理装置。
  6. 処理要求に応じた処理をあらかじめ定められた上限負荷まで実行可能であり、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が可能である起動状態、処理要求の受け入れ及びその処理要求に応じた処理の実行の両方が不可能である停止状態、処理要求に応じた処理の実行は可能であるが処理要求の受け入れは禁止されている停止準備状態、の3つの状態を選択的にとることができる処理部であって、停止状態の処理部が処理要求を受け入れるためには起動処理を行って起動状態に移行する必要があるのに対し、停止準備状態の処理部が処理要求を受け入れるためには起動処理を行わずに起動状態に戻せばよい、複数の処理部を制御する方法であって、
    負荷状況保持手段が、各処理部の負荷状況の情報を保持するステップと、
    割り当て手段が、負荷状況が上限負荷に達していない起動状態の処理部がある場合には、到来した処理要求をその処理部に割り当て、そうでない場合には、停止準備状態の処理部があればその停止準備状態の処理部を起動状態に戻し、戻した処理部にその処理要求を割り当てるステップと、
    状態制御手段が、負荷がなくなった起動状態の処理部を停止準備状態に移行させ、停止準備状態のままあらかじめ定めた時間が経過した処理部を停止状態に移行させる制御を行うステップと、
    を含む情報処理方法。

JP2015065199A 2015-03-26 2015-03-26 情報処理装置、プログラム及び情報処理方法 Expired - Fee Related JP6492865B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015065199A JP6492865B2 (ja) 2015-03-26 2015-03-26 情報処理装置、プログラム及び情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015065199A JP6492865B2 (ja) 2015-03-26 2015-03-26 情報処理装置、プログラム及び情報処理方法

Publications (2)

Publication Number Publication Date
JP2016184357A true JP2016184357A (ja) 2016-10-20
JP6492865B2 JP6492865B2 (ja) 2019-04-03

Family

ID=57243038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015065199A Expired - Fee Related JP6492865B2 (ja) 2015-03-26 2015-03-26 情報処理装置、プログラム及び情報処理方法

Country Status (1)

Country Link
JP (1) JP6492865B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018200585A (ja) * 2017-05-29 2018-12-20 富士通株式会社 スケールイン管理プログラム、スケールイン管理装置及びスケールイン管理方法
CN111796994A (zh) * 2019-11-20 2020-10-20 华为技术有限公司 时延保证方法、系统及装置、计算设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
JP2013218449A (ja) * 2012-04-06 2013-10-24 Hitachi Ltd クラウドコンピューティングシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013186745A (ja) * 2012-03-08 2013-09-19 Fuji Xerox Co Ltd 処理システム及びプログラム
JP2013218449A (ja) * 2012-04-06 2013-10-24 Hitachi Ltd クラウドコンピューティングシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018200585A (ja) * 2017-05-29 2018-12-20 富士通株式会社 スケールイン管理プログラム、スケールイン管理装置及びスケールイン管理方法
CN111796994A (zh) * 2019-11-20 2020-10-20 华为技术有限公司 时延保证方法、系统及装置、计算设备、存储介质
CN111796994B (zh) * 2019-11-20 2022-07-12 华为云计算技术有限公司 时延保证方法、系统及装置、计算设备、存储介质

Also Published As

Publication number Publication date
JP6492865B2 (ja) 2019-04-03

Similar Documents

Publication Publication Date Title
US11252220B2 (en) Distributed code execution involving a serverless computing infrastructure
US9075656B2 (en) Cloud computing system and method for controlling same
US8908220B2 (en) Information processing system, print system, and method and computer-readable storage medium for controlling information processing system
JP5623139B2 (ja) クラウドコンピューティングシステム、文書処理方法、及びコンピュータプログラム
US20140173620A1 (en) Resource allocation method and resource management platform
JP6897136B2 (ja) 情報処理装置及びプログラム
JP2008226181A (ja) 並列実行プログラム、該プログラムを記録した記録媒体、並列実行装置および並列実行方法
JP2013186745A (ja) 処理システム及びプログラム
JP6492865B2 (ja) 情報処理装置、プログラム及び情報処理方法
JP6872117B2 (ja) 情報処理装置及びプログラム
US20230379268A1 (en) Resource scheduling method and system, electronic device, computer readable storage medium
WO2022100534A1 (zh) 虚拟实例设置方法及装置
JP5867238B2 (ja) オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード
JP6477081B2 (ja) プログラム、情報処理装置及び情報処理方法
JP2018041274A (ja) 情報処理装置その制御方法、印刷システム及びプログラム
US8589551B2 (en) Multiprocessor computer and network computing system processing use and provision of hardware resource via a network
Gadhavi et al. Efficient resource provisioning through workload prediction in the cloud system
JP2015176590A (ja) 印刷制御装置及びプログラム
JP5458997B2 (ja) データ処理装置、データ処理方法およびプログラム
Krishna Sowjanya et al. Load Balancing Algorithms in Cloud Computing
US11481171B2 (en) Image forming system, server, control method for image forming system, control method for server, and storage medium
US11704143B2 (en) Information processing apparatus, method of controlling the same, and storage medium
JP7230375B2 (ja) 情報処理装置およびプログラム
US20200285509A1 (en) Information processing system, information processing method, and information processing apparatus
JP2019046339A (ja) 情報処理装置及び情報処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181218

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: 20190205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190218

R150 Certificate of patent or registration of utility model

Ref document number: 6492865

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