(57)【特許請求の範囲】
【請求項１】
連携先システムと連携して所定の情報処理を実行するシステムにおける流量制御方法において、
当該システムが、
複数のスレッドの種類毎に、前記システムが動作中に一定時刻毎のbusy状態にある平均スレッド数と当該スレッドの処理時間である第一の平均保留時間を格納するスレッド使用状況管理テーブルを記憶し、
複数のスレッドの種類毎に、前記システムの限界起動スレッド数と、前記限界起動スレッド数を処理するのにかかる第二の平均保留時間と、１スレッドあたりの処理に使用されるＣＰＵの処理時間であるＣＰＵ単位時間と１スレッドあたりの処理に使用されるメモリの容量であるメモリ単位容量からなるスレッドの基本情報を含むスレッド基本情報管理テーブルを記憶し、
スレッドの処理とそれ以外の処理とを含む処理全体での、前記システムが動作中に使用されるＣＰＵ使用率を検知して、ＣＰＵ使用状況管理テーブルを記憶し、
スレッド処理とそれ以外の処理とを含む処理全体での、前記システムが動作中に使用されるメモリ使用容量を検知して、メモリ使用状況管理テーブルを記憶し、
複数のスレッドの種類毎に、前記第一の平均保留時間を前記第二の平均保留時間で割った値に前記限界起動スレッド数を掛けたものを理論上最大限に起動可能な理論スレッド数としてそれぞれ算出し、算出された前記理論スレッド数を記憶し、
複数のスレッドの種類毎に、それぞれの前記理論スレッド数で前記システムが動作した場合のスレッドＣＰＵ使用率を、前記ＣＰＵ単位時間の前記第一の平均保留時間に対するパーセンテージと前記それぞれの理論スレッド数の積でそれぞれ算出し、
複数のスレッドの種類毎に、前記それぞれの理論スレッド数で前記システムが動作した場合のスレッドメモリ使用率を、前記メモリ単位容量の前記システムの持つメモリ総量に対するパーセンテージと前記それぞれの理論スレッド数の積でそれぞれ算出し、
複数のスレッドの種類毎に算出された前記スレッドＣＰＵ使用率の総和と、前記ＣＰＵ使用率から、複数のスレッドの種類毎の前記平均スレッド数と前記ＣＰＵ単位時間の前記第一の平均保留時間に対するパーセンテージとの積である実行ＣＰＵ使用率の総和を引いたものとを足し合わせたＣＰＵ実行スレッド値を算出し、
複数のスレッドの種類毎に算出された前記スレッドメモリ使用率の総和と、前記メモリ使用率から、複数のスレッドの種類毎の前記平均スレッド数と前記メモリ単位容量の前記システムの持つメモリ総量に対するパーセンテージとの積である実行メモリ使用率の総和を引いたものとを足し合わせたメモリ実行スレッド値を算出し、
前記ＣＰＵ実行スレッド値が予めユーザによって決められた許容ＣＰＵ使用率より大きいかもしくは、前記メモリ実行スレッド値が予めユーザによって決められた許容メモリ使用率より大きい場合、複数のスレッドの種類毎の前記理論スレッド数をそれぞれ一つ減らした理論スレッド数を用いて前記ＣＰＵ実行スレッド値と前記メモリ実行スレッド値を算出し、
前記ＣＰＵ実行スレッド値が前記許容ＣＰＵ使用率より小さくかつ、前記メモリ実行スレッド値が前記許容メモリ使用率より小さくなるまで計算を繰り返し、その場合の理論スレッド数を最適スレッド数として記憶し、
前記最適スレッド数と前記限界起動スレッド数を比較し、
前記比較の結果に応じて、当該システム上の現状の起動スレッド数を変化させるよう制御することを特徴とする流量制御方法。
【請求項２】
請求項1に記載の流量制御方法において、
前記制御は、前記比較の結果、前記最適スレッド数が、前記限界起動スレッド数に達していない場合、当該システム上の現状の起動スレッド数を減少させるよう制御することを特徴とする流量制御方法。
【請求項３】
請求項１または２のいずれかに記載の流量制御方法において、
前記制御は、前記比較の結果、前記最適スレッド数が、前記限界起動スレッド数を超えている場合、当該システム上の現状の起動スレッド数を増加させるよう制御することを特徴とする流量制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおいて、処理すべき情報処理量を制御する流量制御を行う技術に関する。この中でも特に、複数のコンピュータシステムが連携して所定の処理を実行するものに関する。
【背景技術】
【０００２】
コンピュータシステムの情報処理量の制御である流量制御を行う場合、リソース使用率とプロセス／スレッド保留時間を考慮することが行われていた。また、流量制御を行うために、一旦入出力キューに滞留した要求の優先度を、要求元の計算機の状態の変化に応じて変更可能とするものとして、特許文献１がある。特許文献１によれば、入出力キューから要求を取り出す際、要求中に付加された優先度情報だけでなく、要求元で管理している優先度情報も考慮して、処理すべき優先度を判断している。
【０００３】
【特許文献１】特開２００４−２２００８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１のように、優先度を考慮した制御を実行しても、リソース使用率とプロセス／スレッド保留時間を適切に設計しない場合、システムのスローダウンやシステム処理能力限界まで有効に使えないとの問題が生じてしまう。
【０００５】
しかしながら、複数のシステムと制御対象のシステムが連携している場合、連携先システムの状況（保留時間等）が変動する可能性があり、適切な制御を行うことは困難であった。
【課題を解決するための手段】
【０００６】
そこで、本発明では、定期的に稼動状況の把握を行い、流量制御を再設計して、この結果を反映させるものである。本発明には、ＣＰＵ使用率／メモリ使用率およびプロセス／スレッド保留時間を検知し,検知された内容に基づいて最適な流量設計を行うことおよび／または設計値への反映を行うことが含まれる。より、詳細には、本発明には以下の態様が含まれる。
【０００７】
連携先システムと連携して所定の情報処理を実行するシステムに対する流量制御方法において、当該システムで理論上起動可能な理論スレッド数を算出し、算出された前記理論スレッド数を記憶し、前記理論スレッド数および前記連携先システムでのシステムリソース使用状況から適切な適切スレッド数を算出し、前記最適スレッド数と予め算出した設計上の起動スレッド数を比較し、前記比較の結果に応じて、当該システムに対するスレッド数を変化させるよう制御する。
【０００８】
さらに、本発明には、以下の態様も含まれる。前記制御は、前記比較の結果、前記最適スレッド数が、前記起動スレッド数に達していない場合、当該システムに対するスレッド数を増加させるよう制御する。また、さらに、前記制御は、前記比較の結果、前記最適スレッド数が、前記起動スレッド数を超えている場合、当該システムに対するスレッド数を減少させるよう制御することを特徴とする流量制御方法。
【発明の効果】
【０００９】
本発明によれば、連携先システムの動作状況により対応した形で流量制御が可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を詳細に説明する。
図１は、本発明の全体の処理の流れを表すブロック図であり、図２〜図５は、実際に自動流量制御を行う為の個々の機能のフローチャートであり、図６〜図１１は、自動流量制御を行う為に個々の機能で入出力されるデータテーブルであり、図１２は自動流量制御を行う装置全体の処理の流れを表した装置図である。
【００１１】
まず、図１の本発明の全体の処理の流れを表すブロック図を説明する。
【００１２】
図１では、大きく４つの機能から構成されており、具体的には、シミュレーション結果格納テーブル算出処理１ １００とシミュレーション結果格納テーブル算出処理２ １１０とリソース監視処理１２０とスレッド制御処理１３０から構成される。
【００１３】
シミュレーション結果格納テーブル算出処理１ １００は、スレッド基本情報テーブル３１０とスレッド使用状況管理テーブル３３０を入力し、理論上起動可能なスレッド数を算出し、算出したスレッド数等をシミュレーション結果格納テーブル１ ３４０に出力する処理である。
【００１４】
シミュレーション結果格納テーブル算出処理２ １１０は、ＣＰＵ使用状況管理テーブル３００とスレッド基本情報テーブル３１０とｈｅａｐ使用状況管理テーブル３２０とスレッド使用状況管理テーブル３３０とシミュレーション結果格納テーブル１ ３４０を入力し、最新のシステムリソース使用状況（ＣＰＵ使用率、ｈｅａｐ使用率）を考慮して、適切な起動スレッド数を算出し、算出したスレッド数をシミュレーション結果格納テーブル２ ３５０に出力する処理である。
【００１５】
リソース監視処理１２０は、スレッド基本情報テーブル３１０とシミュレーション結果格納テーブル２ ３５０を入力し、適切な起動スレッド数と設計上の起動スレッド数を比較して、適切な起動スレッド数と異なる場合にスレッド制御処理１３０を呼び出した後、起動スレッド数を画面表示部４０１に出力する処理である。
【００１６】
スレッド制御処理１３０は、リソース監視処理１２０から起動され、設計上の起動スレッド数と比較して、適切な起動スレッド数に達していない場合は適切なスレッド数までスレッドを増加し、適切な起動スレッド数を超過している場合は適切なスレッド数までスレッドを減少する処理である。
【００１７】
次に、図1で示される４つの機能の詳細を説明する。
シミュレーション結果格納テーブル算出処理１ １００は図２で示されるフローチャートに基づいて処理され、最初にスレッド基本情報テーブル３１０とスレッド使用状況管理テーブル３３０を読込む（ステップ２００、ステップ２０１）。
【００１８】
ここで、スレッド基本情報テーブル３１０は、図７に示すデータテーブルであり、設計上の限界多重度３１２と平均保留時間３１１とＣＰＵ単価３１３とＭＥＭ単価３１４がスレッド毎に予め設定されている。スレッド使用状況管理テーブル３３０は、図９に示すデータテーブルであり、一定時刻毎のスレッドの平均保留時間（過去５分の平均値３３１、過去１０分の平均値３３２、過去１時間の平均値３３３及び現在値３３４）とｂｕｓｙとなっている（実際に使用されている）スレッド数（過去５分の平均値３３５、過去１０分の平均値３３６、過去１時間の平均値３３７及び現在値３３８）がスレッド毎に記録されていく。
【００１９】
次に、図９に示すスレッド使用状況管理テーブル３３０の過去５分の平均保留時間３３１と図７に示すスレッド基本情報テーブル３１０の平均保留時間３１１の比率を算出する（ステップ２０２）。
【００２０】
具体的には、Ｔｈ−Ａスレッドはそれぞれ、１０００ｍｓ（１：０４現在の値）と５００ｍｓであり、比率は２となる。
【００２１】
補足として、スレッド使用状況管理テーブル３３０で参照する平均保留時間は、過去１０分の平均保留時間３３２や過去１時間の平均保留時間３３３あるいはその時点での平均保留時間３３４でも良い。または、任意の平均保留時間を設定してそれを参照しても良い。
【００２２】
次に、スレッド基本情報テーブル３１０の限界多重度３１２とステップ２０２で算出した値を乗じ、理論上起動可能なスレッド数を求めて、シミュレーション結果格納テーブル１ ３４０の最大使用量３４１に格納する（ステップ２０３）。
【００２３】
具体的には、Ｔｈ−Ａスレッドの限界多重度と比率はそれぞれ、１０と２であり、理論上起動可能なスレッド数は２０となる。
【００２４】
次に、過去５分の平均保留時間３３１と最大使用量３４１とスレッド基本情報テーブル３１０のＣＰＵ単価３１３からＣＰＵ使用量を求めて、シミュレーション結果格納テーブル１ ３４０のＣＰＵ使用率３４２に格納する（ステップ２０４）。
【００２５】
具体的には、Ｔｈ−Ａスレッドの過去５分の平均保留時間と最大使用量とＣＰＵ単価はそれぞれ、１０００ｍｓ、２０、３０ｍｓであり、ＣＰＵ使用率は６０％となる。
【００２６】
次に、最大使用量３４１とスレッド基本情報テーブル３１０のＭＥＭ単価３１４と搭載ＭＥＭ量からｈｅａｐ使用量を求めて、シミュレーション結果格納テーブル１ ３４０のｈｅａｐ使用率３４３に格納し（ステップ２０５）、処理を終了する。
【００２７】
具体的には、Ｔｈ−Ａスレッドの最大使用量とＭＥＭ単価と搭載ＭＥＭ量はそれぞれ、２０、１０００ＫＢ、１ＧＢ（本明細書では特に明記してないが、ここでは１ＧＢと仮置きする）であり、ｈｅａｐ使用率は２％となる。
【００２８】
続いて、シミュレーション結果格納テーブル算出処理２ １１０は図３で示されるフローチャートに基づいて処理され、最初にＣＰＵ使用状況管理テーブル３００とスレッド基本情報テーブル３１０とｈｅａｐ使用状況管理テーブル３２０とスレッド使用状況管理テーブル３３０とシミュレーション結果格納テーブル１ ３４０を読込む（ステップ２２０〜ステップ２２４）。
【００２９】
ここで、ＣＰＵ使用状況管理テーブル３００は、図６に示すデータテーブルであり、一定時刻毎のＣＰＵ使用率が記録されていく（過去５分の平均使用率３０１、過去１０分の平均使用率３０２、過去１時間の平均使用率３０３及び現在の使用率３０４）。ｈｅａｐ使用状況管理テーブル３２０は、図８に示すデータテーブルであり、一定時刻毎のｈｅａｐ使用率３２１が記録されていく。シミュレーション結果格納テーブル１ ３４０は、図１０に示すデータテーブルであり、理論上起動可能なスレッド数（最大使用量３４１）と消費するＣＰＵ使用率（ＣＰＵ使用率３４２）と消費するｈｅａｐ使用率（ｈｅａｐ使用率３４３）がスレッド毎に格納され、更に各スレッドの合計ＣＰＵ使用率３４４と合計ｈｅａｐ使用率３４５を格納する。
【００３０】
次に、限界多重度３１２と最大使用量３４１を比較し（ステップ２２５）、最大使用量３４１が限界多重度３１２と等しい又は大きければ、最大使用量３４１をシミュレーション結果格納テーブル２ ３５０の最適使用量３５１に格納し（ステップ２２６）、処理を終了する。
【００３１】
限界多重度３１２より小さければ、過去５分のＣＰＵ使用率３０５からスレッド消費分を除いた分（過去５分の平均スレッド数３３５が消費したＣＰＵ使用率）とシミュレーション結果格納テーブル１ ３４０の合計ＣＰＵ使用率３４４を足した結果が許容ＣＰＵ使用率の範囲内となるか比較し（ステップ２２７）、許容ＣＰＵ使用率の範囲内であれば、次にｈｅａｐ使用率３２１とシミュレーション結果格納テーブル１ ３４０の合計ｈｅａｐ使用率３４５を足した結果が許容ＭＥＭ使用率の範囲内となるか比較し（ステップ２２８）、許容ＭＥＭ使用率の範囲内であれば、最大使用量３４１をシミュレーション結果格納テーブル２ ３５０の最適使用量３５１に格納し（ステップ２２６）、処理を終了する。
【００３２】
許容ＣＰＵ使用率又は許容ＭＥＭ使用率の範囲内とならない場合は、各スレッドの最大使用量を−１してＣＰＵ使用率３４２とｈｅａｐ使用率３４３を再計算し（ステップ２２９）、ステップ２２７からの処理を繰り返す。
【００３３】
具体的には、Ｔｈ−Ａスレッドの限界多重度と最大使用量はそれぞれ、１０、２０である為、ステップ２２７へ進む。ステップ２２７の過去５分のＣＰＵ使用率からスレッド消費分を除いた分と合計ＣＰＵ使用率３４４を足した結果と許容ＣＰＵ使用率はそれぞれ、０％、７５％、７０％（本明細書では特に明記してないが、ここでは７０％と仮置きする）である為、ステップ２２９へ進む。ステップ２２９では、各スレッドの最大使用量を−１するが、ここでは便宜上Ｔｈ−Ａスレッドのみ−１することにする。すると、スレッドを−２すれば許容ＣＰＵ使用率と許容ＭＥＭ使用率の範囲内となる。よって、ステップ２２６では、最適使用量が１８となる。
【００３４】
補足として、ＣＰＵ使用状況管理テーブル３００で参照する平均ＣＰＵ使用率は、過去１０分の平均使用率３０２や過去１時間の平均使用率３０３あるいは現在の使用率３０４でも良い。または、任意の平均保留時間を設定してそれを参照しても良い。
【００３５】
続いて、リソース監視処理１２０は図４で示されるフローチャートに基づいて処理され、最初にスレッド基本情報テーブル３１０とシミュレーション結果格納テーブル２ ３５０を読込む（ステップ２４０、ステップ２４１）。
【００３６】
ここで、シミュレーション結果格納テーブル２ ３５０は、図１１に示すデータテーブルであり、最新のシステムリソース使用状況（ＣＰＵ使用率、ｈｅａｐ使用率）を考慮した適切な起動スレッド数（最適使用量３５１）をスレッド毎に格納する。
【００３７】
次に、限界多重度３１２と最適使用量３５１を比較し（ステップ２４２）、一致しなければスレッド制御処理１３０を起動し（ステップ２４３）、現在のスレッド数を画面に表示して（ステップ２４４）、処理を終了する。
【００３８】
具体的には、Ｔｈ−Ａスレッドの限界多重度と最適使用量はそれぞれ、１０、１８である為、スレッド制御処理を起動する。
【００３９】
最後に、スレッド制御処理１３０は図５で示されるフローチャートに基づいて処理され、限界多重度３１２と最適使用量３５１を比較し（ステップ２６０）、限界多重度３１２が最適使用量３５１より小さい場合は、最適使用量３５１までスレッドを増加し（ステップ２６１）、処理を終了する。限界多重度３１２が最適使用量３５１より大きい場合は、最適使用量３５１までスレッドを減少し（ステップ２６２）、処理を終了する。
【００４０】
具体的には、Ｔｈ−Ａスレッドの限界多重度と最適使用量はそれぞれ、１０、１８である為、ステップ２６１へ進み、スレッドを８増加し、最終的なスレッド数は画面表示部401に表示する。
【図面の簡単な説明】
【００４１】
【図１】本発明の全体の処理の流れを表すブロック図である。
【図２】本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート（その１）である。
【図３】本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート（その２）である。
【図４】本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート（その３）である。
【図５】本発明の一実施例における自動流量制御を行う為の個々の機能のフローチャート（その４）である。
【図６】本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル（その１）である。
【図７】本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル（その２）である。
【図８】本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル（その３）である。
【図９】本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル（その４）である。
【図１０】本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル（その５）である。
【図１１】本発明の一実施例における自動流量制御を行う為に個々の機能で入出力されるデータテーブル（その５）である。
【図１２】本発明の一実施例における自動流量制御を行う装置全体の処理の流れを表した装置図である。
【符号の説明】
【００４２】
１００…シミュレーション結果格納テーブル１算出処理、１１０…シミュレーション結果格納テーブル２算出処理、１２０…リソース監視処理、１３０…スレッド制御処理
【図１】
0004591310.tif 000002
【図２】
0004591310.tif 000003
【図３】
0004591310.tif 000004
【図４】
0004591310.tif 000005
【図５】
0004591310.tif 000006
【図６】
0004591310.tif 000007
【図７】
0004591310.tif 000008
【図８】
0004591310.tif 000009
【図９】
0004591310.tif 000010
【図１０】
0004591310.tif 000011
【図１１】
0004591310.tif 000012
【図１２】
0004591310.tif 000013