JP2006189932A - ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体 - Google Patents

ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体 Download PDF

Info

Publication number
JP2006189932A
JP2006189932A JP2004381767A JP2004381767A JP2006189932A JP 2006189932 A JP2006189932 A JP 2006189932A JP 2004381767 A JP2004381767 A JP 2004381767A JP 2004381767 A JP2004381767 A JP 2004381767A JP 2006189932 A JP2006189932 A JP 2006189932A
Authority
JP
Japan
Prior art keywords
processing
thread
period
priority
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2004381767A
Other languages
English (en)
Inventor
Takashi Habe
高志 羽部
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.)
Canon Marketing Japan Inc
Original Assignee
Canon Marketing Japan Inc
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 Canon Marketing Japan Inc filed Critical Canon Marketing Japan Inc
Priority to JP2004381767A priority Critical patent/JP2006189932A/ja
Publication of JP2006189932A publication Critical patent/JP2006189932A/ja
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ジョブ発生量が予測可能な期間において、投入されたジョブを多段処理で実施するときのスループットが向上するスレッドの多重化の最適値を得ると共に、その最適値を得る際の負荷を低くする。
【解決手段】電子帳票登録システム11は、ホストコンピュータ15から受信した入力ファイルを帳票変換部113、帳票仕分け部114、帳票送信部115から成る複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録する。最適化テンプレート定義設定ファイルに予め設定された最適化対象期間中の測定時間となったとき、処理部スレッド数最適化処理を起動して、変化させた処理部スレッド数W別にAの値を取得し、このAの平均値が最大となり、最高のパフォーマンスを得ることができるWの値を処理部スレッド数に決定し、このWの値を最適値として最適化テンプレートファイルに保管する。
【選択図】図1

Description

本発明は、ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体に関し、特に、期間毎にシステムへの運用負荷が異なるファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体に関する。
近年、電子帳票登録システムは、本システムの構成要素であるサーバマシンのCPU多重化、ディスクアクセススピードの高速化に伴い、複数スレッドによるジョブの並行処理が可能となり、スループットの向上が図られるようになった。
一方、スレッドの多重化についてはシステムの負荷、マシンスペック等により予め最適値を決定しておくことは難しい。このため、スレッドの多重化の最適値を決定する様々な方法が従来技術で開示されている。
例えば、実際のジョブ処理データを蓄積し、各ジョブクラスへのイニシエータの割当て(ジョブ多重度)を設定する第1の従来技術(例えば、特許文献1参照)や、ジョブの状況に応じて動的にスレッドの多重度を変更する第2の従来技術(例えば、特許文献2参照)が開示されている。
特開平2−42539号公報 特開2000−215069号公報
しかしながら、第1の従来技術及び第2の従来技術のように、常時ジョブの実施状況を監視すると、監視行為自体がシステムに負荷を掛けることとなる。さらに、予めユーザの業務との関係でシステムへの負荷が大きい繁忙期(例えば月末や期末等)及びその期間中に投入されるジョブの内容が予測できる場合、第1の従来技術及び第2の従来技術のようなリアルタイム修正よりも、設定期間に応じて修正を行った方がより大きなスループットを得ることができる。
また、複数のキューに対して順番にジョブが投入され処理が実施されるような多段処理においては、高負荷が掛かる処理実施単位のキューにジョブが滞留してしまいシステムのリソースが有効に利用されないという問題が発生するが、第1の従来技術及び第2の従来技術はこのような多段処理におけるスループットの向上について何ら言及していない。
本発明の目的は、ジョブ発生量が予測可能な期間において、投入されたジョブを多段処理で実施するときのスループットが向上するスレッドの多重化の最適値を得ると共に、その最適値を得る際の負荷を低くすることができるファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体を提供することにある。
上記の目的を達成するため、請求項1記載のファイル登録システムは、コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバからなるファイル登録システムにおいて、前記システムへの運用負荷が異なる期間を予め設定する期間設定手段と、前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得手段と、前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定手段と、前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行手段とを備えることを特徴とする。
請求項5記載のファイル登録方法は、コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバからなるファイル登録システムのファイル登録方法において、前記システムへの運用負荷が異なる期間を予め設定する期間設定ステップと、前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得ステップと、前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定ステップと、前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行ステップとを備えることを特徴とする。
請求項6記載のサーバは、コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバにおいて、前記システムへの運用負荷が異なる期間を予め設定する期間設定手段と、前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得手段と、前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定手段と、前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行手段とを備えることを特徴とする。
請求項7記載のプログラムは、コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバからなるファイル登録システムのファイル登録方法をコンピュータにより実行するプログラムにおいて、前記システムへの運用負荷が異なる期間を予め設定する期間設定モジュールと、前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得モジュールと、前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定モジュールと、前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行モジュールとを備えることを特徴とする。
本発明によれば、システムへの運用負荷が異なる期間を予め設定し、この設定された一の期間中の所定の測定期間となったときにシステムが備える複数の処理部別スレッド優先度を変化させ、その変化した処理部別スレッド優先度毎にスループットを取得し、この取得したスループットが最大となる処理部別スレッド優先度を上記一の期間における処理部別スレッド優先度に決定し、上記一の期間となったときに決定された処理部別スレッド優先度で上記複数の処理部によるスレッド処理を実行するので、ジョブ発生量が予測可能な期間において、投入されたジョブを多段処理で実施するときのスループットが向上するスレッドの多重化の最適値を得ると共に、常態的に測定の負荷を掛けることなく、その最適値を得る際の負荷を低くすることができる。
好ましくは、システムは、複数の処理部の負荷の度合いを示すパターン毎にスレッド優先度の複数の組み合わせが設定されたシナリオを備え、変化した処理部別スレッド優先度毎にスループットを取得する際に、算出された複数の処理部別の平均処理待ち時間に基づき上記パターンの一つを選択し、この選択されたパターンのシナリオに設定されたスレッド優先度の複数の組み合わせを順に処理部別スレッド優先度に設定するので、ジョブ発生量が予測可能な期間別にスループットが向上するスレッドの多重化の最適値を得ることができる。
好ましくは、上記測定期間となったときに複数の処理部のスレッド数を変化させ、その変化したスレッド数毎にスループットを取得し、この取得したスループットが最大となるスレッド数を上記一の期間における複数の処理部のスレッド数に決定し、上記一の期間となったときに決定されたスレッドで上記複数の処理部によるスレッド処理を実行するので、ジョブ発生量が予測可能な期間において、複数キューを持ち、複数の処理部による多段処理をする場合の負荷を平衡化することができ、よりスループットを向上することができる。
好ましくは、上記測定期間中にスレッド処理が行われた全イベントについて取得された上記複数の処理部別の処理時間と、上記全イベントのジョブの種別毎に算出された平均処理時間に基づいてイベント別優先度を決定し、上記一の期間となったときに上記決定されたイベント別優先度で上記複数の処理部によるスレッド処理をするので、ジョブ発生量が予測可能な期間において、スレッド処理の実施に要する時間が短いジョブについては、優先的に処理を実施することができ、システム全体に滞留するジョブ量を減らすことができる。
以下、本発明の実施形態を図面を用いて詳述する。
図1は、本発明の第1の実施の形態に係るファイル登録システムとしての電子帳票登録システムの構成を概略的に示すブロック図である。
図1の電子帳票登録システム11は、1つのプラットホーム(サーバ)から構成されるものであって、ネットワークとしてのイーサネット(登録商標)を介して他のプラットホームである入力ファイルを電子帳票登録システム11に送信するホストコンピュータ15と、ホストコンピュータ15からの入力データを電子帳票システム11の独自ファイルフォーマットに変換するための変換用データ、変換されたデータの仕分け方法が記載された仕分けデータ、仕分けされた電子帳票の格納先データ、及びファイル名別の個別イベントの優先順位を保管するDBMS121を備える電子帳票マネージャシステム12と、上記変換電子帳票の保管先である電子帳票保管システム13と、電子帳票保管システムで保管されている電子帳票を取得可能なWEBサーバ14とに接続する。
尚、本実施の形態では、ネットワーク接続される1つのプラットホーム(サーバ)上に一つの電子帳票登録システムが構成されるが、これに限定されるわけでなく、用途や目的に応じて、同一のプラットホーム内に複数の電子帳票登録システムを構成したり、異なるプラットホームにそれぞれ別の電子帳票登録システムを構成したりしてもよい。
図1において、電子帳票登録システム11は、ホストコンピュータ15から送信される入力ファイルのパスである入力ファイル検出ディレクトリ1121と、入力ファイル検出ディレクトリに送信された入力ファイルを定期的に検出する帳票検出部112と、入力ファイルを電子帳票マネージャシステム12の備えるDBMS121に基づき電子帳票システム11の独自ファイルフォーマットへの変換を施す帳票変換部113と、変換された電子帳票内に設定されたキーワードにより異なる帳票格納先別に電子帳票を分割し仕分けする処理を施す帳票仕分部114と、仕分けられた電子帳票を電子帳票マネージャシステム12のDBMS121に保管してある所定の格納先(WEBサーバ14)に配信する帳票送信部115とを備える。
帳票変換部113、帳票仕分部114、及び帳票送信部115からなる各処理部は、それぞれ別スレッド上で稼動し、非同期にシステム11がホストコンピュータ15から受信した入力ファイルから生成されたジョブオブジェクト(以下「イベント」という。)の送受信を行っている。また、帳票変換部113、帳票仕分け部114、及び帳票送信部115は、夫々から送信されるイベントを優先順位を付けた待ち行列とする優先順位付キュー1131,1141,1151を持つ。
また、電子帳票登録システム11は、帳票検出部112から送信されるイベントを優先順位を付けた待ち行列とする優先順位付付キュー1111を持ち、優先順位付キュー1111,1131,1141,1151にあるイベントをその優先順位の順番に取り出して処理するイベント制御部1111と、システムの運用負荷が異なる期間(以下「最適化対象期間」という。)毎に高いスループットを得るための各種パラメータを設定する最適化テンプレートファイル(図6(c))及び上記最適化対象期間や各処理部でのスレッド処理に用いられる最大ワークパス(一時作業領域)数等を定義する設定ファイル(図6(a),(b))を記録する記録部110を備える。
記録部110で記録される設定ファイルの1つであるワークパス定義用設定ファイルは、最大いくつのワークパスが各処理部のスレッド処理に用いることができるかが記載される。例えば、図6(b)に示すようにワークパス定義用設定ファイルでワークパス数が10であると定義されているとき、帳票変換部113、帳票仕分け部114、帳票送信部115の3つの優先順位付キューにはそれぞれ最大10の処理実施スレッドがプールできる。また、最適化対象期間毎にワークパス定義用設定ファイルに記載されるワークパスのうちいくつのワークパスを用いてスレッド処理を行うかが最適化テンプレートファイルに記載される。例えば、図6(c)に示すように、優先順位1の最適化対象期間においては、5つのワークパス数を用いてスレッド処理を行う旨が記載されている。
また、記録部110で記録される設定ファイルの1つである最適化テンプレート定義用設定ファイルは、最適化対象期間を優先度をつけて記載するファイルであり、また、最適化対象期間別に最適化テンプレートファイル中の各種パラメータの値を見直して最適化する際のスケジュール(以下「最適化実施スケジュール」という。)を記載している。
例えば、図6(a)に示すように、優先順位が「1」の行については、最適化対象期間として11/15から12/31の平日(月〜金)が記載され、最適化実施スケジュールとして、最適化対象期間となる度に最適化を実施し(見直し実施:Y)、最適化の実施日数は最適化対象期間となった後の最初の平日の4日間であり、毎日20:00から10時間(翌日06:00)の間を測定時間として、毎朝07:00に見直し処理(図10)を実施する設定が記載されている。また、優先順位「3」の行はデフォルトの最適化設定であって、最適化対象期間として全期間が記載され、最適化実施スケジュールとして、最適化対象期間となった後の最初の1回目だけ最適化を実施し(見直し実施:N)、最適化の実施日数は最適化対象期間が適用された後の週末を含む最初の8日間であり、毎日20:00から8時間(翌日04:00)の間を測定期間として、毎朝07:00に後述する見直し処理(図10)を実施する設定が記載されている。
各最適化対象期間の各種パラメータが最適化テンプレートファイルに記載されている場合、システム11は最適化対象期間毎に最適化テンプレートファイルの各種パラメータを読み込み、その読み込んだ各種パラメータを帳票変換部113、帳票仕分け部114、及び帳票送信部115から成る各処理部に適用した後に、イベント処理を行う。
図2〜図5は、図1のシステム11により実行されるイベント処理の手順を示すフローチャートである。
図2において、まず入力ファイル検出ディレクトリ1121を定期的に監視して、入力ファイルを検出する帳票検出部112により、ホストコンピュータ15からネットワーク(イーサネット(登録商標))経由で転送された入力ファイル検出ディレクトリ1121にある入力ファイルを検出すると(ステップS211)、イベントを生成する(ステップS212)。次に、後述する図15のイベント優先順位設定処理により、電子帳票システムマネージャ12経由でDBMS121から入力ファイル名をキーとして検索された変換情報、仕分け情報、配信先情報、優先順位情報、優先実行マークをイベントに格納した後、最適化テンプレートファイルに記載された処理部別スレッドの優先順位及び、DBMS121中に保管された個別イベントの優先順位を適用する(ステップS213)。
その後、そのイベント優先順位と共に優先順位付キュー1111にイベントをポストした後(ステップS214)、ステップS211からの処理を繰り返す。
次に、イベント制御部111により、ステップS214で優先順位付キュー1111にポストされたイベントを優先順位の高いものから優先して優先順位付キュー1111から取得し(ステップS221)、そのイベントの処理を行うためのワークパスを要求する(ステップS222)。このとき、ワークパス定義用設定ファイル(図6(b))に記載されるワークパスのすべてで各処理部の処理が行われているときは、貸し付けられるワークパスが生じるまで待機する。また、帳票変換部113を実装するスレッドの多重度は、後述する図12のスレッド数登録処理により最適化対象期間毎に最適化されており、最適化対象期間内で最もパフォーマンスが得られる設定となっている。
その後、イベント制御部111により、貸し付けられたワークパスがステップS221で取得したイベントにセットされ(ステップS223)、イベント処理開始のタイムスタンプを押した後(ステップS224)、イベント優先順位と共に優先順位付キュー1131にイベントをポストした後(ステップS225)、ステップS221からの処理を繰り返す。
次に、帳票変換部113により、ステップS225でポストされたイベントを優先順位順に優先順位付キュー1131から取得し(図3のステップS231)、帳票変換処理開始のタイムスタンプを押した後(ステップS232)、そのイベントに対するスレッド処理の優先度を最適化テンプレートファイルの記載に基づきインクリメントした後に(ステップS233)、そのイベントの帳票変換処理を施し(ステップS234)、イベント制御部111にイベントをポストする(ステップS235)。
ステップS235で帳票変換部113からポストがあったときに、イベント制御部111により帳票変換処理終了のタイムスタンプを押し(ステップS226)、その後イベント優先順位と共に優先順位付キュー1141にイベントをポストすると同時に(ステップS227)、帳票変換部113においてイベント処理可能なスレッドができたと判断して、ステップS231からの処理を繰り返す。
次に、帳票仕分け部114により、ステップS227でポストされたイベントを優先順位順に優先順位付キュー1141から取得する(図4のステップS241)。このとき、帳票仕分け部114を実装するスレッドの多重度は、後述するスレッド数登録処理(図12)により最適化対象期間毎に最適化されており、最適化対象期間内で最もパフォーマンスが得られる設定となっている。
次に、帳票仕分け処理開始のタイムスタンプを押した後(ステップS242)、そのイベントに対するスレッド処理の優先度を最適化テンプレートファイルの記載に基づきインクリメントした後に(ステップS243)、そのイベントの帳票仕分け処理を施し(ステップS244)、イベント制御部111にイベントをポストする(ステップS245)。
ステップS245で帳票仕分け部114からポストがあったときに、イベント制御部111により帳票仕分け処理終了のタイムスタンプを押し(ステップS228)、その後イベント優先順位と共に優先順位付キュー1151にイベントをポストすると同時に(ステップS229)、帳票仕分け部114においてイベント処理可能なスレッドができたと判断して、ステップS241からの処理を繰り返す。
次に、帳票送信部115により、ステップS229でポストされたイベントを優先順位順に優先順位付キュー1151から取得する(図5のステップS251)。このとき、帳票送信部115を実装するスレッドの多重度は、後述するスレッド数登録処理(図12)により最適化対象期間毎に最適化されており、最適化対象期間内で最もパフォーマンスが得られる設定となっている。
次に、帳票送信処理開始のタイムスタンプを押した後(ステップS252)、そのイベントに対するスレッド処理の優先度を最適化テンプレートファイルの記載に基づきインクリメントした後に(ステップS253)、そのイベントの帳票送信処理を施し(ステップS254)、イベント制御部111にイベントをポストする(ステップS255)。
ステップS255で帳票送信部115からポストがあったときに、イベント制御部111により帳票送信処理終了のタイムスタンプを押し(ステップS2210)、その後イベントからワークパスを返却し(ステップS2211)、後述する図7のロギング処理を行った後に(ステップS2212)、このイベント処理を終了する(ステップS2213)。このとき同時に、帳票送信部115においてイベント処理可能なスレッドができたと判断して、ステップS251からの処理を繰り返す。
図7は、図2のステップS2212のロギング処理の手順を示すフローチャートである。
図7において、まず、図2のステップS2211でイベントからワークパスが返却され(ステップS410でYES)、且つ、現在、最適化テンプレート定義用設定ファイル(図6(a))に記載された最適化対象期間中の指定された測定時間であるときに(ステップS411でYES)、その返却されたイベントについて、図3のステップS232,S226、図4のステップS242,S228、図5のステップS252,S2210において各処理部の処理開始時及び処理終了時に押されたタイムスタンプの値から各処理部における待ち時間、即ち、各キュー1131,1141,1151にイベントがポストされてから、実際にそのイベントが各処理部で処理されるまでの時間を除いたイベントの純粋処理時間を算出し(ステップS412)、ステップS412で算出された純粋処理時間をそのイベントのジョブである入力ファイル名でロギングする(ステップS413)。ここで、ロギングするとは、ロギングデータ中にデータを保存することをいう。
次に、上記タイムスタンプの値から各処理部における待ち時間を夫々算出し(ステップS414)、処理部毎に待ち時間をロギングした後(ステップS415)、一の測定期間においてワークパスがk回返却されたことを示す処理量カウンタAの値を一つインクリメントし(ステップS416)、本処理を終了する。
一方、ステップS411の判別の結果、現在、最適化対象期間中の指定された測定時間でないときは、そのまま本処理を終了する。
図7の処理によれば、指定された測定期間中に各処理部で処理が行われた全てのイベントは、入力ファイル名別に各処理部における待ち時間を除いた純粋処理時間(ステップS413)、及び各処理部別の待ち時間(ステップS415)がロギングされ、また測定時間内に返却されたワークパスの数をカウントする処理量カウンタAもロギングされる(ステップS416)ので、後述する図10の見直し処理を適切に行うことができる。
図8は、図1のシステム11により実行される最適化対象期間切り替えスケジュール処理の手順を示すフローチャートである。
図8において、まず、システム11は起動すると、記録部110が保存する設定ファイルの一つである最適化テンプレート定義用設定ファイル(図6(a))の設定を読み込み(ステップS511)、後述する図9の最適化対象期間切り替え処理により、最適化対象期間の切り替えを行う(ステップS512)。
次に、上記最適化テンプレート定義用設定ファイルに記載されている最適化対象期間の切り替わり時期に後述する図9の最適化対象期間切り替え処理が呼び出されるようにスケジューリングし(ステップS513)、本処理を終了する。
図9は、システム11により実行される最適化対象期間切り替え処理の手順を示すフローチャートである。
図9において、まず、システム11は、設定ファイルの一つである最適化テンプレート定義用設定ファイル(図6(a))に記載されているいずれかの最適化対象期間への切り替わり時期となったとき(ステップS521でYES)、その最適化対象期間について、最適化テンプレートファイルに記載される値の見直しが必要か否かを判別する(ステップS522)。この判別は、最適化テンプレート定義用設定ファイルで見直し処理がYとなっているかNとなっているかによって判断される。
ステップS522の判別の結果、見直しが不要である場合は、最適化テンプレートファイルにその最適化対象期間における値が存在するか否かを判別し(ステップS524)、見直しが必要である場合は、ステップS523の処理に進む。
ステップS524の判別の結果、最適化テンプレートファイルに上記最適化対象期間における値が存在しないときは、ステップS523の処理に進み、最適化テンプレートファイルに値が存在するときは、既存の最適化テンプレートファイルの値をシステム11に適用して(ステップS526)、本処理を終了する。
次に、ステップS523において、ロギングデータが初期化される。その後、後述する図10の見直し処理が最適化対象期間内と最適化対象期間終了後1日目に起動されるようにスケジューリングして(ステップS525)、本処理を終了する。
図9の処理によれば、最適化テンプレートファイルに記載されている値の見直しが必要である場合(ステップS522でYES)、見直し処理は最適化対象期間内と最適化対象期間終了後1日目に起動されるようにスケジューリングされるので(ステップS525)、常態的に測定の負荷を掛けることなく、その最適値を得る際の負荷を低くすることができる。
ここで、ステップS525で最適化対象期間内に見直し処理が起動されるようにスケジューリングするのは、見直し処理で得られる最適値を導出するための測定値を取得するためであり、最適化対象期間終了後1日目に見直し処理が起動されるようにスケジューリングするのは、取得した測定値から導出された最適値をテンプレート化してその値でロックするためである。
本処理を、システム起動直後に最適化テンプレート定義用設定ファイル(図6(a))にある優先順位3の最適化対象期間に切り替わった場合を用いて具体的に説明する。
まず、システム11は、最適化テンプレート定義用設定ファイルで優先順位3の見直しは不要(N)となっているため、ステップS522で見直し不要と判別し、ステップS524で最適化テンプレートファイルにその最適化対象期間における値が存在するか否かを判別する。
システム11は、起動直後は初期状態であり、最適化テンプレートファイルにその最適化対象期間における値は存在しないため、ステップS523の処理に進んでロギングデータを初期化し、ステップS525で見直し処理の起動がスケジューリングされて、本処理は終了する。
その後、ステップS525でスケジューリングされた期間となったときに、システム11は後述する図10の見直し処理を行い、優先順位3の最適化対象期間における最適値を最適化テンプレートファイル中にロックする。この見直し処理は、測定期間中に行われる前述の図7のロギング処理によりロギングされた測定値を用いて最適値を導出する。
その後、再度優先順位3の最適化対象期間に切り替わると、システム11は、まず、最適化テンプレート定義用設定ファイル(図6(a))で優先順位3の見直しは不要(N)となっているため、ステップS522で見直し不要と判別し、上述したように、すでに優先順位3の最適化対象期間における最適値は最適化テンプレートファイル中にロックされているため、ステップS524で最適化テンプレートファイルにその最適化対象期間における最適値が存在すると判断し、ステップS526でその最適化テンプレートファイルの値をシステム11に適用して、本処理を終了する。
図10は、システム11により実行される見直し処理の手順を示すフローチャートである。
本処理は、見直し処理の起動がスケジューリングされた期間となると起動する。
図10において、まず、システム11は、現在、図9のステップS524で見直し処理の起動がスケジューリングされた期間(最適化対象期間終了後1日目)への切り替わり時期であるか判別し(ステップS531)、この切り替わり時期でないときは、後述する図11の処理部スレッド数最適化処理により各処理部のスレッド数を最適化して(ステップS532)、後述する図13の処理部別スレッド優先順位最適化処理により処理部別スレッドの優先順位を最適化した後に(ステップS533)、ロギングデータ中の処理量カウンタAの値を初期化して(ステップS539)、本処理を終了する。これにより、この最適化対象期間の測定期間中に図2〜図5のイベント処理が実施されることにより、ステップS532のスレッド数最適化処理及びS533の処理別スレッド優先度最適化処理で最適化テンプレートファイルの値が変更される。
一方、ステップS531の判別の結果、現在、上記切り替わり時期であるときは、、図12の処理部スレッド数登録処理により、測定期間中にロギングされた測定値から処理部別スレッド数の最適値を導出して、これを最適化テンプレートファイルに保存(ロック)する(ステップS536)。その後、図14の処理部別スレッド優先順位登録処理により、同じく測定期間中にロギングされた測定値から処理部別スレッド優先順位の最適値を導出して、これを最適化テンプレートファイルに保存(ロック)する(ステップS537)。これにより、最適化対象期間毎に処理部別スレッド数及び処理部別スレッド優先度を最適化テンプレートファイルに保存(ロック)することができる。
次に、後述する図17のイベント優先度最適化処理により、上記ロックされた後に得られた測定値に基づいて、優先実行すべき入力ファイル(個別イベントの優先順位)を判別し、最適化テンプレートファイルに保存(ロック)する(ステップS538)。これにより、最適化対象期間毎に最適な個別イベントの優先順位を最適化テンプレートファイルに保存(ロック)することができる。
その後、ロギングデータを初期化して(ステップS539)、本処理を終了する。
図11は、図10のステップS532の処理部スレッド数最適化処理の手順を示すフローチャートである。
本処理は、図10のステップS531で見直し処理の切り替わり時期であると判別される毎に起動する。以下、説明を簡略化するため、具体例として、最適化テンプレート定義用設定ファイルに最適化実施スケジュールの実施日数として8日間が指定され、且つ最適なスレッド数が5である場合について説明する。また、システム11は3つのCPUを有しており、処理部スレッド数の初期値WはCPUの数に1を加えた値である4とする。
まず、1日目の測定期間(k=1)となり、本処理を起動すると、処理量カウンタAがロギングデータ中に存在するか否かを判別する(ステップS611)。本具体例では、測定期間が開始してから本処理実行時までの間に、イベント処理が一度も行われておらず、ロギングデータ中に処理量カウンタAはないため(ステップS611でNO)、前回のイベント処理における処理部スレッド数Wk+1(=W)を初期値W(=4)として(ステップS612)、本処理を終了する。
次に、2日目の測定期間(k=2)となり、本処理を起動したとき、処理量カウンタAがロギングデータ中に存在するか否か判別する(ステップS611)。本具体例では、測定期間2日目が開始してから本処理実行時までの間に、イベント処理が1000回行われており、ロギングデータ中に処理量カウンタA(=1000)があるため(ステップS611でYES)、処理量カウンタAの値及び処理部スレッド数Wを取得する(ステップS613)。
その後、処理量カウンタAk−1がロギングデータ中に存在するか否かを判断する(ステップS614)。本具体例では、現時点でイベント処理が1回しか行われておらず、ロギングデータ中に処理量カウンタAのみが保管され、その前に行われたイベント処理による処理量カウンタAk−1はないため(ステップS614でNO)、処理部スレッド数Wk+1(=W)=W+1(=5)として(ステップS615)、本処理を終了する。
次に、3日目の測定期間(k=3)となり、本処理を起動したとき、処理量カウンタAがロギングデータ中に存在するか否か判別する(ステップS611)。本具体例では、測定期間3日目が開始してから本処理実行時までの間に、イベント処理が1500回行われており、ロギングデータ中に処理量カウンタA(=1500)はあるため(ステップS611でYES)、処理量カウンタAの値及び処理部スレッド数Wを取得する(ステップS613)。
その後、処理量カウンタAk−1がロギングデータ中に存在するか否かを判断する(ステップS614)。本具体例では、2日目にもイベント処理が行われており、ロギングデータ中に今回の処理量カウンタAのみならず、前回の処理量カウンタAも保管しているため(ステップS614でYES)、前回の処理量カウンタA及び前回の処理部スレッド数Wを取得する(ステップS616)。
その後、ステップS613で取得した処理量カウンタAの値より処理量カウンタAの値の方が大きいか否かを判別する(ステップS617)。ここで、Aの値とは、測定期間k日目が開始してから本処理実行時までの間に返却されたワークパスの数であり、本具体例においては、A≧Aであるので(ステップS617でYES)、ステップS619に進み、次に、Wが最大スレッド数M未満であるか否かを判別する。本具体例では、2日目のステップS615の処理により、Wは5に設定されている一方、最大スレッド数は10であるため、W<Mとなり(ステップS619でYES)、次回(4日目)の処理部スレッド数W=W+(W−W)=6に設定する(ステップS6111)。
その後、Wk+1とWを比較すると(ステップS6112)、W(=6)>W(=5)であるので、各処理部におけるスレッド数を一つずつ増加させて(ステップS6115)、本処理を終了する。
次に、4日目の測定期間(k=4)となり、本処理を起動したとき、処理量カウンタAがロギングデータ中に存在するか否か判別する(ステップS611)。本具体例では、測定期間4日目が開始してから本処理実行時までの間に、イベント処理が1200回行われており、ロギングデータ中に処理量カウンタA(=1200)があるため(ステップS611でYES)、処理量カウンタAの値及び処理部スレッド数Wを取得する(ステップS613)。
その後、処理量カウンタAk−1がロギングデータ中に存在するか否かを判断する(ステップS614)。本具体例では、3日目にもイベント処理が行われており、ロギングデータ中に今回の処理量カウンタAのみならず、前回の処理量カウンタAも保管しているため(ステップS614でYES)、前回の処理量カウンタA及び前回の処理部スレッド数Wを取得する(ステップS616)。
その後、ステップS613で取得した処理量カウンタAの値より処理量カウンタAの値の方が大きいか否かを判別する(ステップS617)。本具体例においては、A<Aであるので(ステップS617でNO)、次回の処理部スレッド数W=W4−1=W=5として(ステップS618)、本処理を終了する。
次に、5日目の測定期間(k=5)となり、本処理を起動したとき、処理量カウンタAがロギングデータ中に存在するか否か判別する(ステップS611)。本具体例では、測定期間5日目が開始してから本処理実行時までの間に、イベント処理が1500回行われており、ロギングデータ中に処理量カウンタA(=1500)があるため(ステップS611でYES)、処理量カウンタAの値及び処理部スレッド数Wを取得する(ステップS613)。
その後、処理量カウンタAk−1がロギングデータ中に存在するか否かを判断する(ステップS614)。本具体例では、4日目にもイベント処理が行われており、ロギングデータ中に今回の処理量カウンタAのみならず、前回の処理量カウンタAも保管しているため(ステップS614でYES)、前回の処理量カウンタA及び前回の処理部スレッド数Wを取得する(ステップS616)。
その後、ステップS613で取得した処理量カウンタAの値より処理量カウンタAの値の方が大きいか否かを判別する(ステップS617)。本具体例においては、A≧Aであるので(ステップS617でYES)、次に、Wが最大スレッド数M未満であるか否かを判別する(ステップS619)。本具体例では、4日目のステップS615の処理により、Wは5に設定されている一方、最大スレッド数は10であるため、W<Mとなり(ステップS619でYES)、次回(6日目)の処理部スレッド数W=W+(W−W)=4に設定する(ステップS6111)。
その後、Wk+1とWを比較すると(ステップS6112)、W(=5)<W(=6)であるので、各処理部におけるスレッド数を一つずつ削除させて(ステップS6116)、本処理を終了する。
次に、6日目の測定期間(k=6)となり、本処理を起動したとき、処理量カウンタAがロギングデータ中に存在するか否か判別する(ステップS611)。本具体例では、測定期間6日目が開始してから本処理実行時までの間に、イベント処理が1000回行われており、ロギングデータ中に処理量カウンタA(=1000)があるため(ステップS611でYES)、処理量カウンタAの値及び処理部スレッド数Wを取得する(ステップS613)。
その後、処理量カウンタAk−1がロギングデータ中に存在するか否かを判断する(ステップS614)。本具体例では、5日目にもイベント処理が行われており、ロギングデータ中に今回の処理量カウンタAのみならず、前回の処理量カウンタAも保管しているため(ステップS614でYES)、前回の処理量カウンタA及び前回の処理部スレッド数Wを取得する(ステップS616)。
その後、ステップS613で取得した処理量カウンタAの値より処理量カウンタAの値の方が大きいか否かを判別する(ステップS617)。本具体例においては、A<Aであるので(ステップS617でNO)、次回の処理部スレッド数W=W(=5)とする(ステップS618)。
その後、Wk+1とWを比較すると(ステップS6112)、W(=5)>W(=4)であるので、各処理部におけるスレッド数を一つずつ増加させて(ステップS6115)、本処理を終了する。
以降の7日目、8日目においても同様の処理がおこなわれ、処理部スレッド数は5をはさむ4から6の間で推移する。
尚、本具体例では、ステップS6112でWk+1とWを比較した結果、両者が等しい値であるケースは存在しなかったが、図11に示すように、この場合(Wk+1=W)、各処理部スレッドの数は維持してそのまま本処理を終了する。
引き続き、図10のステップS535で最適化対象期間の終了後1日目になったときに起動する処理部スレッド数登録処理が上記具体例について行われた場合について説明する。
図12は、図10のステップS536の処理部スレッド数登録処理の手順を示すフローチャートである。
図12において、まず、処理部スレッド数Wの値別に処理量カウンタAの値の平均を算出し、その平均値が最大値となり、最高のパフォーマンスをえた処理部スレッド数Wkを決定する(ステップS621)。本具体例では、(W,A)=(4,1000)、(W,A)=(5,1500)、(W,A)=(6,1200)、(W,A)=(5,1500)、(W,A)=(4,1000)、(W,A)=(5,1500)、(W,A)=(6,1200)である。従って、W=4のとき、処理量カウンタAの値の平均値は1000、W=5のとき、処理量カウンタAの値の平均値は1500、W=6のとき、処理量カウンタAの値の平均値は1200と計算され、平均値が最大値(=1500)となる処理部スレッド数W=5が最高のパフォーマンスを得るものに決定される。次に、その決定された処理部スレッド数Wの値を最適値に設定し(ステップS622)、この最適値に設定された処理部スレッド数Wの値を最適化対象期間別に処理部スレッド数の値を保管する最適化テンプレートファイルに保管し(ステップS623)、本処理を終了する。
以上、図11及び図12の処理によれば、最適化テンプレート定義設定ファイル(図6(a))に予め設定された最適化対象期間中の測定時間となったとき、即ち、見直し処理の切り替わり時期であるときに(図10のステップS531でYES)、図11の処理部スレッド数最適化処理を起動して、変化させた処理部スレッド数W別にAの値を取得し(図11のステップS613)、この取得した処理部スレッド数別Aの平均値が最大となり、最高のパフォーマンスを得ることができるWの値を処理部スレッド数に決定し(図12のステップS621)、この処理部スレッド数Wの値を最適値として最適化テンプレートファイルに保管するので(ステップS623)、ジョブ発生量が予測可能である最適化対象期間中において、複数の優先順位付キュー1131,1141,1151を持ち、複数の処理部(帳票変換部113,帳票仕分け部114,帳票送信部115)による多段処理をする場合の負荷を平衡化することができ、スループットを向上することができる。
図13は、図10のステップS533の処理部別スレッド優先順位最適化処理の手順を示すフローチャートである。
本処理は、図10に示すように、処理部スレッド数最適化処理(図10のステップS532,図11)が行われ次第、起動する。
以下説明を簡略化するため、図11と同様に、具体例として、最適化テンプレート定義用設定ファイルの最適化実施スケジュールの実施日数として8日間が指定されている場合について説明する。
まず、1日目の測定期間(k=1)の処理部スレッド数最適化処理が終了して、本処理が起動すると、処理量カウンタAがロギングデータ中に存在するか否かを判断する(ステップS711)。本処理実行時には、1日目のイベント処理が一度も行われなかったときは、ロギングデータ中にAの値はないため(ステップS711でNO)、全処理部のスレッド優先順位をシステムデフォルトとし(ステップS712)、本処理を終了する。
次に、2日目の測定期間(k=2)の処理部スレッド数最適化処理が終了して、本処理が起動すると、処理量カウンタAがロギングデータ中に存在するか否か判別する(ステップS711)。本具体例では、測定期間が開始してから2日目が経過している本処理実行時までの間に、イベント処理が1回行われており、ロギングデータ中に処理量カウンタAはあるため(ステップS711でYES)、Aの値を取得する(ステップS713)。
次に、図7のステップS415でロギングされている処理部毎の待ち時間により各処理部の平均待ち時間CVT,SOT,SNTを算出し(ステップS714)、各処理部の優先度の組み合わせにおける測定順序を記述したシナリオSが存在するか否かを判別する(ステップS715)。
上述したように、1日目の処理では、各処理部の優先度の組み合わせにおける測定順序を記述したシナリオの設定はなされていないため、設定されたシナリオは存在しないため(ステップS715でNO)、電子帳票マネージャシステム12のDBMS121に予め保存されている複数のシナリオ(図16)のうち、各処理部の平均待ち時間と一致するシナリオSを選択する(ステップS716)。このシナリオSの選択は具体的には、各処理部の平均待ち時間の比率を比べ、1つの処理部の平均待ち時間の比率が高く、この処理部に突出して高い負荷が掛かっているパターン1(図16(a))、2つの処理部の平均待ち時間の比率が高く、この2つの処理部に突出して高い負荷が掛かっているパターン2(図16(b))、平均待ち時間の比率が中位である処理部の負荷が、その他2つの処理部の平均待ち時間の比率の中間程度であるパターン3(図16(c))、全ての処理部の平均待ち時間の比率がほぼ同じで、3つの処理部共に同程度の負荷が掛かっているパターン4(図16(d))のうち、一致するパターンを選択することにより行う。本具体例では、帳票変換部113と帳票仕分け部114が、帳票送信部115に比べて平均待ち時間の比率が高い場合について説明する。即ち、本具体例では、ステップS716では、パターン2のシナリオが選択される。
ステップS714で算出された各処理部の平均待ち時間CVT,SOT,SNTは、各処理部の優先度の組み合わせが設定されていない状態、即ち、全ての優先度が0の状態で算出されているため、各処理部の優先度組み合わせが全て0に設定されているj=1の履歴として保管する(ステップS718)。図16に示すように、いずれのパターンのシナリオもj=1優先度組み合わせS1は、各処理部の優先度を全て0としているため、ステップS716でいずれのパターンのシナリオが選択された場合であっても、初めて履歴として保管される各処理部の平均待ち時間はj=1のシナリオによるものとする。
その後、jを1つインクリメントして2とし(ステップS7112)、各処理部の優先順位の組み合わせとして、シナリオS2を適用して(ステップS7113)、本処理を終了する。本具体例では、パターン2のシナリオS2が適用されるので、帳票変換部113と帳票仕分け部114の全処理スレッドの優先度をそれぞれデフォルト値よりも1つずつ上げる。
その後、この2日目に適用されたパターン2のシナリオS2でイベント処理され、処理量カウンタAがロギングデータ中に保管されていく。
次に、3日目の測定期間(k=3)の処理部スレッド数最適化処理が終了して、本処理が起動すると、上述のようにロギングデータ中に保管されていった処理量カウンタAの値を取得した後(ステップS711でYES,ステップS714)、各処理部の平均待ち時間CVT,SOT,SNTを算出し(ステップS714)、2日目に適用されたシナリオS2をキーに履歴として処理量カウンタA及び各処理部の平均待ち時間CVT,SOT,SNT保存し(ステップS717)、次に、jがその最大値未満であるか判別する(ステップS719)。
本具体例では、現在のjの値は2であり、また、図16(b)に示すようにjの最大値は4であるため、jの値はその最大値未満であると判別し(ステップS719でYES)、jの値を1つインクリメントして3とし(ステップS7110)、各処理部の優先順位の組み合わせとして、シナリオS3を適用して(ステップS7113)、本処理を終了する。本具体例では、パターン2のシナリオS3が適用されるので、帳票変換部113と帳票仕分け部114のいずれか一方の全処理スレッドの優先度のみを現在の優先度1から1つ上げる。
その後、この3日目に適用されたパターン2のシナリオS3でイベント処理され、処理量カウンタAがロギングデータ中に保管されていった後、4日目で同様の処理部別スレッド優先度順位最適化処理でパターン2のシナリオS4が適用され、イベント処理及び処理用カウンタAの保管が行われる。
次に、5日目の測定期間(k=5)の処理部スレッド数最適化処理が終了して、本処理が起動すると、上述のようにロギングデータ中に保管されていった処理量カウンタAの値を取得した後(ステップS711でYES,ステップS714)、各処理部の平均待ち時間CVT,SOT,SNTを算出し(ステップS714)、4日目に適用されたシナリオS4をキーに履歴として処理量カウンタA及び各処理部の平均待ち時間CVT,SOT,SNT保存する(ステップS717)。
次に、現在のjの値「4」はその最大値であるので(ステップS719でNO)、jの値を再度「1」とし(ステップS7111)、各処理部の優先順位の組み合わせとして、シナリオS0を適用して(ステップS7113)、本処理を終了する。
その後、この5日目に適用されたパターン2のシナリオSでイベント処理され、処理量カウンタAがロギングデータ中に保管されていった後、6日目で同様の処理部別スレッド優先度順位最適化処理が行われて、パターン2のシナリオSが適用され、イベント処理及び処理用カウンタAの保管が行われる。さらに、7日目、8日目における本処理は、夫々3日目、4日目の処理と同様の処理となる。
図14は、図10のステップS537の処理部別スレッド優先順位登録処理の手順を示すフローチャートである。
本処理は、図10のステップS535で最適化対象期間の終了後1日目になったときに起動する。
図14において、まず、測定期間中の最後の(8日目の)処理部別スレッド優先順位最適化処理で適用されたシナリオS(パターン2のシナリオS4)でイベント処理がされ、ロギングデータ中に保管されていた処理量カウンタAの値、及びそのときの各処理部の平均待ち時間CVT,SOT,SNTをシナリオSをキーに履歴として保存した後(ステップS721)、履歴中の処理量カウンタAに基づき、履歴中のシナリオS別に処理量Aの値の平均を算出し、その平均値が最大値となり、最高のパフォーマンスをえたシナリオSを決定する(ステップS722)。本具体例では、パターン2のシナリオS〜Sが適用されたイベント処理を2日間ずつ実施しているので、シナリオS別に処理量カウンタAに基づく2日間の処理量の平均が算出される。
ステップS722で決定されたシナリオSを最適値に設定する(ステップS723)、例えば、本具体例でパターン2のシナリオSが最適値に設定された場合、図16(b)に示すように、帳票変換部113と帳票仕分け部114の全処理スレッドの優先度をそれぞれデフォルト値よりも1つずつ上げたものが各処理部の優先度として設定される。
その後、ステップS723で最適値に設定されたシナリオSを最適化対象期間別にシナリオを保管する最適化テンプレートファイルに保管し(ステップS724)、次の最適化対象期間における最適化処理のために、図13のステップS7113で適用されたシナリオを取り消して(ステップS725)、本処理を終了する。
図13及び図14の処理によれば、処理部スレッド数最適化処理が終了したときに(図10のステップS532)、図13の処理部別スレッド優先順位最適化処理を起動して、スレッド優先度の複数の組み合わせが設定されたシナリオSに基づき処理部別スレッド優先度を変化させてAの値を取得し(図13のステップS713)、その後シナリオS別にAの値を履歴として保存した後に(図13のステップS718,図14のステップS721)、S別Aの値の平均値が最大となり、最高のパフォーマンスをえるシナリオSを決定し(ステップS722)、このシナリオSの値を最適値として最適化テンプレートファイルに保管するので(ステップS724)、ジョブ発生量が予測可能である最適化対象期間別にスループットが向上するスレッドの多重化の最適値を得ることができる。
以下、図13のステップS716における、各処理部の平均待ち時間よりパターンを決定する方法について説明する。以下、各処理部の平均待ち時間CVT,SOT,SNTがそれぞれ500秒、450秒、300秒 とした場合について各種パターン決定方法の例を説明する。
第1のパターン決定方法は、各処理部の平均待ち時間のうち、最大のもの(CVT)と、最小もの(SNT)の差(200秒)を求め、この差の時間を3等分して平均待ち時間が中位のもの(SOT)がどのレンジに存在するかによりパターンを決定する方法である。
本具体例では、差の3等分の値は、200秒/3≒66.7秒であるから、300〜366.7秒の間にあるときは下位レンジに、366.7〜433.4秒の間にあるときは中位レンジに、433.4〜500秒の間にあるときは上位レンジに存在することとなる。中位の平均待ち時間SOTは450秒であるので上位レンジに属することなり、パターン2が選択される。
しかしながら、このように平均待ち時間の差分からパターンを決定すると、どんなに小さくとも差は差分と解釈されるためパターン4を採る場合はありえない。
第2のパターン決定方法は、3つの平均待ち時間を、予め設定されたしきい値より大きいときに上位レベル、しきい値以下のときに下位レベルとすることによりパターンを決定する方法である。
例えば、3つの平均待ち時間のうち最小のものを基準値とし、この基準値の1.6倍の値を上記しきい値とすると、しきい値は、最小の平均待ち時間であるSNT(=300秒)に1.6を乗じた480秒となる。この場合、平均待ち時間CVT(=500秒)はしきい値より大きいので上位レベル、平均待ち時間SOT(=450秒),SNT(=300秒)はしきい値以下であるので下位レベルとなり、パターン1が選択される。
また、上記しきい値を上記基準値の1.4倍の値とすると、しきい値は420秒となる。この場合、平均待ち時間CVT,SOTは共にしきい値よりも大きいので上位レベル、平均待ち時間SNTはしきい値以下であるので下位レベルとなり、パターン2が選択される。
更に、上記しきい値を上記基準値の1.8倍の値とすると、しきい値は540秒となる。この場合、平均待ち時間CVT,SOT,SNTは全てしきい値以下であるので下位レベルとなり、パターン4が選択される。
しかしながら、このようにしきい値からパターンを決定すると、平均待ち時間は上位レベルと下位レベルのいずれかになるので、パターン3を採る場合はありえない。
第3のパターン決定方法は、3つの平均待ち時間を、予め設定された第1のしきい値と第2のしきい値で比較し(第1のしきい値>第2のしきい値)、第1のしきい値より大きいときに上位レベル、第2のしきい値より大きいときに中位レベル、第2のしきい値以下であるときに下位レベルとすることによりパターンを決定する方法である。
例えば、3つの平均待ち時間のうち最小のものを基準値とし、この基準値の1.6倍の値を上記第1のしきい値、この基準値の1.3倍の値を上記第2のしきい値とすると、第1のしきい値は、最小の平均待ち時間であるSNT(=300秒)に1.6を乗じた480秒、第2のしきい値は390秒となる。この場合、平均待ち時間CVT(=500秒)は上位レベル、平均待ち時間SOT(=450秒)は中位レベル、平均待ち時間SNT(=300秒)は下位レベルとなり、パターン3が選択される。
また、上記しきい値を夫々上記基準値の1.8倍、1.5倍の値とすると、第1のしきい値は540秒、第2のしきい値は450秒となる。この場合、平均待ち時間CVT、SOTは共に中位レベルとなり、パターン2が選択される。
さらに、上記しきい値を夫々上記基準値の2.0倍、1.8倍とすると、第1のしきい値は600秒、第2のしきい値は540秒となる。この場合、平均待ち時間CVT,SOT,SNTは全て下位レベルとなり、パターン4が選択される。
以上、第1〜第3のパターン決定方法によれば、算出された複数の処理部別の平均処理待ち時間に基づき、上記複数の処理部の負荷の度合いを示すパターンを決定し、この決定されたパターン毎にスレッドの優先度の組み合わせが設定されたシナリオのうちの最適なものを選択して、複数の処理部別にスレッドの優先度を決定するので、最適化対象期間別にスループットが向上するスレッドの多重化の最適値を確実に得ることができる。
図15は、図2のステップS213のイベント優先順位設定処理の手順を示すフローチャートである。
本処理は、図2〜図5で前述したイベント処理において行われる処理の一つであり、図2に示すように、帳票検出部112が入力ファイル検出ディレクトリ1121にある入力ファイルを検出し(図2のステップS211)、イベントを生成する(ステップS212)毎に起動し、その処理終了後は図2のステップS214以降の処理が行われる。
以下説明を簡略化するため、図11、図13と同様に、具体例として、最適化テンプレート定義用設定ファイルの最適化実施スケジュールの実施日数として8日間が指定されている場合について説明する。
まず、1日目の測定期間(k=1)に本処理が起動すると、イベントに格納されたファイル名をキーとして、電子帳票マネージャシステム12に保管されている変換用データ、仕分けデータ、格納先データ、及び個別イベントの優先度を取得し、イベントに格納する(ステップS811)。
その後、測定期間1日目は最適化実施中であるので(ステップS812でYES)、本処理をそのまま終了する。
同様の処理を2日目〜8日目の測定期間においても行った後、最適化対象期間終了後1日目に本処理が起動すると、イベントに格納されたファイル名をキーとして、電子帳票マネージャシステム12に保管されている上述のデフォルトデータを取得し、イベントに格納した後(ステップS811)、現在は最適化実施中ではないので(ステップS812でNO)、イベントに格納されたファイル名と、現在日付をキーとして、電子帳票マネージャシステム12のDBMS121から現在の最適化対象期間における優先実行マーク情報を取得する(ステップS813)。ここで、優先実行マーク情報とは、最適化対象期間及び入力ファイルの種別(ファイル名)毎にある情報であって、イベント処理を優先的に実行する場合にマークが立てられる。
次に、現在の最適化対象期間においてイベントのファイル名についての現在の最適化対象期間における優先実行マーク情報にマークが立てられていない場合は直接、マークがたてられている場合は(ステップS814でYES)、イベントの優先順位を一つインクリメントして(ステップS815)、本処理を終了する。
図17は、図10のステップS538の個別イベント優先度最適化処理の手順を示すフローチャートである。
本処理は、図10に示すように、図9のステップS524で見直し処理の起動がスケジューリングされた期間(最適化対象期間終了後1日目)への切り替わり時期となり(ステップS535でYES)、図12の処理部スレッド数登録処理(ステップS536)及び図13の処理部別スレッド優先度登録処理(ステップS537)が終了した時に起動する。
以下説明を簡略化するため、最適化テンプレート定義用設定ファイルの最適化実施スケジュールの実施日数として8日間が指定されており、測定期間中において図15のイベント優先順位設定処理が行われた後に、最適化対象期間終了後1日目となり、本処理が起動した場合を例として説明する。
まず、図7のステップS413において、入力ファイル毎にロギングされたデータから全入力ファイル毎の全イベントの平均処理時間μと標準偏差σを算出し(ステップS821)、次に、入力ファイル毎にその入力ファイルの平均処理時間を算出する(ステップS823)。
次に、上記入力ファイルの平均処理時間がμ-σの値未満であるか否かを判別する(ステップS824)。ここで、上記入力ファイルの平均処理時間がμ-σの値以上であるときは直接、μ-σの値未満であるときはその入力ファイルについて優先実行マークを電子帳票マネージャシステム12のDBMS121中に立てる(ステップS825)。
全ての入力ファイル毎のロギングデータについて上記処理を施し、全ての入力ファイルについて処理が完了すると(ステップS822でNO)、本処理を終了する。
図15及び図17の処理によれば、測定期間がが終了したときに本処理を起動し、測定時間中に処理された全イベントについて算出された平均処理時間μ及び標準偏差σ(ステップS821)と、ロギングされている各入力ファイルの平均処理時間(ステップS823)とに基づき、優先実行マークを立て(ステップS825)、この優先実行マークが立てられているイベントの優先順位を一つインクリメントするので(図15のステップS815)、ジョブ発生量が予測可能である最適化対象期間中において、処理の実施に要する時間が短いジョブについては、優先的に処理を実施することができ、システム全体に滞留するジョブ量を減らすことができる。
次に、上記具体例で最適なW,Sが最適化テンプレートファイルに保管されると共に、電子帳票マネージャシステム12のDBMS121にファイル名別に最適な優先順位が格納された後、図2〜図5のイベント処理が行われた場合について説明する。
まず、ステップS214で帳票検出部112により優先度1と共にこのイベントが優先順位付キュー1111にポストされる。その後、ステップS221で、イベント制御部により、優先度がデフォルト値(0)のイベントよりも優先してこのイベントがキュー1111から取得される。
ステップS223でイベント制御部111により貸し付けられたワークパスがイベントにセットされ、ステップS225でその優先度1と共にイベントが優先順位付キュー1131にポストされる。その後、ステップS231で、帳票変換部113により、優先度がデフォルト値(0)のイベントよりも優先してこのイベントがキュー1131から取得される。
帳票変換部113は、ステップS233において、図14の処理により最適化テンプレートファイルに登録された自身のスレッドの優先順位にこのイベントの優先度である1を加えて、このイベントの処理を開始する。例えば、自身のスレッドの優先順位が5である場合、これにこのイベントの優先度である1を加えた6に、このイベントを実行するスレッドの優先順位を設定し、優先順位が5であるスレッドにおけるイベント処理よりも優先的に処理を進行する。
同様のキューからのイベント取得及びスレッドによるイベント処理実行が、帳票仕分け部114、帳票送信部115において行われる。この結果、同じ純粋処理時間を要する処理をデフォルトの優先度で処理した場合と比べ、処理時間の短縮が図られる。このように処理時間の短いものを優先実行することにより、システムそれぞれのキューに滞留するイベントの低減がはかられ、全体のスループットの向上を見込むことができる。
また、本発明の目的は、上記実施の形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(又は記録媒体)を、システム又は装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、上記プログラムは、上述した実施の形態の機能をコンピュータで実現することができればよく、その形態は、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給されるスクリプトデータ等の形態を有するものでもよい。
プログラムを供給する記録媒体としては、例えば、RAM、NV−RAM、フロッピー(登録商標)ディスク、光ディスク、光磁気ディスク、CD−ROM、MO、CD−R、CD−RW、DVD(DVD−ROM、DVD−RAM、DVD−RW、DVD+RW)、磁気テープ、不揮発性のメモリカード、他のROM等の上記プログラムを記憶できるものであればよい。或いは、上記プログラムは、インターネット、商用ネットワーク、若しくはローカルエリアネットワーク等に接続される不図示の他のコンピュータやデータベース等からダウンロードすることにより供給される。
本発明の第1の実施の形態に係るファイル登録システムとしての電子帳票登録システムの構成を概略的に示すブロック図である。 図1のシステム11により実行されるイベント処理の手順を示すフローチャートである。 図3のフローチャートの続きである。 図4のフローチャートの続きである。 図5のフローチャートの続きである。 図1のシステムにより実行される見直し処理に用いられる各種ファイルの記述例を説明する図であり,(a)は最適化テンプレート定義用設定ファイルを示し、(b)はワークパス定義用設定ファイルを示し、(c)は最適化テンプレートファイルを示す。 図2のステップS2212のロギング処理の手順を示すフローチャートである。 図1のシステムにより実行される最適化対象期間切り替えスケジュール処理の手順を示すフローチャートである。 システムにより実行される最適化対象期間切り替え処理の手順を示すフローチャートである。 システムにより実行される見直し処理の手順を示すフローチャートである。 図10のステップS532の処理部スレッド数最適化処理の手順を示すフローチャートである。 図10のステップS536の処理部スレッド数登録処理の手順を示すフローチャートである。 図10のステップS533の処理部別スレッド優先順位最適化処理の手順を示すフローチャートである。 図10のステップS537の処理部別スレッド優先順位登録処理の手順を示すフローチャートである。 図2のステップS213のイベント優先順位設定処理の手順を示すフローチャートである。 図1の電子帳票マネージャシステムのDBMSに予め保存されている複数のシナリオを示す図であり、(a)はパターン1の場合、(b)はパターン2の場合、(c)はパターン3の場合、(d)はパターン4の場合を示す。 図10のステップS538の個別イベント優先度最適化処理の手順を示すフローチャートである。
符号の説明
11 電子帳票登録システム
15 ホストコンピュータ
121 DBMS
12 電子帳票マネージャシステム
13 電子帳票保管システム
14 WEBサーバ
1121 入力ファイル検出ディレクトリ
112 帳票検出部
113 帳票変換部
114 帳票仕分け部
115 帳票送信部
111 イベント制御部
110 記録部

Claims (8)

  1. コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバからなるファイル登録システムにおいて、
    前記システムへの運用負荷が異なる期間を予め設定する期間設定手段と、
    前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得手段と、
    前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定手段と、
    前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行手段とを備えることを特徴とするファイル登録システム。
  2. 前記システムは、前記複数の処理部の負荷の度合いを示すパターン毎に前記スレッド優先度の複数の組み合わせが設定されたシナリオを備え、
    前記取得手段は、
    前記複数の処理部別の平均処理待ち時間を算出する待ち時間算出処理と、
    前記算出された平均処理待ち時間に基づき前記パターンの一つを選択するパターン選択手段と、
    前記選択されたパターンのシナリオに設定された前記スレッド優先度の複数の組み合わせを順に前記処理部別スレッド優先度に設定する優先度設定手段とを備えることを特徴とする請求項1に記載のファイル登録システム。
  3. 前記測定期間となったときに前記複数の処理部のスレッド数を変化させ、前記変化したスレッド数毎にスループットを取得する他の取得手段と、
    前記取得したスループットが最大となる前記スレッド数を前記一の期間における前記複数の処理部のスレッド数に決定する他の決定手段と、
    前記一の期間となったときに前記決定されたスレッドで前記複数の処理部によるスレッド処理を実行する他の実行手段とを備えることを特徴とする請求項1又は2記載のファイル登録システム。
  4. 前記測定期間中に前記スレッド処理が行われた全イベントについて前記複数の処理部別の処理時間を取得する処理時間取得手段と、
    前記全イベントのジョブの種別毎に平均処理時間を算出する平均算出手段と、
    前記取得された全イベントの処理時間及び前記ジョブの種別毎の平均処理時間に基づいて前記イベント別優先度を決定するさらにその他の決定手段と、
    前記一の期間となったときに前記決定されたイベント別優先度で前記複数の処理部によるスレッド処理を実行するさらにその他の実行手段とを備えることを特徴とする請求項1乃至3のいずれか1項に記載のファイル登録システム。
  5. コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバからなるファイル登録システムのファイル登録方法において、
    前記システムへの運用負荷が異なる期間を予め設定する期間設定ステップと、
    前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得ステップと、
    前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定ステップと、
    前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行ステップとを備えることを特徴とするファイル登録方法。
  6. コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバにおいて、
    前記システムへの運用負荷が異なる期間を予め設定する期間設定手段と、
    前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得手段と、
    前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定手段と、
    前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行手段とを備えることを特徴とするサーバ。
  7. コンピュータから受信したジョブを複数の処理部の夫々が有するスレッドでの処理により所定の形式に変換して登録するサーバからなるファイル登録システムのファイル登録方法をコンピュータにより実行するプログラムにおいて、
    前記システムへの運用負荷が異なる期間を予め設定する期間設定モジュールと、
    前記設定された一の期間中の所定の測定期間となったときに前記処理部別スレッド優先度を変化させ、前記変化した処理部別スレッド優先度毎にスループットを取得する取得モジュールと、
    前記取得したスループットが最大となる前記処理部別スレッド優先度を前記一の期間における処理部別スレッド優先度に決定する決定モジュールと、
    前記一の期間となったときに前記決定された処理部別スレッド優先度で前記複数の処理部によるスレッド処理を実行する実行モジュールとを備えることを特徴とするプログラム。
  8. 前記請求項7記載のプログラムを格納することを特徴とするコンピュータ読取り可能な記憶媒体。
JP2004381767A 2004-12-28 2004-12-28 ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体 Withdrawn JP2006189932A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004381767A JP2006189932A (ja) 2004-12-28 2004-12-28 ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004381767A JP2006189932A (ja) 2004-12-28 2004-12-28 ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体

Publications (1)

Publication Number Publication Date
JP2006189932A true JP2006189932A (ja) 2006-07-20

Family

ID=36797097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004381767A Withdrawn JP2006189932A (ja) 2004-12-28 2004-12-28 ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体

Country Status (1)

Country Link
JP (1) JP2006189932A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204243A (ja) * 2007-02-21 2008-09-04 Hitachi Software Eng Co Ltd ジョブ実行制御方法およびシステム
JP2016218701A (ja) * 2015-05-20 2016-12-22 株式会社日立製作所 ファイル編集処理方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008204243A (ja) * 2007-02-21 2008-09-04 Hitachi Software Eng Co Ltd ジョブ実行制御方法およびシステム
JP2016218701A (ja) * 2015-05-20 2016-12-22 株式会社日立製作所 ファイル編集処理方法及び装置

Similar Documents

Publication Publication Date Title
US6591262B1 (en) Collaborative workload management incorporating work unit attributes in resource allocation
JP5708262B2 (ja) 予測プログラム、予測装置および予測方法
US7188174B2 (en) Admission control for applications in resource utility environments
US20080281986A1 (en) Parameter adjusting device
JP6640025B2 (ja) 分散処理制御システム及び分散処理制御方法
JP2022035159A (ja) タスク制御装置およびタスク制御方法
KR101770736B1 (ko) 응용프로그램의 질의 스케쥴링을 이용한 시스템의 소모전력 절감 방법 및 그 방법을 이용하여 소모전력을 절감하는 휴대단말기
US20180247242A1 (en) Method of generating a task plan, information processing apparatus and non-transitory computer-readable storage medium
JPH1078937A (ja) 複数コンピュータ間の業務分散システム、業務分散方法 および業務分散プログラムを記録した記録媒体
JP2006189932A (ja) ファイル登録システム及びそのファイル登録方法、そのサーバ、そのプログラム、並びに記憶媒体
US8555285B2 (en) Executing a general-purpose operating system as a task under the control of a real-time operating system
JPH1185707A (ja) 並列計算機におけるジョブ投入計算機の選択方法及び装置
CN112130979B (zh) 调度任务及训练神经网络模型的方法、装置、终端和介质
JP2011048548A (ja) 分散処理システム、そのジョブ振り分け方法及びプログラム
JPH05313921A (ja) ジョブ実行制御方式
KR101399758B1 (ko) 다수의 슬레이브 장치에서 실행되는 태스크의 주기 스케쥴링 장치 및 방법
JP2015145112A (ja) 画像形成システム、画像形成装置、負荷分散方法及びプログラム
JP2003029940A (ja) レンダリング処理の動的分散処理方法及び印刷制御装置
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JPH0855091A (ja) 分散処理システムおよび分散処理システムにおける負荷分散方法
CN113094155A (zh) Hadoop平台下的任务调度方法及装置
JP2000259591A (ja) 分散処理ジョブ実行方法およびネットワークシステム
JP2006048275A (ja) ジョブスケジュール管理装置、ジョブスケジュール管理方法及びそのプログラム
JP2000040099A (ja) スケジュール作成装置及び方法、ジョブの選択方法並びにスケジュール作成用ソフトウェアを記録した記録媒体
CN116680051B (zh) 任务调度方法、装置、设备及存储介质

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060420

A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080304