JPWO2013140529A1 - 情報処理方法、プログラム、および情報処理装置 - Google Patents

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

Info

Publication number
JPWO2013140529A1
JPWO2013140529A1 JP2014505860A JP2014505860A JPWO2013140529A1 JP WO2013140529 A1 JPWO2013140529 A1 JP WO2013140529A1 JP 2014505860 A JP2014505860 A JP 2014505860A JP 2014505860 A JP2014505860 A JP 2014505860A JP WO2013140529 A1 JPWO2013140529 A1 JP WO2013140529A1
Authority
JP
Japan
Prior art keywords
task
information processing
information
time
resource
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
JP2014505860A
Other languages
English (en)
Other versions
JP5874811B2 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2013140529A1 publication Critical patent/JPWO2013140529A1/ja
Application granted granted Critical
Publication of JP5874811B2 publication Critical patent/JP5874811B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3447Performance evaluation by modeling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

コンピュータが、第1の情報処理装置が複数の情報処理を実行したときの資源と資源の使用時間とをタスク情報として取得し、第1の情報処理装置の資源の能力値情報と第2の情報処理装置の資源の能力値情報とにしたがって換算する。複数の情報処理について、第1の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に換算された使用時間の間、第1の情報処理装置の資源に対応する第2の情報処理装置の資源を第1の情報処理に割り当てるとともに、第2の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に換算された使用時間の間、第1の情報処理に割り当てられていない空き時間に第2の情報処理装置の資源を第2の情報処理に割り当て、割り当てたそれぞれの資源の使用が終了するまでの資源の仮想走行時間を累積することで、コンピュータが第2の情報処理装置で実行したときの実行時間を推定する。

Description

本発明は、情報処理装置の性能予測に関するものである。
新しいコンピュータを導入する場合、性能の異なる複数機種から導入機種を選択することになる。導入機種の選択基準の1つに、所望の処理性能を達成できるか否か、あるいは所望の業務を所望の処理時間で処理できるか否かの予測に基づく選択基準がある。
上記のような処理性能、あるいは処理時間を予測する方法として、従来は、例えば、現在稼働中のコンピュータで実測した処理性能情報から、人がメーカ公表のCPU能力値やDISK能力値を基にして、上記処理性能、例えば、目的の処理を実行するときの処理時間の予測を行う場合がある。
図1は、コンピュータの処理性能予測を行う場合の手順を例示する図である。図1の例では、現在稼働中のコンピュータが業務プログラムA、業務プログラムB等、ユーザ所望の業務プログラムを実行する。業務プログラムA等の実行により、コンピュータの資源であるCentral processing Unit(CPU)あるいは外部記憶装置(例えば、DISK)等がオペレーティングシステム(OS)の管理下で順次使用される。OSは、業務プログラムA等の実行に伴い、処理性能情報を採取することができる。処理性能情報は、例えば、業務プログラムA実行時のCPU時間、およびDISK時間を含む。DISK時間は、入出力時間(I/O時間)とも呼ばれる。図1の例では、業務プログラムAとともに実行された業務プログラムB実行時のCPU時間、およびDISK時間も採取されている。
一方、通常、コンピュータのメーカからは、現在稼働中のコンピュータ、および導入候補の機種の両方について、相対能力値が公表されている。したがって、上記採取された処理性能情報を公表されたコンピュータの相対能力値で換算して、それぞれの導入候補の機種における処理性能情報を見積もることも行われる。
一方、システム構成の変化によって生じる処理性能の変化を予測する処理性能予測として、以下の技術も知られている。すなわち、コンピュータのジョブにおいて、ジョブが各資源を使用した時間とその回数を基に、1回当たりの平均の使用時間を求める。そして、ハードウェアの処理能力情報格納部を参照して、各資源の使用時間を変更する。そして、シミュレーションを行って各資源の使用時間と各資源の待ち時間を求める。
特開平8−137725号公報 特開平7−295864号公報
上記従来の技術におけるシミュレーションは、各資源を使用した時間とその回数とを基に求めた1回当たりの各使用時間の平均値を基に行われる。したがって、そのような平均値に基づくシミュレーションでは、複数の処理の実行順は、実際のコンピュータ上の実行順とは異なるものとなり、処理性能の予測精度が十分でないおそれがある。
そこで、本発明の実施形態の課題の一側面は、一のコンピュータでの処理性能の測定情報を基に、他のコンピュータでの処理性能を予測するときの予測精度を向上させることにある。
本実施形態の一側面は、コンピュータが実行する情報処理方法として例示できる。この方法では、コンピュータが、第1の情報処理装置が複数の情報処理を実行したときに、それぞれの情報処理において使用された資源と資源の使用時間とをタスク情報として情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得するステップと、第1の情報処理装置の資源の能力値情報と第2の情報処理装置の資源の能力値情報とにしたがって、それぞれの実行情報中の使用時間を第2の情報処理装置における使用時間に換算するステップと、実行された複数の情報処理について、第1の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に換算された使用時間の間、第1の情報処理装置の資源に対応する第2の情報処理装置の資源を第1の情報処理に割り当てるとともに、第2の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に換算された使用時間の間、第1の情報処理に割り当てられていない空き時間に第2の情報処理装置の資源を第2の情報処理に割り当て、割り当てた資源の使用時間として換算された使用時間を累積する資源割り当て処理を複数の情報処理に対応する実行情報にしたがって実行する実行ステップと、複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで割り当てられた資源の使用時間を累積した累積値によって、複数の情報処理を第2の情報処理装置で実行したときの実行時間を推定するステップと、を実行する。
本情報処理装置によれば、一のコンピュータでの処理性能の測定情報を基に、他のコンピュータでの処理性能を予測するときの予測精度を向上させることができる。
図1は、コンピュータの処理性能予測を行う場合の手順を例示する図である。 図2は、実施例1に係る情報処理装置の機能を例示する図である。 図3は、情報処理装置のハードウェア構成を例示する図である。 図4は、性能測定部と業務プログラムとの関係を例示する図である。 図5は、性能測定部302の処理を例示する図である。 図6は、性能測定部302が記録する性能情報のフォーマットを例示する図である。 図7は、業務性能予測機構の構造を例示する図である。 図8は、業務タスクの生成から仮想走行までの処理を例示する図である。 図9は、情報処理装置が実行する業務タスクキューの生成から仮想走行までの処理フローを例示する図である。 図10は、管理情報を例示する図である。 図11は、NEXTタスクアドレスでリンクされ、かつ、処理時間が換算されたタスクの管理情報の構造を例示する図である。 図12は、仮想走行用NEXTタスクアドレスで接続された装置タスクキューの管理情報を例示する図である。 図13は、未処理タスクの管理情報を例示する図である。 図14は、コンピュータで測定した性能情報を時間順に例示する図である。 図15は、図14の性能情報を基に作成された業務タスクキューを例示する図である。 図16は、処理時間の換算前後の業務タスクキューをそれぞれ例示する図である。 図17は、装置へのタスクの割り当て処理を例示する図である。 図18は、装置へのタスクの割り当て処理を例示する図である。 図19は、業務処理の選択、タスクの読み出し、装置への割り当て処理を繰り返した結果を例示する図である。 図20は、仮想走行時の各タスクの装置への割り当て状態を未処理タスクとともに時間軸上に例示する図である。 図21は、業務タスクキューのすべてのタスクが終了したときの、各業務処理の処理時間の累積値の変化を例示する図である。 図22は、情報処理装置が業務タスクキューを各装置に割り当て、業務タスクキューを仮想走行する処理を例示する図である。 図23は、情報処理装置が業務タスクキューを各装置に割り当て、業務タスクキューを仮想走行する処理を例示する図である。
以下、図面を参照して開示の技術の一側面を実施するための形態(以下、実施形態という)を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
以下、図2から図13の図面を参照して、実施例1に係る情報処理装置10について説明する。
<情報処理装置の構成>
図2に、実施例1に係る情報処理装置10の機能を例示する。図2のように、情報処理装置10は、一のコンピュータで測定された性能情報から、性能情報予測対象の他のコンピュータの処理性能を予測する。ここで、一のコンピュータは、例えば、現在稼働中のコンピュータであり、他のコンピュータは、導入候補となっているコンピュータである。
図2の例では、情報処理装置10は、まず、現在稼働中のコンピュータ301が業務プログラムによる業務処理を実行中に測定した性能情報と、導入候補となっているコンピュータ(A、B、C等)の公開されている相対能力値とを取得する。以下、コンピュータが業務プログラムを実行することによって実現する処理を単に業務処理という。
現在稼働中のコンピュータ301は、業務プログラムを実行したときの性能情報を測定する性能測定部302を有する。性能測定部302は、例えば、業務プログラムを実行したときのCPU時間、DISK時間等の処理時間を測定し、測定した処理時間を含む性能情報を出力する。コンピュータ301のCPUは、例えば、主記憶装置に実行可能に展開されたコンピュータプログラムを実行し、性能測定部302として機能する。
また、情報処理装置10は、業務性能予測機構20を有する。情報処理装置10のCPUは、例えば、主記憶装置に実行可能に展開されたコンピュータプログラムを実行し、業務性能予測機構20として機能する。なお、業務性能予測機構20として機能する情報処理装置10は、コンピュータ301であってもよいし、他コンピュータであってもよい。
業務性能予測機構20は、現在稼働中のコンピュータ301で測定した性能情報と、公開されているコンピュータ301の相対能力値と、公開されている他のコンピュータA、B、C等の相対能力値とを基に他のコンピュータの処理性能、例えば、所定の業務処理を実行するときの処理時間を自動計算する。
ここで、各コンピュータの相対能力値の入力方法について限定はない。例えば、情報処理装置10は、インターネット上の公開ウェブサイトから、それぞれのコンピュータの相対能力値を取得してもよい。また、情報処理装置10を操作するオペレータが公開情報を基にした相対能力値を情報処理装置10に入力してもよい。また、現在稼働中のコンピュータ301の相対能力値はコンピュータ301自体に組み込まれた情報でもよい。
本実施形態では、相対能力値とは、過去のある時点の装置の能力値を1.0として、これ以降に提供する別の装置の能力値を相対比較した値をいう。相対能力値が2.0の場合、相対能力値が1.0のコンピュータに対して処理性能が2倍向上するということを意味する。例えば、CPUの場合、SPECint2000#rateに基づいた相対能力値や、メーカ独自の評価結果の相対能力値が公開されている。したがって、本実施形態では、相対能力値と表現するが、相対能力値に代えて、所定のルールで測定される性能値、CPUにおける単位時間当たりの整数演算回数、浮動小数点演算回数、ハードディスク等へのデータ転送速度等を用いてもよい。
業務性能予測機構20は、コンピュータ301で業務処理実行時に測定した性能情報から、各業務処理中のCPU処理とDISK処理を細分化して、タスクという管理単位の情報を生成する。言い換えると、コンピュータ301が業務処理のための業務プログラムを実行するときに、CPU処理やDISK処理、その他IO処理などの処理が処理単位に分割されて、コンピュータ301上で管理される。コンピュータ301は、分割された処理単位ごとに、CPU、あるいはDISKを使用し、業務プログラムを実行する。この分割されたコンピュータ301上の処理単位を実施例1ではタスクと呼ぶ。業務性能予測機構20は、分割されたタスクを順次接続して、業務タスクキューと呼ばれる一連の処理を形成する。したがって、コンピュータ301上での1つの業務プログラムの実行状況は、業務タスクキューに、実行順につながった複数のタスクによって表される。
次に、業務性能予測機構20は、業務タスクキューに実行順につながったタスクをCPUとDISKの能力や数の異なる他のコンピュータA等に割り当て、仮想走行させる。ここで、仮想走行とは、業務タスクキューにつながったそれぞれのタスクで指定される資源と使用時間とを業務タスクキューにつながった順に、他のコンピュータA等が有する資源に割り当て直すことをいう。この仮想走行では、元のコンピュータ301と、他のコンピュータA等の資源の性能の相違から、タスクのつながり方が変化することがある。例えば、CPU処理のタスクと、DISK処理のタスクとの間で、空き時間が発生、消滅、あるいは空き時間の長さが変動することがある。なお、実施例1の仮想走行では、同一の業務タスクキューに接続される複数のタスクが並列実行されないものと仮定する。例えば、1つの業務処理に含まれるCPU処理のタスクとDISK処理のタスクとは逐次実行されるものとして説明する。
業務性能予測機構20は、仮想走行させながら、タスク単位に現在利用しているコンピュータ301の業務処理の処理時間、現在利用しているコンピュータ301の相対能力値、および他のコンピュータA等の相対能力値から、仮想走行での処理時間を計算し、かつ累積する。このような仮想走行は、他のコンピュータA等の実際のタスクの切り替え、あるいは資源の管理を反映した処理を模擬したものとなるため、業務性能予測機構20は、他のコンピュータA等の業務処理の処理時間を精度のよく算出できる。
また、業務性能予測機構20は、複数の処理を実行するためのそれぞれの業務プログラムに対応する複数の業務タスクキューにつながったタスクを仮想走行させるときに、各業務プログラムに指定される実行優先度を基にして、各業務プログラムのタスクに優先度を付与し、仮想走行させるようにしてもよい。
さらに、業務性能予測機構20は、仮想走行させるときに、各資源において一のタスクの終了後、次のタスク開始まで、タスクを実行できない時間を示すための未処理タスクを作成する。業務性能予測機構20は、各資源において一のタスクの実行と、次のタスクの実行との間で、未処理タスクを埋め込むことで、それぞれの資源の使用時間と、未使用時間とに関する情報を収集し、実行状況、例えば、資源の使用率(占有率ともいう)等を判断する。
なお、本実施形態では、入出力装置として、DISK装置を用いるが、業務性能予測機構20が解析する入出力装置は、DISK装置に限定される訳ではなく、業務プログラムの実行に係わる他の入出力装置、例えば、ネットワークにアクセスする通信装置、可搬型の記憶装置等を使用する場合も、本実施形態と同様な方式で解析可能である。
図3に、情報処理装置10のハードウェア構成を例示する。情報処理装置10は、Central Processing Unit(CPU)11、主記憶装置12、インターフェース18を通じて接続される外部機器を有し、プログラムにより情報処理を実行する。外部機器としては、外部記憶装置13および通信インターフェース14を例示できる。CPU11は、主記憶装置12に実行可能に展開されたコンピュータプログラムを実行し、情報処理装置10の機能を提供する。主記憶装置12は、CPU11が実行するコンピュータプログラム、CPU11が処理するデータ等を記憶する。主記憶装置12は、Dynamic Random Access Memory(DRAM)、Static Random Access Memory(SRAM)、Read Only Memory(ROM)等である。さらに、外部記憶装置13は、例えば、主記憶装置12を補助する記憶領域として使用され、CPU11が実行するコンピュータプログラム、CPU11が処理するデータ等を記憶する。外部記憶装置13は、ハードディスクドライブ、Solid State Disk(SSD)等である。
また、情報処理装置10は、入力装置15、表示装置16等によるユーザインターフェースを有するようにしてもよい。入力装置15は、例えば、キーボード、ポインティングデバイス等である。また、表示装置16は、例えば、液晶ディスプレイ、エレクトロルミネッセンスパネル等である。さらに、情報処理装置10は、着脱可能記憶媒体駆動装置17を設けてもよい。着脱可能記憶媒体は、例えば、ブルーレイディスク、Digital Versatile Disk(DVD)、Compact Disc(CD)、フラッシュメモリカード等である。なお、図3の例では、単一のインターフェース18が例示されているが、インターフェース18として複数種類のものが複数設けられてもよい。
<性能測定部>
図4に、性能測定部302と業務プログラムとの関係を例示する。図4は、性能測定部302によるCPU時間の測定例である。DISK装置が処理を行うときのDISK時間、入出力装置が処理を行うときの入出力時間等についても、図4と同様の構造、および手順で測定できる。図4のように、CPU時間が測定される稼働中のコンピュータ301上では、業務プログラム、オペレーティングシステム(OS)、および性能測定部302としてCPUを機能させる性能測定プログラム302Aが実行される。以下、CPU11が性能測定プログラム302Aを実行することによって提供する処理を、単に、性能測定部302が実行する処理として説明する。
業務プログラムは、CPU処理の処理単位、例えば、割り込みが発行される時間間隔でCPUを割り当てられ、実行される。割り込みは、例えば、業務プログラム実行中に外部記憶装置、通信装置、その他の周辺装置への入出力命令(割り込み命令)が実行される場合に発行される。また、割り込みは、タイマがタイムアウトしたときにも発行される。さらに、割り込みは、WAIT等、他の装置と同期を取るための待ち合わせ命令実行時に、待ち合わせ対象のイベントが発生したときにも発行される。
割り込みが発行されると、レジスタの内容等、コンテキストがメモリに待避され、業務プログラムのCPU処理は一旦中断される。そして、業務プログラムは、次のタスク実行待ちとなる。
OSは、業務プログラムの走行を制御するディパッチ処理部を有する。以下、OSのディパッチ処理部を単にOSと呼ぶ。ここで、制御とは、例えば、実行中の業務プログラムAのタスクが中断すると、実行待ちの業務プログラムBのタスクに、CPUを割り当てて、CPUを起動する処理をいう。このとき、OSは、まず、性能測定部302、すなわち、性能測定プログラム302Aを呼び出す。図4では、”CALL 性能測定部”と示されている。そして、OSは、業務プログラムBの主記憶装置上の実行アドレスをCPU(プログラムカウンタ)に設定し、タスクを起動する。図4では、”LOAD 実行アドレス”と示されている。
性能測定部302は、起動されると、性能測定処理を実行し、性能情報を測定する。性能測定部302は、測定した性能情報を主記憶装置(メモリ)、DISKファイル等に記録する。
図5に、性能測定部302の処理を例示する。この処理では、性能測定部302は、まず、現在の時間を求める(S101)。ここで、現在の時間は、所定の基準時からの経過時間であり、現在の時刻と呼ぶこともできる。現在の時間は、例えば、OSから取得できる。そして、性能測定部302は、処理単位の時間=現在の時間−前回の時間によって求める(S102)。なお、前回の時間は、例えば、前回の時間を記憶する主記憶装置の領域(プロセス制御領域と呼ぶ)に保存されている。プロセス制御領域は、性能測定部302の実行時に確保される動的作業領域以外の領域、例えば、OSの管理情報を格納する領域に確保すればよい。なお、処理単位の時間は、処理単位であるタスクの実行時間を表すが、以下、単に処理時間と呼ぶ。
そして、性能測定部302は、性能情報として、処理時間を含む情報をプロセス制御領域に記録する(S103)。より具体的には、性能情報は、例えば、業務プログラム名、装置名(CPU、DISK等の資源の名称)、および処理時間を含む。業務プログラム名、装置名は、例えば、性能測定部302の起動時に、OSから取得すればよい。なお、装置名で示されるCPU、DISK等の装置は資源の一例である。また、実施例1では、コンピュータの資源を装置ともいう。
さらに、性能測定部302は、S101で取得した現在の時間をプロセス制御領域のLOAD時間に該当するアドレスに記録する(S104)。以上の処理によって、性能測定部302は、呼び出される度に、前回からの処理時間を記録する。
図6に、性能測定部302が記録する性能情報のフォーマットを例示する。性能測定部302は、起動の度に、測定した性能情報を測定した順に、処理単位、すなわち、タスク単位で記録する。図6のように、性能情報は、業務プログラム名、装置名、処理時間を組みにして記録すればよい。
性能情報の記録先は、主記憶装置上でよい。ただし、性能情報が測定されるコンピュータは、性能情報を一時的に主記憶装置に保持した後、外部記憶装置、例えば、最終的に、DISK上のファイルに格納するようにしてもよい。記録された性能情報は、業務性能予測機構20の入力情報となる。
なお、DISK時間を測定する場合には、性能測定部302に類似したDISK性能測定部を外部記憶装置13への入出力処理の開始時と、外部記憶装置13からの入出力処理の実行完了を示す割り込み時とで、対にして起動すればよい。そして、DISK性能測定部は、第1回目の起動時の時間(入出力処理の開始時)から第2回目の起動時の時間(実行完了を示す割り込み時)までの時間の差分値をDISK時間とし、装置名(DISK)と、業務プログラム名とともに、性能情報として記録すればよい。また、DISK以外の入出力装置の入出力時間についても、DISK時間と同様に測定できる。
<業務性能予測機構>
図7に、業務性能予測機構20の構造を例示する。業務性能予測機構20は、業務タスク作成部21、業務タスクキューイング部22、および仮想走行部23を有する。情報処理装置10のCPU11は、例えば、業務タスク作成部21、業務タスクキューイング部22、仮想走行部23の順に処理を起動する。
(業務タスク作成部21)
業務タスク作成部21は、稼働中のコンピュータ301で性能測定部302が記録した性能情報を入力情報として処理する。そして、業務タスク作成部21は、各業務プログラムの実行時に測定された性能情報から、例えば、1タスクあたりのCPU処理またはDISK処理を示す管理情報を作成する。管理情報がタスク情報の一例である。
図10に、管理情報を例示する。管理情報は、主記憶装置12上のデータ構造として例示される。管理情報は、少なくとも業務プログラム名、装置名、処理時間を含む。業務プログラム名、装置名、処理時間は、性能情報から取得する。
すなわち、業務プログラム名は、タスクがどの業務プログラムの実行によるものかを判断するための情報である。装置名は、1または複数のCPUをそれぞれ識別する情報、1または複数のDISKをそれぞれ識別する情報などである。装置名は、タスクがどのCPUまたはDISKで実行されたものかを判断するための情報である。なお、装置名に代えて、装置をユニークに識別する番号、例えば、装置機番等を記録してもよい。処理時間は、各タスクが処理した時間である。
図10の例では、管理情報は、さらに、NEXTタスクアドレス、仮想走行用累積処理時間、仮想走行用未処理タスク累積処理時間、仮想走行用NEXTタスクアドレスを含む。
NEXTタスクアドレスには、実行順に各タスクを連結するために、次のタスクの管理情報の先頭アドレスを記録する。すなわち、NEXTタスクアドレスは、性能測定部302が記録したタスクの順を保存するための情報である。
仮想走行用累積処理時間、仮想走行用未処理タスク累積処理時間、仮想走行用NEXTタスクアドレスは、稼働中のコンピュータで記録された性能情報に基づき連結された各タスクを情報処理装置10で仮想的に走行させたときに、上記装置ごとに性能情報を記録するための情報である。
各タスクを情報処理装置10で仮想的に走行させるとは、稼働中のコンピュータで記録された性能情報に基づき作成された各タスクを性能予測対象のコンピュータの資源と相対能力値とにしたがって、走行させることをいう。仮想走行では、稼働中のコンピュータの相対能力値と、性能予測対象のコンピュータの相対能力値に基づき各タスクの実行時間が換算される。また、各タスクの実行時間が換算されることにより、仮想走行時のタスクの実行順は、性能情報が測定された稼働中のコンピュータでの実行順とは異なるものとなる可能性がある。したがって、仮想走行により、情報処理装置10上で、性能予測対象のコンピュータ上の業務処理の実行時間、すなわち、業務処理実行時のコンピュータの処理性能の予測値を算出できる。
仮想走行用累積処理時間は、仮想的に走行させたときに積算される累積処理時間を記録する。仮想走行が完了したとき、最終タスク内の仮想走行用累積処理時間の値が業務処理の処理時間の予測値になる。仮想走行用累積処理時間が装置の使用時間の累積値の一例である。
仮想走行用未処理タスク累積処理時間は、仮想に走行させたときの未処理タスクの累積処理時間を記録する。未処理タスクとは、性能予測対象のコンピュータの装置に業務プログラムが割り当てられない状態で経過した、装置の空き時間を管理するため便宜上発生させたタスクである。仮想走行が完了したとき、各装置タスクキューの最終タスク内の仮想走行用未処理タスク累積処理時間の値が、該当装置の未動作時間になり、CPU負荷(使用率に相当)やDISK負荷が算出できる。仮想走行用未処理タスク累積処理時間が未使用時間の累積値の一例である。
仮想走行用NEXTタスクアドレスは、仮想的に走行させたときに、装置ごとにタスクを連結するために、次のタスクの管理情報の先頭アドレスを記録する。最終のタスクについては、仮想走行用NEXTタスクアドレスの値を0にする。0は、最終を意味する。
(業務タスクキューイング部22)
図7に戻り、業務タスクキューイング部22は、細分化したタスクの管理情報を業務ごとに分けてつなぎ合わせる。業務処理ごとに分けてつなぎ合わせた管理情報が実行情報の一例である。つなぎ合わせることを接続する、あるいは、キューイングするともいう。業務タスクキューイング部22は、性能測定部302が測定した性能情報の順に、管理情報(図10)のNEXTタスクアドレスとして、次のタスクの管理情報の先頭アドレスを設定すればよい。さらに、業務タスクキューイング部22は、接続したタスクの処理時間を、性能情報を測定したコンピュータと性能予測対象のコンピュータとの相対能力値の比率を基に換算する。図11に、NEXTタスクアドレスでリンクされ、かつ、処理時間が換算されたタスクの管理情報の構造を例示する。
業務作成部21および業務タスクキューイング部22が、取得する手段の一例である。また、業務タスクキューイング部22は、換算する手段の一例でもある。したがって、業務作成部21と業務タスクキューイング部22とを一体のものとして作成してもよい。
(仮想走行部23)
仮想走行部23は、処理性能予測対象のコンピュータの装置数(CPU数、DISK数)の装置タスクキューを用意する。そして、仮想走行部23は、業務タスクキューイング部22で作成した業務タスクの各タスクを順番に装置タスクキューに割り当てる。ここで、装置タスクキューは、業務タスクの各タスクの管理情報が装置ごとの列としてつなぎあわせられたものをいう。
仮想走行部23は、各タスクを装置に割り当て時に累積時間を求めてタスクに記録する。業務タスク中の各タスクの装置タスクキューへの割り当てが終わると、最終のタスク累積時間が該当業務の処理時間になる。仮想走行部23は、タスク累積時間を導入されるコンピュータでの業務の処理時間として出力する。仮想走行部23は、実行手段の一例である。
図12に、仮想走行用NEXTタスクアドレスで接続された装置タスクキューの管理情報を例示する。各装置タスクキューの管理情報は、装置ごとに仮想走行用NEXTタスク処理単位アドレスに次の業務タスクアドレスを設定することで接続できる。
なお、仮想走行部23は、業務タスクの各タスクを性能予測対象のコンピュータで仮想走行させるときに、時間の経過で装置が実行できないことを示すために未処理タスクを作成する。未処理タスクは、業務タスクに含まれる個々のタスクを装置(CPU、DISK)に割り当てできない期間に、仮想走行部23の処理の便宜上割り当てるタスクである。未処理タスクが割り当てられた装置は、未処理タスクの期間、空き状態のままで時間が経過したことを示す。すなわち、未処理タスクは、装置タスクキューにおけるタスクとタスクの間の時間を示す。
図13に、未処理タスクの管理情報を例示する。仮想走行部23は、未処理タスクも仮想走行用累積処理時間に累積する。そのため、仮想走行部23は、各装置がタスクで占有されている時間と、空き時間とを判断し、例えば、装置の使用率等を算出できるようになる。例えば、装置タスクキューにおいて、各装置の未処理タスクだけの時間を累積して「仮想走行用未処理タスク累積時間」として累積することで、仮想走行部23は、仮想走行が終わったときに該当装置の使用率を判断できる。
[数1]
該当装置の使用率=1−(該当装置最終タスクの「仮想走行用未処理タスク累積時間」/該当装置最終タスクの「仮想走行用累積処理時間」);
該当装置の使用率がわかることで、業務追加によるコンピュータシステムへの影響や、該当装置の負荷分散検討をすることができる。
さらに、仮想走行させるときに、実際のOSが行う実行優先度による処理の割り当て方式を組み込むようにしてもよい。実行優先度による処理の割り当て方式を組み込むことで、より精密な性能予測ができる。例えば業務Aの方が業務Bよりも実行優先度が高い場合、割り当て順番を業務Aに3回、その後業務Bを1回というように、OSによる各タスクへの装置の割り当て方式と同一の割り当て方式を仮想走行部23に組み込めばよい。
図8に、業務タスクの生成から仮想走行までの処理を例示する。図8の例では、稼働中のコンピュータSV1で測定した性能情報を基に、性能予測対象のコンピュータSV2で業務プログラムを実行するときの性能予測がなされる。
図8の例では、コンピュータSV1は、1個のCPUZ1と2台のDISKZ1、DISKZ2を有する。また、コンピュータSV2は、2個のCPU1、CPU2と2台のDISK1、DISK2を有する。
コンピュータSV1では、業務プログラムA、および業務プログラムBを実行し、性能情報が測定される。図8では、コンピュータSV1、SV2等が業務プログラムA、業務プログラムB等を実行するときの1処理単位、すなわちタスクの管理情報は、それぞれ業務A、業務Bという文字列で示されている。また、業務A、業務Bで示されるそれぞれのタスクは、業務処理A、業務処理Bごとに、時間の経過を示す矢印の方向に順次配置されている。業務処理A、Bごとに実行順に並べられたタスクの列を業務タスクキューと呼ぶ。
業務タスクキューは、業務タスクキューイング部22により、コンピュータSV1の装置の相対能力値とコンピュータSV2の装置の相対能力値によって処理時間が換算される。そして、処理時間が換算された業務タスクキューの各タスクが、実行順に、性能予測対象のコンピュータSV2の各装置(CPUN1、CPU2、DISK1、DISK2)に投入され、各タスクが各装置を用いて仮想走行される。仮想走行は、各タスクの処理時間だけ、各タスクが各装置を占有することに相当する。仮想走行のタスクのうち、「未」で示された区間部分は、未処理タスクの走行区間である。
例えば、業務処理AのタスクがCPU1に割り当てられると、業務処理Aのタスクは、他の装置(CPU2、DISK1、DISK2)に割り当てることはできない。また、業務処理AのタスクがCPU1に割り当てられた状態で、業務処理BのタスクをCPU1に割り当てことはできないが、CPU2に割り当てことができる。図8の例では、業務処理A、B以外の業務は実行されていない。したがって、この状態では、DISK1、DISK2に割り当てるタスクがない。実施例1では、情報処理装置10は、割り当てるタスクない装置に未処理タスクを割り当てる。図8のように、未処理タスクの処理時間は、最も早く処理が終了する割り当て済みのタスクの終了時点までである。
そして、業務処理AのタスクのCPU1での処理が完了すると、業務処理AのタスクのDISK1への割り当てが可能となる。また、業務処理BのタスクのCPU2での処理が完了すると、業務処理BのタスクのDISK2への割り当てが可能となる。
なお、図8では、業務処理Aのタスクが主としてCPU1割り当てられ、業務処理Bのタスクが主としてCPU2割り当てられているが、業務処理A、Bと装置(CPU1、CPU2)の間に、制限がある訳ではない。すなわち、仮想走行部23は、コンピュータSV2の空いている装置を適宜選択して、タスクを仮想走行させればよい。ただし、業務処理A、B等のタスクがDISKを占有するタスクの場合には、コンピュータSV2の空いている装置を適宜選択できない場合があり得る。例えば、ユーザデータの格納用DISKが、DISK1、DISK2等のいずれかに固定される場合があるからである。タスクの使用する装置がタスクを実行するコンピュータ上で固定される場合には、タスクの管理情報にその旨が指定される。
図9に、情報処理装置10が実行する業務タスクキューの生成から仮想走行までの処理フローを例示する。以下の処理では、コンピュータSV1において性能情報を測定し、コンピュータSV2の処理性能の予測値を求める。図9のように、情報処理装置10のCPU11は、測定した性能情報を基に各業務の開始時間から終了までのCPU時間、DISK時間を抽出して、1処理単位で管理情報を作成し、実行順に並べる(S1)。なお、S1の処理において、CPU11は、業務タスク生成部21、業務タスクキューイング部22として、主記憶装置12上のコンピュータプログラムを実行する。
実施例1では、図7、図10で説明したように、時間の経過上、先に実行されたタスクの管理情報のNEXTタスクアドレスに、次に実行されたタスクの管理情報の先頭アドレスを設定することで、タスクの管理情報が実行順に接続され、一の業務プログラムによって実行される業務処理に対する業務タスクキューが作成される。
次に、CPU11は、コンピュータSV1とコンピュータSV2のCPU相対能力値の比率と、DISK相対能力値の比率を求める(S2)。
CPU相対能力値の比率=コンピュータSV1のCPU相対能力値/コンピュータSV2のCPU相対能力値;
DISK相対能力値の比率=コンピュータSV1のDISK相対能力値/コンピュータSV2のDISK相対能力値;
次に、CPU11は、各業務処理のCPU時間、DISK時間を1処理単位、すなわちタスクごとにコンピュータSV2での予想時間に換算する(S2)。
コンピュータSV2のCPU時間=コンピュータSV1のCPU時間×CPU能力相対比率;
コンピュータSV2のDISK時間=コンピュータSV1のDISK時間×DISK能力比率
そして、CPU11は、以上の換算結果を業務タスクキューのそれぞれのタスクの処理時間に設定し直す。なお、S2の処理において、CPU11は、タスクキューイング部22として、主記憶装置12上のコンピュータプログラムを実行する。
また、コンピュータSV1、SV2等において、タスクに割り当てられるCPUが切り替わる際、多少システムのオーバーヘッド時間が発生する。上記S2の処理時間設定時に、CPU切り替えに伴うオーバーヘッド時間を加味した時間を加えることができる。例えば、コンピュータSV1とコンピュータSV2とでオーバーヘッド時間の平均値が測定されている場合には、各タスクにオーバーヘッド時間の差分値を付加すればよい。DISK切り替えのオーバーヘッドや、プログラムのメモリ展開のためのページング時間も、この処理時間設定のときに反映することができる。
次に、CPU1は、コンピュータSV2を想定した装置キューで業務タスクキューを仮想走行させる(S3)。ここで、仮想走行とは、業務プログラムがコンピュータSV2で実行されるときのタスクの実行順で、処理単位であるタスクを順番にコンピュータSV2の装置(CPU、DISK)に割り当てることをいう。より具体的には、仮想走行では、情報処理装置10のCPU11が、S2の処理で設定されたタスクの予測の処理時間を基に、業務タスクキューの順に、各タスクをコンピュータSV2の装置に投入するシミュレーションを実行する。すなわち、CPU11は、業務タスクキューからタスクの出現順に、コンピュータSV2の装置に(各CPUと各DISK)に業務タスクキューのそれぞれのタスクを割り当てる。
複数の業務処理A、B等の業務タスクキューを仮想走行させる場合には、タスクの割り当ての装置への割り当てにおいて、業務処理A、B等の実行優先度にしたがい、コンピュータSV2のOSの実行優先度の取り扱い手順と同一の手順でタスクを割り当てればよい。例えば、個々の業務タスク列に指定された実行優先度Q1、Q2の値に応じて、業務処理A、B等の業務タスクキューに含まれる個々のタスクの装置への割り当て回数を制御すればよい。なお、業務タスクキューのタスク列は、業務処理を実現する業務プログラムの処理をタスク列で示したものであり、業務処理をコンピュータ上の資源管理処理の側面から表したものと考えてよい。そこで、以下では、業務処理A、B等の業務タスクキューを単に業務タスクキューA、B等のように呼ぶ。
このとき、各装置でのタスクの実行状況を示す管理情報は、業務タスクキューのタスク順(NEXTタスクアドレスのリンク順)ではなく、装置ごとに仮想走行用NEXTタスクアドレスによって、つなぎ合わせられる。さらに、タスクとタスクとの間に装置の空き時間が生じる場合には、タスクとタスクとの間に未処理タスクがつなぎ合わせられる。各タスクのコンピュータSV2での予想時間と、コンピュータSV2の装置(CPU、DISK)の構成に依存して、各タスクの実行順が変わることが予想されるからである。
そして、CPU11は、タスクを各装置に割り当てるとともに管理情報を仮想走行用NEXTタスクアドレスによってリンクしながら、各タスクに設定された換算された処理時間を管理情報の仮想走行用累積処理時間のフィールド(図10参照)に、累積計算する。なお、S3の処理において、CPU11は、仮想走行部23として、主記憶装置12上のコンピュータプログラムを実行する。
そして、すべての業務タスクキューの割り当てを終了すると、CPU11は、仮想走行によって得られた各業務の処理時間を出力する(S4)。仮想走行用NEXTタスクアドレスによって、各タスクの管理情報は、装置ごとにつなぎ合わせられ、装置タスクキューが形成された。したがって、コンピュータSV1で測定された性能情報に基づく業務タスクキューの各タスクの管理情報は、装置ごとにつなぎ合わせられる。例えば、業務処理Aの業務タスクキュー含まれる各タスクは、装置別のキューにつながることになる。しかしながら、業務処理Aのタスクで、装置タスクキューにつながれたタスクの末尾、つまり、最も終了時間が遅いタスクの管理情報に記録された仮想走行用累積処理時間は、業務処理Aの処理時間を示している。そこで、情報処理装置10のCPU11は、各業務処理A、B等について、管理情報の仮想走行用NEXTタスクアドレスによってリンクされた装置タスクキューのうち末尾の、すなわち終了時刻が最も遅い管理情報に記録されている仮想走行用累積処理時間をコンピュータSV2での業務処理A、B等の処理時間として出力する。
一方、装置タスクキューのそれぞれについて、末尾に接続されたタスクの管理情報の仮想走行用累積処理時間は、当該装置の処理時間を示す。また、装置タスクキューのそれぞれについて、末尾に接続されたタスクの管理情報の仮想走行用未処理タスク累積処理時間は、当該装置の空き時間の合計を示す。したがって、CPU11は、各装置の使用率(負荷)を上記[数1]にしたがって計算し、出力する(S5)。
なお、S4の処理において、CPU11は、実行時間を推定する手段として、主記憶装置12上のコンピュータプログラムを実行する。
<実施例1の効果>
以上述べたように、情報処理装置10は、コンピュータSV1で測定された性能情報を基に、業務プログラムA、B等の実行時の処理単位であるタスクをつなぎ合わせた業務タスクキューを作成する。そして、情報処理装置10は、コンピュータSV1の相対能力値と、他のコンピュータ、例えば、性能予測対象のコンピュータSV2の相対能力値の比によって、業務タスクキューの各タスクの処理時間を換算する。そして、情報処理装置10は、コンピュータSV2の装置(CPU、DISK等)の構成に応じて、業務タスクキューのタスク実行順に各タスクをコンピュータSV2の装置に順次投入し、仮想走行用NEXTタスクアドレスによって、装置ごとにつなぎ合わせる。さらに、タスクの装置への投入に際し、コンピュータSV2の装置で空き時間が生じる場合に、未処理タスクを設定する。
したがって、情報処理装置10は、性能予測対象のコンピュータSV2の装置(CPU、DISK等)の構成に応じて、コンピュータSV2の装置の相対能力値にしたがって、業務タスクキューに含まれる各タスクを仮想的に占有させることで、仮想走行を実現できる。したがって、情報処理装置10は、性能予測対象のコンピュータSV2でのタスクの切り替えをシミュレートしつつ、タスクを各装置上で仮想走行できる。したがって、性能情報を測定したコンピュータSV1のタスクの切り替え処理を伴う実行時間から、性能予測対象のコンピュータSV2のタスクの切り替え処理を伴う実行時間を精度よく予測できる。つまり、装置の構成と、業務タスクキューとの関係から生じる実行待ち時間等を実際のコンピュータSV2上と同様の条件で再現できる。
さらに、情報処理装置10は、各業務タスクキューの各タスクを各装置に割り当てる際に、各業務タスクキューの実行優先度を反映することで、さらに精度を向上させて、性能予測対象のコンピュータSV2の実行時間、あるいは性能を予測できる。
さらに、情報処理装置10は、仮想走行において、タスクの管理情報を仮想走行用NEXTタスクアドレスによって、性能予測対象のコンピュータSV2の資源ごと、すなわち、装置ごとに接続する。このような処理によって、装置ごとに作成される装置タスクキューの末尾の管理情報の仮想走行用累積処理時間により、装置の使用時間を算出できる。
さらにまた、情報処理装置10は、各装置でタスクの割り当てがなされていない時間に未処理タスクを割り当てることで、各装置の使用率(負荷)を算出できる。すなわち、情報処理装置10は、仮想走行において、装置ごとに作成される装置タスクキューにおいて、未処理タスクの時間を積算し、仮想走行用未処理タスク累積処理時間として、資源ごと、すなわち、装置ごとの未使用時間を求めることができる。
以下、図14から図22の図面を参照して、情報処理装置10の実施例2に係る処理例を説明する。実施例2において、情報処理装置10の構成は、実施例1と同様である。そこで、情報処理装置10の構成については、説明を省略する。実施例2では、業務処理の性能予測の前提となる条件をさらに具体化して、情報処理装置10の処理例を説明する。
<前提>
処理性能が測定されるコンピュータSV1はCPUを1個、DISKを2台利用可能である。処理性能が予測されるコンピュータSV2はCPUを2個、DISKを2台で利用可能である。したがって、実施例2で利用可能な装置の数は、実施例1の場合と同一である。
ただし、実施例2では、1個のCPUの能力(相対能力値)はコンピュータSV2の方がコンピュータSV1の2倍高いと仮定する。また、DISKの能力(相対能力値)は、コンピュータSV1とSV2で同じとする。実施例2において、情報処理装置10は、以上の前提でのコンピュータSV2での業務処理の処理時間を予測する。
以下、図14−図20中の矩形のブロックがタスクを示す。タスク内のA,Bは業務処理名を示す。また、コンピュータSV1がCPUZ1、DISKZ1、DISKZ2を有するものとする。さらに、コンピュータSV2がCPU1、CPU2、DISK1、DISK2を有するものとする。また、図面では、CPUZ1、CPU1、CPU2、DISK1、DISK2をそれぞれCZ1、C1、C2、DZ1、DZ2、D1、D2と省略して示す。
さらに、各矩形中の業務処理タスク名(A、B等)と、装置名(CZ1、C1、C2、DZ1、DZ2、D1、D2等)の次に記述された数字が各タスクの処理時間を示す。時間の単位は、相対値であり、限定はない。以下の時間の単位を単位時間と呼ぶ。
<処理例>
図14に、コンピュータSV1で測定した性能情報を時間順に例示する。図14の例では、まず、業務処理AのタスクがCPUZ1で3単位時間実行される。次に、業務処理BのタスクがCPUZ1で1単位時間実行される。したがって、業務処理Bの開始は、3単位時間が経過した時点となる。
次に、CPUZ1でのタスク終了後、業務処理AのタスクがDISKZ1で2単位時間実行される。さらに、業務処理BのタスクがDISKZ2で2単位時間実行される。
また、例えば、業務処理AのDISKZ1での2つ目のタスク終了時、業務処理BがCPUZ1を占有している。したがって、次の業務処理AのCPUZ1での3つ目のタスクは、業務処理BのタスクのCPUZ1での2つ目のタスク終了まで待たされる結果となっている。
以上のような性能情報によって、業務処理Aの処理時間は、時間軸で0から19までの19単位時間となっている。また、業務処理Bの処理時間は、時間軸で3から21までの18単位時間となっている。
図15に、図14の性能情報を基に作成された業務タスクキューを例示する。実施例2においても、各コンピュータが業務プログラムを実行するときの1処理単位をタスクと呼ぶ。情報処理装置10は、各タスクの管理情報をNEXTタスクアドレス(図10参照)によって接続し、業務タスクキューを作成する。このとき、情報処理装置10は、各タスクの管理情報には業務プログラム名、装置名、処理時間、NEXTタスクアドレスを記録する。
次に、情報処理装置10は、コンピュータSV1とコンピュータSV2の性能比率で処理時間を変更する。実施例2の前提では1つのCPU処理能力が2倍になるので、情報処理装置10は、業務タスクキューの装置名としてCPUが設定されている全タスクの処理時間を半分にする。
図16に、処理時間の換算前後の業務タスクキューをそれぞれ例示する。図16の右側に、処理時間が換算された業務タスクキューを例示する。なお、図16では、装置名がコンピュータSV1のCZ1、DZ1、DZ2から、コンピュータSV2の装置名C1、D1、D2に変換されている。このうち、装置がCPUの場合には、各タスクはコンピュータSV2のどのCPUに割り当てられてもよい。したがって、コンピュータSV1のCPUZ1で実行されたタスクは、コンピュータSV2のCPU1、CPU2のいずれで実行されてもよい。業務処理が特定のCPUに限定されることはないからである。なお、実施例2においても、コンピュータの資源を装置とも呼ぶ。
一方、装置がDISKの場合には、タスクは管理情報で指定のDISK(D1、D2等)に割り当てられる。DISKと入出力されるデータは、特定のDISKに割り当てられる場合があるからである。そこで、実施例2では、装置がDISKの場合、コンピュータSV1のDISKZ1、DISKZ2を割り当てられて実行されたタスクは、それぞれコンピュータSV2のDISK1、DISK2を割り当てられて実行されるものとする。
次に、情報処理装置10は、業務タスクキューの先頭からタスクを取り出す。そして、情報処理装置10は、取り出したタスクを装置に割り当てる。情報処理装置10は、業務処理A、B等、業務処理別に業務タスクキューの先頭から順次管理情報を読み出し、装置ごと、すなわちCPUごと、DISKごとに接続する。
実施例1で述べたように、業務処理A、B等、業務処理間で、実行優先度を設定し、実行優先度順に装置を割り当ててもよい。また、業務処理A、B等の間に実行優先度を設定しない場合には、タスクを切り替えるときに、業務処理A、B等のうち、ランダムに業務処理を選択してもよい。また、タスクが割り当てられる装置のうち、CPUについては、他のタスクが割り当てられていないCPUを選択すればよい。一方、タスクが割り当てられる装置のうち、DISKについては、タスクの管理情報で指定されるDISKがそのまま使用される。
図17−図19に、装置へのタスクの割り当て処理を例示する。図17の場合、CPU1に対して、業務処理Aタスクが1.5単位時間割り当てられ、CPU2には、業務処理Bのタスクが0.5時間割り当てられる。そして、情報処理装置10は、割り当てたタスクの管理情報の「仮想走行用累積処理時間」を割り当てた時間積算する。
以上の割り当ての結果、時間軸上で、業務処理Aにより、CPU1では、1.5単位時間が経過する。また、業務処理Bにより、CPU2では、0.5単位時間が経過する。このとき、少なくもと、業務処理Bのタスクの処理時間、つまり、0.5単位時間は、DISK1、DISK2が使用されないので、未処理タスクがDISK1、DISK2に割り当てられる。
すなわち、コンピュータSV2で実行されるすべての業務タスクキューがコンピュータSV2の装置に割り当てられた後、コンピュータSV2の装置で空き状態の装置に、未処理タスクが割り当てられる。未処理タスクの割り当てでは、情報処理装置10は、すでに装置に割り当てられたタスクのうち、管理情報の「仮想走行用累積処理時間」が最も小さいタスクの業務処理を選択する。「仮想走行用累積処理時間」が最も小さいタスクとは、現在仮想走行中のタスクのうち、最も早く仮想走行が終了するタスクを意味する。例えば、図17の例では、業務処理Aのタスクの「仮想走行用累積処理時間」が1.5であり、一方、業務処理Bのタスクの「仮想走行用累積処理時間」が0.5である。そこで、業務処理Bが選択される。そして、情報処理装置10は、空き状態の装置に、選択された「仮想走行用累積処理時間」が最も小さいタスクの実行完了時間まで未処理タスクを割り当てる。すなわち、図17の例では、DISK1、DISK2に未処理タスクが0.5単位時間割り当てられる。以上のような手順によって、「仮想走行用累積処理時間」が最も小さいタスクの実行時間の末尾まで、すべての装置に、業務タスクキューから読み出されたタスクまたは未処理タスクが割り当てられる。なお、実行する業務タスクキューの数が、装置数より多い場合で、空き状態の装置が生じない場合には、未処理タスクが割り当てられない場合もあり得る。
次に、情報処理装置10は、選択した業務処理Bの次のタスクの管理情報を読み出す。上記で選択した「仮想走行用累積処理時間」が最も小さいタスクは、最初に処理が完了し、次のタスクの割り当てが行われることになる。そして、情報処理装置10は、読み出し次のタスクの管理情報で指定される装置がタスクを割り当て可能か否かを判定する。
図17の例では、業務処理Bの次のタスクは、DISK2のタスクであり、業務処理Bの「仮想走行用累積処理時間」0.5に対して、DISK2に、未処理タスクが0.5時間割り当てられており、DISK2は割り当て可能である。そこで、図18に示すように、情報処理装置10は、業務処理Bの次のタスクをDISK2に割り当てる(図18参照)。すると、業務処理Bの「仮想走行用累積処理時間」は、2.5単位時間となる。
なお、図17で、DISK2に割り当てられたタスクが「仮想走行用累積処理時間」が最も小さいタスクの実行時間の末尾(0.5単位時間の未処理タスクの末尾)よりも長くDISK2を占有する場合には、DISK2に業務処理Bの次のタスクを割り当てることはできない。この場合、業務タスクキューBのタスクは、DISK2の装置タスクキューの末尾のタスク終了まで待たされることになる。
なお、次のタスクがCPUに割り当てられるタスクの場合には、装置すなわち、CPUが限定されることはない。そこで、情報処理装置10は、「仮想走行用累積処理時間」が最も小さいタスクの実行完了時点で空き状態のCPUがあれば、その空き状態のCPUにタスクを割り当てる。また、「仮想走行用累積処理時間」が最も小さいタスクの実行完了時点で空き状態のCPUがない場合には、情報処理装置10は、最も早く空き状態となるCPU、すなわち、待ち時間が最も短いCPUに、タスクを割り当てる。
図17の処理によって、業務処理Bの次にタスクにDISK2が割り当てられた結果、業務処理Bの「仮想走行用累積処理時間」は2.5単位時間となる。したがって、業務処理Aの「仮想走行用累積処理時間」が1.5単位時間であり、業務処理Bの「仮想走行用累積処理時間」2.5単位時間より短くなる。そこで、次に、情報処理装置10は、業務処理Aの次のタスクの管理情報を業務タスクキューから読み出す。
図18の例では、まず、図17と同様、「仮想走行用累積処理時間」が最も小さいタスクである、業務処理AのCPU1での実行時間の末尾まで空き状態の装置に未処理タスクが割り当てられる。その結果、CPU2、DISK1にそれぞれ1単位時間の未処理タスクが割り当てられる。
さらに、業務処理Aの次のタスクは、DISK1のタスクであり、処理時間は、2単位時間である。また、業務処理AのCPU1でのタスク終了時、DISK1は空き状態(未処理タスクの末尾)となる。そこで、情報処理装置10は、DISK1の未処理タスクの次に、業務処理AのDISKのタスク2単位時間を割り当てる。これの割り当てによって、業務処理Aのタスクの管理情報の「仮想走行用累積処理時間」は3.5となる。
なお、図18において、業務処理Aのタスクの管理情報の「仮想走行用累積処理時間」は3.5であるともに、DISK1の処理時間も3.5となっている。つまり、タスクの管理情報の「仮想走行用累積処理時間」は、業務処理ごとの処理時間であるとともに、処理が終了した装置の現時点の処理時間を示している。
図19に、以上の業務処理の選択、タスクの読み出し、装置への割り当て処理を繰り返した結果を例示する。また、図20に、仮想走行時の各タスクの装置への割り当て状態を未処理タスクとともに時間軸上に例示する。また、図21に、業務タスクキューのすべてのタスクが終了したときの、各業務処理の処理時間の累積値の変化を例示する。
すでに述べたように、図19の業務タスクキューでは、各タスクの管理情報は、NEXTタスクアドレスによって、業務処理A,B等ごとに接続される。一方、装置タスクキューでは、各タスクの管理情報は、仮想走行用NEXTタスクアドレスによって、装置ごとに接続される。
図20で、縦軸は、業務プログラムの実行開始からの経過時間を示す時間軸である。本実施例では、所定の基準時、例えば、業務プログラムの実行開始時からの経過時間を時刻とも呼ぶ。また、図20で、横方向のフィールドには、装置の種別が示されている。そして、装置の種別として、CPU1、CPU2、DISK1、DISK2が例示されている。そして、図20の縦軸と横方向のフィールドで区画される領域に、仮想走行されたタスクが示されている。
例えば、CPU1では、業務処理AのCPUタスクが1.5単位時間実行される。業務処理Aの次のタスクは、DISK1で2単位時間実行されるDISKタスクである。業務処理Aのさらに次のタスクは、CPU2で1.5単位時間実行されるCPUタスクである。業務処理Aのさらにまた次のタスクは、DISK1で2単位時間実行されるDISKタスクである。ただし、図20の仮想走行例では、DISK1での2つ目のDISKタスク実行時に、業務タスクBの2単位時間のDISKタスクが未完了のため、待ち時間が生じている。以上のような同一の業務タスクに含まれる各タスクの管理情報は、NEXTタスクアドレスによって連結される。そして、各タスクには、それぞれの業務タスクの累積処理時間が記録される。この累積処理時間は、図20の横軸で示されている。そして、例えば、業務タスクAは、DISK2の3単位時間のDISKタスクが時刻13.5で終了する。このような業務処理A,B等の処理時間の累積値の変化が図21に例示されている。
一方、図20で装置ごとに着目すると、例えば、CPU1で、業務処理Aの1.5単位時間のCPUタスク、次に、1.0単位時間の未処理タスク、さらに業務処理Bの2単位時間のCPUタスクように順次タスクが配置される。このような装置ごとのタスクの並びは、仮想走行用NEXTタスクアドレスで接続される(図12参照)。
以上のように、タスクごとの管理情報は、業務処理ごとには、NEXTタスクアドレスで接続され、装置ごとには、仮想走行用NEXTタスクアドレスで接続される。一方、仮想走行時の各業務処理A、B等における累積処理時間は、各管理情報の仮想走行用累積処理時間に記録される(図12参照)。ところで、図20の横軸から明らかなように、各タスクの終了時刻は、業務処理ごとのタスクの終了時刻を示すとともに、当該装置の処理終了時刻となっている。
例えば、CPU1については、時刻10.5で終了する業務処理Aの2単位時間のCPUタスクで処理が終了する。同様に、DISK2については、時刻13.5で終了する3単位時間のDISKタスクで処理が終了する。ただし、業務処理Aは、この時刻13.5で終了する3単位時間のDISKタスクで処理が終了する。
したがって、NEXTタスクアドレスで接続される最後の管理情報の仮想走行用累積処理時間を読み出せば、業務ごとの処理時間の予測値が取得できる。一方、装置ごとに、仮想走行用NEXTタスクアドレスで接続される末尾の管理情報の仮想走行用累積処理時間を読み出せば、装置ごとの処理時間を取得できる。さらに、装置ごとに、仮想走行用NEXTタスクアドレスで接続される末尾の管理情報の仮想走行用未処理タスク累積処理時間を読み出せば、装置ごとの空き時間の合計を取得できる。
そして、情報処理装置10は、各業務の処理時間を出力する。最終に割り当てた各タスクの「仮想走行用累積処理時間」が業務処理の処理時間である。
また、情報処理装置10は、各装置の使用率を次の計算で出力する。
該当装置の使用率=1−(該当装置最終タスクの「仮想走行用未処理タスク累積時間」/該当装置最終タスクの「仮想走行用累積処理時間」);
図22、図23に、情報処理装置10が業務タスクキューを各装置に割り当て、業務タスクキューの各タスクを仮想走行する処理を例示する。図22、図23は、実施例1の仮想走行部23の処理に対応する。
この処理では、情報処理装置10は、まず、情報処理装置10は、業務タスクキューからタスクを取り出す、(S10)。より具体的には、情報処理装置10は、仮想走行する業務タスクキューを選択する。仮想走行する対象の業務タスクキューが1つの場合には、当該業務タスクキューが選択される。一方、複数の業務タスクキューを仮想走行させる場合には、所定の順、例えば、実行優先度にしたがって業務タスクキューが選択される。または、ランダムに業務タスクキューが選択される。いずれにしても、性能予測対象のコンピュータSV2でのOSの制御と同様の手順で、業務タスクキューを選択すればよい。そして、情報処理装置10は、業務タスクキューとして接続されたタスクの管理情報を業務タスクキューの先頭からタスクの実行順に読み出す。
次に、情報処理装置10は、S10で読み出したタスクの管理情報にしたがって、タスクを性能予測対象のコンピュータの装置に割り当てる(S11)。装置に割り当てられたタスクの管理情報は、装置ごとに仮想走行用NEXTタスクアドレスで接続される。次に、装置を割り当てたタスクの仮想走行用累積処理時間に当該タスクの処理時間を積算する。
次に、情報処理装置10は、各装置の未処理時間に未処理タスクを割り当て、未処理タスクの管理情報を装置のタスクキューに接続する(S12)。すなわち、情報処理装置10は、最も小さい仮想走行用累積処理時間の業務タスクキューを選択する。そして、この最も小さい仮想走行用累積処理時間に満たない占有時間の各装置タスクキューに対して、その装置タスクキューの占有時間の長さがこの最も小さい仮想走行用累積処理時間になるように、未処理タスクを割り当てる。また、情報処理装置10は、装置ごとの仮想走行未処理タスク累積処理時間に、割り当てた未処理タスクの処理時間を積算する。なお、S12の処理において、CPU11は、未使用時間を累積する手段として、主記憶装置12上のコンピュータプログラムを実行する。
次に、情報処理装置10は、業務タスクキューのすべてのタスクの仮想走行が終了したか否かを判定する(S13)。
そして、仮想走行が未実行のタスクが業務タスクキューに残っている場合、情報処理装置10は、次に割り当てるタスクを選択する(S14)。すなわち、情報処理装置10は、最も小さい仮想走行用累積処理時間の業務タスクキューにおける次のタスクの管理情報を読み出す。
そして、情報処理装置10は、読み出したタスクの管理情報にしたがって、次のタスクを装置タスクキューに割り当てる処理を実行する(S15)。その後、情報処理装置10は、制御をS11に戻す。
S15の装置タスクキューへの割り当て処理では、情報処理装置10は、読み出したタスクの管理情報に装置が指定されているか否かを判定する。例えば、タスクがCPUのタスクである場合には、装置の指定はない。一方、タスクがDISKの指定であって、ユーザデータを入出力するタスクの場合には、管理情報でユーザデータを入出力するDISKが指定される。また、タスクがDISKの指定であって、システムデータを入出力するタスクの場合、通常は、DISKの指定はないこともある。例えば、ワークデータをDISKに入出力する場合である。なお、S14、S15の処理において、CPU11は、タスク情報にしたがった資源の割り当て順を資源ごとに記録する手段として、主記憶装置12上のコンピュータプログラムを実行する。
(1)タスクに装置の指定がない場合の処理
情報処理装置10は、装置の指定がないタスク、例えばCPUに割り当てられるタスクについては、空き状態のCPUがある場合には、空き状態の装置にタスクを割り当てる。すなわち、情報処理装置は、S14で選択したタスクの仮想走行用累積処理時間の末尾と、装置占有時間の末尾が一致する装置タスクキューを選択する。仮想走行用累積処理時間の末尾と、装置占有時間の末尾が一致する装置タスクキューは、例えば、図19で業務処理Aの2番目のCPUタスクを割り当てたときのCPU2の装置タスクキューを例示できる。また、上記装置タスクキューとしては、同図の業務処理Bの2番目のCPUタスクを割り当てたときのCPU1の装置タスクキューを例示できる。すなわち、タスクを割り当てるときに、タスクの仮想走行用累積処理時間の末尾と、未処理タスクの末尾が合致する場合の当該未処理タスクが割り当てられている装置タスクキューである。
また、空き状態の装置(CPU等)がない場合には、情報処理装置10は、最も早く空き状態となる装置(CPU等)にタスクを割り当てる。すなわち、情報処理装置10は、S14で取り出したタスクの仮想走行用累積処理時間の末尾から占有時間の終了が最も早い装置タスクキューを選択する。したがって、S14で取り出したタスクの仮想走行用累積処理時間の末尾から占有時間の終了までの時間が待ち時間となる。
(2)タスクに装置の指定がある場合の処理
一方、タスクに割り当てる装置(DISK等)が指定されている場合には、情報処理装置10は、指定された装置が空き状態にあるか否かを判定する。空き状態にあるとは、S14で取り出したタスクの仮想走行用累積処理時間の末尾と、装置占有時間の末尾が一致する装置タスクキューの装置である。なお、S14で取り出したタスクの仮想走行用累積処理時間の末尾の時間まで、空き状態となった装置には、S12の処理で未処理タスクが割り当てられる。したがって、S15の処理で、空き状態の装置は、通常は、S14で取り出したタスクの仮想走行用累積処理時間の末尾で未処理タスクが終了する装置となる。指定された装置が空き状態にある場合には、指定された装置にタスクが割り当てられる。
一方、指定された装置が空き状態にない場合には、指定された装置の装置タスクキューの末尾にタスクが割り当てられる。その結果、指定された装置の装置タスクキューの末尾の時間まで、S14で選択したタスクに待ち時間が発生する。
また、S13の判定で、仮想走行が未実行のタスクが業務タスクキューに残っていない場合、情報処理装置10は、各業務タスクキューの末尾に相当する管理情報から、業務タスクキューごとの仮想走行用累積処理時間を取得し、各業務処理の処理時間の予測値として出力する(図23のS18)。S18の処理において、CPU11は、実行時間を推定する手段として、主記憶装置12上のコンピュータプログラムを実行する。
さらに、情報処理装置10は、各装置タスクキューの末尾のタスクの管理情報から、装置ごとの仮想走行用累積処理時間と仮想走行用未処理タスク累積処理時間を読み出し、各装置の使用率を算出し、出力する(S19)。S19の処理において、CPU11は、資源ごとの使用率を算出する手段として、主記憶装置12上のコンピュータプログラムを実行する。
<実施例2の効果>
以上述べたように、実施例2によれば、情報処理装置10は、性能情報を測定したコンピュータSV1と、性能予測対象のコンピュータSV2との間で、装置の相対能力値を換算し、性能予測対象のコンピュータSV2での業務処理の性能、処理時間を予測できる。
なお、実施例2では、コンピュータSV1は、CPU1個、DISK2台、コンピュータSV2は、CPU2個、DISK2台で、コンピュータSV2のCPU能力値は、コンピュータSV1のCPU能力値の2倍であるものを想定した。しかし、上記構成に限定されず、性能情報を測定したコンピュータSV1と、性能予測対象のコンピュータSV2との間で、資源の数、および個々の資源の能力値が様々に異なる場合であっても、実施例2と同様の性能予測が可能である。なぜなら、情報処理装置10は、性能情報を測定したコンピュータSV1でのタスクの構成を基に、性能予測対象のコンピュータSV2の資源に対して、タスクを割り当て、仮想走行するからである。このような処理によって、コンピュータSV2上の処理が精度よくシミュレートされ、性能予測値が、実際のコンピュータSV2での処理性能に近いものとなるからである。
<コンピュータが読み取り可能な記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM(リードオンリーメモリ)等がある。
10 情報処理装置
11 CPU
12 主記憶装置
13 外部記憶装置
20 業務性能予測機構
21 業務タスク作成部
22 業務タスクキューイング部
23 仮想走行部
301 稼働中のコンピュータ
302 性能測定部
302A 性能測定プログラム
図13に、未処理タスクの管理情報を例示する。仮想走行部23は、未処理タスクも仮想走行用累積処理時間に累積する。そのため、仮想走行部23は、各装置がタスクで占有されている時間と、空き時間とを判断し、例えば、装置の使用率等を算出できるようになる。例えば、装置タスクキューにおいて、各装置の未処理タスクだけの時間を累積して「仮想走行用未処理タスク累積処理時間」として累積することで、仮想走行部23は、仮想走行が終わったときに該当装置の使用率を判断できる。
[数1]
該当装置の使用率=1−(該当装置最終タスクの「仮想走行用未処理タスク累積処理時間」/該当装置最終タスクの「仮想走行用累積処理時間」);
該当装置の使用率がわかることで、業務追加によるコンピュータシステムへの影響や、該当装置の負荷分散検討をすることができる。
業務タスクキューは、業務タスクキューイング部22により、コンピュータSV1の装置の相対能力値とコンピュータSV2の装置の相対能力値によって処理時間が換算される。そして、処理時間が換算された業務タスクキューの各タスクが、実行順に、性能予測対象のコンピュータSV2の各装置(CPU1、CPU2、DISK1、DISK2)に投入され、各タスクが各装置を用いて仮想走行される。仮想走行は、各タスクの処理時間だけ、各タスクが各装置を占有することに相当する。仮想走行のタスクのうち、「未」で示された区間部分は、未処理タスクの走行区間である。
次に、CPU1は、コンピュータSV2を想定した装置キューで業務タスクキューを仮想走行させる(S3)。ここで、仮想走行とは、業務プログラムがコンピュータSV2で実行されるときのタスクの実行順で、処理単位であるタスクを順番にコンピュータSV2の装置(CPU、DISK)に割り当てることをいう。より具体的には、仮想走行では、情報処理装置10のCPU11が、S2の処理で設定されたタスクの予測の処理時間を基に、業務タスクキューの順に、各タスクをコンピュータSV2の装置に投入するシミュレーションを実行する。すなわち、CPU11は、業務タスクキューからタスクの出現順に、コンピュータSV2の装置に(各CPUと各DISK)に業務タスクキューのそれぞれのタスクを割り当てる。
以下、図14−図20中の矩形のブロックがタスクを示す。タスク内のA,Bは業務処理名を示す。また、コンピュータSV1がCPUZ1、DISKZ1、DISKZ2を有するものとする。さらに、コンピュータSV2がCPU1、CPU2、DISK1、DISK2を有するものとする。また、図面では、CPUZ1、CPU1、CPU2、DISKZ1、DISKZ2、DISK1、DISK2をそれぞれCZ1、C1、C2、DZ1、DZ2、D1、D2と省略して示す。
図17−図19に、装置へのタスクの割り当て処理を例示する。図17の場合、CPU1に対して、業務処理Aタスクが1.5単位時間割り当てられ、CPU2には、業務処理Bのタスクが0.5単位時間割り当てられる。そして、情報処理装置10は、割り当てたタスクの管理情報の「仮想走行用累積処理時間」を割り当てた時間積算する。
次に、情報処理装置10は、選択した業務処理Bの次のタスクの管理情報を読み出す。上記で選択した「仮想走行用累積処理時間」が最も小さいタスクは、最初に処理が完了し、次のタスクの割り当てが行われることになる。そして、情報処理装置10は、読み出し次のタスクの管理情報で指定される装置がタスクを割り当て可能か否かを判定する。
図17の処理によって、業務処理Bの次タスクにDISK2が割り当てられた結果、業務処理Bの「仮想走行用累積処理時間」は2.5単位時間となる。したがって、業務処理Aの「仮想走行用累積処理時間」が1.5単位時間であり、業務処理Bの「仮想走行用累積処理時間」2.5単位時間より短くなる。そこで、次に、情報処理装置10は、業務処理Aの次のタスクの管理情報を業務タスクキューから読み出す。
なお、図18において、業務処理Aのタスクの管理情報の「仮想走行用累積処理時間」は3.5であるともに、DISK1の処理時間も3.5となっている。つまり、タスクの管理情報の「仮想走行用累積処理時間」は、業務処理ごとの処理時間であるとともに、処理が終了した装置の現時点の処理時間を示している。
例えば、CPU1では、業務処理AのCPUタスクが1.5単位時間実行される。業務処理Aの次のタスクは、DISK1で2単位時間実行されるDISKタスクである。業務処理Aのさらに次のタスクは、CPU2で1.5単位時間実行されるCPUタスクである。業務処理Aのさらにまた次のタスクは、DISK1で2単位時間実行されるDISKタスクである。ただし、図20の仮想走行例では、DISK1での2つ目のDISKタスク実行時に、業務タスクBの2単位時間のDISKタスクが未完了のため、待ち時間が生じている。以上のような同一の業務タスクに含まれる各タスクの管理情報は、NEXTタスクアドレスによって連結される。そして、各タスクには、それぞれの業務タスクの累積処理時間が記録される。この累積処理時間は、図20の軸で示されている。そして、例えば、業務タスクAは、DISK2の3単位時間のDISKタスクが時刻13.5で終了する。このような業務処理A,B等の処理時間の累積値の変化が図21に例示されている。
一方、図20で装置ごとに着目すると、例えば、CPU1で、業務処理Aの1.5単位時間のCPUタスク、次に、1.0単位時間の未処理タスク、さらに業務処理Bの2単位時間のCPUタスクように順次タスクが配置される。このような装置ごとのタスクの並びは、仮想走行用NEXTタスクアドレスで接続される(図12参照)。
以上のように、タスクごとの管理情報は、業務処理ごとには、NEXTタスクアドレスで接続され、装置ごとには、仮想走行用NEXTタスクアドレスで接続される。一方、仮想走行時の各業務処理A、B等における累積処理時間は、各管理情報の仮想走行用累積処理時間に記録される(図12参照)。ところで、図20の軸から明らかなように、各タスクの終了時刻は、業務処理ごとのタスクの終了時刻を示すとともに、当該装置の処理終了時刻となっている。
該当装置の使用率=1−(該当装置最終タスクの「仮想走行用未処理タスク累積処理時間」/該当装置最終タスクの「仮想走行用累積処理時間」);
図22、図23に、情報処理装置10が業務タスクキューを各装置に割り当て、業務タスクキューの各タスクを仮想走行する処理を例示する。図22、図23は、実施例1の仮想走行部23の処理に対応する。
この処理では、情報処理装置10は、まず、業務タスクキューからタスクを取り出す(S10)。より具体的には、情報処理装置10は、仮想走行する業務タスクキューを選択する。仮想走行する対象の業務タスクキューが1つの場合には、当該業務タスクキューが選択される。一方、複数の業務タスクキューを仮想走行させる場合には、所定の順、例えば、実行優先度にしたがって業務タスクキューが選択される。または、ランダムに業務タスクキューが選択される。いずれにしても、性能予測対象のコンピュータSV2でのOSの制御と同様の手順で、業務タスクキューを選択すればよい。そして、情報処理装置10は、業務タスクキューとして接続されたタスクの管理情報を業務タスクキューの先頭からタスクの実行順に読み出す。

Claims (9)

  1. コンピュータが、第1の情報処理装置が複数の情報処理を実行したときに、前記それぞれの情報処理において使用された資源と前記資源の使用時間とをタスク情報として前記情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得するステップと、
    前記第1の情報処理装置の資源の能力値情報と第2の情報処理装置の資源の能力値情報とにしたがって、前記それぞれの実行情報中の使用時間を前記第2の情報処理装置における使用時間に換算するステップと、
    前記実行された複数の情報処理について、第1の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第1の情報処理装置の資源に対応する前記第2の情報処理装置の資源を前記第1の情報処理に割り当てるとともに、第2の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第1の情報処理に割り当てられていない空き時間に前記第2の情報処理装置の資源を前記第2の情報処理に割り当て、前記割り当てた資源の仮想走行時間を累積する資源割り当て処理を前記複数の情報処理に対応する実行情報にしたがって実行する実行ステップと、
    前記複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで前記割り当てられた資源の前記仮想走行時間を累積した累積値によって、前記複数の情報処理を前記第2の情報処理装置で実行したときの実行時間を推定するステップと、を実行する情報処理方法。
  2. 前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第2の情報処理装置の資源を割り当てたときに、前記仮想走行時間の累積値とともに、前記タスク情報にしたがった資源の割り当て順を資源ごとに記録するステップを有する請求項1に記載の情報処理方法。
  3. 前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第2の情報処理装置の資源を前記複数の情報処理に割り当てたときに、情報処理が未割り当ての資源に、前記それぞれのタスク情報にしたがって割り当てた資源の使用終了時刻が最も早い資源の使用終了時刻まで未使用時間を割り当てるとともに、それぞれの資源ごとの未使用時間を累積するステップを有し、
    前記コンピュータは、前記第2の情報処理装置の資源ごとに、前記仮想走行時間の累積値と前記未使用時間の累積値とから、前記資源ごとの使用率を算出するステップと、をさらに実行する請求項2に記載の情報処理方法。
  4. コンピュータに、第1の情報処理装置が複数の情報処理を実行したときに、前記それぞれの情報処理において使用された資源と前記資源の使用時間とをタスク情報として前記情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得するステップと、
    前記第1の情報処理装置の資源の能力値情報と第2の情報処理装置の資源の能力値情報とにしたがって、前記それぞれの実行情報中の使用時間を前記第2の情報処理装置における使用時間に換算するステップと、
    前記実行された複数の情報処理について、第1の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第1の情報処理装置の資源に対応する前記第2の情報処理装置の資源を前記第1の情報処理に割り当てるとともに、第2の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第1の情報処理に割り当てられていない空き時間に前記第2の情報処理装置の資源を前記第2の情報処理に割り当て、前記割り当てた資源の仮想走行時間を累積する資源割り当て処理を前記複数の情報処理に対応する実行情報にしたがって実行する実行ステップと、
    前記複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで前記割り当てられた資源の前記仮想走行時間を累積した累積値によって、前記複数の情報処理を前記第2の情報処理装置で実行したときの実行時間を推定するステップと、を実行させるためのプログラム。
  5. 前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第2の情報処理装置の資源を割り当てたときに、前記仮想走行時間の累積値とともに、前記タスク情報にしたがった資源の割り当て順を資源ごとに記録するステップを有する請求項4に記載のプログラム。
  6. 前記実行ステップは、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第2の情報処理装置の資源を前記複数の情報処理に割り当てたときに、情報処理が未割り当ての資源に、前記それぞれのタスク情報にしたがって割り当てた資源の使用終了時刻が最も早い資源の使用終了時刻まで未使用時間を割り当てるとともに、それぞれの資源ごとの未使用時間を累積するステップを有し、
    前記コンピュータに、前記第2の情報処理装置の資源ごとに、前記仮想走行時間の累積値と前記未使用時間の累積値とから、前記資源ごとの使用率を算出するステップをさらに実行させるための請求項5に記載のプログラム。
  7. 第1の情報処理装置が複数の情報処理を実行したときに、前記それぞれの情報処理において使用された資源と前記資源の使用時間とをタスク情報として前記情報処理において使用される資源の切り替えごとに使用された資源の切り替え順に記録したそれぞれの実行情報を取得する手段と、
    前記第1の情報処理装置の資源の能力値情報と第2の情報処理装置の資源の能力値情報とにしたがって、前記それぞれの実行情報中の使用時間を前記第2の情報処理装置における使用時間に換算する手段と、
    前記実行された複数の情報処理について、第1の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第1の情報処理装置の資源に対応する前記第2の情報処理装置の資源を前記第1の情報処理に割り当てるとともに、第2の情報処理に対応する実行情報に記録されたタスク情報にしたがって資源の切り替え順に前記換算された使用時間の間、前記第1の情報処理に割り当てられていない空き時間に前記第2の情報処理装置の資源を前記第2の情報処理に割り当て、前記割り当てた資源の仮想走行時間を累積する資源割り当て処理を前記複数の情報処理に対応する実行情報にしたがって実行する実行手段と、
    前記複数の情報処理に対応する実行情報のそれぞれに含まれる末尾のタスク情報まで前記割り当てられた資源の前記仮想走行時間を累積した累積値によって、前記複数の情報処理を前記第2の情報処理装置で実行したときの実行時間を推定する手段と、を備える情報処理装置。
  8. 前記実行手段は、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第2の情報処理装置の資源を割り当てたときに、前記仮想走行時間の累積値とともに、前記タスク情報にしたがった資源の割り当て順を資源ごとに記録する手段を含む請求項7に記載の情報処理装置。
  9. 前記実行手段は、前記実行される複数の情報処理のそれぞれのタスク情報にしたがって前記第2の情報処理装置の資源を前記複数の情報処理に割り当てたときに、情報処理が未割り当ての資源に、前記それぞれのタスク情報にしたがって割り当てた資源の使用終了時刻が最も早い資源の使用終了時刻まで未使用時間を割り当てるとともに、それぞれの資源ごとの未使用時間を累積する手段を有し、
    前記情報処理装置は、前記第2の情報処理装置の資源ごとに、前記仮想走行時間の累積値と前記未使用時間の累積値とから、前記資源ごとの使用率を算出する手段と、をさらに備える請求項8に記載の情報処理装置。
JP2014505860A 2012-03-19 2012-03-19 情報処理方法、プログラム、および情報処理装置 Active JP5874811B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/057077 WO2013140529A1 (ja) 2012-03-19 2012-03-19 情報処理方法、プログラム、および情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2013140529A1 true JPWO2013140529A1 (ja) 2015-08-03
JP5874811B2 JP5874811B2 (ja) 2016-03-02

Family

ID=49222023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014505860A Active JP5874811B2 (ja) 2012-03-19 2012-03-19 情報処理方法、プログラム、および情報処理装置

Country Status (3)

Country Link
US (1) US9336055B2 (ja)
JP (1) JP5874811B2 (ja)
WO (1) WO2013140529A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886399A (zh) * 2012-12-24 2014-06-25 鸿富锦精密工业(深圳)有限公司 任务分配系统及方法
EP2829975B1 (en) * 2013-07-23 2019-04-24 Fujitsu Limited A fault-tolerant monitoring apparatus, method and system
GB2517195A (en) * 2013-08-15 2015-02-18 Ibm Computer system productivity monitoring
US9501321B1 (en) * 2014-01-24 2016-11-22 Amazon Technologies, Inc. Weighted service requests throttling
US9684562B2 (en) * 2015-07-21 2017-06-20 International Business Machines Corporation Automatic serial starting of resource groups on failover based on the prediction of aggregate resource usage
US10048669B2 (en) * 2016-02-03 2018-08-14 Sap Se Optimizing manufacturing schedule with time-dependent energy cost
JP6766495B2 (ja) * 2016-07-21 2020-10-14 富士通株式会社 プログラム、コンピュータ及び情報処理方法
CN108733473A (zh) * 2018-05-11 2018-11-02 北京航天发射技术研究所 一种基于VxWorks的定位瞄准一体化设备任务的控制方法
US11238557B2 (en) * 2019-03-29 2022-02-01 Intel Corporation Workload-based maximum current
CN110514982B (zh) * 2019-08-22 2022-03-22 上海兆芯集成电路有限公司 性能分析系统与方法
CN114143569B (zh) * 2021-11-18 2024-02-27 聚好看科技股份有限公司 一种网页录制和直播方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137725A (ja) * 1994-11-14 1996-05-31 Hitachi Ltd 性能予測装置
JP2001125784A (ja) * 1999-10-25 2001-05-11 Hitachi Ltd システム性能見積システム及びシステム性能見積方法
JP2004264954A (ja) * 2003-02-28 2004-09-24 Nec Corp Cpu使用率測定システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2715904B2 (ja) 1994-04-21 1998-02-18 日本電気株式会社 計算機システム性能評価装置
WO2002069174A1 (fr) * 2001-02-28 2002-09-06 Fujitsu Limited Procede d'execution en parallele de processus et ordinateur a processeurs multiples
US20070266391A1 (en) * 2006-04-27 2007-11-15 Hoffman Philip M System and method for separating multi-workload processor utilization on a metered computer system
US8959526B2 (en) * 2011-06-09 2015-02-17 Microsoft Corporation Scheduling execution of complementary jobs based on resource usage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137725A (ja) * 1994-11-14 1996-05-31 Hitachi Ltd 性能予測装置
JP2001125784A (ja) * 1999-10-25 2001-05-11 Hitachi Ltd システム性能見積システム及びシステム性能見積方法
JP2004264954A (ja) * 2003-02-28 2004-09-24 Nec Corp Cpu使用率測定システム

Also Published As

Publication number Publication date
WO2013140529A1 (ja) 2013-09-26
US20140359634A1 (en) 2014-12-04
JP5874811B2 (ja) 2016-03-02
US9336055B2 (en) 2016-05-10

Similar Documents

Publication Publication Date Title
JP5874811B2 (ja) 情報処理方法、プログラム、および情報処理装置
US9400686B2 (en) Process grouping for improved cache and memory affinity
JP6695437B2 (ja) 管理計算機及びテスト環境決定方法
US20160373377A1 (en) Managing a set of assets of a shared pool of configurable computing resources
KR20140097450A (ko) 가상 머신 관리 기록 매체, 방법 및 장치
JPH08286958A (ja) ジョブスケジューリング解析方法
JP6149595B2 (ja) キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP2008234191A (ja) ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
US11635996B2 (en) Management system and management method for migrating a business system operating on a target infrastructure
JP5515889B2 (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP5321748B2 (ja) マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
JP3663968B2 (ja) マルチタスクシステムの性能予測システム及び予測方法並びにその方法プログラムを記録した記録媒体
JP6135392B2 (ja) キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP5737298B2 (ja) スケジューリング方法およびスケジューリングシステム
JP2001184175A (ja) ストレージ管理システム
CN106940626B (zh) 一种获取虚拟机多磁盘间差异数据的方法和系统
JP5974856B2 (ja) サンプリングプログラム、サンプリング方法及び情報処理装置
TWI417786B (zh) 幫助一處理環境中之指令執行的方法、系統及程式產品
JP2020190867A (ja) 構成変更型集積回路の割当システム、構成変更型集積回路の割当方法およびコンピュータプログラム
JP2015005080A (ja) ソフトウェア管理システムおよび計算機システム
JP3951230B2 (ja) プログラム割当制御方法とプログラムおよびプログラム割当制御システム
JP4219119B2 (ja) ジョブ実行順序決定方法
Ikken et al. Toward scheduling i/o request of MapReduce tasks based on Markov model
JP6708016B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム

Legal Events

Date Code Title Description
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: 20151222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160104

R150 Certificate of patent or registration of utility model

Ref document number: 5874811

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150