JPWO2011142031A1 - リソース管理方法、リソース管理装置およびプログラム - Google Patents

リソース管理方法、リソース管理装置およびプログラム Download PDF

Info

Publication number
JPWO2011142031A1
JPWO2011142031A1 JP2012514658A JP2012514658A JPWO2011142031A1 JP WO2011142031 A1 JPWO2011142031 A1 JP WO2011142031A1 JP 2012514658 A JP2012514658 A JP 2012514658A JP 2012514658 A JP2012514658 A JP 2012514658A JP WO2011142031 A1 JPWO2011142031 A1 JP WO2011142031A1
Authority
JP
Japan
Prior art keywords
processing
resource
progress rate
batch
processing unit
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
JP2012514658A
Other languages
English (en)
Other versions
JP5815512B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2011142031A1 publication Critical patent/JPWO2011142031A1/ja
Application granted granted Critical
Publication of JP5815512B2 publication Critical patent/JP5815512B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • 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/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

個々のバッチジョブの要求処理時間を遵守する。バッチアプリケーションの配置に必要なリソースの計算を行なうリソース補正制御サーバ(1)であって、所定の時刻において、処理が完了しているバッチ処理のデータを1つのデータ群を中間処理単位とする中間処理単位データ取得処理部(102)と、前記中間処理単位を用いて、現在時刻における処理の進捗率である処理進捗率と、前記処理進捗率が、要求処理時間内に前記バッチ処理を終了するために必要な進捗率である必要進捗率に達しているか否かを判定するリソース補正判定処理部(103)と、前記判定の結果、前記必要な進捗率に達していない場合、遅延回復対象進捗率と、リソースの情報と、を基に、遅延回復に必要なリソースを算出する割当てリソース算出処理部(104)と、を有することを特徴とする。

Description

本発明は、リソース管理方法、リソース管理装置およびプログラムの技術に関する。
近年、インターネット技術や仮想化技術の進展に伴い、企業や個人などのユーザに対して、インターネット経由でコンピュータリソースやアプリケーションサービスを提供し、使用したリソース量やサービスに応じて課金を行なうクラウドコンピューティングの利用が広まりつつある。従来のコンピュータ利用は、ユーザがコンピュータのハードウェア、ソフトウェア、データなどを、自分自身で保有・管理していたのに対し、クラウドコンピューティングでは、設備に対する投資や調達にかかる時間を削減することが可能になるため、企業の間での利用事例も出始めつつある。
企業内の利用ケースの一つとして、企業における売上データや受注データの集計処理など、一定期間ごとに大量のデータを集めて一括処理するバッチ処理がある。バッチ処理には、要求処理時間(SLA:Service Level Agreement)が存在するのが一般的である。バッチ処理は、処理するデータや処理内容によって、一定期間の間に集中的にコンピュータリソースを使用するという特徴があるため、使用したリソース量に応じて課金するクラウドコンピューティングの利用形態に対する適合性が高いと考えられている。そのため、データに対するセキュリティ確保などの懸案は残るものの、今後、ユーザによる利用は広がっていくものと予想されている。
一方で、クラウドコンピューティングのサービスを提供する事業者側は、複数のユーザ企業からのサービス要求に対して、有限のコンピュータリソースで応えていく必要がある。複数のユーザ企業からのバッチ処理を受け持つクラウドサービスを考えた場合、有限のコンピュータリソースをいかに有効活用して、ユーザ企業毎の個別の要求処理時間を遵守するかということが重要なポイントになる。
このような状況下において、バッチ処理の要求処理時間の遵守を実現するための技術として、予め割当てたコンピュータリソース上で部分的なバッチ処理を所定時間行ない、その結果から進捗率を計算して、要求処理時間を遵守できないと推定した場合、コンピュータリソースを追加することで要求処理時間を遵守するジョブ実行方法、ジョブ実行システムおよびジョブ実行プログラムが開示されている(例えば、特許文献1参照)。
特開2008−123205号公報
特許文献1に記載の技術を用いることにより、予め割当てたコンピュータリソースでは、要求処理時間を遵守できないと推定した場合、要求処理時間を遵守できるまでコンピュータリソースを追加することで、要求処理時間を遵守することができるようになる。しかしながら、有限のコンピュータリソースの有効活用という観点では、必ずしも十分とは言えない場合がある。例えば、特許文献1に記載の技術では、該当バッチアプリケーションにコンピュータリソースを追加した後、リソース割当ては固定になる。このため、複数のバッチアプリケーションが共存して稼働することを想定した場合、該当するバッチアプリケーションの実行中に、別のバッチアプリケーションの開始や終了などによるリソース使用状況の変化、あるいは、別のバッチアプリケーションの処理遅延などを含めた、動的なコンピュータリソースの割当てを行なうことは困難である。
また、バッチ処理の進捗率を計算して、コンピュータリソースの追加の再計算を行なうこと自体の処理にコストがかかるため、頻繁に行なうと、バッチ処理のスループットに影響を及ぼす可能性がある。
従って、コンピュータリソースの有効活用と個別のバッチアプリケーションの要求終了時間遵守の両立を目的としたバッチアプリケーションシステムにおいては、複数のバッチアプリケーションが共存して稼働する環境下において、該当バッチアプリケーションの実行中に、コンピュータリソースの使用状況の変動や別のバッチアプリケーションの処理遅延が発生した場合であっても、コンピュータリソースを有効活用しつつ、個々のバッチアプリケーションの要求処理時間を遵守できるようにする必要がある。要求処理時間を遵守するためには、実行中のバッチアプリケーションの中間処理履歴を利用して算出した進捗率からバッチアプリケーションに割り当てたリソースを見直すことが考えられるが、リソース割当ての見直しを頻繁に行なうことによってスループット低下を招く可能性がある。従って、スループット低下を防ぎながら、個々のバッチジョブの要求処理時間を遵守するためには、必要最小限の再検査の契機の取得と、その契機を境にした中間処理履歴を取得するためのデータ分割の実現が課題となる。
このような背景に鑑みて本発明がなされたのであり、本発明は、個々のバッチジョブの要求処理時間を遵守するリソース管理方法、リソース管理装置およびプログラムを提供することを目的とする。
前記課題を解決するため、本発明は、バッチアプリケーションの配置に必要なリソースの計算を行なうリソース管理装置におけるリソース管理方法であって、前記リソース管理装置は、所定の時刻において、処理が完了しているバッチ処理のデータを1つのデータ群とすることにより中間処理単位としてまとめ、前記中間処理単位を用いて、現在時刻における処理の進捗率である処理進捗率と、前記処理進捗率が、要求処理時間内に前記バッチ処理を終了するために必要な進捗率である必要進捗率に達しているか否かを判定し、前記判定の結果、前記必要な進捗率に達していない場合、前記必要進捗率および前記処理進捗率の差分である遅延回復対象進捗率と、リソースの情報と、を基に、前記要求処理時間前に前記処理進捗率が前記必要進捗率に達するために必要なリソースを算出することを特徴とする。
その他の解決手段については、実施形態中において記載する。
本発明によれば、個々のバッチジョブの要求処理時間を遵守するリソース管理方法、リソース管理装置およびプログラムを提供することができる。
本実施形態に係る計算機システムの構成例を示す図である。 本実施形態に係る実行仮想サーバの構成例を示す機能ブロック図である。 本実施形態に係るクライアント端末の構成例を示す機能ブロック図である。 本実施形態に係るリソース管理サーバの構成例を示す機能ブロック図である。 本実施形態に係る配備制御サーバの構成例を示す機能ブロック図である。 本実施形態に係るリソース補正制御サーバの構成例を示す機能ブロック図である。 本実施形態に係るバッチアプリケーション実行方法に関する全体処理の手順を示すフローチャートである。 図7のステップS102の処理のうち、リソース情報取得およびリソース割当てに関する部分の詳細な手順を示すフローチャートである。 本実施形態に係るリソース情報管理テーブルの例を示す図である。 図8のステップS203の処理の詳細な手順を示すフローチャートである。 本実施形態に係るSLA情報管理テーブルの例を示す図である。 本実施形態に係る処理対象データ管理テーブルの例を示す図である。 図7のステップS102の処理のうち、バッチアプリケーション情報収集に関する部分の詳細な手順を示すフローチャートである。 本実施形態に係る配備アプリケーション管理テーブルの例を示す図である。 図7のステップS103の処理の詳細な手順を示すフローチャートである。 本実施形態に係るバッチアプリケーション毎ロット単位処理履歴管理テーブルの例を示す図である(バッチAP1)。 本実施形態に係るバッチアプリケーション毎ロット単位処理履歴管理テーブルの例を示す図である(バッチAP2)。 本実施形態に係るロット単位処理履歴管理テーブルの例を示す図である。 本実施形態に係るバッチ単位処理履歴管理テーブルの例を示す図である。 本実施形態に係るリソース補正のための再検査の契機に関する概念図である。 ステップS104の処理の詳細な手順のうち、再検査の契機取得に関する部分を示すフローチャートである。 再検査に必要な中間処理単位データ取得の概念図である(その1)。 再検査に必要な中間処理単位データ取得の概念図である(その2)。 図7のステップS104の処理の詳細な手順のうち、中間処理単位データ取得に関する部分を示すフローチャートである。 本実施形態に係る中間処理単位データ管理テーブルの例を示す図である。 ステップS104の処理のうち、リソース補正判定に関する部分の手順を示すフローチャートである。 本実施形態に係る中間進捗率管理テーブルの例を示す図である。 図7のステップS106,S107の処理の詳細な手順を示すフローチャートである。 本実施形態に係る中間処理リソース割当て管理テーブルの例を示す図である。 契機毎のリソース割当ての例を示すものである。 契機毎のリソース割当てに伴う中間処理進捗率管理テーブルおよび中間処理リソース割当て管理テーブルの推移の例を示すものである。 処理遅延が発生している場合における契機毎のリソース割当ての例を示すものである(その1)。 処理遅延が発生している場合における契機毎のリソース割当てに伴う中間処理進捗率管理テーブルおよび中間処理リソース割当て管理テーブルの推移の例を示すものである(その1)。 本実施形態に係るリソース割当て所要時間管理テーブルの例を示す図である。 図7のステップS106,S107の処理の詳細な手順を示すフローチャートである。 処理遅延が発生している場合における契機毎のリソース割当ての例を示すものである(その2)。 処理遅延が発生している場合における契機毎のリソース割当てに伴う中間処理進捗率管理テーブルおよび中間処理リソース割当て管理テーブルの推移の例を示すものである(その2)。
次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。
[第1実施形態]
まず、図1〜図34を参照して、本発明の第1実施形態に係る説明を行なう。なお、図1〜図6までがシステムおよび装置の構成を説明するための図であり、図7〜図19までがリソース補正のための各情報を収集する処理を説明するための図であり、図20から図34までがリソース補正に係る処理を説明するための図である。
《システム構成》
図1は、本実施形態に係る計算機システムの構成例を示す図である。
計算機システム10は、複数の実行物理サーバ4、クライアント装置6、リソース管理サーバ3、配備制御サーバ2およびリソース補正制御サーバ(リソース管理装置)1がネットワーク7を介して互いに接続されている。なお、ネットワーク7は、LAN(Local Area Network)や、WAN(Wide Area Network)や、インターネットなどのグローバルネットワークである。また、ネットワーク7は、複数のネットワーク7に分けられてもよい。
ここで、実行物理サーバ4は、バッチアプリケーションを実行する複数の実行仮想サーバ5から構成されている。
次に、図1を参照しつつ、図2〜図6に沿って、計算機システム10を構成する各装置1〜4の説明を行なう。
《実行仮想サーバ》
図2は、本実施形態に係る実行仮想サーバの構成例を示す機能ブロック図である。
実行仮想サーバ5は、二次記憶装置510、CPU(Central Processing Unit)520、主記憶装置500およびネットワークインタフェース530がバスによって互いに接続されてなる。
なお、実行仮想サーバ5が備える各種機器500,510,520,530は、実行物理サーバ4が備える各種機器の一部を仮想的に割り当てたものである。
ネットワークインタフェース530は、実行仮想サーバ5がネットワーク7に接続するためのインタフェースである。CPU520は、二次記憶装置510から主記憶装置500にロードされたプログラムを実行する演算処理装置である。主記憶装置500は、CPU520によって実行されるプログラムおよびプログラムの実行に必要なデータを二次記憶装置510からロードするRAM(Random Access Memory)などの記憶装置である。プログラムとは、例えば、バッチ処理のロジックが記述され、CPU520によって実行されることによりバッチアプリケーションとなるバッチAP(Application)プログラム501などがあるが、不図示のOS(Operating System)なども含まれる。二次記憶装置510は、バッチAPプログラム501が使用するバッチAPデータ511(以下、適宜データと記載)を格納するハードディスク装置などの磁気記憶媒体である。なお、二次記憶装置510は、フラッシュメモリなどの半導体記憶媒体であってもよい。バッチAPデータ511の格納形態は限定されるものではないが、ファイル形式やRDB(Relational Database)などの形態で格納されるのが一般的である。なお、バッチAPデータ511は、主記憶装置500上に格納されていても構わない。
《クライアント端末》
図3は、本実施形態に係るクライアント端末の構成例を示す機能ブロック図である。
クライアント装置6は、二次記憶装置610、CPU620、主記憶装置600およびネットワークインタフェース630がバスによって互いに接続されてなる。
ネットワークインタフェース630は、クライアント装置6がネットワーク7に接続するためのインタフェースである。CPU620は、主記憶装置600に記憶されているプログラムを実行することによってクライアント装置6の所定の機能を実現する演算処理装置である。主記憶装置600は、CPU620によって実行されるプログラムおよびプログラムの実行に必要なデータをロードし、記憶するRAMなどの記憶装置である。
ここで、プログラムとは、例えば、クライアント端末6が、不図示のOS、ユーザからの実行要求の送信などクライアント装置6の所定の機能を実現するためのクライアント処理プログラム601などである。二次記憶装置610は、クライアント処理プログラム601が使用するクライアント処理データ611を格納するハードディスク装置などの磁気記憶媒体である。なお、二次記憶装置610は、フラッシュメモリなどの半導体記憶媒体であってもよい。
《リソース管理サーバ》
図4は、本実施形態に係るリソース管理サーバの構成例を示す機能ブロック図である。
リソース管理サーバ3は、実行物理サーバ4のリソースを管理するためのサーバであり、二次記憶装置310、CPU320、主記憶装置300およびネットワークインタフェース330がバスによって互いに接続されてなる。
二次記憶装置310は、リソース管理サーバ3がネットワーク7に接続するためのインタフェースである。CPU320は、主記憶装置300に記憶されているプログラムを実行することによってリソース管理サーバ3の所定の機能を実現する演算処理装置である。主記憶装置300は、CPU320によって実行されるプログラムおよびプログラムの実行に必要なデータをロードし、記憶するRAMなどの記憶装置である。
ここで、プログラムとは、例えば、リソース管理サーバ3が、不図示のOS、リソース情報管理部301、アプリケーション構成情報管理部302およびリソース割当て処理部303の機能を実現するためのプログラムである。二次記憶装置310は、リソース管理サーバ3が各部301〜303の機能を実現するために必要なプログラムおよびリソース情報管理テーブル311、仮想マシンイメージである仮想マシンイメージ管理領域312を格納するハードディスク装置などの磁気記憶媒体である。リソース情報管理テーブル311は後記して説明する。なお、二次記憶装置310は、フラッシュメモリなどの半導体記憶媒体であってもよい。
なお、各部301〜303の機能については、処理の説明において後記する。
《配備制御サーバ》
図5は、本実施形態に係る配備制御サーバの構成例を示す機能ブロック図である。
配備制御サーバ2は、実行物理サーバ5に実行仮想サーバ4を配備するためのサーバであり、二次記憶装置210、CPU220、主記憶装置200およびネットワークインタフェース230がバスによって互いに接続されてなる。
ネットワークインタフェース230は、配備制御サーバ2がネットワーク7に接続するためのインタフェースである。CPU220は、主記憶装置200に記憶されているプログラムを実行することによってアプリケーション配備制御サーバ2の所定の機能を実現する演算処理装置である。主記憶装置200は、CPU220によって実行されるプログラムおよびプログラムの実行に必要なデータをロードし、記憶するRAMなどの記憶装置である。
ここで、プログラムとは、例えば、配備制御サーバ2が、不図示のOS、SLA(要求処理時間)情報管理部201、配備アプリケーション情報管理部202およびアプリケーション・データ配備処理部203の機能を実現するためのプログラムなどである。二次記憶装置210は、配備制御サーバ2が各部201〜203の機能を実現するために必要なプログラム、SLA情報管理テーブル211、処理対象データ管理テーブル212、配備アプリケーション管理テーブル213、バッチ単位処理履歴管理テーブル214およびロット単位処理履歴管理テーブル215などの各データを格納するハードディスク装置などの磁気記憶媒体である。配備アプリケーション管理テーブル213、バッチ単位処理履歴管理テーブル214およびロット単位処理履歴管理テーブル215は後記して説明する。なお、二次記憶装置210は、フラッシュメモリなどの半導体記憶媒体であってもよい。なお、ロット単位処理履歴管理テーブル215には、図16および図17で後記するバッチアプリケーション毎ロット単位処理履歴管理テーブル215a,215bも含まれている。
なお、各部201〜203の機能については、処理の説明において後記する。
《リソース補正制御サーバ》
図6は本実施形態に係るリソース補正制御サーバの構成例を示す機能ブロック図である。
リソース補正制御サーバ1は、後記して説明する再検査の契機で、リソースの割当て補正を行なう装置であり、二次記憶装置110、CPU120、主記憶装置100およびネットワークインタフェース130がバスによって互いに接続されてなる。
ネットワークインタフェース130は、リソース補正制御サーバ1がネットワーク7に接続するためのインタフェースである。CPU120は、主記憶装置100に記憶されているプログラムを実行することによってリソース補正制御サーバ1の所定の機能を実現する演算処理装置である。主記憶装置100は、CPU120によって実行されるプログラムおよびプログラムの実行に必要なデータをロードし、記憶するRAMなどの記憶装置である。
ここで、プログラムとは、例えば、リソース補正制御サーバ1が、不図示のOS、再検査契機取得処理部101、中間処理単位データ取得処理部102、リソース補正判定処理部103および割当てリソース算出処理部104の機能を実現するためのプログラムなどである。二次記憶装置110は、リソース補正制御サーバ1が各部101〜104の機能を実現するために必要なプログラム、中間処理単位データ管理テーブル111、中間処理進捗率管理テーブル112、中間処理リソース割当て管理テーブル113およびリソース割当て所要時間管理テーブル114の各データを格納するハードディスク装置などの磁気記憶媒体である。中間処理単位データ管理テーブル111、中間処理進捗率管理テーブル112、中間処理リソース割当て管理テーブル113およびリソース割当て所要時間管理テーブル114は後記して説明する。なお、二次記憶装置110は、フラッシュメモリなどの半導体記憶媒体であってもよい。
なお、各部101〜104の機能については、処理の説明において後記する。
以上、各装置のハードウェア構成およびソフトウェア構成について説明してきたが、実行物理サーバ4、実行仮想サーバ5、クライアント装置6、リソース管理サーバ3、配備制御サーバ2およびリソース補正制御サーバ1の構成は、図1に示す構成に限定されるものではない。例えば、図1では、実行物理サーバ4上で複数の実行仮想サーバ5が稼働している構成を示したが、実行仮想サーバ5を介さず、実行物理サーバ4上でバッチアプリケーションが稼働する構成でも構わない。さらに、実行物理サーバ4上で稼働するバッチアプリケーションと、実行仮想サーバ5上で稼働するバッチアプリケーションが混在する構成でも構わない。また、図1では、リソース管理サーバ3、配備制御サーバ2およびリソース補正制御サーバ1は、異なる計算機上で実行される構成を示したが、これらの全部、または一部が同一のサーバ上で実行しても構わない。
次に、図1〜図6を参照しつつ、図7〜図34に沿って本実施形態に係る処理の説明を行なう。
《全体処理》
図7は、本実施形態に係るバッチアプリケーション実行方法に関する全体処理の手順を示すフローチャートである。
まず、クライアント装置6から配備制御サーバ2へバッチサービスの受付要求として、バッチAPプログラム名、処理対象となるデータ(バッチAPデータ511)、配備対象となる実行物理サーバ名である配備対象サーバ名、見積りリソース量および要求処理時間が送信される(S101)。ここで、見積もりリソース量とは、ユーザがクライアント端末6に入力するバッチサービスに必要なリソース量である。
なお、本実施形態では、クライアント装置6から実行対象のバッチAPプログラム501、処理対象データ、要求処理時間と共に、見積りリソース量も受信するものとしたが、見積りリソース量が与えられなかった場合は、図30に示すバッチ単位処理履歴管理テーブル214を参照して、過去に実行したバッチアプリケーション名、データ処理件数、平均バッチ終了時間、使用したリソース量などから、見積もったリソース量を使用しても構わない。
なお、要求処理時間の代わりに、要求処理開始時刻と要求処理終了時刻を指定しても構わない。あるいは、要求処理時間と、処理開始時刻と処理終了時刻の両者であっても構わない。
続いて、配備制御サーバ2からリソース管理サーバ3に、リソース情報の取得要求が送信され、リソース管理サーバ3は、稼働リソース情報を確認した上で、指定されたリソースをバッチアプリケーションに割当てる(S102)。ステップS102の詳細は後記して説明する。
次に、クライアント装置6は、配備制御サーバ2に対して、バッチアプリケーションの実行要求を送信し、配備制御サーバ2は実行仮想サーバ4でバッチアプリケーションを開始し、さらに、配備制御サーバ2は処理対象データに対して、ロット単位の処理の成功、失敗などの処理履歴を管理する(S103)。ステップS103の処理は後記して説明する。
そして、リソース補正制御サーバ1の再検査契機取得処理部101が、後記して説明する再検査の契機で、ロット単位の処理履歴をグルーピングして中間処理単位とし、処理進捗率と必要進捗率を算出する(S104)。ステップS104の処理は後記して説明する。
続いて、リソース補正制御サーバ1のリソース補正判定処理部103は、ステップS104で算出した処理進捗率と必要進捗率の比較を行ない、処理進捗率が必要進捗率未満となるバッチアプリケーション(バッチAP)があるか否かを判定する(S105)。なお、処理進捗率と必要進捗率については後記して説明するが、処理進捗率は該当時点における実際の進捗率であり、必要進捗率は要求処理時間内にバッチ処理が終了するために該当時点でどれだけ進捗していなければならないかを示すものである。
ステップS105の結果、処理進捗率が必要進捗率未満となるバッチアプリケーションがある場合(S105→Yes)、リソース補正判定処理部103は、バッチ処理に遅延が発生しているものと判定し、リソース補正制御サーバ1の割当てリソース算出処理部104が、所定の規則で、ロット単位でのバッチのデータ(ロット単位データ)をグルーピングした中間処理履歴を基に、処理遅延の回復に必要なリソース量を算出する(S106)。
なお、割当てリソース算出処理部104は、リソースが確保できない場合などは、割当て可能な最大リソースを割当てるものとする。
リソース管理サーバ3のリソース割当て処理部303がステップS106で算出した割当てリソースの割当てを実施する(S107)。
なお、ステップS105〜ステップS107の詳細は後記して説明する。
ステップS105の結果、処理進捗率が必要進捗率未満となるバッチアプリケーションがない場合(S105→No)、割当てリソース補正判定処理部103は、予定通りバッチ処理が進行しているものと判定し、次のロットについてバッチ処理を続行する(ステップS108)。
ステップS107およびステップS108の後、配備制御サーバ2の配備アプリケーション情報管理部202が、すべてのロットに対して、バッチ処理を終了したか否かを判定する(S109)。
ステップS109の結果、すべてのロットに対しバッチ処理が終了していない場合(S109→No)、計算機システム10はステップS104へ処理を戻す。
ステップS109の結果、すべてのロットに対しバッチ処理が終了している場合(S109→Yes)、計算機システム10は処理を終了する。
《ステップS102の詳細(リソース情報取得およびリソース割当て)》
図8は、図7のステップS102の処理のうち、リソース情報取得およびリソース割当てに関する部分の詳細な手順を示すフローチャートである。なお、図8の処理は、リソース管理サーバ3上のリソース情報管理部301、アプリケーション構成情報管理部302およびリソース割当て処理部303が行なう処理である。
まず、リソース管理サーバ3は、クライアント装置6、配備制御サーバ2またはリソース補正制御サーバ1から、バッチアプリケーションのリソース情報取得の実行要求、またはリソース割当ての実行要求をクライアント端末から受信する(S201)。
続いて、リソース情報管理部301は、処理対象となっている実行要求がリソース情報取得の実行要求であるか否かを判定する(S202)。
ステップS202の結果、リソース情報取得の実行要求でない場合(S202→No)、すなわち、処理対象となっている実行要求がリソース割当ての実行要求である場合、リソース管理サーバ3は、リソース割当て処理部303を起動し、起動されたリソース割当て処理部303が、図10で後記するリソースの割当てを実行物理サーバ4に行なった後、実行物理サーバ5上に実行仮想サーバ4を作成し、リソース情報管理テーブル311(図9)に割当てたリソース情報を反映させ(S203)、ステップS206へ処理を進める。ここで、リソース情報とは、図9のリソース情報管理テーブル311に格納されてる各情報である。
ステップS202の結果、リソース情報取得の実行要求である場合(S202→Yes)、リソース管理サーバ3は、リソース情報管理部301を起動し、起動されたリソース情報管理部301が、実行物理サーバ4上で稼働している実行仮想サーバ5から、当該実行仮想サーバ5のリソース種別、CPU種別、メモリ種別、ディスク種別、および各々の実行物理サーバに割当てられたリソース量を取得し、これらの情報を登録することでリソース情報管理テーブル311(図9)を更新する(S204)。
次に、リソース管理サーバ3はアプリケーション構成情報管理部302を起動し、起動されたアプリケーション構成情報管理部302は、実行仮想サーバ4上で稼働しているバッチアプリケーションのバッチAPプログラム名と稼働状態を取得し、取得したバッチAPプログラム名と稼働状態を登録することで、リソース情報管理テーブル311(図9)を更新する(S205)。
なお、本実施形態において、リソース管理サーバ3はリソース情報取得の実行要求を受信することで、ステップS204およびステップS205を実行したが、これに限らず、定期的な監視によってステップS204およびステップS205を行なっても構わない。
そして、リソース管理サーバ3は未実行の実行要求(リソース情報取得またはリソース割当て)があるか否かを判定する(S206)。
ステップS206の結果、未実行の実行要求がある場合(S206→Yes)、リソース管理サーバ3はステップS202へ処理を戻す。
ステップS206の結果、未実行の実行要求がない場合(S206→No)、リソース管理サーバ3は、図7の処理へリターンする。
《リソース情報管理テーブル》
図9は、本実施形態に係るリソース情報管理テーブルの例を示す図である。
リソース情報管理テーブル311は、リソース情報を管理するための属性情報として、実行物理サーバ名、実行仮想サーバ名、バッチアプリケーション名(バッチAP名)、バッチアプリケーションの実行や完了などの状態を示す稼働状態の各欄を有する。さらに、リソース情報管理テーブル311は、通常運用時に使用するリソースであるか、あるいは、緊急運用時に使用するリソースであるかを示すリソース種別、実行物理サーバ4のCPUのスペック名称を示すCPU種別、実行仮想サーバ5を割当てた実行物理サーバ4のCPUのコア数を示すCPU割当て(コア割当て数)、メモリのスペック名称を示すメモリ種別、実行仮想サーバ5に割当てたメモリの容量を示すメモリ割当て(メモリ割当て数)の各情報を有する。
図9に示すリソース情報管理テーブル311の例では、リソースの具体例として、CPUとメモリを挙げたが、この他に、ハードディスクなどをリソースの対象に含めても構わない。例えば、ハードディスクを対象リソースに含めた場合、リソース情報管理テーブル311は、ハードディスクのスペック名称を示すハードディスク種別、割当てたハードディスクの容量を示すディスク割当てを有することになる。なお、ハードディスク割当てには、割当てたハードディスクの容量を示すものとしたが、データ転送量などの情報を示すものとしても構わない。
《ステップS203の詳細(リソース割当て)》
図10は、図8のステップS203の処理の詳細な手順を示すフローチャートである。なお、図10の処理は、配備制御サーバ2上のSLA(要求処理時間)情報管理部201、配備アプリケーション情報管理部202およびアプリケーション・データ配備処理部203が行なう処理である。
まず、配備制御サーバ2がクライアント装置6からバッチサービスの受付要求を受信する(S301)。
続いて、配備制御サーバ2がSLA情報管理部201を起動し、起動されたSLA情報管理部201が、クライアント装置6から実行対象のバッチAPプログラム501、処理対象データ、配備対象サーバ名、見積りリソース量、要求処理時間を受信する(S302)。ここで、ステップS302は、図7のステップS101に対応する。なお、要求処理時間の代わりに、処理開始時刻と処理終了時刻を指定しても構わない。あるいは、要求処理時間と、要求処理開始時刻と要求処理終了時刻の両者であっても構わない。また、処理対象データは、ロットと呼ばれる業務要件によって定められた分類や一定のデータ件数で分けられた単位に分割されているものとする。
次にSLA情報管理部201が、リソース管理サーバ3にリソース情報取得の実行要求を送信し、リソース管理サーバ3上に格納されるリソース情報管理テーブル311(図9)を参照することによってリソース割当て状況を確認し、未割当てのCPUのコアが存在するか否かで実行物理サーバ4へのバッチアプリケーションの割当てが可能か否かを判定する(S303)。なお、ここで、送信されたリソース情報取得の実行要求が、ステップS201で受信される実行要求である。
ステップS303の結果、バッチアプリケーションの割当てが可能でない場合(S303→No)、SLA情報管理部201がクライアント装置6にリソースが確保できないというメッセージを表示させ(S304)、ステップS303へ処理を戻して、リソースが空くのを待つ。ただし、ある一定時間の経過によって図10の処理を終了させたり、クライアント装置6からの処理終了の要求で、図10の処理を終了させても構わない。
ステップS303の結果、バッチアプリケーションの割当てが可能である場合(S303→Yes)、SLA情報管理部201がリソース管理サーバ3に、リソース割当ての実行要求を送信し、割当ての対象となるバッチAPプログラム名、処理対象データ名、配備対象サーバ名、および要求処理時間を図11に示すSLA情報管理テーブル211に登録する(S305)。ここで、送信されたリソース割当ての実行要求が、ステップS201で受信される実行要求である。なお、リソース割当ての実行要求には、処理対象データ名、配備対象サーバ名、および要求処理時間が格納されている。
そして、SLA情報管理部201は、ステップS302で受信したバッチ処理の対象データ(処理対象データ)から処理対象データ名、データ件数、ロット単位件数、ロット単位データ名を取得すると、図12に示す処理対象データ管理テーブル212に登録し(S306)、図13の処理へ進む。
《SLA情報管理テーブル》
図11は、本実施形態に係るSLA(要求処理時間)情報管理テーブルの例を示す図である。
SLA情報管理テーブル211は、図10のステップS302でクライアント装置6から受信したバッチサービスに関する情報を管理するための属性情報として、バッチアプリケーションプログラム名、処理対象データ名、配備対象サーバ名、要求処理時間、要求処理開始時刻および要求処理終了時刻の各情報を有する。要求処理開始時刻、あるいは、要求処理終了時刻が指定されない場合は、NULL値が格納される。
《処理対象データ管理テーブル》
図12は、本実施形態に係る処理対象データ管理テーブルの例を示す図である。
処理対象データ管理テーブル212は、図10のステップS302で受信した処理対象データに関する情報を管理するための属性情報として、処理対象データ名、データ件数、業務要件により定められた分類や一定のデータ件数で分けられたロット単位件数、ロット単位に分けられたデータを識別するためのロット単位データ名の各情報を有する。
《ステップS102の詳細(バッチアプリケーション情報収集)》
図13は、図7のステップS102の処理のうち、バッチアプリケーション情報収集に関する部分の詳細な手順を示すフローチャートである。なお、図13の処理は、配備制御サーバ2上の配備アプリケーション情報管理部202が行なう処理である。
まず、配備制御サーバ2は、リソース管理サーバ3から、図8のステップS205におけるリソース情報管理テーブル311(図9)の更新をメッセージとして受信する(S401)。
そして、配備制御サーバ2は配備アプリケーション情報管理部202を起動し、起動された配備アプリケーション情報管理部202が、リソース管理サーバ3のリソース情報管理テーブル311(図9)から全レコードにおける実行物理サーバ名、実行仮想サーバ名、バッチアプリケーション名(バッチAP名)を取得する(S402)。
続いて、配備アプリケーション情報管理部202は、SLA情報管理テーブル211(図11)から処理対象となっているバッチアプリケーションの処理対象データ名を取得し、処理対象データ管理テーブル212(図12)にアクセスして、割出した処理対象データに該当するロット単位データ名を取得し、ステップS402で取得した実行物理サーバ名、実行仮想サーバ名、バッチアプリケーション名と共に、配備アプリケーション管理テーブル213(図14)に登録することで配備アプリケーション管理テーブル213を更新し(S403)、図7の処理へリターンする。なお、初回の場合、配備アプリケーション情報管理部202が配備アプリケーション管理テーブル213を新規作成するものとする。
《配備アプリケーション管理テーブル》
図14は、本実施形態に係る配備アプリケーション管理テーブルの例を示す図である。
配備アプリケーション管理テーブル213は、配備対象となるアプリケーション、実行サーバ、処理対象データとの対応に関する情報を管理するための属性情報として、実行物理サーバ名、実行仮想サーバ名、バッチアプリケーション名(バッチAP名)、処理対象データ名およびロット単位データ名の各情報を有する。
《ステップS103の詳細》
図15は、図7のステップS103の処理の詳細な手順を示すフローチャートである。なお、図15の処理は、主に配備制御サーバ2上のアプリケーション・データ配備処理部203が行なう処理である。
まず、配備制御サーバ2は、クライアント装置6からバッチアプリケーションの実行要求を受信する(S501)。
そして、配備制御サーバ2はアプリケーション・データ配備処理部203を起動し、起動されたアプリケーション・データ配備処理部203は配備アプリケーション管理テーブル213(図14)を参照して、実行対象であるバッチアプリケーション名をキーとして、実行仮想サーバ名を取得する(S502)。
続いて、アプリケーション・データ配備処理部203は、リソース管理サーバ3上の仮想マシンイメージ管理領域312に格納された該当の仮想マシンイメージを、該当の実行物理サーバ4に配備し、起動させる(S503)ことによって、実行仮想サーバ5を起動する。
次に、アプリケーション・データ配備処理部203は、配備アプリケーション管理テーブル213(図14)を参照して、起動した実行仮想サーバ5にロット単位データを配備する(S504)。
そして、アプリケーション・データ配備処理部203は、ステップS504の処理をすべてのロットに対して処理したか否かを判定する(S505)。なお、ステップS504の処理は、所定のロット単位データ毎に行なってもよいし、すべてのロット単位データでまとめて行なってもよい。
ステップS505の結果、すべてのロットに対して処理していない場合(S505→No)、アプリケーション・データ配備処理部203はステップS505へ処理を戻す。
ステップS505の結果、すべてのロットに対して処理している場合(S505→Yes)、各実行仮想サーバ5は該当するバッチアプリケーションを実行する(S506)。このとき、アプリケーション・データ配備処理部203は、リソース補正制御サーバ1のリソース割当て所要時間管理テーブル114(図34)の各欄に情報を登録し、割当て所要時間の欄にバッチアプリケーションの割当てにかかった時間を登録する。
アプリケーション・データ配備処理部203は、配備した各々のバッチアプリケーションに対して、ロット単位毎に処理状況を監視する(S507)。
そして、アプリケーション・データ配備処理部203は、すべてのロットのバッチ処理を終了したか否かを判定する(S508)。
ステップS508の結果、すべてのロットのバッチ処理を終了している場合(S508→Yes)、アプリケーション・データ配備処理部203は、バッチアプリケーションの処理時間や使用したリソース情報などの処理履歴をバッチ単位処理履歴管理テーブル214(図19)およびアプリケーションゲーション毎ロット単位処理履歴管理テーブル215a,215b(図16、図17)に登録し(S509)、図7の処理へリターンする。ここで、リソース情報とは、ステップS402で取得したCPU種別、合計CPU割当て、メモリ種別および合計メモリ割当てなどである。
ステップS508の結果、すべてのロットのバッチ処理を終了していない場合(S508→No)、アプリケーション・データ配備処理部203は、ロット単位のバッチ処理の終了の監視を行ない、ロット単位のバッチ処理が終了したか否かを判定する(S510)。
ステップS510の結果、ロット単位のバッチ処理が終了していない場合(S510→No)、アプリケーション・データ配備処理部203は、ステップS510へ処理を戻し、監視を続ける。
ステップS510の結果、ロット単位の処理が終了している場合(S510→Yes)、アプリケーション・データ配備処理部203は、バッチアプリケーション毎ロット単位処理履歴管理テーブル215a,215b(図16、図17)における処理単位の欄を「終了」に更新し、所要時間の欄に所要時間を登録する(S511)。このとき、アプリケーション・データ配備処理部203は、現在時刻を処理状態最終更新時刻の欄に登録する。
そして、アプリケーション・データ配備処理部203は、各ロット単位を処理するのに要した平均所要時間を算出し、ロット単位処理履歴管理テーブル215(図18)に算出した平均値および使用したリソース情報(実行物理サーバ4のCPU種別、CPU割当て、メモリ種別、メモリ割当て)を登録し(S512)ステップS508へ処理を戻す。リソース情報は、図13のステップS402で取得した情報である。
なお、バッチアプリケーションの切離し(終了)も、同様の手順で行なわれるが、このとき、アプリケーション・データ配備処理部203は、リソース補正制御サーバ1のリソース割当て所要時間管理テーブル114(図24)の各欄に情報を登録し、切離し所要時間の欄にバッチアプリケーションの切離し(終了)にかかった時間を登録する。
《バッチアプリケーション毎ロット単位処理履歴管理テーブル》
図16および図17は、本実施形態に係るバッチアプリケーション毎ロット単位処理履歴管理テーブルの例を示す図である。なお、図16が「バッチAP1」について、図17はバッチAP2について示している。
図16を参照して説明すると、バッチアプリケーション毎ロット単位処理履歴管理テーブル215a(215)は、バッチアプリケーションにおけるロット単位での処理履歴を管理する属性情報として、バッチアプリケーション名(バッチAP名)、ロット単位データ名、ロット単位での処理の終了や実行中などの状態を示す処理状態、ロット単位の処理の終了に係る時間を示す所要時間を有している。また、バッチアプリケーション毎ロット単位処理履歴管理テーブル215aは、さらにロット単位の処理に使用した実行物理サーバ4のCPUのスペック名称を示すCPU種別、実行仮想サーバ5を割当てたCPUのコア数を示すCPU割当て、メモリのスペック名称を示すメモリ種別、実行仮想サーバ5に割当てたメモリの容量を示すメモリ割当てを有している。さらに、バッチアプリケーション毎ロット単位処理履歴管理テーブル215aは、該当するロット単位データの処理が終了した時刻である処理状態最終更新時刻の各情報を有する。
処理状態の欄には、「実行前」、「実行中」、「終了」などの情報が格納される。
なお、図17のバッチアプリケーション毎ロット単位処理履歴管理テーブル215b(215)は、対象となるバッチアプリケーションが「バッチAP2」となった以外は、図16と同様であるため説明を省略する。
《ロット単位処理履歴管理テーブル》
図18は、本実施形態に係るロット単位処理履歴管理テーブルの例を示す図である。
ロット単位処理履歴管理テーブル215は、各々のバッチアプリケーションにおけるロット単位での処理履歴を管理するための属性情報として、バッチアプリケーション名(バッチAP名)、ロット単位データ名、各々のロットの平均処理時間を示す平均ロット処理時間、ロット単位の処理に使用した実行物理サーバ4のCPUのスペック名称を示すCPU種別、実行仮想サーバ5を割当てたCPUのコア数を示すCPU割当て、メモリのスペック名称を示すメモリ種別、実行仮想サーバ5に割当てたメモリの容量を示すメモリ割当ての各情報を有する。
図18は、「バッチAP1」がロット単位データ「データ1−2」まで処理が完了しており、「バッチAP2」がロット単位データ「データ2−3」まで処理が完了していることを示している。
《バッチ単位処理履歴管理テーブル》
図19は、本実施形態に係るバッチ単位処理履歴管理テーブルの例を示す図である。
バッチ単位処理履歴管理テーブル214は、各々のバッチアプリケーションにおける処理履歴を管理するための属性情報として、処理実行日、バッチアプリケーション名(バッチAP名)、データ処理件数、バッチ処理が終了するまでにかかる時間を示すバッチ処理時間、今回のバッチ処理時間を含む、これまでのバッチ処理のバッチ処理時間の平均処理時間を示す平均バッチ平均処理時間の各情報を有する。また、バッチ単位処理履歴管理テーブル214は、さらにロット単位の処理に使用した実行物理サーバ4のCPUのスペック名称を示すCPU種別、実行仮想サーバ5を割当てたCPUの合計コア数を示す合計CPU割当て、メモリのスペック名称を示すメモリ種別、割当てたメモリの合計容量を示す合計メモリ割当ての各情報を有する。
図19の例は、「2010年1月21日」には、「バッチAP1」が4000件のデータをバッチ処理し、「バッチAP2」が2000件のデータをバッチ処理したことを示している。同様に、「2010年1月22日」には、「バッチAP1」が3000件のデータをバッチ処理し、「バッチAP2」が3000件のデータをバッチ処理したことを示している。
ここで、バッチ平均処理時間は、バッチ処理時間の平均値であり、例えば「2010−01−22」の「バッチAP1」におけるバッチ平均処理時間「4.80時間」は、「2010−01−21」のバッチ処理時間「4.75時間」と、「2010−01−22」のバッチ処理時間「4.85時間」との平均値である。
次に、図20〜図34を参照して、本実施形態に係るリソース補正処理について説明する。
《再検査の契機の概念図》
図20は、本実施形態に係るリソース補正のための再検査の契機に関する概念図である。
ここで、リソース量の再検査(以下、再検査と称する)を行なう目的は、バッチアプリケーションの要求処理時間(SLA)遵守の確度を高めることである。つまり、リソース補正制御サーバ1は、再検査を行なうことで、要求処理時間内で処理を終了させるペースで処理の進捗が得られているか確認することができ、処理を終了させるペースの進捗が得られていない場合は、リソースの割当ての見直しを行なう。これにより、リソース補正制御サーバ1は、バッチ処理の遅延を回復することが可能になる。ただし、頻繁にリソースの割当てを見直すことは、バッチ処理のスループットを低下させる原因にもなるので、効果的な見直しを行なう必要がある。本実施形態では、効果的な見直しを行なうために、共存するバッチアプリケーションを横断的に統合監視し、バッチアプリケーションの開始や終了のタイミングに着目して、再検査を行なうものとする。
図20は、3つのバッチアプリケーション「バッチAP1」、「バッチAP2」および「バッチAP3」が共存する環境下における再検査の契機を概念的に示したものである。図20では、まず、「T0」の時刻で「バッチAP1」の処理が開始していることを示し、「バッチAP2」の処理が開始する「T1」の時刻を、1度目の再検査の契機としている。続いて、「バッチAP3」の処理が開始する「T2」の時刻を、2度目の再検査の契機としている。同様に、「バッチAP2」の処理が終了する「T3」の時刻を、3度目の再検査の契機とし、「バッチAP3」の処理が終了する「T4」の時刻を、4度目の再検査の契機としている。さらに、「バッチAP1」が終了する「T5」の時刻を5度目の再検査の契機としている。また、図20では、「バッチAP1」の処理時間に関しては、処理開始時刻「T0」から処理終了時刻「T5」までであって、要求処理時間が処理終了時刻「T5」の先にあることから、「バッチAP1」は要求処理時間内に処理が終了できたことを示している。同様にして、「バッチAP2」、「バッチAP3」についても要求処理時間内に処理が終了している。
《ステップS104の詳細(再検査の契機取得)》
図21は、ステップS104の処理の詳細な手順のうち、再検査の契機取得に関する部分を示すフローチャートである。なお、図21の処理は、リソース補正制御サーバ1の再検査契機取得処理部101が行なう処理である。
リソース管理サーバ3は、図8のステップS205でリソース情報管理テーブル311(図9)の稼働状態ステータスが「準備中」→「実行中」となると「開始」を検知し、「実行中」→「準備中」となると「終了」を検知し、これらの情報をリソース補正制御サーバ1へ送信する。
まず、リソース補正制御サーバ1が、リソース管理サーバ3からバッチアプリケーションの稼働状態に変化があったことをメッセージとして受信し、再検査契機取得処理部101を起動する(S601)。
そして、起動された再検査契機取得処理部101は、稼動状態に変化が起きた時刻(ステップS601でメッセージを受信した時刻)を再検査の契機とする(S602)。
なお、本実施形態では、再検査の契機を共存するアプリケーションの稼働状態の変化から取得するものとしたが、定期的な時刻や時間を再検査の契機としても構わない。また、ロット単位のバッチ処理の終了メッセージや、リソース使用率の閾値監視のアラートを契機にしても構わない。
《中間処理単位データ取得の概念図》
図22および図23は、再検査に必要な中間処理単位データ取得の概念図である。
ここで、図22は、各バッチアプリケーションで使用するロット単位データのデータ数が同じである場合を示し、図23は、各バッチアプリケーションで使用するロット単位データのデータ数が異なる場合を示している。
なお、図22および図23における「1−1」、「1−2」などは配備アプリケーション管理テーブル213(図14)のロット単位データの「データ1−1」、「データ1−2」などに対応する。
中間処理単位を決める目的は、バッチ処理の進捗率の算出に必要になる処理済みデータを特定するためである。図22に示すように、中間処理単位は、契機を境にして処理済みのロット単位のデータをグルーピングすることによって決める。例えば、「バッチAP1」の場合、時刻「T1」の契機では、ロット単位データ「1−1」、「1−2」がグルーピングされ、1つの中間処理単位となり、リソース補正判定処理部103は、このグルーピングを基に後記する進捗率を求める。同様にして、時刻「T2」の契機では、中間処理単位データ取得処理部102は、ロット単位データ「1−3」を中間処理単位とし、時刻「T3」の契機では、ロット単位データ「1−4」、「1−5」、「1−6」を中間処理単位とする。そして、時刻「T4」の契機では、ロット単位データ「1−7」を中間処理単位とし、時刻「T5」の契機では、ロット単位データ「1−8」、「1−9」を中間処理単位とする。中間処理単位データ取得処理部102は、「バッチAP2」、「バッチAP3」も同様にして中間処理単位を求める。
図22では、共存する全てのバッチアプリケーションのロット単位が100件と均一な例を示したが、実際には、業務要件により、バッチアプリケーションによって異なるロット単位が混在するケースが予想される。図23は、その場合における中間処理単位を決めるためのデータ分割を概念的に示したものである。
取得した再検査の契機が、ロット単位や1件当たりの処理の負荷によるばらつきにより、処理途中であったロットは、その直近のロットの処理終了を中間処理単位とする。
《ステップS104の詳細(中間処理単位データ取得)》
図24は、図7のステップS104の処理の詳細な手順のうち、中間処理単位データ取得に関する部分を示すフローチャートである。なお、図24の処理は、リソース補正制御サーバ1の中間処理単位データ取得処理部102が主に行なう処理である。
まず、リソース補正制御サーバ1は、図21のステップS602での再検査契機取得処理部101から再検査の契機取得完了を検知する(S701)。
そして、リソース補正制御サーバ1は、中間処理単位データ取得処理部102を起動し、起動された中間処理単位データ取得処理部102は、再検査契機取得処理部101が図21のステップS602で取得した再検査の契機の時刻を取得する(S702)。
続いて、中間処理単位データ取得処理部102は、バッチアプリケーション毎ロット単位処理履歴管理テーブル215a,215b(図16、図17)を参照し、取得した再検査の契機の時刻(処理状態最終更新時刻)における処理状態のステータスを取得する(S703)。
そして、中間処理単位データ取得処理部102は、取得した処理状態のステータスが「実行中」のバッチアプリケーション(バッチAP)があるか否かを判定する(S704)。
ステップS704の結果、「実行中」のバッチアプリケーションがある場合(S704→Yes)、中間処理単位データ取得処理部102は、そのバッチアプリケーションに関し、前回の契機から、すでに終了しているロット単位データまでを中間処理単位データとして、中間処理単位データ管理テーブル111(図25)に登録し(S705)、図26の処理へ進む。ここでは、「実行中」のバッチアプリケーションがある場合において、その時点で終了しているロットを中間処理単位データに含めるようにしたが、実行中のロットが終了するまで待ち、終了した時点で該当のロットを含めて中間処理単位データとしてもよい。
ステップS704の結果、「実行中」のバッチアプリケーションがない場合(S704→No)、前回の契機から今回の契機までの間に処理が終了しているロットを中間処理単位データとして、中間処理単位データ管理テーブル111(図25)に登録し(S706)、図26の処理へ進む。
《中間処理単位データ管理テーブル》
図25は、本実施形態に係る中間処理単位データ管理テーブルの例を示す図である。
中間処理単位データ管理テーブル111では、各バッチアプリケーションの中間処理単位データを管理するための属性情報として、再検査の契機時刻を示す契機、共存するバッチアプリケーションの中間処理単位となるデータを示すバッチAP1中間処理単位データ、バッチAP2中間処理単位データ、バッチAP3中間処理単位データの各情報を有する。なお、図25では、共存するバッチアプリケーションが3つの例を示しているが、1つ以上であれば、共存するバッチアプリケーションはいくつであってもよい。
《ステップS104の詳細(リソース補正判定)》
図26は、ステップS104の処理のうち、リソース補正判定に関する部分の手順を示すフローチャートである。なお、図26の処理は、主にリソース補正制御サーバ1のリソース補正判定処理部103が行なう処理である。
まず、リソース補正制御サーバ1は、中間処理単位データ取得処理部102から中間処理単位データの取得完了を検知する(S801)。
そして、リソース補正制御サーバ1は、リソース補正判定処理部103を起動し、起動されたリソース補正判定処理部103は、中間処理単位データ管理テーブル111を参照し、各バッチアプリケーションにおいて、処理対象となっている契機の中間処理単位データ名を取得する(S802)。
次に、リソース補正判定処理部103は、配備制御サーバ2の処理対象データ管理テーブル212(図12)を参照して、ステップS802で取得した処理対象となっている中間処理単位データに該当するロット単位件数を取得し、取得した各々のロット単位件数毎のデータ件数を加算し、累積処理件数とすることによって、累積処理件数を算出する(S803)。
続いて、リソース補正判定処理部103は、配備制御サーバ2の処理対象データ管理テーブル212(図12)を参照して、処理対象となっている中間処理単位データに該当するデータ件数を取得することによって、全処理対象件数を取得し、ステップS803で算出した累積処理件数と、全処理対象件数とを基に、式(1)を計算することにより全処理対象件数に対する累積処理件数の占める割合である処理進捗率を算出する(S804)。
ここで、処理進捗率は、前記したように現時点での実際の処理進捗率である。
処理進捗率=累積処理件数/全処理対象件数 ・・・ (1)
次に、リソース補正判定処理部103は、配備制御サーバ2のバッチアプリケーション毎ロット単位データ処理履歴管理テーブル215a,215b(図16、図17)を参照して、処理対象の中間処理データに該当するロット単位データの所要時間を加算することで、中間処理データに含まれるロットの処理にかかった時間を取得し、この時間を累積処理時間とする(S805)。
そして、リソース補正判定処理部103は、配備制御サーバ2上のSLA情報管理テーブル211を参照して、各バッチアプリケーションの要求処理時間を取得すると、要求処理時間、累積処理時間から必要進捗率を算出し、該当するバッチアプリケーション名、ステップS703で取得した処理状態と共に、処理進捗率と必要進捗率とを中間処理進捗率管理テーブル112(図27)に登録する(S806)。ここで、必要進捗率の算出方法は、リソース補正判定処理部103が、要求処理時間に対する累積処理時間と全処理件数の比率を求めることで行なわれる。すなわち、必要進捗率は、全処理件数に対する現段階までに処理が行なわれているべき処理件数の割合であり、以下の式(2)で算出されるものである。
必要進捗率=累積処理時間/要求処理時間 ・・・ (2)
なお、式(2)のバリエーションとして、要求処理時間遵守の確度を高めるために、累積処理時間の代わりに、累積処理時間に安全係数を加味した時間を加えた合計時間を用いてもよい。また、式(1)および式(2)の処理進捗率、必要進捗率のそれぞれに、全処理件数をかけたものを処理進捗率、必要進捗率としてもよい。
次に、リソース補正判定処理部103は、算出した処理進捗率と必要進捗率の値を比較し、処理進捗率が必要進捗率未満となるバッチアプリケーション(バッチAP)があるか否かを判定する(S807)。ここで、ステップS807の処理は、図7のステップS105に対応する処理である。
ステップS807の結果、処理進捗率が必要進捗率未満となるバッチアプリケーションがない場合(S807→No)、リソース補正判定処理部103は。、リソース補正を行なう必要はないと判定し、以降のバッチ処理を続行し(S808)、図7の処理へリターンする。なお、ステップS808の処理は、図7のステップS108に対応する処理である。
ステップS807の結果、処理進捗率が必要進捗率未満となるバッチアプリケーションがある場合(S807→Yes)、リソース補正判定処理部103は、リソース補正を行なう必要があると判定し、割当てリソース算出処理部104を呼び出す(S809)。ステップS809で呼び出された割当てリソース算出処理部104の処理は図28で後記する。
《中間処理進捗率管理テーブル》
図27は、本実施形態に係る中間進捗率管理テーブルの例を示す図である。
中間処理進捗率管理テーブル112は、各バッチAPの中間処理の進捗率を管理するための属性情報として、契機、バッチアプリケーション名(バッチAP名)、各々のバッチアプリケーションにおける稼働状態を示す稼働状態、各々のバッチアプリケーションの必要進捗率を示す必要進捗率、各々のバッチアプリケーションの処理進捗率を示す処理進捗率の各情報を有する。
《ステップS106,S107の詳細》
図28は、図7のステップS106,S107の処理の詳細な手順を示すフローチャートである。図28の処理は、主に割当てリソース算出処理部104が行なう処理である。
まず、リソース補正制御サーバ1は、図26のステップS809のリソース補正判定処理部103による呼出しにより、割当てリソース算出処理部104を起動し、起動された割当てリソース算出処理部104は、中間処理進捗率管理テーブル112(図27)の必要進捗率と処理進捗率を基に、各バッチアプリケーションにおけるバッチ処理の遅延分の進捗率(以下、遅延回復対象進捗率と称する)を算出する(S901)。なお、割当てリソース算出処理部104は、以下の式(3)によって遅延回復対象進捗率を算出する。
遅延回復対象進捗率=必要進捗率−処理進捗率 ・・・ (3)
そして、割当てリソース算出処理部104は、配備制御サーバ2のロット単位処理履歴管理テーブル215(図18)を参照し、処理進捗率を得るために使用した実行物理サーバ4のCPUのスペック名称を示すCPU種別、CPUに割当てたリソース量を示すCPU割当て、メモリのスペック名称を示すメモリ種別、メモリに割当てたリソース量を示すCPU割当てを取得すると共に、中間処理単位データ管理テーブル111(図25)の契機、バッチアプリケーション名(バッチAP名)、稼働状態を取得し、さらに、リソース情報管理テーブル311からバッチアプリケーションの稼働状態を取得し、中間処理リソース割当て管理テーブル113(図29)に登録することによって、中間処理リソース割当て管理テーブル113を作成する(S902)。
割当てリソース算出処理部104は、図26のステップS807で検出された必要進捗率に達していないバッチアプリケーションに対し、ステップS901で算出した遅延回復対象進捗率と、今回の契機までの処理進捗率を得るために使用した各種リソース情報を基に、補充するリソースの種別、割当て量を算出する(S903)。ステップS903の詳細は、図30〜図33を参照して後記する。
次に、割当てリソース算出処理部104は、図34に示すリソース割当て所要時間管理テーブル114を参照し、処理対象となっているバッチアプリケーションのリソース割当て所要時間を取得する(S904)。リソース割当て所要時間管理テーブル114については、図34を参照して後記するが、図10や、図28におけるリソースの割り当てが実際に行なわれるたびに、リソース管理サーバ3のリソース割当て処理部303によって割当てリソース算出処理部104で登録されるテーブルである。
続いて、割当てリソース算出処理部104は、リソース割当て所要時間を考慮したリソース量を計算する(S905)。ステップS905の詳細も、図30〜図33を参照して後記する。なお、ステップS905の処理は図7のステップS106に含まれる処理である。また、ステップS905の結果、割当てが不可能であれば、割当てリソース算出処理部104は、クライアント端末6に対しエラー出力を行なう。
そして、割当てリソース算出処理部104は、リソース管理サーバ3に緊急運用リソース(予備)からリソースを補充するよう指示し、リソース管理サーバ3のリソース割当て処理部303がリソース情報管理テーブル311を参照し、緊急運用リソースからリソースを補充して(S906)、図26の処理へリターンする。なお、ステップS906の処理は、図7のステップS107に対応する処理である。
《中間処理リソース割当て管理テーブル》
図29は、本実施形態に係る中間処理リソース割当て管理テーブルの例を示す図である。
中間処理リソース割当て管理テーブル113は、ロット単位で使用してリソース情報を中間処理単位で使用してリソース情報に置き換えて管理するためのテーブルであり、管理する属性情報として、契機、バッチアプリケーション名(図29では、バッチAP名と表記)、稼働状態、中間処理単位で使用した実行物理サーバ4のCPUのスペック名称を示すCPU種別、実行仮想サーバ5を割当てたCPUのコア数を示すCPU割当て、メモリのスペック名称を示すメモリ種別、実行仮想サーバ5に割当てたメモリの容量を示すメモリ割当ての各情報を有する。
なお、図29の中間処理リソース割当て管理テーブル113では、ディスク種別やディスク割当ての属性情報が示されていないが、図9のリソース情報管理テーブル311の説明で補足した通り、ディスク種別やディスク割当ての情報が含まれていても構わない。
《リソース割当ての概念図》
次に、図30〜図33を参照して、第1実施形態に係るリソース割当ての概念を説明する。
図30および図31は、1コアのCPUが割り当てられた実行仮想サーバ5が4台存在する環境下で、3つのバッチアプリケーション(「バッチAP1」〜「バッチAP3」)が稼働している状態における、契機毎のリソース割当ての例を示すものである。
ここで、図30は、実行仮想サーバ5におけるバッチアプリケーションの推移を示す図であり、図31は、中間処理リソース割当て管理テーブル113および中間処理進捗率管理テーブル112の推移を示す図である。
図30では、横方向に並んでいる実行仮想サーバ5は同じ実行仮想サーバ5を表しているものとする。
なお、図30および図31は、すべての時間で処理進捗率が必要進捗率と一致している場合である。
尚、図31、図33および後記する図37では、煩雑になるのを防ぐため中間処理リソース割当て管理テーブル113の契機、CPU種別、メモリ種別およびメモリ割当ての欄を省略し、バッチAP名の欄は「AP」と記載し、稼働状態の欄は「状態」と省略している。同様に煩雑になるのを避けるため、中間処理進捗率管理テーブル112の契機の欄を省略し、バッチAP名の欄「AP」と記載し、稼働状態の欄を「状態」と省略している。
また、バッチアプリケーション名も「AP1」、「AP2」、「AP3」と省略する。
図31において「T0」の段階における中間処理リソース割当て管理テーブル113aより、「バッチAP2」および「バッチAP3」の稼働状態が「準備中」であるため、すべてのリソースを「バッチAP1」が占有できることを示している。
そして、リソース補正判定処理部103は、次の契機の「T0」の時点で算出された中間処理進捗率(必要進捗率および処理進捗率)を中間処理進捗割当て管理テーブル112aとして登録する。同様にして、配備制御サーバ2は、「T1」以降の契機(「T1」〜「T4」)についても、中間処理リソース割当て管理テーブル113b〜113eを参照して、稼働状態(「状態」)が実行中であるか否かを基に、バッチアプリケーションに対してリソースを割当て、リソース補正判定処理部103は処理結果に従って中間処理進捗率管理テーブル112b〜112eの値を随時更新しながら、それぞれの実行仮想サーバ5はバッチ処理を継続する(図30の「T2」〜T4」))。前記したように、図30および図31に示す例では、すべての契機(「T1」〜「T4」)で必要進捗率に処理進捗率が達しているので、予定通り処理が進行しており、新たなリソースの補充の必要がないことを示している。
なお、契機「T5」については、契機「T4」と同様のリソース状態となるため、図示することを省略する。
次に、図32および図33を参照して、処理に遅延が生じている場合のリソース補正について説明する。なお、図32および図33について、図30および図31と同様の要素については、同一の符号を付して説明を省略する。
図32および図33は、図30および図31と同様の図であるが、図33の「T2」の段階で、「バッチAP3」は、必要処理進捗率が50%であるのに対し、処理進捗率が40%までしか達しておらず、10%分の処理遅延(遅延回復対象進捗率)が発生していることを示している(中間処理進捗率管理テーブル112fの符号3301)。「T2」時点の中間処理リソース割当て管理テーブル113cから、「バッチAP3」に割当てられたCPUは、1コアであったことが分かり、この状態で「T2」で40%の処理進捗率を得ている。従って、割当てリソース算出処理部104は、もう1コア追加することで10%分の処理遅延を埋めることができると判定する。さらに、割当てリソース算出処理部104はリソース割当てに必要な時間であるリソース割当て所要時間を考慮してリソース量を計算する(図28のステップS905)。
この処理は、例えば、以下のように行なわれる。
次の契機「T3」は、未来の時間であり、何時間後にT3となるのかをリソース補正制御サーバ1は知ることができないので、「T2」後、「T2」−「T1」時間後に次の契機「T3」となると仮定してリソース補正制御サーバ1は計算する。
つまり、「T1」→「T2」が仮に1時間であったとすると、「T2」から1時間後に「T3」となると仮定することになる。
中間処理進捗率管理テーブル112b,112fから、バッチアプリケーション「AP3」は、1時間で40%の処理進捗率であるので、1つの実行仮想サーバ4は、次の契機「T3」の1時間で40%の処理進捗率を得ることができることになる。
図32の「T2」に示すように「バッチAP3(AP3)」を実行する実行仮想サーバ3201を増やすことで、2つの実行仮想サーバ4で「バッチAP3」を実行することになる(中間処理リソース割当て管理テーブル113fの符号3302)。すると、次の1時間では80%と2倍の処理進捗率を得ることとなる。従って、「バッチAP3」が完了する時間は、「T2」後、(60%/80%)×60分=45分となる。
従って、リソース割当て所要時間が、15分より大きければ「T3」までに処理進捗率100%を達成することができず、リソース割当て所要時間が、15分以下であれば「T3」までに処理進捗率100%を達成することができる。処理進捗率100%を達成することができないと判定された場合、緊急運用リソース(予備)に余裕があれば、割当てリソース算出処理部104は、さらに実行仮想サーバ4を増やして、再度計算してもよいし、緊急運用リソース(予備)に余裕がなければ、クライアント端末6に対してエラー出力を行なう。
次の契機の「T3」までに処理進捗率100%を達成することができれば、割当てリソース算出処理部104は、リソース管理サーバ3へリソース割当てを指示し、リソース管理サーバ3のリソース割当て処理部303は、緊急運用リソース(予備)から1コア分のリソースを確保して、新たに「バッチAP3」を実行する実行仮想サーバ3201を起動する(図28のステップS906)。この結果、図33より「T3」の段階では、処理進捗率が必要進捗率に追いついて100%に達し、要求処理時間内にバッチ処理を終了させることに成功している。さらに、「バッチAP1」は、「T3」において処理進捗率、必要進捗率共に80%であるため、「バッチAP1」については新たなリソースが必要なわけではないため、実行仮想サーバ3201は、「バッチAP3」の終了後、割当てリソース算出処理部104によって解放され緊急運用リソース上にプールされる。
ここでは、契機「T3」直後に要求処理時間がくることを想定しているが、例えば、要求処理時間が「T2」後、2時間後であれば、割当てリソース算出処理部104は、前記したように「T3」が「T2」後、1時間後であると仮定して、その時点の必要進捗率および処理進捗率を計算した上で、「T3」での進捗率が必要進捗率に達するか否かを判定してもよい。
また、実行仮想サーバ5に性能差がある場合は、各実行仮想サーバ5の性能を考慮してもよい。
なお、また、図30〜図33では、CPU割当てを基に、リソース割当ての要・不要を判定しているが、同様にして、メモリやディスクなどのリソースを基にリソース割当ての要・不要を判定してよい。さらに、図33では、割当てるCPUのコア数を例に説明したが、割当てるリソース量の他に、CPU種別やメモリ種別などのスペック名称を考慮に入れた割当てを行なうものとしても構わない。
《リソース割当て所要時間履歴管理テーブル》
図34は、本実施形態に係るリソース割当て所要時間管理テーブルの例を示す図である。
リソース割当て所要時間管理テーブル114は、リソースの割当てや切離しにかかる時間の履歴を管理するための属性情報として、実行物理サーバ名、実行仮想サーバ名、該当する実行仮想サーバ5が実行されている実行物理サーバ5のCPUのスペック名称を示すCPU種別、割当てたCPUのコア数を示すCPU割当て、メモリのスペック名称を示すメモリ種別の各情報を有している。リソース割当て所要時間管理テーブル114は、実行仮想サーバ5に割当てたメモリの容量を示すメモリ割当て、通常運用時に使用するリソースであるか、あるいは、緊急運用時に使用するリソースであるかを示すリソース種別、リソース割当てにかかる時間を示す割当て所要時間、リソース切離しかかる時間を示す切離し所要時間の各情報をさらに有する。なお、リソース割当て所要時間管理テーブル114では、ディスク種別やディスク割当ての属性情報が示されていないが、含まれていても構わない。さらに、各仮想サーバに配備するバッチアプリケーションの配備時間も併せて管理して、算出の際に考慮するものとしても構わない。
[第2実施形態]
次に、図35〜図37を参照して、本発明の第2実施形態について説明する。
第1実施形態では、リソース補正制御サーバ1上で稼働する割当てリソース算出処理部104は、必要進捗率に達していない(処理遅延が生じている)バッチアプリケーションに対し、緊急運用リソースから新たに補充するリソースと割当て量を算出し、割当てを行なうものであったが、第2実施形態においては、通常運用リソース上で稼働するバッチアプリケーションから処理進捗率に余裕があるバッチアプリケーションを割り出し、必要進捗率に達していないバッチアプリケーションと置換するものである。
《ステップS106,S107の詳細》
図35は、図7のステップS106,S107の処理の詳細な手順を示すフローチャートである。図35の処理は、主に割当てリソース算出処理部104が行なう処理であり、第1実施形態の図28の処理に対応する処理である。
リソース補正制御サーバ1は、中間処理単位データ取得処理部102の終了メッセージを検知し、割当てリソース算出処理部104を起動し、起動した割当てリソース算出処理部104が算出した必要進捗率と処理進捗率の差分(式(3))を算出する(S1001)ことにより、遅延回復対象進捗率を算出する。図28のステップS901では、リソース補正判定処理部103による呼出しにより、割当てリソース算出処理部104が起動しているが、第2実施形態では、図26のステップS809において、中間処理単位データ取得処理部102が発した終了メッセージを基に、割当てリソース算出処理部104が起動している。
次に、割当てリソース算出処理部104は、図28のステップS902と同様に、アプリケーション配備制御サーバ2上の図18に示すロット単位処理履歴管理テーブル215を参照し、処理進捗率の算出対象となっている(すなわち、バッチアプリケーションの置換対象となっている)実行物理サーバ4のCPUのスペック名称を示すCPU種別、CPUに割当てたリソース量を示すCPU割当て、メモリのスペック名称を示すメモリ種別、メモリに割当てたリソース量を示すCPU割当てを取得すると共に、中間処理単位データ管理テーブル111(図25)の契機、バッチアプリケーション名(バッチAP名)、稼働状態を取得し、さらに、リソース情報管理テーブル311からバッチアプリケーションの稼働状態を取得し、(図29)に登録することによって、中間処理リソース割当て管理テーブル113を作成する(S1002)。
続いて、割当てリソース算出処理部104は、図26のステップS807で検出された必要進捗率に達していないバッチアプリケーションに対し、ステップS1001で算出した必要進捗率と処理進捗率の差分の値(遅延回復対象進捗率)と、今回の処理進捗率を得るために使用した各種リソースの種別、割当て量を基に、切離し可能な余剰リソースと補充リソースの量を算出する(S1003)。ステップS1003の詳細は、図36および図37を参照して後記する。
そして、割当てリソース算出処理部104は、図34に示すリソース割当て所要時間履歴管理テーブル2400を参照し、処理対象となっているバッチアプリケーションのリソース割当てにかかる時間(割当て所要時間)と切離しにかかる時間(切離し所要時間)を取得する(S1004)。
続いて、割当てリソース算出処理部104は、割当て所要時間と切離し所要時間を考慮したリソース量を計算する(S1005)。ステップS1005の詳細も、図36〜図37を参照して後記する。なお、ステップS1005の処理は図7のステップS106に対応する処理である。
そして、割当てリソース算出処理部104は、通常運用リソース上で稼働する余剰リソースを持つバッチアプリケーション(バッチAP)からリソースを切離し、遅延回復が必要なバッチアプリケーション(バッチAP)にリソースを補充するよう指示し、リソース管理サーバ3のリソース割当て処理部303がリソース情報管理テーブル311を参照し、余剰リソースを持つバッチアプリケーション(バッチAP)からリソースを切離し、緊急運用リソースからリソースを補充して(S1006)、図26の処理へリターンする。なお、ステップS1007の処理は、図7のステップS108に対応する処理である。
《リソース割当ての概念図》
次に、図36および図37を参照して、第2実施形態に係るリソース割当ての概念を説明する。
図36および図37は、通常運用リソース上から余剰リソースを捻出して、遅延が発生しているバッチアプリケーションにリソース割当てを行なう流れを示す概念図である。なお、図36および図37において、図30〜図33と同様の要素については、同一の符号を付して説明を省略する。
図36および図37では、、図30〜図33と同様に、1コアのCPUが割り当てられた実行仮想サーバ5が4台存在する環境下で、3つのバッチアプリケーション(「バッチAP1」〜「バッチAP3」)を稼働している状態における、契機毎のリソース割当てを示すものである。
また、図36では、図30と同様に横方向に並んでいる実行仮想サーバ5は同じ実行仮想サーバ5を表しているものとする。
ここで、図33で示した例と同様にして、「T2」の段階で、「バッチAP3(AP3)」は、必要処理進捗率が50%であるのに対し、処理進捗率が40%までしか達しておらず、10%分の処理遅延(遅延回復対象進捗率)が発生しているものとする(中間処理進捗率管理テーブル112gの符号3701)。「T2」で処理進捗率40%を得るために使用したリソースは、「T2」時点の中間処理リソース割当て管理テーブル113より、1コア分のCPU割当てであったことが分かり、10%分の遅延回復に必要な補充リソース量は、1コア分のCPU割当てである。
一方で、切離し可能な余剰リソースの算出については、「T2」の段階で、「バッチAP1(AP1)」は、必要処理進捗率が50%であるのに対し、処理進捗率が66%まで達しており、16%分の余裕があることが分かる(中間処理進捗率管理テーブル112hの符号3702)。さらに、「バッチAP1」は、「T1」の中間処理進捗率管理テーブル112bと「T2」の中間処理リソース割当て管理テーブル113cから、2コアのCPU割当てで、30%から66%の進捗率を得ており、1コアのCPU割当てで(66−30)/2=18%の進捗を得られていることが分かる(中間処理進捗率管理テーブル112gの符号3702)。従って、「T2」の段階で、「バッチAP1」は、18%分上回っている進捗率に該当するリソース、つまり切離し可能な余剰リソースは、1コア分のCPU割当てである。
従って、「T3」の段階で、「バッチAP3」の処理遅延の回復に必要なリソースを、「バッチAP1」から1コア分のCPU(図36の実行仮想サーバ3601)を切り離して、「バッチAP3」に割当てることで、通常運用リソース上でリソース融通することが可能になる(図36)。つまり、実行仮想サーバ3601で実行されているバッチアプリケーションを「バッチAP1」から「バッチAP3」に置換する。
なお、融通可能なリソースがない場合は、第1実施形態と同様の処理を行なうことで緊急リソースから融通することとなる。
以下、図37を参照して、具体的なリソース割当てを説明する。
まず、割当てリソース算出処理部104は、中間処理進捗率管理テーブル112gから「バッチAP3(AP3)」の処理遅延が10%であり、「バッチAP1(AP1)」の処理進捗率に16%の余裕があるので、「バッチAP1」→「バッチAP3」の置換を試みる。
そして、割当てリソース算出処理部104は以下の手順で、「バッチAP1」→「バッチAP3」の置換を行なっても、「バッチAP1」、「バッチAP3」共に要求処理時間を満たすことができるか否かを判定する。なお、第1実施形態と同様に「T1」から「T2」の間は1時間であるとする。
また、「バッチAP1(AP1)」は、CPU2コアを使用して「T1」から「T2」にかけて66−30=36%の処理進捗率を得ているので、1コアで18%の進捗率を得ていると、割当てリソース算出処理部104は判定する。
そして、割当てリソース算出処理部104は、「バッチAP1」を1コアに減じても、要求処理時間を満たすことができるか否かを判定する。
第1実施形態で前記したように、リソース補正制御サーバ1は未来の契機である「T3」がいつになるのかを知ることができないため、割当てリソース算出処理部104は、「T2」後、「T2」−「T1」で「T3」となると仮定する。
「バッチAP1」は、「T1」→「T2」で1コアあたり18%の処理進捗率を得ているので、「T3」の時点では66+18=84%の処理進捗率を得られると、割当てリソース算出処理部104は算出する。また、必要進捗率は、「T1」の時点で30%であり、「T2」の時点で50%であるので、同じ割合で必要進捗率が進むと仮定し、「T3」では、70%の必要進捗率となると割当てリソース算出処理部104は算出する。
従って、「バッチAP1」は、CPUを1コアに減じても、「T3」の時点で、なお84%−70%=14%の余裕があるため、「バッチAP1」に関しては、CPUを1コアに減じても要求処理時間を満たすことができると、割当てリソース算出処理部104は判定する。
なお、「T2」→「T3」で「バッチAP1」を「バッチAP3」に置換される実行仮想サーバ5は、既に起動されているものであるので、割当て所要時間や、切離し所要時間を考慮することはない。また、置換される実行仮想サーバ5は、「バッチAP1」を実行している実行仮想サーバ5であれば、どれでもよいが、リソース管理サーバ3のリソース割当て処理部303は、付されている番号の若い順に選択したり、実行仮想サーバ5間に性能差が存在する場合は、一番性能の低い実行仮想サーバ5を選択したりする。
一方、「バッチAP3」は、第1実施形態と同様に、「T1」→「T2」の間で40%の処理進捗率を得ているため、「T2」→「T3」ではCPUが2コアになることにより、40×2=80%の処理進捗率を得ることができると、割当てリソース算出処理部104は判定する。
つまり、「T3」の時点の処理進捗率は、40%(「T2」の時点の処理進捗率)+80%=120%となり、20%の余裕が発生する。
実際に、CPUのコア数を2倍にしたとき、すなわち、「バッチAP3」を実行する実行仮想サーバ5の数を2倍にしたとき、処理進捗率が100%となるのは、「T2」後、何分であるかを計算すると、60%/80%)×60分=45分となる。
従って、リソース割当て所要時間と、リソース切離し所要時間を加算したものが、15分より大きければ「T3」までに処理進捗率100%を達成することができず、リソース割当て所要時間が、15分以下であれば「T3」までに処理進捗率100%を達成することができる。
《まとめ》
本実施形態によれば、複数のバッチアプリケーションが共存する環境下において、実行中のバッチ処理に処理遅延が発生した場合であっても、中間処理履歴より、処理遅延の回復に必要なリソースを同定し、拡充することで、次の分割単位から拡充したリソース上でバッチ処理を実行することができるため、個々のバッチ処理の要求処理時間(SLA)を遵守する確度を高めることができる。また、要求処理時間遵守のために必要な実行中のバッチ処理の進捗率の検査や、割当てリソースの見直しを必要最小限に抑えることでバッチ処理のスループット低下を防止することも併せて実現することができる。さらに、中間処理履歴から算出した処理進捗率を基に、処理に余裕のあるバッチ処理のリソースを、遅延が発生しているバッチ処理に融通することができ、システム全体のリソースを有効活用することもできるようになる。
1 リソース補正制御サーバ(リソース管理装置)
2 配備制御サーバ
3 リソース管理サーバ
4 実行物理サーバ
5 実行仮想サーバ
6 クライアント装置
10 計算機システム
101 再検査契機取得処理部
102 中間処理単位データ取得処理部
103 リソース補正判定処理部
104 割当てリソース算出処理部
111 中間処理単位データ管理テーブル
112 中間処理進捗率管理テーブル
113 中間処理リソース割当て管理テーブル
114 リソース割当て所要時間管理テーブル
201 SLA情報管理部
202 配備アプリケーション情報管理部
203 アプリケーション・データ配備処理部
211 SLA情報管理テーブル
212 処理対象データ管理テーブル
213 配備アプリケーション管理テーブル
214 バッチ単位処理履歴管理テーブル
215 ロット単位処理履歴管理テーブル
215a,216a バッチアプリケーション毎ロット単位処理履歴管理テーブル
301 リソース情報管理部
302 アプリケーション構成情報管理部
303 リソース割当て処理部
311 リソース情報管理テーブル
312 仮想マシンイメージ管理領域
501 バッチアプリケーションプログラム

Claims (16)

  1. バッチアプリケーションの配置に必要なリソースの計算を行なうリソース管理装置におけるリソース管理方法であって、
    前記リソース管理装置は、
    所定の時刻において、処理が完了しているバッチ処理のデータを1つのデータ群とすることにより中間処理単位としてまとめ、
    前記中間処理単位を用いて、現在時刻における処理の進捗率である処理進捗率と、前記処理進捗率が、要求処理時間内に前記バッチ処理を終了するために必要な進捗率である必要進捗率に達しているか否かを判定し、
    前記判定の結果、前記必要な進捗率に達していない場合、前記必要進捗率および前記処理進捗率の差分である遅延回復対象進捗率と、リソースの情報と、を基に、前記要求処理時間前に前記処理進捗率が前記必要進捗率に達するために必要なリソースを算出する
    ことを特徴とするリソース管理方法。
  2. 前記所定の時刻は、実行されているアプリケーションの処理開始時刻および処理終了時刻である
    ことを特徴とする請求の範囲第1項に記載のリソース管理方法。
  3. 前記再検査の契機は、定期的な時刻である
    ことを特徴とする請求の範囲第1項に記載のリソース管理方法。
  4. 前記処理進捗率は、現在までに行なっている処理件数を、全処理対象件数で除算したものである
    ことを特徴とする請求の範囲第1項に記載のリソース管理方法。
  5. 前記必要処理件数は、現在までの処理時間を、前記要求処理時間で除算したものである
    ことを特徴とする請求の範囲第1項に記載のリソース管理方法。
  6. 前記リソースとは、CPUのコア数、メモリ割当て数またはディスク割当て数である
    ことを特徴とする請求の範囲第1項に記載のリソース管理方法。
  7. 前記リソース管理装置は、
    前記処理進捗率が、前記必要進捗率に達していない場合、予め設定しておいた予備のリソースに前記バッチアプリケーションを割当てたときのリソース量を算出する
    ことを特徴とする請求の範囲第1項に記載のリソース管理方法。
  8. 前記リソース管理装置は、
    前記リソース量を算出する際に、前記バッチアプリケーションの割当てに必要な時間を考慮する
    ことを特徴とする請求の範囲第7項に記載のリソース管理方法。
  9. 前記リソース管理装置は、
    複数の前記リソースで、前記バッチアプリケーションが実行されている場合において、
    あるバッチアプリケーションが前記処理進捗率が、前記必要進捗率に達していない場合、前記処理進捗率が、前記必要進捗率に達しているリソースに対し、当該リソースで実行されているバッチアプリケーションを、前記記処理進捗率が、前記必要進捗率に達していないバッチアプリケーションに置換したときのリソース量を算出する
    ことを特徴とする請求の範囲第1項に記載のリソース管理方法。
  10. 前記リソース管理装置は、
    前記リソース量を算出する際に、前記バッチアプリケーションの割当てに必要な時間と、前記バッチアプリケーションを切り離すために必要な時間と、を考慮する
    ことを特徴とする請求の範囲第9項に記載のリソース管理方法。
  11. バッチアプリケーションの配置に必要なリソースの計算を行なうリソース管理装置であって、
    所定の時刻において、処理が完了しているバッチ処理のデータを1つのデータ群とすることにより中間処理単位としてまとめる中間処理単位データ取得処理部と、
    前記中間処理単位を用いて、現在時刻における処理の進捗率である処理進捗率と、前記処理進捗率が、要求処理時間内に前記バッチ処理を終了するために必要な進捗率である必要進捗率に達しているか否かを判定するリソース補正判定処理部と、
    前記判定の結果、前記必要な進捗率に達していない場合、前記必要進捗率および前記処理進捗率の差分である遅延回復対象進捗率と、リソースの情報と、を基に、前記要求処理時間前に前記処理進捗率が前記必要進捗率に達するため必要なリソースを算出する割当てリソース算出処理部と、
    を有することを特徴とするリソース管理装置。
  12. 前記割当てリソース算出処理部は、
    前記処理進捗率が、前記必要進捗率に達していない場合、予め設定しておいた予備のリソースに前記バッチアプリケーションを割当てたときのリソース量を算出する
    ことを特徴とする請求の範囲第11項に記載のリソース管理装置。
  13. 前記割当てリソース算出処理部は、
    複数の前記リソースで、前記バッチアプリケーションが実行されている場合において、
    あるバッチアプリケーションが前記処理進捗率が、前記必要進捗率に達していない場合、前記処理進捗率が、前記必要進捗率に達しているリソースに対し、当該リソースで実行されているバッチアプリケーションを、前記記処理進捗率が、前記必要進捗率に達していないバッチアプリケーションに置換したときのリソース量を算出する
    ことを特徴とする請求の範囲第11項に記載のリソース管理装置。
  14. バッチアプリケーションの配置に必要なリソースの計算を行なうためにコンピュータを、
    所定の時刻において、処理が完了しているバッチ処理のデータを1つのデータ群とすることにより中間処理単位としてまとめる中間処理単位データ取得処理部、
    前記中間処理単位を用いて、現在時刻における処理の進捗率である処理進捗率と、前記処理進捗率が、要求処理時間内に前記バッチ処理を終了するために必要な進捗率である必要進捗率に達しているか否かを判定するリソース補正判定処理部、
    前記判定の結果、前記必要な進捗率に達していない場合、前記必要進捗率および前記処理進捗率の差分である遅延回復対象進捗率と、リソースの情報と、を基に、前記要求処理時間前に前記処理進捗率が前記必要進捗率に達するため必要なリソースを算出する割当てリソース算出処理部
    として機能させることを特徴とするプログラム。
  15. 前記割当てリソース算出処理部は、
    前記処理進捗率が、前記必要進捗率に達していない場合、予め設定しておいた予備のリソースに前記バッチアプリケーションを割当てたときのリソース量を算出する
    ことを特徴とする請求の範囲第14項に記載のプログラム。
  16. 前記割当てリソース算出処理部は、
    複数の前記リソースで、前記バッチアプリケーションが実行されている場合において、
    あるバッチアプリケーションが前記処理進捗率が、前記必要進捗率に達していない場合、前記処理進捗率が、前記必要進捗率に達しているリソースに対し、当該リソースで実行されているバッチアプリケーションを、前記記処理進捗率が、前記必要進捗率に達していないバッチアプリケーションに置換したときのリソース量を算出する
    ことを特徴とする請求の範囲第14項に記載のプログラム。
JP2012514658A 2010-05-14 2010-05-14 リソース管理方法、計算機システムおよびプログラム Expired - Fee Related JP5815512B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/058196 WO2011142031A1 (ja) 2010-05-14 2010-05-14 リソース管理方法、リソース管理装置およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2011142031A1 true JPWO2011142031A1 (ja) 2013-07-22
JP5815512B2 JP5815512B2 (ja) 2015-11-17

Family

ID=44914099

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012514658A Expired - Fee Related JP5815512B2 (ja) 2010-05-14 2010-05-14 リソース管理方法、計算機システムおよびプログラム

Country Status (3)

Country Link
US (1) US9319281B2 (ja)
JP (1) JP5815512B2 (ja)
WO (1) WO2011142031A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9998410B1 (en) * 2010-07-09 2018-06-12 Sitting Man, Llc Methods, systems, and computer program products for processing a request for a resource in a communication
US10171392B1 (en) * 2010-07-09 2019-01-01 Gummarus LLC Methods, systems, and computer program products for processing a request for a resource in a communication
EP2477085B1 (de) * 2011-01-13 2013-07-17 Siemens Aktiengesellschaft Verfahren und System zur Analyse eines zeitlichen Ablaufverhaltens eines Steuerungsprogramms einer Industriesteuerung
US20130238383A1 (en) * 2011-12-20 2013-09-12 Callidus Sofrware incorporated Auto-adjusting worker configuration for grid-based multi-stage, multi-worker computations
JP2014215765A (ja) * 2013-04-24 2014-11-17 株式会社三菱東京Ufj銀行 制御装置
US9588795B2 (en) * 2014-11-24 2017-03-07 Aspen Timber LLC Monitoring and reporting resource allocation and usage in a virtualized environment
JP2016170689A (ja) * 2015-03-13 2016-09-23 富士通株式会社 配備制御方法、配備制御プログラムおよび配備制御装置
US10951473B1 (en) * 2015-03-25 2021-03-16 Amazon Technologies, Inc. Asynchronous fleet configuration service
US9886311B2 (en) * 2015-04-24 2018-02-06 International Business Machines Corporation Job scheduling management
JP6531597B2 (ja) * 2015-09-28 2019-06-19 富士通株式会社 解析処理プログラム、解析処理方法および解析処理装置
FR3050295B1 (fr) * 2016-04-13 2018-05-25 Centre National De La Recherche Scientifique Systeme de traitement de donnees avec transfert d’energie
US10296389B2 (en) * 2016-09-15 2019-05-21 Red Hat, Inc. Time-bound conditional resource deallocation
CN108462658B (zh) * 2016-12-12 2022-01-11 阿里巴巴集团控股有限公司 对象分配方法及装置
US10558478B2 (en) 2016-12-15 2020-02-11 Nutanix, Inc. Specification-based computing system configuration
JP6872117B2 (ja) * 2017-01-26 2021-05-19 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
JP6957910B2 (ja) * 2017-03-15 2021-11-02 日本電気株式会社 情報処理装置
US10938673B2 (en) 2017-08-14 2021-03-02 Tata Consultancy Services Limited Automated SLA non-compliance detection and prevention system for batch jobs
JP7167596B2 (ja) * 2018-09-26 2022-11-09 日本電気株式会社 トランザクション管理装置、トランザクション管理方法及びトランザクション管理プログラム
WO2020148933A1 (ja) * 2019-01-17 2020-07-23 三菱電機株式会社 情報処理システムおよび情報処理装置
CN109857406B (zh) * 2019-02-15 2022-07-12 上海微小卫星工程中心 卫星嵌入式软件批处理系统和方法
KR20220101789A (ko) * 2021-01-12 2022-07-19 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법
US11789779B2 (en) * 2021-03-01 2023-10-17 Bank Of America Corporation Electronic system for monitoring and automatically controlling batch processing
JPWO2023105670A1 (ja) * 2021-12-08 2023-06-15
WO2024154289A1 (ja) * 2023-01-19 2024-07-25 日本電信電話株式会社 制御装置、リソース割当方法及び通信システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040221011A1 (en) * 2000-04-10 2004-11-04 Steven Smith High volume electronic mail processing systems and methods having remote transmission capability
JP4099973B2 (ja) * 2001-10-30 2008-06-11 松下電器産業株式会社 映像データ送信方法及び映像データ受信方法、並びに映像監視システム
US7379953B2 (en) * 2005-02-22 2008-05-27 International Business Machines Corporation Systems and methods for resource-adaptive workload management
JP2006305614A (ja) * 2005-05-02 2006-11-09 Mitsubishi Electric Corp バーリング加工方法及びバーリング加工装置
JP2007108944A (ja) * 2005-10-12 2007-04-26 Renesas Technology Corp 半導体集積回路装置
US20080010642A1 (en) * 2006-06-30 2008-01-10 Maclellan Scot Method, system and computer program for scheduling execution of work units with monitoring of progress thereof
JP4308241B2 (ja) 2006-11-10 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム
US8495627B2 (en) * 2007-06-27 2013-07-23 International Business Machines Corporation Resource allocation based on anticipated resource underutilization in a logically partitioned multi-processor environment
JP2009025939A (ja) * 2007-07-18 2009-02-05 Renesas Technology Corp タスク制御方法及び半導体集積回路
JP2009086733A (ja) 2007-09-27 2009-04-23 Toshiba Corp 情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP5326387B2 (ja) * 2008-07-10 2013-10-30 富士通株式会社 経過情報出力方法および経過情報出力プログラム

Also Published As

Publication number Publication date
US20130103835A1 (en) 2013-04-25
WO2011142031A1 (ja) 2011-11-17
US9319281B2 (en) 2016-04-19
JP5815512B2 (ja) 2015-11-17

Similar Documents

Publication Publication Date Title
JP5815512B2 (ja) リソース管理方法、計算機システムおよびプログラム
US8874811B2 (en) System and method for providing a flexible buffer management interface in a distributed data grid
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US9792142B2 (en) Information processing device and resource allocation method
JP6881575B2 (ja) 資源割当システム、管理装置、方法およびプログラム
JP6729399B2 (ja) システム、仮想化制御装置、仮想化制御装置の制御方法及びプログラム
JP6233413B2 (ja) タスク割り当て判定装置、制御方法、及びプログラム
JP2008158628A (ja) 運用実績評価装置、運用実績評価方法、およびプログラム
JP6840099B2 (ja) サービス提供システム、資源割り当て方法、及び資源割り当てプログラム
US10656990B2 (en) Dynamically adjusting reserve portion and allocation portions of disaster recovery site in a virtual computing system
US9152491B2 (en) Job continuation management apparatus, job continuation management method and job continuation management program
CN113886089A (zh) 一种任务处理方法、装置、系统、设备及介质
CN109446062B (zh) 云计算服务中的软件调试的方法和装置
JP6924083B2 (ja) 情報処理システムおよびリソース割り当て方法
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP6047941B2 (ja) タスク実行順序制御機能を含む監視制御システム
JP5617586B2 (ja) 情報処理プログラム、中継装置及び中継管理装置
JP6191361B2 (ja) 情報処理システム、情報処理システムの制御方法及び制御プログラム
JP6059259B2 (ja) 計算機システム及び計算機リソースの割当方法
CN104714924B (zh) 一种资源控制方法和装置
JP2018156146A (ja) 情報処理装置
US20220357996A1 (en) Resource management device, resource management method and program
JP6322332B2 (ja) エネルギー管理システムおよび業務アプリケーションの実行方法
CN115357342A (zh) 冷启动资源处理方法及装置
CN115827187A (zh) 任务执行方法、装置、计算机可读存储介质及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130827

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140606

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140626

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150924

R150 Certificate of patent or registration of utility model

Ref document number: 5815512

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees