JP3703549B2 - Software performance estimation and performance monitoring method - Google Patents

Software performance estimation and performance monitoring method Download PDF

Info

Publication number
JP3703549B2
JP3703549B2 JP34404795A JP34404795A JP3703549B2 JP 3703549 B2 JP3703549 B2 JP 3703549B2 JP 34404795 A JP34404795 A JP 34404795A JP 34404795 A JP34404795 A JP 34404795A JP 3703549 B2 JP3703549 B2 JP 3703549B2
Authority
JP
Japan
Prior art keywords
performance
estimation
software
monitoring method
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP34404795A
Other languages
Japanese (ja)
Other versions
JPH09185532A (en
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
Priority to JP34404795A priority Critical patent/JP3703549B2/en
Publication of JPH09185532A publication Critical patent/JPH09185532A/en
Application granted granted Critical
Publication of JP3703549B2 publication Critical patent/JP3703549B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、ソフトウエアの性能見積及び性能監視方法に関するものである。
【0002】
【従来の技術】
近年、コンピュータシステムに対して、処理可能なデータ量又はトランザクション量の拡大が要求されている。そして、システム規模が大きくなっても、システムの最大限の性能を引き出すことが要求される。従来においては、システムの最大限の性能を引き出すために、システム設計時の性能見積が不可欠であった。また、業務開始後は、設計通りの目標性能が出ているかどうか、システム性能を継続して監視していく必要があった。
【0003】
ここで、設計時の性能見積においては、システム規模に従って増加する資源数が変数となる見積式が使用される。このため、特に大規模システムにおいては、見積式への代入値は、システム運転の安全性を第一に考えて決定する。例えば、最大負荷を想定した最大値に設定したり、その最大値に安全係数を掛算して余裕を持たせたり、さらに将来のシステム拡張を見込んで大きな値を設定していた。
【0004】
例えば、代入値がファイル数という変数である場合、作業用として一時的に作成されるファイルを含めた数値が100である場合に、安全係数1.2を掛けた120という数値を設定する。あるいは、代入値がログインユーザ数という変数である場合、業務開始当初の最大ログインユーザ数は300に制限した運用を行うものであっても、2〜3年先に需要増加が見込まれれば、予め400という大きめの値を設定しておく。
【0005】
このように、性能見積は、見積り対象となる処理が動作する環境又はその時点のシステム負荷を最悪のケースで想定することが多い。こうした従来の性能見積方法では、想定した負荷による見積りがシステムの設計上の許容範囲をオーバーする場合に、種々の問題が発生する。例えば、想定した負荷による見積りがシステムの設計上の許容範囲をオーバーしていたとしても、早朝でログインユーザ数が20位しかないというような、システムが低負荷で動作している状態では、その処理は実行が可能である。しかしながら、従来の性能見積の方法では、その処理を全く使えなくしてしまったり、同時実行数を制限するという対応を必要としていた。
【0006】
この対応の具体例として、性能監視モニタにおける性能見積について説明する。性能監視モニタは、システムの性能状況をリアルタイムに表示するものである。
このような性能監視モニタについてSEが性能見積を行った結果、システムに接続/設定されている資源のうち、特に数の多い資源の性能状況を表示する機能が、昼間のオンライン業務で使用するには影響があると判断したとする。この場合、ユーザ側では、運用面からその影響のある機能だけを使わない方法又は、その機能を使えなくするためのプログラム修正を行う方法の2つの方法が考えられる。
【0007】
ここで、運用面からのガードは、オペレータが操作ミスをするおそれがあるので不可能であると判断した場合は、昼間のオンライン業務だけでなく、夜間のバッチ業務までも含めて、その機能を全く使えなくするためのプログラム修正が行われる。具体的には、以下の2つの修正が行われる。
a.その機能を呼び出すPFキーが押されても、エラーメッセージを出力して要求を受け付けない修正。
【0008】
b.指定された数以上の性能監視モニタが起動できない修正。
【0009】
【発明が解決しようとする課題】
上記のように、従来のシステム設計時の性能見積においては、システム負荷がピークに達したときの状況を考慮している。そのために、システム負荷が軽いときには使える処理であっても、全く使えなくしてしまったり、そのためのプログラム修正を加えるなどの対応をするといった問題を生じていた。また、見積りはあくまでも想定負荷によるものであることや、計算ミスなどによってシステム稼働後に実測値とのギャップが生じたりして、信頼性の高い見積りを得ることは難しいという問題も生じていた。
【0010】
見積りの不備が原因で、システムの設計上の許容範囲をオーバーするようなプログラムを高プライオリティで連続走行させてしまった場合には、他のプログラムに制御が移らないで、様々な弊害を生じることもあった。
本発明は、システム設計時の性能見積を不要とし、システム運用中に自動的にソフトウエアの性能見積及び性能監視ができる方法を提供することを目的とするものである。
【0011】
【課題を解決するための手段】
本発明は、上記目的を達成するためのソフトウエアの性能見積及び性能監視方法であって、ソフトウエアの各処理の実行開始直前に、その処理のプログラムが内蔵する見積式とその時点における変数を用いてその処理の負荷を計算する。この負荷を、基準値、例えば、予め定められた所定値又は、システムの負荷状態と比較する。そして、その結果により、その処理の実行が可能か否かを判定する。
【0012】
判定の結果、処理の実行が可能であると判定されると、その処理が実行される。また、処理の実行が不可能であると判定されると、処理の制御、例えば、処理の放棄、処理の実行の待ち合わせ、処理の実行のプライオリティの調節、又は、一定周期毎あるいは一定資源使用毎による実行制御を行う。
本発明によれば、システム設計時に性能見積をしなくても、システム運用中にリアルタイムで自動的に正確なオーバヘッドを見積ることができる。また、新たにプログラム修正等を加えることなく、システム負荷に応じて処理を実行したり、処理を制御したりできるようになる。したがって、本発明により計算機システムの信頼性を向上させることができる。
【0013】
【発明の実施の形態】
本発明の実施形態について、図1を用いて説明する。
図において、11はソフトウエアに含まれる各処理のうちの1つの処理を示している。この処理とは、機能、サブルーチン、関数、ジョブなどの単位を意味する。図示の処理11は、見積り対象となる処理本体6の前に、性能見積及び性能監視を実行するための、資源収集部1、見積式実行部2、外部記録部3、判定部4、制御部5を内蔵する。なお、資源収集部1〜制御部5は、処理に内蔵させずに、他から呼び出すようにすることもできる。なお、以下の説明においては、資源収集部1〜制御部5をまとめて「本機構」という。
【0014】
最初に、図1に示した本機構の動作について説明する。
資源収集部1は、資源数の収集を行うもので、見積式の変数に代入すべき値を収集する。この代入値が他処理で扱っている資源に関するものであれば、資源収集用のサブルーチンを呼び出すか、又は、OS制御表に代入されている値を参照して資源数の通知インタフェースを提供する。一方、代入値が自処理11で扱う資源なら、自処理自身が知っているのであるから、インタフェースの新設は不要となる。
【0015】
見積式実行部2は、見積式の変数に、資源収集部1が収集した値を代入して見積式を実行するものである。この見積式は、自処理のプログラムの先頭位置に内蔵されてある。見積式の例を示すと、ある処理が図2に示すものであれば、その命令数は、「23+(23+(45+エクステント数×3))×エクステントの種類数+5126」という見積式で表される。ここで、エクステント数とエクステントの種類数の代入値が33及び9であるとき、ある処理の負荷は、6,652ステップと計算できる。なお、以下の説明では、上記見積式を「見積式A」と略称することとする。
【0016】
図1に戻って、外部記録部3は、各処理11の見積り結果を外部ファイル等に記録又は表示装置に表示する。各処理の見積り結果を外部ファイルなどに記録すれば、システム設計時の見積りと記録された見積り結果を比較することによって、設計時の見積りが正しかったかどうか検証できる。ここで、システム部門が定めた目標性能が出ていないときには、負荷の相違する処理がなんであるかも調査でき、原因究明が容易に行えるといった効果もある。
【0017】
判定部4は、その処理を実行すべきかどうかを判定するものである。判定部4は、見積式実行部2の見積り結果と基準値とを比較する。この比較結果によって、制御部5に遷移する(処理を実行しない)か、制御部5をスキップする(処理を実行する)かが決定される。比較の例としては次の2通りがあり、どちらの方法で比較するかは、処理ごとに外部からの指定を可能とする。
【0018】
(1)ユーザ定義の基準値との比較
ユーザがファイル等で定義した基準値(所定値)と見積り結果を比較する。例えば、上記の例Aで基準値が6,000ステップと定義された場合には、652ステップだけ見積りが大きいため、処理は実行しないと判断する。
あるいは、基準値として6,000+10%といったように幅を持たせた定義を許し、見積り値が6,000以内だったら実行を許可し、6,001〜6,600の範囲なら実行の待ち合わせ又はプライオリティを調節し、6,600を超えていれば実行しないと判断することができる。なお、ユーザ定義の基準値はダイナミックステップに限定されるものではなく、これをCPU時間又はCPU負荷率の単位に換算したものでもよい。
【0019】
(2)システム負荷状況との比較
見積られた時点のシステム負荷状況と見積り結果を比較する。システムの負荷状況としてCPU負荷を例にとれば、図3に示すような、システム余裕値(最大能力−実測値)との比較が考えられる。この実測値は、リアルタイムAPIによって求めることができる。リアルタイムAPIによる実測の結果は、各処理が参照可能な領域に、一定周期ごとに自処理とは非同期に更新されている。上記の見積式Aの場合は、比較に先立って次式で見積り値を実測値と同じ単位に変換する。
【0020】
見積り値〔%〕=(1命令当たりの平均命令実行時間×ダイナミックステップ数/リアルタイムAPIの更新周期)×100
仮に、1命令当たりの平均命令実行時間が10mS,リアルタイムAPIの更新周期が1分とすれば、1,652ステップは10mS×1652÷60000mS×100=27.5%となる。実測値として80%が得られたときの余裕値は20%となり、見積り値27.5%は余裕値20%より大きいため、処理は実行しないと判断できる。勿論、余裕値には、上記(1)の基準値と同様に、幅を持たせることも可能である。
【0021】
なお、上記見積り値の式において、高級言語(COBOL,C)の場合のダイナミックステップは、言語1命令当たりの平均展開命令数×1命令当たりの平均命令実行時間で求めることもできる。
図1に戻って、制御部5は、判定部4の判定の結果、処理を実行しない場合にその処理を制御するものである。その制御方法の例として次の4通りがある。どの方法で制御するかは、処理ごとに外部からの指定を可能とする。
【0022】
(1) 処理放棄
処理放棄を示す復帰コードなどを設定して、処理の呼出し元に復帰する。当然のことながら、処理が行われなかったために不都合が生じないように呼出し元とのインタフェースは守らなければならない。
(2) 待ち合わせ
一定時間待ち合わせに入り、その時間経過後、再び、資源収集部1に戻る。どのくらいの時間を待つかは、処理の性質又は属性によるが、外部からの指示の可能とする。
【0023】
(3) 実行プライオリティ調節
実行プライオリティを調節(一般的には、プライオリティを下げる)した後、上記(1)の復帰を行う。どの程度のプライオリティを調節するかは、外部から指定させてもよいし、システムに任せても良い。
(4) 一定周期または一定資源使用毎による制御
一定時間経過後に割り込みを発生、あるいはCPU時間など一定資源使用毎に割り込みを発生させるようにし、これら一定周期毎に処理を中断しながら、処理を実行する。(一定周期、一定資源毎に割り込みを発生させたり、割り込みで中断された処理を再開させる技術は公知である)
なお、図1には、バイパスルートが示されているが、これは、システム設計時の見積り精度が高く、本機構が無用な場合に利用される。
【0024】
以上説明したように、本例によれば、性能見積と性能監視を同時に実行することができる。したがって、システム設計時に性能見積を行う必要がなくなる。本例によれば、システム運用中にリアルタイムで自動的にシステム負荷に応じた正確なオーバヘッドが再見積りできるようになっている。また、見積り対象処理の実行がシステム運用に影響があるかどうかの判断もでき、処理の実行が制御できるようになる。
【0025】
以上、CPUオーバヘッドの見積りを例に説明したが、例えば、メモリ又はディスク資源などについても考え方は同じであり、同様の方法で、見積式と変数を変えることにより、性能見積と性能監視を行うことができる。
次に、以上説明した性能見積及び性能監視方法を各種処理に適用した例について説明する。
【0026】
図4は、性能監視モニタに適用した例を示す。
性能監視モニタ42は、ホストコンピュータ41のリアルタイムAPIと、パソコン43との間に接続される。これらの構成は公知のものであるので、詳細な説明は省略する。
に示した本機構44,45が、性能監視モニタ42の、レスポンス/処理時間/処理件数処理、バッファ不足の資源検出処理などに内蔵される。レスポンス/処理時間/処理件数処理、バッファ不足の資源検出処理などの見積り結果が基準値を超えた場合は、その性能データの処理は実行されず、その性能データはパソコン43に送信しない。
【0027】
したがって、パソコン43に送信されるデータは、常時監視画面の性能データと、その他の処理の基準値以下の性能データと、エラーメッセージとなり、それらが、パソコン43のサブ画面に表示される。
図5は、コンパイラへの適用例を示す。
コンパイラは、本機構52と見積式53,54…を内蔵したオブジェクト51を出力する。各関数/サブルーチンの見積式53,54は、再帰的に呼び出される。
【0028】
そして、アプリケーションが性能目標を満たしていなければ、アプリケーションの実行は自ら放棄することもできる。
また、デバッガに応用すれば、命令オフセットによるブレークポイントに加え、性能値によるブレークポイント(性能値が満足されないサブルーチンが現れた時点でブレークなど)も指定できる。
【0029】
さらに、アプリケーション実行中に性能監視の観点からプログラムを中断させたり、再開させたりすることができるようになる。これは、アプリケーションのテスト、特に、アプリケーションが運用される実環境において有効である。見積り結果のログを基にプログラムの改善箇所が得られると共に、見積り値の検証もできる。
【0030】
また、アプリケーション実行中に基準値を満足しなくなった場合の処置としては、システム状況との比較に基づき、コンパイルオプションで処理をその場で中断するか、続行するかを指定でき、見積り値をスケジューラなどに通知して、混み合っていれば、アプリケーションの実行を待ち合わせるなど、実行の制御を兼ねることもできるようになる。
【0031】
図6は、ダウンロード処理への適用例を示す。
パソコン通信でデータをダウンロードする際、時間により課金がされるので、ダウンロードにどのくらいの時間が掛かるかということが気になる。これに対処するため、図6に示すように、パソコン通信センタ61のダウンローダ62とパソコン64の間本機構63を接続する。
【0032】
この本機構63は、接続されている回線速度、転送ブロック数から所要時間を求める。また、基準値に例えば10分という値を指定しておく。本機構63の見積りの結果、それ以上の時間が掛かるようであれば、ダウンロードを自動的に中止することができる。また、その時点の回線負荷と比較することにより、空いてる回線に自動的に切り換えるか、負荷が下がるまでしばらくダウンロードを見合わせるといった処理もできるようになる。
【0033】
コピーコマンドへの適用例について説明する。
パソコンソフトは、CPU速度、メモリ容量、ディスク容量の制約を受け、その構成によってはソフトが動作しないことがある。したがって、ソフトの購入時には、事前調査を十分に行っておく必要がある。
これに対処するため、ソフトウエア提供媒体からパソコンへの複写用コマンドが、プログラム/データを複写する際に、複写されるプログラムの見積式に制御を渡し、そのパソコン環境による見積りを行う。そして、基準値以内であれば複写を許可し、そうでなければ複写を許可しない。
【0034】
この方法によれば、コピー先システムが実際に存在しなくても、コピー先システムを想定した見積りの基礎データを準備しておくことにより、提供媒体を入力して、どのパソコンなら使えるかが、そのパソコン上で実際に使ってみなくとも確認することができる。
【0035】
【発明の効果】
本発明によれば、システム設計時の性能見積を不要とし、システム運用中に、リアルタイムに自動的にソフトウエアの性能見積及び性能監視ができる。これにより、新たにプログラム修正を加えることなく、システムの負荷に応じて処理の実行を制御できるようになる。本発明により、計算機システムの信頼性を向上することができる。
【図面の簡単な説明】
【図1】本発明の方法を実行する機構を示す図。
【図2】本発明で用いる見積式の例を示す図。
【図3】本発明で用いる基準値のシステム負荷状況を説明するための図。
【図4】本発明を性能監視モニタに適用した例を示す図。
【図5】本発明をコンパイラへ適用した例を示す図。
【図6】本発明をダウンロード処理へ適用した例を示す図。
【符号の説明】
1…資源収集部
2…見積式実行部
3…外部記録部
4…判定部
5…制御部
6…処理本体
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a software performance estimation and performance monitoring method.
[0002]
[Prior art]
In recent years, there has been a demand for computer systems to increase the amount of data or transactions that can be processed. And even when the system scale increases, it is required to extract the maximum performance of the system. Conventionally, performance estimation at the time of system design has been indispensable in order to extract the maximum performance of the system. In addition, after starting the business, it was necessary to continuously monitor the system performance to see if the target performance was as designed.
[0003]
Here, in performance estimation at the time of design, an estimation formula is used in which the number of resources that increase according to the system scale becomes a variable. For this reason, particularly in a large-scale system, the substitution value to the estimation formula is determined considering the safety of system operation as a first priority. For example, the maximum load is set to a maximum value, the maximum value is multiplied by a safety factor to give a margin, or a large value is set in anticipation of future system expansion.
[0004]
For example, if the substitution value is a variable called the number of files, and if the numerical value including files temporarily created for work is 100, a numerical value of 120 multiplied by a safety factor of 1.2 is set. Alternatively, if the substitution value is a variable called the number of logged-in users, even if the maximum number of logged-in users at the beginning of business is limited to 300, if an increase in demand is expected in two to three years ahead, A large value of 400 is set in advance.
[0005]
As described above, the performance estimation often assumes an environment in which a process to be estimated operates or a system load at that time in the worst case. In such a conventional performance estimation method, various problems occur when the estimation based on the assumed load exceeds the allowable range in the design of the system. For example, even if the estimate based on the assumed load exceeds the allowable range in the design of the system, when the system is operating at a low load, such as the number of logged-in users is only 20th in the early morning, Processing can be performed. However, the conventional method for estimating the performance requires such measures as making the processing completely unusable or limiting the number of concurrent executions.
[0006]
As a specific example of this correspondence, performance estimation in the performance monitoring monitor will be described. The performance monitoring monitor displays the performance status of the system in real time .
As a result of SE's performance estimation for such a performance monitoring monitor, a function for displaying the performance status of a particularly large number of resources connected / configured to the system is used in daytime online operations. Suppose that there is an influence. In this case, on the user side, two methods are conceivable: a method that does not use only the function that has an influence on the operation side, or a method that corrects the program to disable the function.
[0007]
Here, if it is judged that guarding from the operation side is impossible because the operator may make an operation mistake, the function is not only included in daytime online work but also in nighttime batch work. A program fix is made to make it completely unusable. Specifically, the following two corrections are made.
a. Fix not to accept request by outputting error message even if PF key to call the function is pressed.
[0008]
b. A fix that prevents more than the specified number of performance monitoring monitors from starting.
[0009]
[Problems to be solved by the invention]
As described above, in the performance estimation at the time of conventional system design, the situation when the system load reaches a peak is taken into consideration. For this reason, even if the processing can be used when the system load is light, problems such as making it completely unusable or adding a program correction for it have arisen. In addition, there is a problem that it is difficult to obtain a highly reliable estimate because the estimate is based on an assumed load or a gap with an actual measurement value occurs after the system is operated due to a calculation error or the like.
[0010]
If a program that exceeds the system design tolerance is run continuously at a high priority due to an inadequate estimate, control will not be transferred to other programs, causing various problems. There was also.
It is an object of the present invention to provide a method that eliminates the need for performance estimation at the time of system design and can automatically perform software performance estimation and performance monitoring during system operation.
[0011]
[Means for Solving the Problems]
The present invention is a software performance estimation and performance monitoring method for achieving the above-described object, and immediately before the start of execution of each process of the software, the estimation formula built in the program of the process and the variable at that time are calculated. To calculate the processing load . This load is compared with a reference value, for example, a predetermined value set in advance or a load state of the system. Based on the result, it is determined whether or not the process can be executed.
[0012]
As a result of the determination, if it is determined that the process can be executed, the process is executed. If it is determined that the process cannot be executed, the control of the process, for example, the abandonment of the process, the waiting for the execution of the process, the adjustment of the priority of the execution of the process, or every fixed period or every fixed resource use Execution control by.
According to the present invention, it is possible to automatically estimate an accurate overhead in real time during system operation without performing performance estimation during system design. Further, it becomes possible to execute processing or control processing according to the system load without newly modifying the program. Therefore, the reliability of the computer system can be improved by the present invention.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
An embodiment of the present invention will be described with reference to FIG.
In the figure, reference numeral 11 denotes one of the processes included in the software. This process means a unit such as a function, a subroutine, a function, or a job. The illustrated process 11 includes a resource collection unit 1, an estimation formula execution unit 2, an external recording unit 3, a determination unit 4, and a control unit for executing performance estimation and performance monitoring before the processing body 6 to be estimated. 5 is built-in. Note that the resource collection unit 1 to the control unit 5 can be called from other sources without being included in the processing. In the following description, the resource collection unit 1 to the control unit 5 are collectively referred to as “main mechanism”.
[0014]
First, the operation of this mechanism shown in FIG. 1 will be described.
The resource collection unit 1 collects the number of resources, and collects values to be substituted into the variables of the estimation formula. If the assigned value relates to a resource handled in other processing, a resource collection subroutine is called, or a resource number notification interface is provided by referring to the value assigned to the OS control table. On the other hand, if the assigned value is a resource handled by the own process 11, the own process itself knows it, and thus no new interface is required.
[0015]
The estimation formula execution unit 2 executes the estimation formula by substituting the values collected by the resource collection unit 1 into the estimation formula variable. This estimation formula is built in at the head position of the program of its own processing. As an example of the estimation formula, if a certain process is shown in FIG. 2, the number of instructions is represented by an estimation formula of “23+ (23+ (45 + number of extents × 3)) × number of extent types + 5126”. The Here, when the substitution values of the number of extents and the number of types of extents are 33 and 9, the load of a certain process can be calculated as 6,652 steps. In the following description, the estimation formula is abbreviated as “estimation formula A”.
[0016]
Returning to FIG. 1, the external recording unit 3 records the estimation result of each processing 11 in an external file or displays it on a display device. If the estimation result of each process is recorded in an external file or the like, it can be verified whether the estimation at the time of design is correct by comparing the estimate at the time of system design with the recorded estimation result. Here, when the target performance determined by the system department is not achieved, it is possible to investigate what the processing with different loads is, and the cause can be easily determined.
[0017]
The determination unit 4 determines whether or not to execute the process. The determination unit 4 compares the estimation result of the estimation formula execution unit 2 with a reference value. Based on the comparison result, it is determined whether the transition is made to the control unit 5 (the process is not executed) or the control unit 5 is skipped (the process is executed). There are the following two examples of comparison. Which method is used for comparison can be designated from the outside for each process.
[0018]
(1) Comparison with user-defined reference value The estimated value is compared with a reference value (predetermined value) defined by the user in a file or the like. For example, if the reference value is defined as 6,000 steps in Example A above, it is determined that the process is not executed because the estimate is large by 652 steps.
Alternatively, a definition with a range such as 6,000 + 10% is allowed as a reference value, execution is permitted if the estimated value is within 6,000, and execution wait or priority is in the range of 6,001 to 6,600. If it exceeds 6,600, it can be determined not to execute. Note that the user-defined reference value is not limited to a dynamic step, and may be converted into a unit of CPU time or CPU load factor.
[0019]
(2) Comparison with system load status The system load status at the time of estimation is compared with the estimation result. Taking the CPU load as an example of the system load status, a comparison with a system margin value (maximum capacity-actual measurement value) as shown in FIG. 3 can be considered. This actual measurement value can be obtained by a real-time API. The result of actual measurement by the real-time API is updated asynchronously with the own process at regular intervals in an area where each process can be referred. In the case of the above estimation formula A, the estimated value is converted into the same unit as the actual measurement value by the following formula prior to the comparison.
[0020]
Estimated value [%] = (average instruction execution time per instruction × number of dynamic steps / real-time API update period) × 100
If the average instruction execution time per instruction is 10 mS and the update period of the real-time API is 1 minute, 1,652 steps are 10 mS × 1652 ÷ 60000 mS × 100 = 27.5%. When the actual measurement value of 80% is obtained, the margin value is 20%, and since the estimated value 27.5% is larger than the margin value 20%, it can be determined that the process is not executed. Of course, the margin value may have a width as in the case of the reference value (1).
[0021]
In the estimated value equation, the dynamic step in the case of a high-level language (COBOL, C) can also be obtained by the average number of expanded instructions per instruction of language × the average instruction execution time per instruction.
Returning to FIG. 1, the control unit 5 controls the process when the process is not executed as a result of the determination by the determination unit 4. There are the following four examples of the control method. Which method is to be controlled can be designated from the outside for each process.
[0022]
(1) Set a return code indicating processing abandonment and return to the caller of the processing. As a matter of course, the interface with the caller must be protected so that no inconvenience arises because the processing is not performed.
(2) Waiting Enters the waiting for a fixed time, and after that time, returns to the resource collection unit 1 again. The amount of time to wait depends on the nature or attributes of the process, but can be instructed from the outside.
[0023]
(3) Execution priority adjustment After the execution priority is adjusted (generally, the priority is lowered), the return of (1) is performed. How much priority is adjusted may be designated from the outside, or may be left to the system.
(4) Control by fixed period or fixed resource use Generates an interrupt after a fixed time elapses, or generates an interrupt for each fixed resource use such as CPU time, and executes the process while interrupting the process at each fixed period To do. (Techniques that generate interrupts at fixed intervals and at constant resources, or resume processing interrupted by interrupts are known)
Although a bypass route is shown in FIG. 1, this is used when the estimation accuracy at the time of system design is high and this mechanism is useless.
[0024]
As described above, according to this example, performance estimation and performance monitoring can be executed simultaneously. This eliminates the need for performance estimation during system design. According to this example, an accurate overhead corresponding to the system load can be automatically re-estimated in real time during system operation. It is also possible to determine whether the execution of the estimation target process has an effect on the system operation, and the execution of the process can be controlled.
[0025]
In the above, the estimation of the CPU overhead has been described as an example. However, for example, the concept is the same for memory or disk resources, and performance estimation and performance monitoring are performed by changing the estimation formula and variables in the same way. Can do.
Next, an example in which the above-described performance estimation and performance monitoring method is applied to various processes will be described.
[0026]
FIG. 4 shows an example applied to the performance monitoring monitor.
The performance monitoring monitor 42 is connected between the real-time API of the host computer 41 and the personal computer 43. Since these structures are well-known, detailed description is abbreviate | omitted.
The mechanisms 44 and 45 shown in FIG. 4 are incorporated in the response monitoring / processing time / processing count processing, buffer shortage resource detection processing, and the like of the performance monitoring monitor 42. If the estimation result of response / processing time / number of processes, detection of resource shortage of buffer, etc. exceeds the reference value, the processing of the performance data is not executed and the performance data is not transmitted to the personal computer 43.
[0027]
Therefore, the data transmitted to the personal computer 43 is the performance data of the constant monitoring screen, the performance data below the reference value for other processing, and an error message, which are displayed on the sub screen of the personal computer 43.
FIG. 5 shows an example of application to a compiler.
The compiler outputs an object 51 containing the mechanism 52 and estimation formulas 53, 54,. The estimation formulas 53 and 54 of each function / subroutine are called recursively.
[0028]
If the application does not meet the performance target, the execution of the application can be abandoned by itself.
When applied to a debugger, in addition to breakpoints due to instruction offsets, breakpoints based on performance values (such as a break when a subroutine whose performance values are not satisfied) can be specified.
[0029]
Furthermore, the program can be suspended or resumed from the viewpoint of performance monitoring during application execution. This is effective in application testing, particularly in an actual environment where the application is operated. Based on the log of the estimation result, the program can be improved and the estimated value can be verified.
[0030]
In addition, as a measure when the standard value is not satisfied during application execution, it is possible to specify whether to suspend the process on the spot or continue with the compile option based on the comparison with the system status. If it is busy, it can also be used to control execution, such as waiting for application execution.
[0031]
FIG. 6 shows an application example to the download process.
When downloading data via PC communication, you will be charged for the time, so you will be wondering how long it will take to download. In order to cope with this, as shown in FIG. 6, the main mechanism 63 is connected between the downloader 62 of the personal computer communication center 61 and the personal computer 64.
[0032]
This mechanism 63 obtains the required time from the connected line speed and the number of transfer blocks. For example, a value of 10 minutes is designated as the reference value. If it takes more time as a result of the estimation of the mechanism 63, the download can be automatically stopped. Further, by comparing with the line load at that time, it is possible to automatically switch to an available line or to wait for a while until the load decreases.
[0033]
An example of application to a copy command will be described.
Personal computer software is restricted by CPU speed, memory capacity, and disk capacity, and the software may not operate depending on the configuration. Therefore, it is necessary to conduct a preliminary survey before purchasing software.
In order to cope with this, when the command for copying from the software providing medium to the personal computer copies the program / data, it passes control to the estimation formula of the program to be copied, and performs estimation based on the personal computer environment. If it is within the reference value, copying is permitted, otherwise copying is not permitted.
[0034]
According to this method, even if the copy destination system does not actually exist, by preparing the basic data for the estimation assuming the copy destination system, it is possible to input the provided medium and which computer can be used. You can check it without actually using it on the computer.
[0035]
【The invention's effect】
According to the present invention, performance estimation at the time of system design is not required, and software performance estimation and performance monitoring can be automatically performed in real time during system operation. This makes it possible to control the execution of processing according to the system load without newly modifying the program. According to the present invention, the reliability of a computer system can be improved.
[Brief description of the drawings]
FIG. 1 shows a mechanism for carrying out the method of the present invention.
FIG. 2 is a diagram showing an example of an estimation formula used in the present invention.
FIG. 3 is a diagram for explaining a system load situation of a reference value used in the present invention.
FIG. 4 is a diagram showing an example in which the present invention is applied to a performance monitoring monitor.
FIG. 5 is a diagram showing an example in which the present invention is applied to a compiler.
FIG. 6 is a diagram showing an example in which the present invention is applied to download processing.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Resource collection part 2 ... Estimation formula execution part 3 ... External recording part 4 ... Determination part 5 ... Control part 6 ... Processing main body

Claims (7)

コンピュータを用いて、ソフトウエアの処理の実行開始直前に、その処理のプログラムごとに内蔵した見積式を用いて該処理プログラムの負荷を計算し、その値を該処理プログラムごとに用意された基準値と比較することにより、その処理を実行するか、又はその処理を制御するかを決定し、その決定に従って実行又は制御を行うことを特徴とするソフトウエアの性能見積及び性能監視方法。 Using a computer, immediately before the start of execution of software processing, the load of the processing program is calculated using an estimation formula built in each processing program , and the value is a reference value prepared for each processing program. A performance estimation and performance monitoring method for software, which determines whether to execute the process or to control the process by comparing with, and executes or controls according to the determination. 前記基準値が、予め定められた所定値であることを特徴とする請求項1記載のソフトウエアの性能見積及び性能監視方法。  2. The software performance estimation and performance monitoring method according to claim 1, wherein the reference value is a predetermined value. 前記基準値が、CPU負荷であることを特徴とする請求項1記載のソフトウエアの性能見積及び性能監視方法。  2. The software performance estimation and performance monitoring method according to claim 1, wherein the reference value is a CPU load. 前記処理の制御が、処理の放棄であることを特徴とする請求項1乃至3のいずれか1項に記載のソフトウエアの性能見積及び性能監視方法。  4. The software performance estimation and performance monitoring method according to claim 1, wherein the control of the process is abandonment of the process. 前記処理の制御が、処理の実行を待ち合わせることであることを特徴とする請求項1乃至3のいずれか1項に記載のソフトウエアの性能見積及び性能監視方法。  The software performance estimation and performance monitoring method according to claim 1, wherein the control of the process is waiting for execution of the process. 前記処理の制御が、処理の実行のプライオリティを調節することであることを特徴とする請求項1乃至3のいずれか1項に記載のソフトウエアの性能見積及び性能監視方法。  4. The software performance estimation and performance monitoring method according to claim 1, wherein the control of the process is to adjust a priority of execution of the process. 5. 前記処理の制御が、処理の実行を一定周期または一定資源使用毎に行うことを特徴とする請求項1乃至3のいずれか1項に記載のソフトウエアの性能見積及び性能監視方法。  The software performance estimation and performance monitoring method according to any one of claims 1 to 3, wherein the control of the processing is performed at a constant cycle or at every constant resource use.
JP34404795A 1995-12-28 1995-12-28 Software performance estimation and performance monitoring method Expired - Fee Related JP3703549B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34404795A JP3703549B2 (en) 1995-12-28 1995-12-28 Software performance estimation and performance monitoring method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP34404795A JP3703549B2 (en) 1995-12-28 1995-12-28 Software performance estimation and performance monitoring method

Publications (2)

Publication Number Publication Date
JPH09185532A JPH09185532A (en) 1997-07-15
JP3703549B2 true JP3703549B2 (en) 2005-10-05

Family

ID=18366251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34404795A Expired - Fee Related JP3703549B2 (en) 1995-12-28 1995-12-28 Software performance estimation and performance monitoring method

Country Status (1)

Country Link
JP (1) JP3703549B2 (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS603216B2 (en) * 1977-12-26 1985-01-26 富士通株式会社 Data processing system operation control method
JPS6279535A (en) * 1985-10-02 1987-04-11 Fujitsu Ltd Operation control system for test system in single computer system
JPS6336341A (en) * 1986-07-31 1988-02-17 Toshiba Corp Control method for cpu load demand
JPH0328939A (en) * 1989-06-27 1991-02-07 Toshiba Corp Cpu load monitor device
JPH05100912A (en) * 1991-10-08 1993-04-23 Oki Electric Ind Co Ltd Processing elapsed time informing method for program
JPH05324497A (en) * 1992-05-21 1993-12-07 Oki Electric Ind Co Ltd Real-time data processor
JPH07141305A (en) * 1993-11-16 1995-06-02 Hitachi Ltd Control method for execution of parallel computer
JPH07271614A (en) * 1994-04-01 1995-10-20 Hitachi Ltd Priority control system for task restricted in execution time

Also Published As

Publication number Publication date
JPH09185532A (en) 1997-07-15

Similar Documents

Publication Publication Date Title
US7716643B2 (en) Methods and apparatus for software profiling
JP3965142B2 (en) Method, system and software product for debugging a computer program
JP2692609B2 (en) Multitask program debugging method and apparatus
JP2749528B2 (en) Tracer system for error analysis
JP4321705B2 (en) Apparatus and storage system for controlling acquisition of snapshot
US6223304B1 (en) Synchronization of processors in a fault tolerant multi-processor system
US9003367B2 (en) Specific debug trace collecting
JPH02208740A (en) Virtual computer control system
JPH05197568A (en) Computer system and method of event management
JPS62298839A (en) Restarting of computer system in case of disturbance
JPH0823837B2 (en) Sampling performance analysis method and device
US7228544B2 (en) Job processing method, job processing unit, and storage managing system
US8074123B2 (en) Multi-CPU failure detection/recovery system and method for the same
US8225289B2 (en) Method and system for improved tool interaction with a target
JP3703549B2 (en) Software performance estimation and performance monitoring method
KR20200128589A (en) Information processing device, tuning method and tuning program stored in recording medium
US6463492B1 (en) Technique to automatically notify an operating system level application of a system management event
JPH10240568A (en) Emulator device and emulation method
JP2014139845A (en) Data processing system, computer program thereof and data processing method
JP2653412B2 (en) How to set breakpoints
JP2677249B2 (en) Program debugging method and debugger for multiprocessor system
JPH1145193A (en) Method and device for supporting software development, and recording medium
JP2795676B2 (en) Program trace device
JP2817473B2 (en) Debug system
JP2001325122A (en) Debugging system and its method

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20031028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031127

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040119

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20040220

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050720

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080729

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090729

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100729

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100729

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110729

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110729

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120729

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees