JP6136621B2 - 負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法 - Google Patents

負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法 Download PDF

Info

Publication number
JP6136621B2
JP6136621B2 JP2013128148A JP2013128148A JP6136621B2 JP 6136621 B2 JP6136621 B2 JP 6136621B2 JP 2013128148 A JP2013128148 A JP 2013128148A JP 2013128148 A JP2013128148 A JP 2013128148A JP 6136621 B2 JP6136621 B2 JP 6136621B2
Authority
JP
Japan
Prior art keywords
job
usage rate
batch
server
queue
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.)
Active
Application number
JP2013128148A
Other languages
English (en)
Other versions
JP2015005008A (ja
Inventor
俊男 斎藤
俊男 斎藤
美穂 岡本
美穂 岡本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013128148A priority Critical patent/JP6136621B2/ja
Publication of JP2015005008A publication Critical patent/JP2015005008A/ja
Application granted granted Critical
Publication of JP6136621B2 publication Critical patent/JP6136621B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法に関する。
コンピュータシステムを用いて業務用のデータを処理する方法としては、一定期間に集まったデータを一括処理するバッチ処理が知られている。一般に、バッチ処理では、大量のデータを処理対象とするため、処理を実行するバッチサーバの負荷が大きくなる。このために、バッチサーバにかかる負荷を事前に見積もって、適正なスペックのバッチサーバを用意する必要がある。しかしながら、バッチデータの処理量が大きくなると、バッチサーバを安定稼働させて処理を一定時刻までに完了させることが難しくなる。そこで、近年では、複数のバッチサーバと、各バッチサーバの負荷を制御する管理サーバとで負荷分散システムを構築し、管理サーバで各バッチサーバの負荷を分散させてバッチ処理を安定的に実施させている。
例えば、従来の負荷分散システムにおける管理サーバは、新しいジョブの情報を取得したら、そのジョブに要求される実行時間を見積もり、ジョブを複数のバッチサーバに振り分け、各バッチサーバの負荷を均等化させる。各バッチサーバにおける負荷は、それぞれのバッチサーバのCPU(Central Processing Unit)使用率、メモリ使用率、I/O(Input/Output)使用率のデータを定期的に取得することによって判定する。
特開2001−147901号公報 特開2010−238051号公報
ここで、管理サーバと複数バッチサーバとで負荷分散システムを構築する場合、バッチサーバの数が多くなると管理サーバの負荷が増大する。そして、管理サーバのシステムがダウンすると、負荷分散システム全体が止まってしまう。さらに、バッチサーバを増築するときに、管理サーバに新しいバッチサーバの情報を追加する作業が発生し、管理が煩雑となる。
1つの側面では、本発明は、複数のコンピュータの間の負荷分散処理が可能になる。
複数のコンピュータがアクセス可能なデータ領域に格納されるジョブの情報を取得し、複数の前記コンピュータが実行中のジョブ数と前記複数のコンピュータ毎に予め定められた実施可能最大ジョブ数から算出される前記コンピュータ毎の前記ジョブの利用率を前記データ領域にアクセスして参照し、前記ジョブの利用率が他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定する処理をコンピュータに実行させ、前記ジョブの利用率に応じた判定値が基準値以上の場合には、前記ジョブの利用率が前記他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定することを特徴とする負荷分散システムのプログラムが提供される。
また、ジョブについて実行中のジョブ数と予め定められた実施可能最大ジョブ数から前記ジョブの利用率を算出する利用率計算部と、前記利用率を用いてジョブの実行の可否を判定する実施判定部と、前記実施判定部の判定結果に基づいてジョブの実行を管理するジョブ管理部と、前記利用率を他のコンピュータで参照可能にデータベースに登録するデータ更新部と、を含み、前記実施判定部は、前記ジョブの利用率に応じた判定値が基準値以上の場合には、前記ジョブの利用率が前記他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定するように構成したことを特徴とする負荷分散システムが提供される。
さらに、データベースに登録されたジョブの情報を取得し、実行中のジョブ数と予め定められた実施可能最大ジョブ数から前記ジョブの利用率を算出し、前記ジョブの利用率に応じた判定値が基準値以上の場合には、前記ジョブの利用率が他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定することを特徴とする負荷分散方法が提供される。
複数のコンピュータの間の負荷分散処理が可能になる。
図1は、本発明の実施の形態に係る負荷分散システムの概略構成の一例を示す図である。 図2は、本発明の実施の形態に係る負荷分散システムのキュー定義マスタの構成の一例を示す図である。 図3は、本発明の実施の形態に係る負荷分散システムのジョブスタックテーブルの構成の一例を示す図である。 図4は、本発明の実施の形態に係る負荷分散システムのバッチサーバの構成の一例を示す図である。 図5は、本発明の実施の形態に係る負荷分散システムの初期値定義ファイルの構成の一例を示す図である。 図6は、本発明の実施の形態に係る負荷分散システムの処理の一例を示すフローチャートである。 図7は、本発明の実施の形態に係る負荷分散システムにおいて他バッチサーバにジョブを任せるか判定する処理の一例を説明する図である。 図8は、本発明の実施の形態に係る負荷分散システムにおいて複数のジョブが登録された例を説明する図である。
発明の目的及び利点は、請求の範囲に具体的に記載された構成要素及び組み合わせによって実現され達成される。
前述の一般的な説明及び以下の詳細な説明は、典型例及び説明のためのものであって、本発明を限定するためのものではない。
図1に負荷分散システムの概略構成を示す。
負荷分散システム1は、利用者が使用するコンピュータである業務端末2に接続されたオンラインサーバ3と、オンラインサーバ3に接続された1つのデータベースサーバ4と、データベースサーバ4に接続された複数のバッチサーバ5とを含んで構成されている。
オンラインサーバ3は、複数の業務端末2に接続され、業務端末2からの処理依頼を受け付け、データベースサーバ4に送信するコンピュータである。また、オンラインサーバ3は、データベースサーバ4のジョブスタックテーブル11のデータを更新する機能を有する。
データベースサーバ4は、オンラインサーバ3やバッチサーバ5と通信可能に構成されたコンピュータであり、本実施の形態に特徴的な構成として、キュー定義マスタ10(第2のデータ領域)と、ジョブスタックテーブル11(第1のデータ領域)とを有する。キュー定義マスタ10及びジョブスタックテーブル11は、データベースサーバ4のメモリやHDD(Hard Disk Drive)等の記憶装置を用いて構築されている。ジョブスタックテ
ーブル11に、RDB(リレーショナルデータベース)を採用すると、レコード更新時に排他制御できるので好適である。しかしながら、ジョブスタックテーブル11は、レコード更新時に排他制御に構成されていれば、RDB以外を採用しても良い。
図2に一例を示すように、キュー定義マスタ10は、バッチサーバ情報21と、キュー名称情報22と、優先度情報23と、多重度情報24と、有効期限情報25と、現在利用率情報26と、最終投入時刻情報27とが関連付けられたデータベースである。ここで、バッチサーバ情報21には、例えば、「1号機」や、「2号機」、「3号機」といったバッチサーバ5毎に付与されたユニークな識別情報が格納されている。例えば、バッチサーバ5が4つ以上の場合には、バッチサーバ情報21には4種類のデータのいずれか1つが格納される。
キュー名称情報22は、キューを特定する情報が格納される。優先度情報23は、キュー名称毎に定義された処理の優先度であり、数値化されたデータが格納されている。優先度は、「1」が最も高く、以降は「5」、「10」の順番に優先度が低くなる。例えば、キュー「A」がファイル転送を指令するもので、優先度の高いものである場合には、キュー名称情報22の「A」に対して、優先度情報23が「1」に設定される。なお、優先度を特定する情報には、不連続の数字を使用しても良いし、連続した数字を採用しても良い。さらに、優先度は、数値が大きい程優先度が高くなるように設定しても良いし、記号で優先度を分類しても良い。
多重度情報24は、1つのキューに対して実行可能なジョブの最大数を示す。多重度は、優先度の高さとの相関はなく、優先度が高くても多重度が高く設定されることもある。有効期限情報25は、キュー定義マスタ10に登録されたデータの有効期限を示す情報、具体的には日時が格納される。現在利用率情報26は、現時点においてバッチサーバ5が処理中のジョブの利用率を示す情報が格納される。例えば、現在利用率は、実行中のジョブの数を多重度で割った値が使用される。最終投入時刻情報27は、最後にジョブがバッチサーバ5に投入された時刻が格納される。
例えば、図2に示すキュー定義マスタ10の一行目のデータは、「1号機」のバッチサーバ5のキュー名称「A」についての情報が格納されている。ここでは、「1号機」のバッチサーバ5において、優先度が「1(高)」で、多重度が「10」に設定されているキュー「A」について、この情報の有効期限は、前回の更新時刻から5分以内であり、現在の利用率が50%で、ジョブが最後に投入されたのは2012/12/07の10時15分13秒であることが示されている。ここで、現在利用率が50%とは、1号機のバッチサーバ5は、キュー「A」については多重度で特定される「10」個までジョブを実行することが可能であるが、現段階では5個のみ実行していることを示している。また、二列目のデータは、1号機のバッチサーバ5において、優先度が「中」のキュー「B」についての現在利用率が40%であることが示されている。
図2に例示するキュー定義マスタ10では、3つのバッチサーバ5のそれぞれについて、キュー名称毎の優先度及び多重度は同じになっている。しかしながら、バッチサーバ5毎に、キュー名称毎の優先度及び多重度を変更しても良い。特に、バッチサーバ5毎に性能が異なる場合、より高性能のバッチサーバ5の多重度を大きくし、より多数のジョブを実行可能に設定することによって、高性能のバッチサーバ5でより多くの処理を実行させると、複数のバッチサーバ5の処理能力が個々に異なる場合であってバッチサーバ5間の負荷を均等化できる。なお、現在利用率情報26の代わりに、現在空き率情報を使用しても良い。現在空き率情報には、現在実行可能なジョブの数(空き数)を多重度で割った値が格納される。
次に、図3を参照してジョブスタックテーブル11について説明する。
図3に一例を示すジョブスタックテーブル11は、依頼時刻情報31と、起動予定ジョブ名情報32と、処理状態情報33と、投入時刻情報34と、投入キュー名称情報35とが関連付けられたデータベース構造を有する。ここで、依頼時刻情報31は、業務端末2から出力された処理依頼を受け付けた時間を示す。起動予定ジョブ名情報32は、バッチサーバ5で処理する処理を特定する情報である。処理状態情報33は、いずれかのバッチサーバ5が処理依頼された起動予定ジョブの処理を開始している場合には、「起動済み」が格納される。一方、いずれのバッチサーバ5も未だ処理を開始していない場合には、「未処理」が格納される。投入時刻情報34は、バッチサーバ5にジョブが投入された時刻、即ちバッチサーバ5がジョブの処理を開始した時刻が格納される。投入キュー名称情報35は、キューを特定する情報が格納される。
例えば、図3に示すジョブスタックテーブル11の一行目のデータは、2012年12月07日の10時00分に処理依頼があったジョブ名「JOB0001」についてのステータスを示すデータである。さらに、このジョブのキュー名称が「A」であること、処理状態が「未処理」であることから、いずれのバッチサーバ5もこのジョブの処理を開始していないことが示されている。
次に、図1及び図4を参照し、バッチサーバ5について説明する。
各バッチサーバ5は、1つのデータベースサーバ4に通信可能に複数接続されており、業務端末2からの処理依頼を実際に処理するコンピュータである。図4に一例を示すように、バッチサーバ5は、CPU及びRAMなどのメモリによって形成される制御部41と、HDDなどの記憶装置43と、データの入力を制御する入力装置44と、データを表示又は出力する出力装置45と、通信制御装置46とを含んで構成されている。
この実施の形態におけるバッチサーバ5は、制御部41に負荷分散プログラムを実行させることによって、この実施の形態に特徴的な構成として、スタック監視アプリケーション51と、初期値定義ファイル52と、キュー制御アプリケーション53とにおける処理が可能に構成されている。なお、負荷分散プログラムは、コンピュータ読取可能な記録媒体に記録可能で、バッチサーバ5にインストールすることにより実行することが可能である。なお、負荷分散プログラムは、スタック監視アプリケーション51のみを実行させるプログラムであっても良い。
スタック監視アプリケーション51は、バッチサーバ5内で使用する定数として、有効期限間隔、係数N、所定の依頼待ち時間を有し、データベースサーバ4にアクセスしてバッチサーバ5間の負荷分散を制御する。さらに、データベースサーバ4からジョブのデータを受け取ったり、ジョブの処理結果をデータベースサーバ4に受け渡したりする。
キュー制御アプリケーション53は、キュー毎に実行可能なジョブ数から自身のバッチサーバ5について算出される現在利用率を算出する利用率計算部56と、現在利用率を用いて自バッチサーバ5でジョブを実行する判定する実施判定部57と、処理依頼の読み込みや、判定結果に基づいてジョブのバッチサーバ5のOS(Operating System)54に対してジョブの実行を指令するジョブ管理部58と、キュー定義マスタやジョブスタックテーブルのデータを更新するデータ更新部59とに機能分割できる。なお、バッチサーバ5は、キュー制御アプリケーション53を有さない構成にすることも可能である。この場合には、スタック監視アプリケーション51がOS54に対して直接にジョブの実行を指令する。実際の処理は、OS54上で動作する業務アプリケーション55が実行する。
図5に一例を示すように、初期値定義ファイル52は、キュー名称情報61と、優先度情報62と、多重度情報63と、有効期限間隔情報64とを関連付けた構成を有する。初
期値定義ファイル52は、バッチサーバ5毎に作成される。このために、例えば、「1号機」のバッチサーバ5においては、「1号機」のバッチサーバ5についてのデータがリスト形成で作成される。優先度情報62及び多重度情報63は、キュー定義マスタ10における優先度情報23及び多重度情報24と同様のデータが格納される。有効期限間隔情報64は、キュー定義マスタ10に格納されるデータの有効期限を定める定数が格納される。
例えば、図5の初期値定義ファイル52の一行目のデータは、キュー名称「A」が、優先度が「1」で他のキューに比べて最も高く、多重度が「10」であり、有効期間間隔が「5」分であることを示している。
次に、負荷分散システム1で実行されるバッチ処理について説明する。
最初に、図1を参照し、サービス開始時の処理について説明する。
まず、各バッチサーバ5は、データベースサーバ4のキュー定義マスタ10にアクセスし、自分のバッチサーバ5(自バッチサーバ5)について登録されているデータを初期化する。具体的には、各バッチサーバ5は、スタック監視アプリケーション51が起動されたら、データ更新部59で初期値定義ファイル52のデータを読み込んで、その内容を使用し、データベースサーバ4のキュー定義マスタ10のデータを更新する。この処理は、全てのバッチサーバ5が実行する。
続いて、図6のフローチャートを参照し、負荷分散システム1のサービス実行中の処理について説明する。
最初に、ステップS101で、各バッチサーバ5のスタック監視アプリケーション51のジョブ管理部58は、データベースサーバ4のジョブスタックテーブル11にアクセスし、未処理に分類されているジョブデータのジョブ名及びキュー名称を依頼時刻順に読み込む。
さらに、ステップS102では、各バッチサーバ5のスタック監視アプリケーション51のデータ更新部59が、所定のタイミングでデータベースサーバ4のキュー定義マスタ10にアクセスし、自分のバッチサーバ5について登録されているデータを更新する。所定のタイミングとは、前回の更新時刻から、有効期限間隔が経過するまでの間である。
ここで、ステップS103において、ジョブスタックテーブル11に未処理の依頼がなかった場合には、ステップS101に戻る。一方、ジョブスタックテーブル11に未処理の依頼があった場合には、ステップS104に進む。
ステップS104では、スタック監視アプリケーション51の実施判定部57が、同じバッチサーバ5内のキュー制御アプリケーション53に対して、キュー名称に合致するキューの空き数、又は利用中数、キューの起動停止状態を問い合わせる。キューの空き数とは、バッチサーバ5において当該キューについてのジョブを実行可能な数である。キューの利用中数とは、バッチサーバ5において当該キューについてのジョブの内で現在実行中であるジョブの数である。キューの起動状態とは、そのバッチサーバ5においてそのキューに対応する処理の実行が許可されているか否かを示す情報である。キュー制御アプリケーション53がキューの起動、即ち処理の実行を許可していない場合には、そのバッチサーバ5は当該キューに相当する処理を実行しない。
そして、ステップS105に示すように、当該キューについての起動が許可されており、かつジョブを処理可能な空きが有る場合には、ステップS106に進む。一方、当該キューの起動が許可されていない場合、そのキューは自バッチサーバ5の処理対象でないので、ステップS101に戻り、他の未処理のジョブに備える。また、当該キューについての処理可能な空きがない場合にも、ステップS101に戻る。これは、そのバッチサーバ
5で実行可能なジョブの数を越えており、これ以上同じキューのジョブを実行することは負荷分散の観点から好ましくないからである。
ステップS106では、スタック監視アプリケーション51の利用率計算部56が、キューの空き数、又はキューの利用中数と、キュー定義マスタ10の多重度から、現在の利用率(現在利用率)を計算する。現在利用率は、各バッチサーバ5について計算される。例えば、当該キューのジョブの空き数を取得した場合、現在利用率は、{(多重度)−(空き数)}÷(多重度)で計算される。一方、当該キューのジョブの利用中数(実行中数)を取得した場合、現在利用率は、(利用中数)÷(多重度)で計算される。
さらに、ステップS107で、スタック監視アプリケーション51の実施判定部57は、当該キューのジョブを自バッチサーバ5で処理すべきか判定する。具体的には、実施判定部57が、現在利用率に係数Nを掛算して判定値を計算する。ここで、係数Nは、1以上の数字である。計算結果が100%を超える場合は、100%として扱う。判定値が100%を越えていない場合は、自バッチサーバ5で処理すべきと判定し、ステップS109に進む。
一方、ステップS107において自バッチサーバ5で処理すべきでないと判定した場合には、ステップS108に進む。このような場合としては、現在利用率に係数Nを掛算して判定値が100%以上であったときである。
ステップS108では、実施判定部57が、他のバッチサーバ5の同一キューに対する現在利用率を考慮し、自バッチサーバ5で処理するか、他のバッチサーバ5に処理を任せるかを判断する。具体的には、実施判定部57は、各他バッチサーバ5の同一キューに関する現在利用率をキュー定義マスタ10から取得する。そして、他バッチサーバ5の情報から、最初に、有効期限が切れていないバッチサーバ5を選択する。現在時刻が有効期限情報25に格納されている時刻より前であれば、バッチサーバ5が正常に運転されていると判定する。以降の判定処理は、有効期限が切れていないバッチサーバ5についてのみ行う。
続いて、有効期限が切れていない他バッチサーバ5のキュー定義マスタ10の現在利用率を取得し、それぞれの現在利用率をN倍して比較値を算出する。ここで、係数Nは、負荷分散システム1全体で共通して使用されている値を使用する。負荷分散システム1がバッチサーバ5毎に異なる係数Nの値を使用する場合には、予め各バッチサーバ5にそれぞれの係数Nを登録するか、キュー定義マスタ10のデータ項目に係数Nを追加する。なお、係数Nを用いずに、現在利用率をそのまま使用しても良い。
そして、自バッチサーバ5と他のバッチサーバ5の処理状態をジョブの実施数に基づいて判定する。具体的には、全ての他バッチサーバ5との間で、
[他バッチサーバ5の比較値]≦[自バッチサーバ5の判定値]
を調べる。いずれかの他バッチサーバ5との間で、上記の不等式が成り立つ場合は、自バッチサーバ5より空が多い他バッチサーバ5が存在するので、実施判定部57は、そのキューのジョブを現在利用率が少ない他バッチサーバ5に任せると判断し、ステップS102に戻る。
ここで、ステップS108でNoと判定される場合の具体例を図7のキュー定義マスタ10を参照して説明する。ここで、1号機のバッチサーバ5を自バッチサーバ5とし、2号機及び3号機のバッチサーバ5を他バッチサーバ5とする。キュー「A」に対する自バッチサーバ5は、現在利用率が60%であり、判定値はN×60である。他バッチサーバ5の比較値は、N×40とN×30である。この場合には、2号機及び3号機のバッチサ
ーバ5が共に、現在利用率のN倍が1号機のバッチサーバ5より小さいので、1号機のバッチサーバ5は、今回のジョブを処理せず、2号機又は3号機のバッチサーバ5に任せる。この結果、現在利用率が小さい2号機及び3号機のバッチサーバ5に処理が回されるようになるので、負荷分散システム1全体としての負荷が分散される。
これに対し、全ての他バッチサーバ5の有効期限が切れていた場合や、いずれの他バッチサーバ5に対しても上記の不等式が成立しない場合、実施判定部57は、当該バッチ処理依頼を自バッチサーバ5で処理すべきと判断し、ステップS109に進む。
ここで、ステップS108でYesと判定される場合の具体例を図7のキュー定義マスタ10を参照して説明する。ここでは、3号機のバッチサーバ5を自バッチサーバ5とし、1号機及び2号機のバッチサーバ5を他バッチサーバ5とする。キュー「A」に対する自バッチサーバ5は、現在利用率が30%であり、判定値はN×30である。他バッチサーバ5の比較値は、N×60とN×40である。この場合には、1号機及び2号機のバッチサーバ5の現在利用率のN倍は、3号機のバッチサーバ5より大きいので、3号機のバッチサーバ5は、今回のジョブを自分で処理する。この結果、現在の利用率が小さい3号機のバッチサーバ5に処理が回されるようになるので、負荷分散システム1全体としての負荷が分散される。
ステップS109では、スタック監視アプリケーション51のジョブ管理部58が、キュー制御アプリケーション53に対して、キュー定義マスタ10に格納されている自バッチサーバ5の当該キューに指定された優先度に従い、自分のバッチサーバ5にジョブを投入する。
さらに、キュー制御アプリケーション53へのジョブ投入が正常に処理されたら、ステップS110において、スタック監視アプリケーション51のデータ更新部59が、図2に例示するキュー定義マスタ10の自バッチサーバ5の当該キューに関する有効期限情報25、現在利用率情報26及び最終投入時刻情報27を更新する。ここで、有効期限情報25には、最終投入時刻+有効期限間隔に相当する情報が入力される。現在利用率情報26には、ステップS107で計算した現在利用率の値が入力される。例えば、図7に示す1号機のバッチサーバ5の例では、新しいジョブを1つ受け付けると当該キューのジョブの利用中数が5+1=6になるので、現在利用率が50%から60%に変更される。最終投入時刻情報27には、実際の投入時刻が入力される。
続いて、データ更新部59は、図8に例示するデータベースサーバ4のジョブスタックテーブル11にアクセスし、該当するジョブデータの処理状態情報33を「起動済み」にする。そして、投入時刻情報34のデータを、当該ジョブを自バッチサーバ5に投入した時刻に更新する。ここで、図8の例では、ジョブスタックテーブル11にキュー「A」のジョブが5つ、JOB0001〜JOB0005までが登録されているとする。このうち、JOB0001〜JOB0004は起動済みであり、いずれかのバッチサーバ5が処理を開始していることが示されている。ここで、キュー「A」が帳票管理に関するものである場合、起動予定ジョブ名JOB0001〜0005は、受注チェックリストの作成や、出荷伝票の作成及び出力、送付票の作成及び出力などの各種の依頼に相当する。なお、ジョブスタックテーブル11に複数種類のキューのジョブが登録されている場合には、キュー定義マスタ10の優先度情報23の順番に従ってジョブが選択される。
ステップS111で、負荷分散システム1におけるサービスを停止するときは、ここでの処理を終了する。一方、サービスを継続する場合には、ステップS102に戻る。なお、ステップS102に戻る代わりにステップS101に戻っても良い。
また、バッチサーバ5のスタック監視アプリケーション51を停止するときには、キュー定義マスタ10の自バッチサーバ5のレコードを全て削除する。これによって、他バッチサーバ5がバッチ処理時に自バッチサーバ5の負荷状態を考慮しなくて済むようになる。
以上、説明したように、この実施の形態では、データベースサーバ4に登録されたデータを参照し、各バッチサーバ5が、自己の負荷状態を監視して、ジョブの実行の可否を判断するように構成した。これによって、従来のような高性能の管理サーバが不要になる。
各バッチサーバ5は、ジョブの利用中数又は空き数に応じて自身が処理を行うべきであるか判定するように構成したので、CPUやメモリの占有率を調べる場合のようにその都度OS54のステータスを参照する必要がなくなるので、処理を簡略化できる。また、1つのバッチサーバ5が、他のバッチサーバ5の稼働状況を判断してジョブの実行の可否を判断するようにしたので、管理サーバを設けなくても複数のバッチサーバ5の間で負荷を分散させることが可能になる。
また、いずれかのバッチサーバ5が停止した場合には、そのバッチサーバ5における処理が不能になるだけなので、サービス全体の停止は防止できる。停止中のバッチサーバ5についての情報はキュー定義マスタ10が更新されないので、有効期限情報25を参照することにより、停止中のバッチサーバ5を考慮対象から外すことが可能になる。
さらに、負荷分散システム1では、キューの空き状態を自バッチサーバ5の稼動状態の指標として使用するので、各バッチサーバ5の多重度を設定するだけで負荷分散が可能になる。従来では、処理を実行するバッチサーバ5の台数を変更する度に、管理サーバの情報の書き換えや、CPUの稼働率を取得するための設定、各種パラメータの調整が必要であった。これに対し、この実施の形態では、負荷分散システム1の調整やメンテナンスが容易になる。
なお、初期値定義ファイル52の内容が全てのバッチサーバ5において同じである場合には、初期値定義ファイル52をバッチサーバ5毎に設けなくても良い。また、優先度情報23が登録されていない場合には、キュー制御アプリケーション53による許可が得られていないと判断しても良い。キュー定義マスタ10とジョブスタックテーブル11は1つのデータベースでも良い。
ここで挙げた全ての例及び条件的表現は、発明者が技術促進に貢献した発明及び概念を読者が理解するのを助けるためのものであり、ここで具体的に挙げたそのような例及び条件に限定することなく解釈するものであり、また、明細書におけるそのような例の編成は本発明の優劣を示すこととは関係ない。本発明の実施形態を詳細に説明したが、本発明の精神及び範囲から逸脱することなく、それに対して種々の変更、置換及び変形を施すことができる。
以下に、前記の実施の形態の特徴を付記する。
(付記1)
複数のコンピュータがアクセス可能なデータ領域に格納されるジョブの情報を取得し、複数の前記コンピュータが実行中のジョブ数と前記複数のコンピュータ毎に予め定められた実施可能最大ジョブ数から算出される前記コンピュータ毎の前記ジョブの利用率を前記データ領域にアクセスして参照し、前記ジョブの利用率が前記他のコンピュータの前記ジョブの利用率より小さい場合に、前記ジョブを処理対象と決定する処理をコンピュータに実行させることを特徴とする負荷分散システムのプログラム。
(付記2) 前記ジョブの利用率に予め定められた係数を掛算して判定値を算出し、前記判定値が100%未満である場合に、前記他のコンピュータに前記ジョブを実行させずに、前記ジョブを処理対象と決定する処理をコンピュータに実行させることを特徴とする負
荷分散システムのプログラム。
(付記3) 前記データ領域に格納される前記ジョブの利用数を予め定められた更新時刻毎に更新させることを特徴とする付記1又は付記2に記載の負荷分散システムのプログラム。
(付記4) 前記データ領域のデータが予め定められた更新時刻毎に更新されていない他の前記コンピュータについては、前記ジョブを処理対象と決定する処理において前記ジョブの利用数を比較する対象から除外することを特徴とする付記1乃至付記3のいずれか一項に記載の負荷分散システムのプログラム。
(付記5) ジョブについて実行中のジョブ数と予め定められた実施可能最大ジョブ数から前記ジョブの利用率を算出する利用率計算部と、前記利用率を用いてジョブの実行の可否を判定する実施判定部と、前記実施判定部の判定結果に基づいてジョブの実行を管理するジョブ管理部と、前記利用率を他のコンピュータで参照可能にデータベースに登録するデータ更新部と、を含むことを特徴とする負荷分散システム。
(付記6) 前記実施判定部は、前記ジョブの利用率に予め定められた係数を掛算して判定値を算出し、前記判定値が100%未満である場合に、前記他のコンピュータに前記ジョブを実行させずに、前記ジョブを処理対象と決定し、前記判定値が100%以上の場合には、前記ジョブの利用率が前記他のコンピュータの前記ジョブの利用率より少ないときに、前記ジョブを処理対象と決定するように構成したことを特徴とする付記5に記載の負荷分散システム。
(付記7) 前記実施判定部は、前記データベースのデータが予め定められた更新時刻毎に更新されていない他の前記コンピュータについては、前記ジョブを処理対象と決定する処理において前記ジョブの利用数を比較する対象から除外するように構成したことを特徴とする付記5又は付記6に記載の負荷分散システム。
(付記8) データベースに登録されたジョブの情報を取得し、実行中のジョブ数と予め定められた実施可能最大ジョブ数から前記ジョブの利用率を算出し、前記ジョブの利用率が所定位置以下の場合に前記ジョブを実行し、前記ジョブの利用率が所定位置より大きく、かつ他のコンピュータの前記ジョブの利用率以上の場合に前記ジョブを実行せず、前記ジョブの利用率が所定位置より大きいが、他のコンピュータの前記ジョブの利用率より小さい場合に前記ジョブを実行することを特徴とする負荷分散方法。
(付記9) 前記データベースに登録されているデータが予め定められた更新時刻毎に更新されていない他の前記コンピュータについては、前記ジョブを処理対象と決定する処理において前記ジョブの利用数を比較する対象から除外することを特徴とする付記8に記載の負荷分散方法。
1 負荷分散システム
4 データベースサーバ
5 バッチサーバ(コンピュータ)
10 キュー定義マスタ(データ領域、データベース)
11 ジョブスタックテーブル(データ領域、データベース)
51 スタック監視アプリケーション
52 初期値定義ファイル
53 キュー制御アプリケーション
54 OS
55 業務アプリケーション
56 利用率計算部
57 実施判定部
58 ジョブ管理部
59 データ更新部

Claims (7)

  1. 複数のコンピュータがアクセス可能なデータ領域に格納されるジョブの情報を取得し、
    複数の前記コンピュータが実行中のジョブ数と前記複数のコンピュータ毎に予め定められた実施可能最大ジョブ数から算出される前記コンピュータ毎の前記ジョブの利用率を前記データ領域にアクセスして参照し、
    前記ジョブの利用率が他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定する処理をコンピュータに実行させ
    前記ジョブの利用率に応じた判定値が基準値以上の場合には、前記ジョブの利用率が前記他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定することを特徴とする負荷分散システムのプログラム。
  2. 前記基準値が100%であることを特徴とする請求項1に記載の負荷分散システムのプログラム。
  3. 前記ジョブの利用率に予め定められた係数を掛算して判定値を算出し、前記判定値が100%未満である場合に、前記他のコンピュータに前記ジョブを実行させずに、前記ジョブを処理対象と決定する処理をコンピュータに実行させることを特徴とする請求項1又は請求項2に記載の負荷分散システムのプログラム。
  4. ジョブについて実行中のジョブ数と予め定められた実施可能最大ジョブ数から前記ジョブの利用率を算出する利用率計算部と、
    前記利用率を用いてジョブの実行の可否を判定する実施判定部と、
    前記実施判定部の判定結果に基づいてジョブの実行を管理するジョブ管理部と、
    前記利用率を他のコンピュータで参照可能にデータベースに登録するデータ更新部と、を含み、
    前記実施判定部は、
    前記ジョブの利用率に応じた判定値が基準値以上の場合には、前記ジョブの利用率が前記他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定するように構成したことを特徴とする負荷分散システム。
  5. 前記基準値が100%であることを特徴とする請求項4に記載の負荷分散システム。
  6. データベースに登録されたジョブの情報を取得し、
    実行中のジョブ数と予め定められた実施可能最大ジョブ数から前記ジョブの利用率を算出し、
    前記ジョブの利用率に応じた判定値が基準値以上の場合には、前記ジョブの利用率が他のコンピュータの前記ジョブの利用率より少ない場合に、前記ジョブを処理対象と決定することを特徴とする負荷分散方法。
  7. 前記基準値が100%であることを特徴とする請求項6に記載の負荷分散方法。
JP2013128148A 2013-06-19 2013-06-19 負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法 Active JP6136621B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013128148A JP6136621B2 (ja) 2013-06-19 2013-06-19 負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013128148A JP6136621B2 (ja) 2013-06-19 2013-06-19 負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法

Publications (2)

Publication Number Publication Date
JP2015005008A JP2015005008A (ja) 2015-01-08
JP6136621B2 true JP6136621B2 (ja) 2017-05-31

Family

ID=52300893

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013128148A Active JP6136621B2 (ja) 2013-06-19 2013-06-19 負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法

Country Status (1)

Country Link
JP (1) JP6136621B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH025144A (ja) * 1988-06-24 1990-01-10 Nec Corp ジョブ実行システム自動代替方式
JP4978715B2 (ja) * 2010-05-24 2012-07-18 富士通株式会社 伝票多重処理方法、プログラム及び装置

Also Published As

Publication number Publication date
JP2015005008A (ja) 2015-01-08

Similar Documents

Publication Publication Date Title
US9870269B1 (en) Job allocation in a clustered environment
US9477618B2 (en) Information processing device, information processing system, storage medium storing program for controlling information processing device, and method for controlling information processing device
CN101366012A (zh) 用于多处理器系统中的中断分配的方法和系统
JP5585140B2 (ja) 仮想計算機システムの管理プログラム,管理装置及び管理方法
TW201030531A (en) Resource management device, resource management program product, and resource management method
US10148531B1 (en) Partitioned performance: adaptive predicted impact
US10142195B1 (en) Partitioned performance tracking core resource consumption independently
US8539495B2 (en) Recording medium storing therein a dynamic job scheduling program, job scheduling apparatus, and job scheduling method
US11068317B2 (en) Information processing system and resource allocation method
JP5853109B2 (ja) 計算機、計算機システムの制御装置及び記録媒体
JP2017091330A (ja) 計算機システム及び計算機システムのタスク実行方法
JP6819378B2 (ja) 並列処理装置、ステージアウト処理方法、およびジョブ管理プログラム
JP6229733B2 (ja) 情報処理装置、方法、プログラム及び記録媒体
JP6136621B2 (ja) 負荷分散システムのプログラム及び負荷分散システム並びに負荷分散方法
JP6046523B2 (ja) インメモリ型分散データベース、データ分散方法及びプログラム
JP6823257B2 (ja) ジョブ監視プログラム、ジョブ監視装置及びジョブ監視方法
US11461268B2 (en) Information processing system and control method
US10896076B2 (en) Information processing system and control method for executing a process based on a message acquired from a queue
US8621470B2 (en) Wakeup-attribute-based allocation of threads to processors
US10248458B2 (en) Control method, non-transitory computer-readable storage medium, and control device
JP5674850B2 (ja) データベース管理システム及び方法
EP3340081B1 (en) Data search method, data search device, and data search program
JP6372187B2 (ja) 履歴情報管理方法、履歴情報管理装置、及び履歴情報管理プログラム
WO2016032518A1 (en) Multiplexing network connections
CN117348820A (zh) 一种分布式系统的数据处理方法、系统、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170417

R150 Certificate of patent or registration of utility model

Ref document number: 6136621

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150