JP2007199811A - プログラム制御方法、計算機およびプログラム制御プログラム - Google Patents
プログラム制御方法、計算機およびプログラム制御プログラム Download PDFInfo
- Publication number
- JP2007199811A JP2007199811A JP2006014703A JP2006014703A JP2007199811A JP 2007199811 A JP2007199811 A JP 2007199811A JP 2006014703 A JP2006014703 A JP 2006014703A JP 2006014703 A JP2006014703 A JP 2006014703A JP 2007199811 A JP2007199811 A JP 2007199811A
- Authority
- JP
- Japan
- Prior art keywords
- business
- request
- computer
- processing
- stopped
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 260
- 230000008569 process Effects 0.000 claims abstract description 186
- 230000004044 response Effects 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 6
- 101100190462 Caenorhabditis elegans pid-1 gene Proteins 0.000 description 24
- 238000010586 diagram Methods 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 10
- 238000010187 selection method Methods 0.000 description 4
- 239000000725 suspension Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5022—Workload threshold
Abstract
【課題】計算機において、業務処理で複数のプロセスにまたがる複数のプログラムを並列実行する場合に、業務処理の同時実行数を制御する。
【解決手段】計算機100の主記憶装置20は、業務ごとに実行中の業務処理に固有のリクエスト識別子を管理する業務実行状態管理テーブル311と、リクエスト識別子ごとに、業務処理を実行中の実行単位を管理するリクエストトレース331と、実行単位ごとにリソース使用量を管理するリソース使用状況テーブル510とを備える。CPU10は、510に設定された実行単位ごとのリソース使用量を、331を参照してリクエスト識別子ごとに集計する。集計した値を、311を参照して業務ごとに合計する。合計した値が最大である業務を、停止すべき業務とする。311に管理される停止すべき業務のリクエスト識別子から、所定の選択条件によって、停止すべきものを選択し、そのリクエスト識別子の業務処理を停止する。
【選択図】図1
【解決手段】計算機100の主記憶装置20は、業務ごとに実行中の業務処理に固有のリクエスト識別子を管理する業務実行状態管理テーブル311と、リクエスト識別子ごとに、業務処理を実行中の実行単位を管理するリクエストトレース331と、実行単位ごとにリソース使用量を管理するリソース使用状況テーブル510とを備える。CPU10は、510に設定された実行単位ごとのリソース使用量を、331を参照してリクエスト識別子ごとに集計する。集計した値を、311を参照して業務ごとに合計する。合計した値が最大である業務を、停止すべき業務とする。311に管理される停止すべき業務のリクエスト識別子から、所定の選択条件によって、停止すべきものを選択し、そのリクエスト識別子の業務処理を停止する。
【選択図】図1
Description
本発明は、計算機において、プログラムを並行実行する場合のプログラム制御技術に関する。
オンラインシステムを構成する計算機は、その計算機にインストールされたプログラムに対する、その計算機の入力端末またはオンライン接続された他の計算機から送られた要求(リクエスト)を処理する。計算機が複数の要求を処理する場合に、性能向上などのためにアプリケーションプログラムを所定の処理単位(例えば、プロセス)に割り当てることによって、同時に実行することがある。そして、その処理を効率よく進めるために、その同時実行数をプロセス単位に制御する技術がある(例えば特許文献1参照)。これによると、1つの要求に対応する業務処理が1つのプロセスで実行される場合には、同時実行数を業務単位に制御できることになる。
特開平9−305414号公報
しかしながら、業務処理では、1つのプロセス上で1つのアプリケーションプログラムが実行されるとは限らず、1つのアプリケーションプログラムが動作するプロセスが複数存在し、それぞれのプロセス上でアプリケーションプログラムが実行される場合には、業務処理におけるプログラムの同時実行数を制御することができないという問題がある。
そこで、本発明は、前記問題に鑑み、計算機において、業務処理で複数のプロセスにまたがる複数のプログラムを並列実行する場合に、業務処理の同時実行数を制御する手段を提供することを課題とする。ここでいうアプリケーションプログラムは、あるプロセスにおいて起動(実行)されるプログラムをいう。
前記課題を解決する本発明は、送られた要求に対して業務処理を行う計算機が、その業務処理を複数のプロセスにまたがる複数のプログラムによって実行する場合に、業務処理の実行数を制御するプログラム制御方法であって、計算機の記憶部が、業務処理ごとのリソース使用量を管理し、計算機の処理部が、リソース使用量が所定の閾値を超えたときに、リソース使用量が最大である業務処理を停止することを主な特徴とする。なお、本発明は、他のプログラム制御方法、計算機およびプログラム制御プログラムを含む。
本発明によれば、計算機において、業務処理で複数のプロセスにまたがる複数のプログラムを並列実行する場合に、業務処理の同時実行数を制御することができる。
以下、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
≪計算機の構成と概要≫
図1は、本発明の実施の形態に係る計算機の構成を示す図である。計算機100は、CPU(Central Processing Unit、処理部)10および主記憶装置(記憶部)20を含んで構成される。CPU10は、主記憶装置20にロードされたプログラムを実行する中央処理装置である。主記憶装置20は、CPU10によって実行されるプログラムや参照、更新されるデータを記憶するメモリである。
図1は、本発明の実施の形態に係る計算機の構成を示す図である。計算機100は、CPU(Central Processing Unit、処理部)10および主記憶装置(記憶部)20を含んで構成される。CPU10は、主記憶装置20にロードされたプログラムを実行する中央処理装置である。主記憶装置20は、CPU10によって実行されるプログラムや参照、更新されるデータを記憶するメモリである。
主記憶装置20には、業務管理部30、業務停止部40およびリソース監視部50がロードされるとともに、プログラム(以下、アプリケーションという)に対するリクエスト(要求)を受けて業務処理を実行するプロセスが生成される。
業務管理部30は、業務処理の実行を管理する機能を有し、業務実行状態記録部310、業務実行優先度定義部320、リクエストトレース記録部330およびアプリケーショントレース記録部340を含んで構成される。業務実行状態記録部310は、業務ごとのアプリケーションの構成やその実行状態を管理する業務実行状態管理テーブル311を記録する。その詳細は後述する(図2参照)。業務実行優先度定義部320は、業務処理を実行する優先度を定義する業務実行優先度定義テーブル321を有する。その詳細は後述する(図3参照)。リクエストトレース記録部330は、リクエストに対する業務処理に係るアプリケーションのメソッドをスタックするリクエストトレース(処理トレース)331を記録する。その詳細は後述する(図4参照)。アプリケーショントレース記録部340は、リクエストに対する処理の開始時刻や終了時刻などのアプリケーショントレース341を記録する。その詳細は後述する(図5参照)。
業務停止部40は、業務処理の実行を停止する機能を有し、同時実行数調整比率定義テーブル410およびリクエスト停止方法定義テーブル420を含んで構成される。同時実行数調整比率定義テーブル410は、業務処理を停止する場合の、同時実行数を調整するための比率を定義する。その詳細は後述する(図6参照)。リクエスト停止方法定義テーブル420は、業務処理を停止する場合の、その停止方法を定義する。その詳細は後述する(図7参照)。
リソース監視部50は、業務処理の実行においてメモリなどのリソースの状況を監視する機能を有し、リソース使用状況テーブル510およびリソース閾値定義テーブル520を含んで構成される。リソース使用状況テーブル510は、CPUやメモリの使用状況(リソース使用量)を示す。その詳細は後述する(図8参照)。リソース閾値定義テーブル520は、業務処理を停止する場合に判断基準となる閾値を定義する。その詳細は後述する(図9参照)。
プロセスは予め生成され、外部(入力端末または他の計算機)からアプリケーションに対するリクエストを受信した場合に、そのリクエストに対応した処理がプロセス上で実行される。プロセス上では、スレッドを起動して処理を実行する。プロセス上で、複数のリクエストに対応した複数の処理が同時に実行されることになるが、その同時に実行されるリクエストの数が、同時実行数である。換言すれば、複数のリクエストに対応した複数の業務処理の数が、同時実行数である。
実行単位とは、業務内の各アプリケーションのメソッドを実行するプロセス上の単一のスレッドを表す。複数のリクエストを受けて同一アプリケーションの同一のメソッドを実行する場合、そのリクエストごとに実行単位(スレッド)は異なると言える。
実行単位とは、業務内の各アプリケーションのメソッドを実行するプロセス上の単一のスレッドを表す。複数のリクエストを受けて同一アプリケーションの同一のメソッドを実行する場合、そのリクエストごとに実行単位(スレッド)は異なると言える。
なお、1つのリクエストに対して、1つのアプリケーションの処理が実行されるとは限らない。図1に示すように、所定のリクエストに対して、アプリケーション1が実行され、そのアプリケーション1からアプリケーション2がコール(呼び出し)されたり、アプリケーション3がコールされたりする。また、アプリケーション1からコールされたアプリケーション2によって、さらにアプリケーション3がコールされることもある。なお、ここでは、プロセスAがアプリケーション1の処理を実行し、プロセスBがアプリケーション2の処理を実行し、プロセスCがアプリケーション3の処理を実行するものとする。すなわち、1つのリクエストに対する業務処理が、複数のプロセスにまたがる複数のアプリケーションで行われるのである。この場合に、アプリケーション間のコールは、プロセス間通信によって行われる。
計算機100の動作概要としては、業務処理を実行している間に、リソース使用量が閾値を超えた場合に、リソース監視部50がその旨を業務停止部40に通知する。次に、業務停止部40が、その通知を受けて、業務管理部30やリソース監視部50のテーブルやトレースを参照し、所定の手順に従って停止すべき業務およびその処理を決定する。そして、その決定した処理に係るスレッド(実行単位)を順に停止する。
≪テーブルの構成≫
図2は、業務実行状態管理テーブルの構成を示す図である。業務実行状態管理テーブル311は、業務ごとにアプリケーションの構成やその実行状態を管理するテーブルであり、業務ID、アプリケーションの構成および実行中の業務のリクエスト識別子を項目として含むレコードから構成される。業務IDは、リクエストに対応した業務に固有の番号である。アプリケーションの構成は、業務IDに対応した業務処理を行うのに具体的に実行されるプロセス、アプリケーションおよびそのメソッドを示すものであり、業務IDごとに事前に登録される。業務IDごとのアプリケーションの構成は、1つの場合もあるし、複数の場合もある。そのメソッドを実行する単位がスレッドである。
図2は、業務実行状態管理テーブルの構成を示す図である。業務実行状態管理テーブル311は、業務ごとにアプリケーションの構成やその実行状態を管理するテーブルであり、業務ID、アプリケーションの構成および実行中の業務のリクエスト識別子を項目として含むレコードから構成される。業務IDは、リクエストに対応した業務に固有の番号である。アプリケーションの構成は、業務IDに対応した業務処理を行うのに具体的に実行されるプロセス、アプリケーションおよびそのメソッドを示すものであり、業務IDごとに事前に登録される。業務IDごとのアプリケーションの構成は、1つの場合もあるし、複数の場合もある。そのメソッドを実行する単位がスレッドである。
実行中の業務のリクエスト識別子は、リクエストに対応した業務処理を最初に実行するスレッドを示す識別子であり、具体的にはプロセスに固有のプロセスIDおよびスレッドに固有のスレッドIDからなる。これは、業務処理に固有なデータ(処理ID)である。図2を参照すると、例えば、(p(process)id1,t(thread)id1)などのように示している。実行中の業務のリクエスト識別子は、古いものから順番に格納されているものとする。なお、業務1および業務2については、複数の処理が実行中であるが、業務3については、実行中のスレッドがないので処理が実行されていないことが分かる。
図3は、業務実行優先度定義テーブルの構成を示す図である。業務実行優先度定義テーブル321は、リクエストに対応した業務処理を実行する場合に、複数の業務処理に関する優先度を定義するテーブルであり、業務IDおよびレベルを項目として含むレコードから構成される。業務IDは、リクエストに対応した業務に固有の番号である。レベルは、業務処理の優先度を示すものであり、ここでは、業務1、業務2および業務3に対して、それぞれ高、低および中の優先度が付けられている。従って、優先順位は、業務1、業務3、業務2の順となる。業務実行優先度定義テーブル321は、停止する業務処理を決定する場合に、優先度が低い業務処理を選択するための判断基準となるものであり、事前に登録される。
図4は、リクエストトレースの構成を示す図である。リクエストトレース331は、リクエストに対する業務処理に係るアプリケーションのメソッドをスタックするものであり、リクエスト識別子およびスタックを項目として含むレコードから構成される。リクエスト識別子は、リクエストに対応した業務処理を実行している最初のスレッドを示す識別子であり、プロセスIDおよびスレッドIDからなる。これによると、リクエスト識別子は、リクエストに対応した業務処理に固有なデータ(処理ID)となる。スタックは、リクエスト識別子に対応した業務処理を実行している、アプリケーションのメソッドのネスト(コール関係の深さ)を示す。図4に示すように、例えば、リクエスト識別子pid1,tid1のスタックは、下からアプリケーション1メソッドa、アプリケーション2メソッドb、アプリケーション3メソッドcの順にスタックされている。これは、図2に示す業務1のアプリケーションの構成に対応したものになっている。また、図4には示されていないが、アプリケーションのメソッドに対応して、その処理を実行するプロセスのプロセスIDおよびスレッドのスレッドIDが記録されているものとする。
図5は、アプリケーショントレースの構成を示す図である。アプリケーショントレース341は、リクエスト識別子および開始時刻,終了時刻を含むレコードから構成される。リクエスト識別子は、リクエストに対応した業務処理を実行している最初のスレッドを示す識別子であり、プロセスIDおよびスレッドIDからなる。開始時刻,終了時刻は、スレッドの処理が開始した時刻および終了した時刻である。従って、アプリケーショントレース341の開始時刻があって、終了時刻がない場合には、リクエスト識別子に対応する業務処理のスレッドが実行中であることを示す。また、(アプリケーション1,アプリケーション2)は、当該スレッドが、アプリケーション1からコールされたアプリケーション2の実行単位であることを示す。
図6は、同時実行数調整比率定義テーブルの構成を示す図である。同時実行数調整比率定義テーブル410は、業務処理を停止する場合に、同時に実行されるリクエストの数を調整するための比率を定義するテーブルであり、業務の同時実行数削減割合を項目として含むレコードから構成される。業務の同時実行数削減割合は、停止する業務処理が決まった場合に、どのくらいのリクエストを停止するのかを示す。図6では、例えば、業務の同時実行数削減割合が50%になっており、同時に実行されているリクエストの数の50%を削減することが示されている。同時実行数調整比率定義テーブル410は、事前に登録される。
図7は、リクエスト停止方法定義テーブルの構成を示す図である。リクエスト停止方法定義テーブル420は、停止するリクエストの選択方法を項目として含むレコードから構成される。停止するリクエストの選択方法は、停止する業務処理を選択する基準を示すものであり、図7に示す「1:経過時間優先」のほか、「2:受付順優先」や「3:スタックの深さ優先」などがある。
経過時間優先は、処理開始後、経過時間が長い業務処理を選択するものである。これは、経過時間が長い処理は、障害によってハングアップしている可能性があるので、優先して停止させるという考え方による。次に、受付順優先は、リクエストの受付順が新しい業務処理を選択するものである。これは、受付順が新しい処理は、処理を開始してから間もないため、停止による手戻りなどの影響が少ないので、優先して停止させるという考え方による。そして、スタックの深さ優先は、スタックの深い業務処理を選択するものである。これは、スタックの深い処理は、その分メモリなどのリソースを消費している可能性があるので、優先して停止させるという考え方による。リクエスト停止方法定義テーブル420については、停止するリクエストの選択方法がユーザによって選択可能であり、その選択結果が事前に登録される。これによれば、ユーザは、業務処理の特性などを考慮して、適切な「停止するリクエストの選択方法」を決めることができる。
図8は、リソース使用状況テーブルの構成を示す図である。リソース使用状況テーブル510は、スレッドごとにCPUやメモリの使用状況を示すテーブルであり、プロセスID、スレッドID、CPU利用率およびメモリ使用量を項目として含むレコードから構成される。プロセスIDは、プロセスに固有の番号である。スレッドIDは、プロセス内でスレッドに固有の番号である。CPU利用率(単位:%)は、そのスレッドが処理をする場合のCPUの利用率を示す。メモリ使用量(単位:MByte)は、そのスレッドが処理をする場合のメモリの使用量を示す。
図9は、リソース閾値定義テーブルの構成を示す図である。リソース閾値定義テーブル520は、プロセスIDおよび閾値情報を項目として含むレコードから構成される。プロセスIDは、プロセスに固有の番号である。閾値情報は、業務処理を停止するか否かの判断基準を示すものであり、CPU利用率やメモリ使用量が閾値として設定される。図9によると、例えば、プロセスIDpid1の業務処理は、CPU利用率が40%を超えた場合、または、メモリ使用量が1024MBを超えた場合に停止するべきであることが分かる。なお、CPU利用率やメモリ使用量が閾値を超えた場合に停止してもよいし、閾値を含んでそれ以上になった場合に停止してもよい。リソース閾値定義テーブル520は、事前に登録される。
≪計算機の処理≫
次に、前記のような機能構成およびテーブルを有する計算機100が、同時実行のリクエスト数を業務単位に制御する処理について説明する。まず、計算機100の初期化処理を説明する。次に、計算機100が外部からリクエストを受信した場合の処理を説明し、その中で業務処理の停止を行う手順を概説する。そして、その手順である、停止対象の業務を決定する処理、停止対象のリクエストを決定する処理およびリクエストの停止処理をそれぞれ詳細に説明する。さらに、トレース記録およびリクエスト停止の処理の具体例を説明する。
次に、前記のような機能構成およびテーブルを有する計算機100が、同時実行のリクエスト数を業務単位に制御する処理について説明する。まず、計算機100の初期化処理を説明する。次に、計算機100が外部からリクエストを受信した場合の処理を説明し、その中で業務処理の停止を行う手順を概説する。そして、その手順である、停止対象の業務を決定する処理、停止対象のリクエストを決定する処理およびリクエストの停止処理をそれぞれ詳細に説明する。さらに、トレース記録およびリクエスト停止の処理の具体例を説明する。
図10は、初期化処理を示すフローチャートである。この初期化処理は、計算機100が各テーブルの設定値を事前に登録する処理であり、計算機100の電源投入時にデフォルト値として、または、ユーザの選択によって設定する処理である。まず、業務管理部30は、業務実行状態管理テーブル311に業務実行状態を登録する(S1001)。ここで、業務実行状態とは、業務IDに対応する業務処理におけるアプリケーションの構成である(図2参照)。次に、業務管理部30は、業務実行優先度定義テーブル321に業務実行優先度を登録する(S1002)。ここで、業務実行優先度とは、業務IDに対応する業務処理のレベルである(図3参照)。そして、業務停止部40は、同時実行数調整比率定義テーブル410に同時実行数調整比率を登録する(S1003)。ここで、同時実行数調整比率とは、業務の同時実行数削減割合である(図6参照)。続いて、業務停止部40は、リクエスト停止方法定義テーブル420にリクエスト停止方法を登録する(S1004)。ここで、リクエスト停止方法とは、停止するリクエストの選択方法である(図7参照)。さらに、リソース監視部50は、リソース閾値定義テーブル520にリソース閾値を登録する(S1005)。ここで、リソース閾値とは、プロセスIDに対応したプロセスのCPU利用率およびメモリ使用量である(図9参照)。
図11は、リクエスト受信処理を示すフローチャートである。この処理は、計算機100がその入力端末または他の計算機からリクエストを受信した場合の処理である。まず、計算機100は、アプリケーションに対するリクエストを受信する(S1101)。そして、これをトリガにして、リソース監視部50が既に実行中の業務処理についてリソースの閾値を超えた否かを判断する(S1102)。具体的には、リソース使用状況テーブル510を参照して、同じプロセスIDごとに、スレッドのCPU利用率およびメモリ使用量をそれぞれ合計し、その合計値がリソース閾値定義テーブル520の閾値情報を超えたか否かをチェックする。
リソースの閾値を超えた場合には(S1102のYes)、計算機100は、受信したリクエストの処理は行わないので、その要求元にエラーメッセージを送信する(S1103)。そして、リソース監視部50は、業務停止部40にリソース閾値の超過を通知する(S1104)。これに対して、業務停止部40は、まず、停止する対象となる業務処理を決定する(S1105)。次に、停止する対象となるリクエストを決定する(S1106)。そして、実際にリクエストを停止した(S1107)後、リクエスト受信処理を終了する。なお、S1105、S1106およびS1107の処理の詳細は後述する(図13、図14および図15参照)。
リソースの閾値を超えていない場合(S1102のNo)、計算機100は、受信したリクエストを受け付けて(S1108)、そのリクエストに対応した業務処理(リクエスト処理)を行う(S1109)。その詳細は後述する(図12参照)。その業務処理を行った後、リクエスト受信処理を終了する。
ここで、リソースの閾値を超えた場合に(S1102のYes)、エラーメッセージを送信することなく、受信したリクエストをキューに配置して、その処理を一旦待たせるようにしてもよい。このとき、リクエストを停止した(S1107)後、リクエスト受信処理を終了することなく、再度リソースの閾値を超えた否かを判断する(S1102)。これによれば、リソースの閾値チェックおよびリクエスト停止を行って、リソースの閾値を超えない状態になった場合に、キューに配置したリクエストに対応した業務処理を行うことができる。なお、リソースの閾値チェックおよびリクエスト停止を行っている間に、所定の時間が経過したときには、処理のタイムアウトを意味するエラーメッセージを要求元に送信するようにしてもよい。
図12は、リクエスト処理の詳細な動作を示すシーケンス図である。このシーケンス図では、業務処理の詳細ではなく、アプリケーション間にまたがる処理の制御上必要な動作を中心に説明する。まず、アプリケーション1は、リクエスト1を受信すると、リクエスト識別子を割り当てる(S1201)。具体的には、アプリケーション1のプロセスが、リクエスト1を受け付けて、その業務処理をスレッドで実行するが、そのときのプロセスに固有のプロセスIDおよび最初に実行するスレッドに固有のスレッドIDをリクエスト識別子とする。次に、入口トレースを記録する(S1202)。具体的には、業務実行状態管理テーブル311(図2参照)にリクエスト識別子を登録する。さらに、リクエストトレース331のリクエスト識別子に対応するスタック(図4参照)に、自らのアプリケーション名およびメソッド名を記録するとともに、アプリケーショントレース341のリクエスト識別子に対応する開始時刻に現在の時刻を記録する(以下同様)。そして、アプリケーション1は、アプリケーション2をコールする。
アプリケーション2は、コールされた直後に入口トレースを記録する(S1203)。そして、アプリケーション3をコールする。アプリケーション3は、コールされた直後に入口トレースを記録する(S1204)。次に、コール元にリターンする直前に、出口トレースを記録する(S1205)。具体的には、リクエストトレース331のリクエスト識別子に対応するスタック(図4参照)から、自身のアプリケーション名およびメソッド名を削除するとともに、アプリケーショントレース341のリクエスト識別子に対応する終了時刻に現在の時刻を記録する(以下同様)。そして、アプリケーション2にリターンする。
アプリケーション2は、コール元にリターンする直前に、出口トレースを記録する(S1206)。そして、アプリケーション1にリターンする。アプリケーション1は、処理を終了する直前に、出口トレースを記録する(S1207)。なお、出口トレースを記録する場合には、業務実行状態管理テーブル311(図2参照)のリクエスト識別子を削除する。そして、要求元に何らかの応答を送信して、処理を終了する。
一方、アプリケーション1は、リクエスト2を受信した場合には、リクエスト識別子を割り当てて(S1208)、業務実行状態管理テーブル311(図2参照)にリクエスト識別子を登録し、入口トレースを記録する(S1209)。そして、アプリケーション3をコールする。アプリケーション3は、コールされた直後に入口トレースを記録する(S1210)。その後、コール元にリターンする直前に、出口トレースを記録する(S1211)。そして、アプリケーション1にリターンする。アプリケーション1は、処理を終了する直前に、出口トレースを記録する(S1212)。この場合、業務実行状態管理テーブル311(図2参照)のリクエスト識別子を削除する。そして、要求元に何らかの応答を送信して、処理を終了する。
図13は、停止対象の業務を決定する処理を示すフローチャートである。計算機100の業務停止部40は、業務管理部30の業務実行状態管理テーブル311から業務実行状態を取得する(S1301)。また、リソース監視部50のリソース使用状況テーブル510からリソース使用状況を取得する(S1302)。そして、取得した業務実行状態およびリソース使用状況からリソース使用量が最大である業務を抽出する(S1303)。具体的には、まず、業務実行状態管理テーブル311から業務IDごとに実行中の業務のリクエスト識別子を取得する。次に、リクエストトレース331を参照して、リクエスト識別子の業務処理を実行中のプロセスIDとスレッドID(スタックに含まれる)を取得する。続いて、リソース使用状況テーブル510を参照して、その実行中のプロセスIDとスレッドIDのCPU利用率およびメモリ使用量を、それぞれリクエスト識別子ごとに集計し、さらに、その集計した値を業務IDごとに合計する。そして、CPU利用率の合計値またはメモリ使用量の合計値が最大である業務IDを抽出する。
業務停止部40は、抽出された業務が複数あるか否かを判断する(S1304)。これは、CPU利用率の合計値またはメモリ使用量の合計値が最大である業務IDが複数あるか否かによって判断する。複数ある場合には(S1304のYes)、業務実行優先度定義テーブル321から複数ある業務IDのレベル(業務実行優先度)を取得する(S1305)。そして、取得したレベルのうち、レベル(業務実行優先度)が最も低いものを抽出する(S1306)。それが、停止対象の業務となる。なお、レベルが最も低いものが複数抽出された場合には、そのすべてが停止対象の業務となる。S1304で抽出された業務が1つである場合には(S1304のNo)、その1つの業務が停止対象となる。
図14は、停止対象のリクエストを決定する処理を示すフローチャートである。計算機100の業務停止部40は、まず、業務管理部30の業務実行状態管理テーブル311からリクエスト実行状態を取得する(S1401)。具体的には、業務実行状態管理テーブル311から、停止対象の業務IDについて実行中の業務のリクエスト識別子の数を把握する。これは、当該業務の現在実行中のリクエスト数を把握することを意味する。次に、同時実行数調整比率定義テーブル410から業務の同時実行数削減割合(同時実行数調整比率)を取得する(S1402)。そして、取得した実行中のリクエスト数および業務の同時実行数削減割合を積算することによって、停止すべきリクエスト数を決定する(S1403)。
続いて、業務停止部40は、リクエスト停止方法定義テーブル420から停止するリクエストの選択方法(リクエスト停止方法)を取得する(S1404)。停止方法のタイプが1(経過時間優先)である場合(S1405の1)、業務管理部30からアプリケーショントレース341を取得する(S1406)。そして、開始時刻が設定されていて、終了時刻が設定されていないもののうち、開始時刻からの現在時刻までの経過時間が長いリクエスト識別子を停止リクエスト数分抽出する(S1407)。
停止方法のタイプが2(受付順優先)である場合(S1405の2)、業務停止部40は、業務管理部30の業務実行状態管理テーブル311(業務実行状態)を取得する(S1408)。そして、実行中の業務のリクエスト識別子を下から順に、すなわち、受付順が新しいリクエストを停止リクエスト数分抽出する(S1409)。
停止方法のタイプが3(スタックの深さ優先)である場合(S1405の3)、業務停止部40は、業務管理部30のリクエストトレース331を取得する(S1410)。そして、スタックされているアプリケーションのメソッドの数が多い、すなわち、スタックの深いリクエストを停止リクエスト数分抽出する(S1411)。なお、停止すべきリクエストを抽出したら、処理を終了する。
図15は、アプリケーションの停止処理を示すフローチャートである。計算機100の業務停止部40は、まず、業務管理部30からリクエストトレース331を取得する(S1501)。次に、そのリクエストトレース331からスタックを抽出する(S1502)。そして、そのスタックの情報に基づいて、図14のフローチャートで示した停止対象のリクエスト決定処理で抽出したリクエストを受け付けるアプリケーションの入口を閉塞する(S1503)。具体的には、サーバプログラムに対して、当該リクエストを受信した場合に、そのリクエストを受け付けることなく、その要求元にエラーメッセージを送信するように指示する。続いて、現在実行中のスレッドから順にスレッドを停止する(S1504)。具体的には、スタックの上から順にアプリケーションのメソッドの実行を中止する。さらに、停止したリクエストに該当するリクエストトレース331を削除する(S1505)。これは、蓄積されたトレース情報ではなく、実行を停止されたリクエスト自体のトレース(瞬間値)を削除するものである。従って、停止されたリクエストは処理されなかったものとみなされる。また、業務実行状態管理テーブル311における実行中の業務のリクエスト識別子を削除する(S1506)。これは、停止されたリクエストは実行中でなくなるので、それに対応するリクエスト識別子を削除するものである。
≪トレース記録の具体例≫
次に、複数のプロセスにまたがった複数のアプリケーションの実行によって業務処理が行われる場合の、トレース記録の具体例について説明する。図16および図17は、図12のリクエスト1の業務処理におけるトレース記録の各ステップをタイミングとした遷移を示す図である。ここでは、遷移するトレースとして、業務実行状態管理テーブル311の「実行中の業務のリクエスト識別子」(図2参照)、リクエストトレース331の「スタック」(図4参照)および「アプリケーショントレース」341(図5参照)を示している。
次に、複数のプロセスにまたがった複数のアプリケーションの実行によって業務処理が行われる場合の、トレース記録の具体例について説明する。図16および図17は、図12のリクエスト1の業務処理におけるトレース記録の各ステップをタイミングとした遷移を示す図である。ここでは、遷移するトレースとして、業務実行状態管理テーブル311の「実行中の業務のリクエスト識別子」(図2参照)、リクエストトレース331の「スタック」(図4参照)および「アプリケーショントレース」341(図5参照)を示している。
図16を参照すると、まず、計算機100が外部からリクエストを受け付ける前の初期化時は、業務実行状態管理テーブル311にアプリケーションの構成を記録しておく。このとき、実行中の業務のリクエストはないので、リクエスト識別子は空となる。
次に、リクエストを受け付けたサーバプログラムがアプリケーション1のメソッドaを呼び出すと、入口トレースが記録される(S1202)。このとき、リクエスト識別子が割り当てられ、業務実行状態管理テーブル311に実行中の業務のリクエスト識別子(pid1,tid1)が登録される。リクエストトレース331では、リクエスト識別子(pid1,tid1)をキーにして、アプリケーション1のメソッドaがスタックに積まれる。アプリケーショントレース341には、呼び出し先がアプリケーション1の配列にリクエスト識別子(pid1,tid1)と開始時刻t1が登録される。
そして、アプリケーション1のメソッドaからアプリケーション2のメソッドbを呼び出すと、入口トレースが記録される(S1203)。このとき、リクエストトレース331では、リクエスト識別子(pid1,tid1)に対して、アプリケーション2のメソッドbがスタックに積まれる。アプリケーショントレース341には、呼び出し元がアプリケーション1、呼び出し先がアプリケーション2の配列にリクエスト識別子(pid1,tid1)と開始時刻t2が登録される。
続いて、アプリケーション2のメソッドbからアプリケーション3のメソッドcを呼び出すと、入口トレースが記録される(S1204)。このとき、リクエストトレース331では、リクエスト識別子(pid1,tid1)に対して、アプリケーション3のメソッドcがスタックに積まれる。アプリケーショントレース341には、呼び出し元がアプリケーション2、呼び出し先がアプリケーション3の配列にリクエスト識別子(pid1,tid1)と開始時刻t3が登録される。
続いて図17を参照して、アプリケーション3のメソッドcの処理が終了する直前では、出口トレースが記録される(S1205)。このとき、リクエストトレース331のリクエスト識別子(pid1,tid1)に対して、アプリケーション3のメソッドcのスタックが削除される。アプリケーショントレース341には、呼び出し元がアプリケーション2、呼び出し先がアプリケーション3の配列のリクエスト識別子(pid1,tid1)に対して、終了時刻t4が記録される。
次に、アプリケーション2のメソッドbの処理が終了する直前では、出口トレースが記録される(S1206)。このとき、リクエストトレース331のリクエスト識別子(pid1,tid1)に対して、アプリケーション2のメソッドbのスタックが削除される。アプリケーショントレース341には、呼び出し元がアプリケーション1、呼び出し先がアプリケーション2の配列のリクエスト識別子に対して、終了時刻t5が記録される。
そして、アプリケーション1のメソッドaの処理が終了する直前では、出口トレースが記録される(S1207)。このとき、リクエストトレース331のリクエスト識別子(pid1,tid1)に対して、アプリケーション1のメソッドaのスタックが削除される。アプリケーショントレース341には、呼び出し先がアプリケーション1の配列のリクエスト識別子(pid1,tid1)に対して、終了時刻t6が記録される。リクエストトレース331のスタックが空になったことに伴って、業務実行状態管理テーブル311の実行中の業務のリクエスト識別子(pid1,tid1)が削除される。
≪リクエスト停止の具体例≫
続いて、リクエストを停止する処理の具体例について説明する。図18は、所定の時刻における業務処理の状態を示す図である。ここで、リクエスト1およびリクエスト3に対する業務IDは業務1であり、リクエスト2に対する業務IDは業務2であるとする。図19ないし図25は、図18の時刻における他の定義やトレースの設定内容を示している。図19の業務実行状態管理テーブル311には、業務1のリクエスト識別子(pid1,tid1)と(pid1,tid3)および業務2のリクエスト識別子(pid1,tid2)が、実行中の業務のリクエスト識別子として記録されている。
続いて、リクエストを停止する処理の具体例について説明する。図18は、所定の時刻における業務処理の状態を示す図である。ここで、リクエスト1およびリクエスト3に対する業務IDは業務1であり、リクエスト2に対する業務IDは業務2であるとする。図19ないし図25は、図18の時刻における他の定義やトレースの設定内容を示している。図19の業務実行状態管理テーブル311には、業務1のリクエスト識別子(pid1,tid1)と(pid1,tid3)および業務2のリクエスト識別子(pid1,tid2)が、実行中の業務のリクエスト識別子として記録されている。
図20の業務実行優先度定義テーブル321、図21の同時実行数調整比率定義テーブル410および図22のリクエスト停止方法定義テーブル420は、リクエストを処理する前に予め定義されていた情報である。図23のリクエストトレース331は、図18の時点における各リクエストに対する業務処理の呼び出し階層をスタックで示している。図24のアプリケーショントレース341は、図18の時点におけるアプリケーション間の呼び出しの記録である。図25のリソース使用状況テーブル510は、図18の時点における各スレッドのCPU利用率およびメモリ使用量を示している。以下、リクエストを停止する処理の具体例について、停止業務の決定処理、停止リクエストの決定処理およびリクエストの停止処理の3つに分けて説明する(適宜図18ないし図25参照)。
<停止業務の決定処理>
(1)図18に示す業務処理の状態で、プロセスAのリソース使用量(CPU利用率またはメモリ使用量)が閾値に達し、その旨をリソース監視部50が業務停止部40に通知する。
(2)業務停止部40がリソース使用状況テーブル510(図25参照)を取得する。
(3)業務実行状態管理テーブル311(図19参照)から、リクエスト識別子が(pid1,tid1),(pid1,tid3)のものが業務1であり、(pid1,tid2)のものが業務2であると分かる。
(4)(3)で得た情報をリソース使用状況テーブル510(図25参照)と照合して、業務1と業務2のリソース使用量は同じであると判断する。
(5)業務実行優先度定義テーブル321(図20参照)を取得し、参照すると、業務1の実行優先度が低いので、リクエストを停止する対象は業務1となる。
(1)図18に示す業務処理の状態で、プロセスAのリソース使用量(CPU利用率またはメモリ使用量)が閾値に達し、その旨をリソース監視部50が業務停止部40に通知する。
(2)業務停止部40がリソース使用状況テーブル510(図25参照)を取得する。
(3)業務実行状態管理テーブル311(図19参照)から、リクエスト識別子が(pid1,tid1),(pid1,tid3)のものが業務1であり、(pid1,tid2)のものが業務2であると分かる。
(4)(3)で得た情報をリソース使用状況テーブル510(図25参照)と照合して、業務1と業務2のリソース使用量は同じであると判断する。
(5)業務実行優先度定義テーブル321(図20参照)を取得し、参照すると、業務1の実行優先度が低いので、リクエストを停止する対象は業務1となる。
<停止リクエストの決定処理>
(1)業務実行状態管理テーブル311(図19参照)から、業務1の現在実行中のリクエストが2つあると分かる。
(2)同時実行数調整比率定義テーブル410(図21参照)から、現在実行中のリクエストのうち50%を削減する。従って、本例ではリクエストを1つ削減する。
(3)リクエスト停止方法定義テーブル420(図22参照)から、停止するリクエストの選択方法が「3:スタックの深さ優先」なので、リクエストトレース331(図23参照)を取得し、呼び出し階層(スタック)が深いものを停止対象のリクエストとする。従って、本例ではリクエスト識別子が(pid1,tid1)のものを停止対象とする。
(1)業務実行状態管理テーブル311(図19参照)から、業務1の現在実行中のリクエストが2つあると分かる。
(2)同時実行数調整比率定義テーブル410(図21参照)から、現在実行中のリクエストのうち50%を削減する。従って、本例ではリクエストを1つ削減する。
(3)リクエスト停止方法定義テーブル420(図22参照)から、停止するリクエストの選択方法が「3:スタックの深さ優先」なので、リクエストトレース331(図23参照)を取得し、呼び出し階層(スタック)が深いものを停止対象のリクエストとする。従って、本例ではリクエスト識別子が(pid1,tid1)のものを停止対象とする。
<リクエストの停止処理>
(1)業務1の入口(本例ではアプリケーション1のメソッドa)を閉塞する。プロセスのリソース使用量が閾値に達しているため、新しいリクエストは受け付けないはずだが、リクエスト停止中にリソース使用量が減り、新規にリクエストを受け付けてしまうのを防ぐために閉塞を行っている。
(2)リクエストトレース331(図23参照)を取得し、(pid1,tid1)の現在実行中のスレッドから(スタックの上から)順に停止していく。つまり、本例ではアプリケーション2のメソッドb→アプリケーション1のメソッドaの順である。
(3)業務実行状態管理テーブル311(図19参照)およびリクエストトレース331(図23参照)から、リクエスト識別子が(pid1,tid1)のものを削除する。その結果、それぞれ図26および図27に示すようになる。
(1)業務1の入口(本例ではアプリケーション1のメソッドa)を閉塞する。プロセスのリソース使用量が閾値に達しているため、新しいリクエストは受け付けないはずだが、リクエスト停止中にリソース使用量が減り、新規にリクエストを受け付けてしまうのを防ぐために閉塞を行っている。
(2)リクエストトレース331(図23参照)を取得し、(pid1,tid1)の現在実行中のスレッドから(スタックの上から)順に停止していく。つまり、本例ではアプリケーション2のメソッドb→アプリケーション1のメソッドaの順である。
(3)業務実行状態管理テーブル311(図19参照)およびリクエストトレース331(図23参照)から、リクエスト識別子が(pid1,tid1)のものを削除する。その結果、それぞれ図26および図27に示すようになる。
以上本発明の実施の形態について説明したが、図1に示す計算機100のCPU10で実行されるプログラム(処理実行数制御プログラムを含む)をコンピュータによる読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の実施の形態に係る処理実行数制御方法および計算機が実現されるものとする。なお、プログラムをインターネットなどのネットワーク経由でコンピュータシステムに提供するようにしてもよい。
以上本発明の好適な実施の形態について一例を示したが、本発明は前記実施の形態に限定されず、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。例えば、前記実施の形態では、プロセスのまたがりを1つの計算機100に閉じたように記載したが、プロセスのまたがりが複数の計算機100に亘るように構成してもよい。この場合には、スレッドを特定するために、プロセスIDおよびスレッドIDに加えて、計算機100に固有なマシンIDを使用することになる。これによれば、複数のプロセスにまたがる複数のアプリケーションが複数の計算機に亘る場合であっても、業務処理の同時実行数を業務単位に制御することができる。
10 CPU(処理部)
20 主記憶装置(記憶部)
100 計算機
311 業務実行状態管理テーブル
331 リクエストトレース
510 リソース使用状況テーブル
20 主記憶装置(記憶部)
100 計算機
311 業務実行状態管理テーブル
331 リクエストトレース
510 リソース使用状況テーブル
Claims (10)
- 送られた要求に対して業務処理を行う計算機が、その業務処理を複数のプロセスにまたがる複数のプログラムによって実行する場合に、前記業務処理の実行数を制御するプログラム制御方法であって、
前記計算機の記憶部は、業務処理ごとのリソース使用量を管理し、
前記計算機の処理部は、前記リソース使用量が所定の閾値を超えたときに、前記リソース使用量が最大である業務処理を停止する
ことを特徴とするプログラム制御方法。 - 送られた要求に対して業務処理を行う計算機が、その業務処理を複数のプロセスにまたがる複数のプログラムによって実行する場合に、前記業務処理の実行数を制御するプログラム制御方法であって、
前記計算機の記憶部は、
業務ごとに、実行中の業務処理に固有の処理IDを管理し、
前記処理IDごとに、その処理IDの業務処理を実行中の実行単位を管理し、
前記業務処理の実行単位ごとに、リソース使用量を管理し、
前記計算機の処理部は、前記リソース使用量が所定の閾値を超えたときに、
前記実行単位ごとのリソース使用量を、前記実行単位を含む処理IDごとに集計するステップと、
前記集計した値を、前記処理IDを含む業務ごとに合計し、その合計した値が所定値を超えた業務を、停止すべき業務として選択し、前記業務の処理IDから、所定の選択条件によって、停止すべき処理IDを選択するステップと、
前記選択した処理IDの業務処理を停止するステップと、
を含んで実行する
ことを特徴とするプログラム制御方法。 - 前記リソース使用量は、前記記憶部であるメモリの使用量または前記処理部であるCPU(Central Processing Unit)の利用率であること
を特徴とする請求項2に記載のプログラム制御方法。 - 前記選択条件は、前記業務処理の実行単位が処理を開始した後、経過時間が長いことであること
を特徴とする請求項2に記載のプログラム制御方法。 - 前記選択条件は、外部からの要求の受付順が新しいことであること
を特徴とする請求項2に記載のプログラム制御方法。 - 前記選択条件は、実行中の業務処理のプロセス間のコールスタックが深いことであること
を特徴とする請求項2に記載のプログラム制御方法。 - 前記選択条件は、
実行中の業務処理の数と、予め前記記憶部に設定された削減割合とを掛け合わせた値を、停止すべき業務処理の数とすることであること
を特徴とする請求項2に記載のプログラム制御方法。 - 前記選択した処理IDの業務処理を停止するステップにおいて、
前記停止すべき業務に係る要求に対しては、その要求元にエラーメッセージを送信するとともに、
停止すべき業務処理の実行単位を、実行中の実行単位から順に停止する
ことを特徴とする請求項2に記載のプログラム制御方法。 - 送られた要求に対して業務処理を行うとともに、その業務処理を複数のプロセスにまたがる複数のプログラムによって実行する場合に、前記業務処理の実行数を制御する計算機であって、
前記計算機の記憶部は、
業務ごとに、実行中の業務処理に固有の処理IDを管理し、
前記処理IDごとに、その処理IDの業務処理を実行中の実行単位を管理し、
前記業務処理の実行単位ごとに、リソース使用量を管理し、
前記計算機の処理部は、前記リソース使用量が所定の閾値を超えたときに、
前記実行単位ごとのリソース使用量を、前記実行単位を含む処理IDごとに集計し、
前記集計した値を、前記処理IDを含む業務ごとに合計し、その合計した値が所定値を超えた業務を、停止すべき業務として選択し、前記業務の処理IDから、所定の選択条件によって、停止すべき処理IDを選択し、
前記選択した処理IDの業務処理を停止する
ことを特徴とする計算機。 - コンピュータに請求項1ないし請求項8のいずれか一項に記載のプログラム制御方法を実行させることを特徴とするプログラム制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006014703A JP2007199811A (ja) | 2006-01-24 | 2006-01-24 | プログラム制御方法、計算機およびプログラム制御プログラム |
US11/373,098 US20070174839A1 (en) | 2006-01-24 | 2006-03-13 | Method and system for managing programs within systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006014703A JP2007199811A (ja) | 2006-01-24 | 2006-01-24 | プログラム制御方法、計算機およびプログラム制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007199811A true JP2007199811A (ja) | 2007-08-09 |
Family
ID=38287122
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006014703A Pending JP2007199811A (ja) | 2006-01-24 | 2006-01-24 | プログラム制御方法、計算機およびプログラム制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20070174839A1 (ja) |
JP (1) | JP2007199811A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009134640A (ja) * | 2007-11-30 | 2009-06-18 | Hitachi Ltd | リソース割当方法、リソース割当プログラム、および、運用管理装置 |
JP2012216092A (ja) * | 2011-03-31 | 2012-11-08 | Fujitsu Ltd | リソース抑制プログラム、リソース監視プログラム、リソース抑制装置、リソース監視装置、リソース抑制方法、リソース監視方法及びリソース抑制システム |
KR101283864B1 (ko) * | 2008-10-27 | 2013-07-08 | 가부시키가이샤 히타치세이사쿠쇼 | 리소스 관리 방법과 내장 장치 |
JP2013186520A (ja) * | 2012-03-06 | 2013-09-19 | Nec System Technologies Ltd | コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム |
KR101541664B1 (ko) | 2011-09-01 | 2015-08-03 | 퀄컴 인코포레이티드 | 휴대형 컴퓨팅 디바이스에서 병렬 리소스 요청들을 관리하는 방법 및 시스템 |
US9274775B2 (en) | 2012-01-16 | 2016-03-01 | Canon Kabushiki Kaisha | Apparatus, control method, and storage medium to instruct a framework to stop a target application based on a usage amount of a resource and a type of the target application |
JP2016206779A (ja) * | 2015-04-17 | 2016-12-08 | 株式会社日立製作所 | トランザクション管理方法、トランザクション管理装置 |
KR101860611B1 (ko) | 2014-09-01 | 2018-05-23 | 캐논 가부시끼가이샤 | 화상 형성 장치 및 리소스 관리 방법 |
WO2020031675A1 (ja) * | 2018-08-08 | 2020-02-13 | 株式会社 Preferred Networks | スケジューリング装置、スケジューリングシステム、スケジューリング方法、プログラム及び非一時的コンピュータ可読媒体 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7369912B2 (en) * | 2003-05-29 | 2008-05-06 | Fisher-Rosemount Systems, Inc. | Batch execution engine with independent batch execution processes |
US7680628B1 (en) * | 2007-09-24 | 2010-03-16 | United Services Automobile Association (Usaa) | Estimating processor usage |
US7725296B1 (en) | 2007-09-24 | 2010-05-25 | United Services Automobile Association (Usaa) | Estimating processor usage |
US7720643B1 (en) | 2007-09-24 | 2010-05-18 | United Services Automobile Association (Usaa) | Estimating processor usage |
US9081624B2 (en) * | 2008-06-26 | 2015-07-14 | Microsoft Technology Licensing, Llc | Automatic load balancing, such as for hosted applications |
US8005950B1 (en) | 2008-12-09 | 2011-08-23 | Google Inc. | Application server scalability through runtime restrictions enforcement in a distributed application execution system |
KR20120077265A (ko) * | 2010-12-30 | 2012-07-10 | 주식회사 팬택 | 이동 단말기 및 이동 단말기의 제어 방법 |
CN102841812A (zh) * | 2011-06-23 | 2012-12-26 | 富泰华工业(深圳)有限公司 | 电子设备及其任务控制方法 |
US9298499B2 (en) * | 2012-01-27 | 2016-03-29 | Microsoft Technology Licensing, Llc | Identifier generation using named objects |
US20140007106A1 (en) * | 2012-07-02 | 2014-01-02 | Arnold S. Weksler | Display and Terminate Running Applications |
US9104480B2 (en) * | 2012-11-15 | 2015-08-11 | International Business Machines Corporation | Monitoring and managing memory thresholds for application request threads |
CN102981878A (zh) * | 2012-11-28 | 2013-03-20 | 广东欧珀移动通信有限公司 | 自动关闭后台程序的方法及其移动终端 |
CN103412793A (zh) * | 2013-07-29 | 2013-11-27 | 北京奇虎科技有限公司 | 一种优化系统资源的方法、装置及系统 |
US20150293953A1 (en) * | 2014-04-11 | 2015-10-15 | Chevron U.S.A. Inc. | Robust, low-overhead, application task management method |
EP3147779A4 (en) * | 2014-05-29 | 2017-05-31 | Agoop Corp. | Program and information processing device |
US10191771B2 (en) * | 2015-09-18 | 2019-01-29 | Huawei Technologies Co., Ltd. | System and method for resource management |
US10313429B2 (en) * | 2016-04-11 | 2019-06-04 | Huawei Technologies Co., Ltd. | Distributed resource management method and system |
KR101747032B1 (ko) * | 2016-04-21 | 2017-06-14 | 한국과학기술원 | 소프트웨어 정의 네트워킹 환경에서의 모듈형 제어 장치 및 그 동작 방법 |
US10534643B2 (en) | 2016-05-09 | 2020-01-14 | Oracle International Corporation | Correlation of thread intensity and heap usage to identify heap-hoarding stack traces |
CN106066814B (zh) * | 2016-05-31 | 2018-05-29 | 广东欧珀移动通信有限公司 | 一种应用控制方法及移动终端 |
CN108920265A (zh) * | 2018-06-27 | 2018-11-30 | 平安科技(深圳)有限公司 | 一种基于服务器集群的任务执行方法及服务器 |
CN111638949A (zh) * | 2020-04-28 | 2020-09-08 | 深圳壹账通智能科技有限公司 | 时间序列数据分段构建方法、装置及计算机设备 |
CN113032130A (zh) * | 2021-05-24 | 2021-06-25 | 荣耀终端有限公司 | 系统异常处理方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05151177A (ja) * | 1991-11-30 | 1993-06-18 | Nec Corp | 分散処理システム |
JPH0683650A (ja) * | 1992-08-31 | 1994-03-25 | Fujitsu Ltd | システム資源の監視方法 |
JP2001195267A (ja) * | 2000-01-07 | 2001-07-19 | Hitachi Ltd | 制御計算機システム及びタスク実行制御方法 |
JP2001256207A (ja) * | 2000-03-08 | 2001-09-21 | Mitsubishi Electric Corp | コンピュータ装置及び記録媒体 |
JP2002351680A (ja) * | 2001-05-29 | 2002-12-06 | Matsushita Electric Ind Co Ltd | アプリケーション管理装置とアプリケーション管理システム |
JP2005202652A (ja) * | 2004-01-15 | 2005-07-28 | Canon Inc | アプリケーション制御装置、その制御方法及び記憶媒体 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816877B2 (ja) * | 1991-06-10 | 1996-02-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システム用資源データの実時間捕獲及び減縮方法及びシステム |
US5838976A (en) * | 1995-11-28 | 1998-11-17 | Hewlett-Packard Co. | System and method for profiling code on symmetric multiprocessor architectures |
JP3284464B2 (ja) * | 1998-09-29 | 2002-05-20 | セイコーエプソン株式会社 | ページプリンタ及びページプリントシステム |
GB2366891B (en) * | 2001-12-06 | 2002-11-20 | Appsense Ltd | Improvements in and relating to computer apparatus terminal server apparatus & performance management methods therefor |
US7243267B2 (en) * | 2002-03-01 | 2007-07-10 | Avaya Technology Llc | Automatic failure detection and recovery of applications |
US6993681B2 (en) * | 2002-04-15 | 2006-01-31 | General Electric Corporation | Remote administration in a distributed system |
US7761873B2 (en) * | 2002-12-03 | 2010-07-20 | Oracle America, Inc. | User-space resource management |
-
2006
- 2006-01-24 JP JP2006014703A patent/JP2007199811A/ja active Pending
- 2006-03-13 US US11/373,098 patent/US20070174839A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05151177A (ja) * | 1991-11-30 | 1993-06-18 | Nec Corp | 分散処理システム |
JPH0683650A (ja) * | 1992-08-31 | 1994-03-25 | Fujitsu Ltd | システム資源の監視方法 |
JP2001195267A (ja) * | 2000-01-07 | 2001-07-19 | Hitachi Ltd | 制御計算機システム及びタスク実行制御方法 |
JP2001256207A (ja) * | 2000-03-08 | 2001-09-21 | Mitsubishi Electric Corp | コンピュータ装置及び記録媒体 |
JP2002351680A (ja) * | 2001-05-29 | 2002-12-06 | Matsushita Electric Ind Co Ltd | アプリケーション管理装置とアプリケーション管理システム |
JP2005202652A (ja) * | 2004-01-15 | 2005-07-28 | Canon Inc | アプリケーション制御装置、その制御方法及び記憶媒体 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009134640A (ja) * | 2007-11-30 | 2009-06-18 | Hitachi Ltd | リソース割当方法、リソース割当プログラム、および、運用管理装置 |
JP4523965B2 (ja) * | 2007-11-30 | 2010-08-11 | 株式会社日立製作所 | リソース割当方法、リソース割当プログラム、および、運用管理装置 |
KR101283864B1 (ko) * | 2008-10-27 | 2013-07-08 | 가부시키가이샤 히타치세이사쿠쇼 | 리소스 관리 방법과 내장 장치 |
US8843934B2 (en) | 2008-10-27 | 2014-09-23 | Hitachi, Ltd. | Installing and executing new software module without exceeding system resource amount |
JP2012216092A (ja) * | 2011-03-31 | 2012-11-08 | Fujitsu Ltd | リソース抑制プログラム、リソース監視プログラム、リソース抑制装置、リソース監視装置、リソース抑制方法、リソース監視方法及びリソース抑制システム |
KR101541664B1 (ko) | 2011-09-01 | 2015-08-03 | 퀄컴 인코포레이티드 | 휴대형 컴퓨팅 디바이스에서 병렬 리소스 요청들을 관리하는 방법 및 시스템 |
US9274775B2 (en) | 2012-01-16 | 2016-03-01 | Canon Kabushiki Kaisha | Apparatus, control method, and storage medium to instruct a framework to stop a target application based on a usage amount of a resource and a type of the target application |
KR101603910B1 (ko) * | 2012-01-16 | 2016-03-16 | 캐논 가부시끼가이샤 | 장치, 제어 방법, 및 기억매체 |
JP2013186520A (ja) * | 2012-03-06 | 2013-09-19 | Nec System Technologies Ltd | コンピュータシステム、サーバ装置、負荷分散方法、及びプログラム |
KR101860611B1 (ko) | 2014-09-01 | 2018-05-23 | 캐논 가부시끼가이샤 | 화상 형성 장치 및 리소스 관리 방법 |
JP2016206779A (ja) * | 2015-04-17 | 2016-12-08 | 株式会社日立製作所 | トランザクション管理方法、トランザクション管理装置 |
WO2020031675A1 (ja) * | 2018-08-08 | 2020-02-13 | 株式会社 Preferred Networks | スケジューリング装置、スケジューリングシステム、スケジューリング方法、プログラム及び非一時的コンピュータ可読媒体 |
Also Published As
Publication number | Publication date |
---|---|
US20070174839A1 (en) | 2007-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007199811A (ja) | プログラム制御方法、計算機およびプログラム制御プログラム | |
US11509596B2 (en) | Throttling queue for a request scheduling and processing system | |
US11252220B2 (en) | Distributed code execution involving a serverless computing infrastructure | |
US8458712B2 (en) | System and method for multi-level preemption scheduling in high performance processing | |
US10241812B2 (en) | Assignment of resources in virtual machine pools | |
US8869165B2 (en) | Integrating flow orchestration and scheduling of jobs and data activities for a batch of workflows over multiple domains subject to constraints | |
JP6190969B2 (ja) | マルチテナントリソース調停方法 | |
CN105339897A (zh) | 高效的优先级感知线程调度 | |
KR20140137582A (ko) | 스트림 처리 태스크 관리 장치 및 방법 | |
Kosar et al. | Stork data scheduler: Mitigating the data bottleneck in e-science | |
US20130198478A1 (en) | Resources allocation in a computer storage system | |
US9164885B2 (en) | Storage control device, storage control method, and recording medium | |
US8136126B2 (en) | Overriding potential competing optimization algorithms within layers of device drivers | |
US20180210916A1 (en) | Memory-aware plan negotiation in query concurrency control | |
JP2012059152A (ja) | データ処理を行うシステムおよびメモリを割り当てる方法 | |
JP2005309838A (ja) | 情報管理システムと情報管理方法、及び、そのための情報管理サブシステム | |
JP5783259B2 (ja) | コンピュータシステム | |
Deochake | Cloud cost optimization: A comprehensive review of strategies and case studies | |
US8689222B2 (en) | Controlling priority of multi-threaded hardware resources by system calls | |
Lipari | The slurm scheduler design | |
JP2012128770A (ja) | バッチジョブ管理サーバ、バッチジョブ処理システム及びバッチジョブ実行方法 | |
JP5641064B2 (ja) | 実行制御プログラム、実行制御装置および実行制御方法 | |
CN113867954A (zh) | 一种基于线程池与对象池的线程处理方法、系统及介质 | |
JP7052396B2 (ja) | 資料採取サーバ、資料採取システム、資料採取方法および資料採取プログラム | |
JP7037059B2 (ja) | リソース管理システム、および、リソース割当プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081205 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110322 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110426 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111004 |