JP4170302B2 - 負荷制御装置および負荷制御プログラム - Google Patents

負荷制御装置および負荷制御プログラム Download PDF

Info

Publication number
JP4170302B2
JP4170302B2 JP2005067522A JP2005067522A JP4170302B2 JP 4170302 B2 JP4170302 B2 JP 4170302B2 JP 2005067522 A JP2005067522 A JP 2005067522A JP 2005067522 A JP2005067522 A JP 2005067522A JP 4170302 B2 JP4170302 B2 JP 4170302B2
Authority
JP
Japan
Prior art keywords
load
multiplicity
resource
processing
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005067522A
Other languages
English (en)
Other versions
JP2006252163A (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 JP2005067522A priority Critical patent/JP4170302B2/ja
Priority to US11/174,508 priority patent/US20060206900A1/en
Publication of JP2006252163A publication Critical patent/JP2006252163A/ja
Application granted granted Critical
Publication of JP4170302B2 publication Critical patent/JP4170302B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明はサーバの負荷を制御する負荷制御装置および負荷制御プログラムに関し、特に処理の多重度を調整することでサーバの負荷を制御する負荷制御装置および負荷制御プログラムに関する。
大規模なコンピュータシステムは、システムを効率的に運用するために負荷制御が行われている。この負荷制御には、過負荷制御と疎負荷制御とがある。
過負荷制御は、負荷が閾値(上限値)を超えた場合に、負荷を閾値以下に下げる制御であり、疎負荷制御は、負荷が閾値に達していない場合に、閾値に近づくように負荷をあげる制御である。
現在、一般的に行われているのは過負荷制御である。過負荷制御では、資源の利用者が使用可能な負荷率の上限値を資源毎に予め設定しておき、資源の負荷をその上限値以下に抑えることを目的としている。
例えば、端末装置からの要求に応じて各種処理を実行するサーバコンピュータでは、端末装置からの要求を処理するために、複数のサーバプロセスが起動される。同時に起動されるサーバプロセスの数が、多重度である。このようなシステムでは、複数の端末装置からの要求が、特定の時間に集中する場合がある。その場合、各サーバプロセスでの負荷率が上昇する。その結果、各サーバプロセスの負荷率が所定の上限値を超えると、サーバコンピュータが自動的に多重度を上げる。多重度が上がる(同時に実行されるサーバプロセス数が増える)ことで、個々のサーバプロセスに掛かる負荷は低減する。これにより、サーバコンピュータにおける処理負荷を所定の負荷率以下に抑えておくことができる。
なお、過負荷制御と疎負荷制御とを行うシステムも提供されている。例えば、サーバのCPU(Central Processing Unit)使用率を測定し、そのCPU使用率が予め設定されたCPU使用率上限値より大きい場合にはサーバの多重度を増加させ、CPU使用率が予め設定されたCPU使用率下限値より小さい場合には、サーバの多重度を減少させる技術が考えられている(特許文献1参照)。
特開2001−160040号公報
しかし、上記特許文献1記載の技術ではCPU以外の機能の処理負荷が考慮されていないため、CPU以外の資源負荷が過大となったときに処理の多重度を上げても、並列で実行される各処理の負荷が低減されない場合がある。
すなわち、ハードディスクへのアクセス等のI/O(データの入出力)処理を頻繁に行う業務を実行する場合、CPUの処理能力よりもI/Oの処理能力の方が低くなる。すると、CPU以外の資源による業務の処理負荷が上限値を超えた場合に、処理の多重度を上げたとしても、CPUには、I/O待ちによる待機時間が発生してしまう。そのため、個々の業務を処理する時間が長くなり、システム全体としての処理効率が改善されない結果となる。
本発明はこのような点に鑑みてなされたものであり、処理効率を向上させるために最適な多重度でサーバに処理を実行させることができる負荷制御装置および負荷制御プログラムを提供することを目的とする。
本発明では上記課題を解決するために、図1に示すような負荷制御装置1が提供される。本発明の負荷制御装置1は、多重化させた処理を実行するサーバ2の負荷を制御するためのものである。この負荷制御装置1は、負荷情報取得手段1a、多重度決定手段1b、および多重度制御手段1cを有する。負荷情報取得手段1aは、サーバ2のCPU資源および他の資源の負荷情報を収集する。多重度決定手段1bは、負荷情報に基づいて、サーバ2で実行されている処理の多重度を増加させた場合の各資源の負荷の増加量を計算し、全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下となる多重度を決定する。多重度制御手段1cは、サーバ2で実行されている処理の多重度を多重度決定手段1bで決定された多重度に変更する。
これにより、負荷情報取得手段1aにより、サーバ2のCPU資源および他の資源の負荷情報が収集される。すると、多重度決定手段1bにより、負荷情報に基づいて、サーバ2で実行されている処理の多重度を増加させた場合の各資源の負荷の増加量が計算され、全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下となる多重度が決定される。そして、多重度制御手段1cにより、サーバ2で実行されている処理の多重度が多重度決定手段1bで決定された多重度に変更される。
本発明では、CPU資源および他の全ての資源について負荷が負荷上限値を超えない範囲で処理の多重度を増加させるようにした。これにより、多重度を増加させてもサーバ上の全ての資源において処理負荷が過大とならず、処理効率上最適な多重度で処理を実行させることができる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本実施の形態の概略を示す図である。本発明の負荷制御装置1は、多重化させた処理を実行するサーバ2の負荷を制御するためのものである。この負荷制御装置1は、負荷情報取得手段1a、多重度決定手段1b、および多重度制御手段1cを有する。負荷情報取得手段1aは、サーバ2のCPU資源および他の資源(例えば、I/O資源、通信資源等のハードウェア資源やプロセス資源等のソフトウェア資源のうちの少なくとも1つの資源)の負荷情報を収集する。多重度決定手段1bは、負荷情報に基づいて、サーバ2で実行されている処理の多重度を増加させた場合の各資源の負荷の増加量を計算し、全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下となる多重度を決定する。多重度制御手段1cは、サーバ2で実行されている処理の多重度を多重度決定手段1bで決定された多重度に変更する。
このような負荷制御装置1によれば、負荷情報取得手段1aにより、サーバ2のCPU資源および他の資源の負荷情報が収集される。すると、多重度決定手段1bにより、負荷情報に基づいて、サーバ2で実行されている処理の多重度を増加させた場合の各資源の負荷の増加量が計算され、全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下となる多重度が決定される。そして、多重度制御手段1cにより、サーバ2で実行されている処理の多重度が多重度決定手段1bで決定された多重度に変更される。
その結果、多重度を増加させてもサーバ上の全ての資源において処理負荷が過大とならず、処理効率上最適な多重度で処理を実行させることができる。
ところで、処理の多重度の調整に加え、I/Oアクセスや通信等の負荷が負荷上限値に達した場合、I/Oアクセスのインターバル時間を設けることができる。I/Oアクセスにおいてインターバル時間を設けるとI/Oアクセスの待ち時間が少なくなり、処理効率を向上させることができる。
このように、I/O資源の負荷が負荷上限値を超えた場合、インターバル時間の調整が行われ、多重度の制御(処理を実行するプロセスの起動や停止等の制御)は行われない。しかし、インターバル時間の調整によってI/O処理の負荷を低下させることで、サーバ内でI/O処理待ちの状態のプロセスの出現頻度を低下させ、同時に処理できるプロセスを増加させることができる。その結果、多重度を増加させた場合と同様の処理効率の向上効果を得ることができる。
すなわち、I/O負荷が過大となっている場合、長時間のI/O待ちが発生する。I/O待ち状態のプロセスは、CPUにおいて処理が進行しない。そのため、CPU資源でみた場合、例えば、3多重分のプロセスが起動されていても、2多重で動作させたときと処理効率が変わらない場合がある。
そのとき、I/O負荷をインターバル時間の調整によって低下させれば、I/O処理待ちの時間が短縮される。その結果、CPUでは、起動されている全てのプロセスの多重化処理により、効率的な処理が可能となる。
なお、I/O資源の負荷が負荷上限値以下の場合、インターバル時間の調整は行われない。インターバル時間の調整は、I/O待ち時間の長期化を防ぐために行われるものであるが、負荷上限値以下であれば負荷に応じたI/O待ち時間は短い上に変化量が少なく、インターバルを設ける必要が無いためである。
以下、本実施の形態の詳細を説明する。以下の実施の形態では、I/O資源と通信資源とのアクセスに関して、インターバル時間を制御するものとする。
図2は、本実施の形態のシステム構成例を示す図である。性能管理サーバ100は、管理用のLAN(Local Area Network)10を介して複数のアプリケーションサーバ210,220,230に接続されている。各アプリケーションサーバ210,220,230は、ネットワーク20を介してクライアント21,22,・・・に対して各種サービスを提供する。そして、アプリケーションサーバ210,220,230は、自己の資源負荷情報を性能管理サーバ100に送信する。また、アプリケーションサーバ210,220,230は、性能管理サーバ100からの要求に応じて、サービスを提供する業務の多重度およびI/Oインターバル時間を変更する。
性能管理サーバ100は、アプリケーションサーバ210,220,230の性能を管理し、アプリケーションサーバ210,220,230間の負荷バランスを調整する。具体的には、性能管理サーバ100は、処理能力に余裕があるアプリケーションサーバ210,220,230に対しては、多重度の増加および適切なインターバル時間を指示する。
図3は、本実施の形態に用いる性能管理サーバのハードウェア構成例を示す図である。性能管理サーバ100は、CPU101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
通信インタフェース106は、LAN10に接続されている。通信インタフェース106は、LAN10を介して、アプリケーションサーバ210,220,230との間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3には、性能管理サーバ100のハードウェア構成例を示したが、アプリケーションサーバ210,220,230やクライアント21,22,・・・も同様のハードウェア構成で実現することができる。
次に、アプリケーションサーバ210,220,230と性能管理サーバ100とが有する処理機能について説明する。
図4は、性能管理のための機能を示すブロック図である。アプリケーションサーバ210は、性能情報提供部211と複数の業務アプリケーション212a,212b,212cとを有している。
性能情報提供部211は、アプリケーションサーバ210のCPU、I/O、ネットワーク、およびプロセスに関する負荷情報を収集し、性能管理サーバ100に対して送信する。具体的には、性能情報提供部211は、業務アプリケーション212a,212b,212c毎に、業務処理グループ名、資源使用量(負荷率)、資源使用時間、プロセス処理時間等の情報を収集し、それらの情報を性能情報として性能管理サーバ100に対して送信する。業務アプリケーション212a,212b,212cは、クライアント21,22,・・・にサービスを提供する機能である。業務アプリケーション212a,212b,212cは、複数のプロセスを起動し、多重化して処理を実行することができる。
なお、図4には、アプリケーションサーバ210の機能を示しているが、他のアプリケーションサーバ220,230も同様の機能を有している。
性能管理サーバ100は、アプリケーションサーバ210,220,230それぞれに対応づけられた、性能情報取得部110,110a,110b、性能情報ログ120,120a,120b、負荷制御対象バッチテーブル131,132,133、資源負荷管理テーブル141,142,143、および自動負荷制御部150,150a,150bを有している。
性能情報取得部110,110a,110bは、それぞれ対応づけられたアプリケーションサーバ210,220,230から性能情報を取得し、性能情報ログ120,120a,120bに格納する。性能情報ログ120,120a,120bは、各アプリケーションサーバ210,220,230から収集した性能情報を蓄積する記憶媒体である。
負荷制御対象バッチテーブル131,132,133は、負荷制御の対象となる処理とその最大可能多重度とが定義されたテーブルである。なお、負荷制御の対象となる処理は、長時間バッチ(処理に所定時間以上要するバッチ処理)に限定される。
負荷制御対象から短時間で完了するバッチ処理を除外したのは、短時間で完了するバッチ処理は元々システムに掛かる負荷が小さく、多重度を制御する必要がないためである。また、本実施の形態では、オンライン処理も負荷制御対象から除外されている。オンライン処理は、クライアントからの要求に応じて実行される処理であり、ある程度余裕をみて資源を割り当てておく必要がある。そのため、現在の処理負荷から一義的に多重度を決めるのは不適当だからである。
資源負荷管理テーブル141,142,143は、各資源(CPU、I/O、通信、プロセス)の負荷を管理するデータベースである。資源負荷管理テーブル141,142,143の詳細は後述する。
自動負荷制御部150,150a,150bは、性能情報ログ120,120a,120bに格納された性能情報に基づいて、対応づけられたアプリケーションサーバ210,220,230毎の最適多重度とインターバル時間とを算出する。そして、自動負荷制御部150,150a,150bは、算出した多重度とインターバル時間とを、対応づけられたアプリケーションサーバ210,220,230に指示する。これらの処理を実行するために、自動負荷制御部150は、性能情報設定部151、負荷パラメータ設定部152、およびプロセス制御部153を有している。
性能情報設定部151は、性能情報ログ120と負荷制御対象バッチテーブル131とを参照し、現在実行されている業務アプリケーションのうち、負荷制御対象となる業務アプリケーション(長時間バッチ)を特定する。そして、性能情報設定部151は、負荷制御対象となる業務アプリケーションに関する負荷情報を性能情報ログ120から取得し、資源負荷管理テーブル141に設定する。
負荷パラメータ設定部152は、資源負荷管理テーブル141を参照し、業務アプリケーション毎の最適な多重度とインターバル時間とを計算する。そして、負荷パラメータ設定部152は、算出された最適な多重度とインターバル時間とによって、資源負荷管理テーブル141を更新する。
プロセス制御部153は、資源負荷管理テーブル141に登録された業務アプリケーションの多重度とインターバル時間とが更新された場合、更新後の内容を、その業務アプリケーションを実行するアプリケーションサーバに対して送信する。
図示していないが、他の自動負荷制御部150a,150bも自動負荷制御部150と同様の機能を有している。
次に、性能管理サーバ100が有する各種データの内容を詳細に説明する。
図5は、性能情報ログのデータ構造例を示す図である。図5の例では、性能情報ログ120に、各資源を利用する業務毎の性能情報121,122,123,・・・が登録されている。各性能情報121,122,123,・・・には、業務処理グループ名、多重度、プロセス名、プロセス処理時間、資源名、資源使用量(負荷率)、資源使用時間、資源使用回数等の情報が設定されている。
図6は、負荷制御対象バッチテーブルのデータ構造例を示す図である。負荷制御対象バッチテーブル131には、各アプリケーションサーバにおける所定時間以上要するバッチ処理(長時間バッチ)のグループ番号が登録されており、各長時間バッチの最大多重度が設定されている。なお、各アプリケーションサーバの業務処理運用による多重度の偏りを考慮し、システム全体の最大多重度を配分するように、各アプリケーションサーバにおける各長時間バッチの最大多重度が設定されている。また、長時間バッチは、優先度の高いものから順に、負荷制御対象バッチテーブル131の上位に登録されている。
以下、図7〜図9を参照して、資源負荷管理テーブルのデータ構造例について説明する。図7は、資源負荷管理テーブルのCPU資源およびI/O資源部分を示す図である。図8は、資源負荷管理テーブルの通信資源部分を示す図である。図9は、資源負荷管理テーブルのプロセス資源部分を示す図である。
資源負荷管理テーブル141には、資源名、資源使用量(負荷率)上限値、業務種別、業務処理グループ名、プロセス名、資源使用量(負荷率)、資源使用回数、資源使用時間、インターバル時間および多重度の欄が設けられている。
資源名の欄には、管理対象となるアプリケーションサーバ内の資源の名称が設定される。具体的には、資源名の欄には、CPU、I/O、通信、プロセスの何れかが登録される。CPU資源は、1台のアプリケーションサーバに1つの資源として管理される。例えば、アプリケーションサーバがマルチCPU構成であっても、資源負荷管理テーブル141では、1つのCPU資源として管理される。
I/O資源は、アプリケーションサーバからアクセス可能なI/O機器(ストレージデバイス等)の数分、資源名の欄に登録される。資源名の欄に登録されたI/O資源には、アプリケーションサーバ内でI/O資源を識別するための識別番号が付与されている。
通信資源は、アプリケーションサーバに接続された通信回線の数分、資源名の欄に登録される。資源名の欄に登録された通信資源には、アプリケーションサーバ内で通信資源を識別するための識別番号が付与されている。
プロセス資源は、オンライン処理とバッチ処理に割り当てられたプロセスの数分、資源名の欄に登録される。資源名の欄に登録されたプロセス資源には、アプリケーションサーバ内でプロセス資源を識別するための識別番号が付与されている。
資源使用率(負荷率)上限値の欄には、オンライン処理、及び負荷制御対象バッチテーブル131で管理される長時間バッチからの各資源の使用量または負荷率の上限値が設定される。オンライン処理以外、及び長時間バッチ以外の処理からの負荷率は既存システムでの実績値、或いは見積もりにより算出される。CPU資源とI/O資源とに関しては、負荷率の上限値が、最大処理能力に対する割合(パーセンテージ)で示されている。通信資源に関しては、負荷率の上限値が、使用される出力バッファの個数で示されている。オンプロセス(オンライン処理を行うプロセス)資源に関しては、オンライン処理に割り当てられているプロセス負荷の上限値が設定されている。バッチプロセス資源に関しては、100%の使用で構わないため、負荷率の上限値は設定されていない。また、アプリケーション間の共用資源となっているI/O資源、および通信資源については、各アプリケーションサーバの業務処理運用による負荷の偏りを考慮し、装置が持つ資源使用量(負荷率)上限値を配分するように、資源使用量(負荷率)上限値が設定されている。
なお、図7の例では、CPU資源の負荷率の上限値として270%が設定されている。これは、アプリケーションサーバがCPUを3つ搭載している場合の例であり、1つのCPUの最大の処理能力を100%としている。
また、図9の例では、バッチプロセスの資源機使用量(負荷率)上限値が「−」(空欄を示す)となっている。これは、上限値が設定されていないこと、すなわち、100%まで使用可能であることを示している。
業務種別の欄には、業務処理グループ名の欄に登録されている業務処理グループの業務種別が設定されている。図7〜図9中、オンライン処理は「オン」と示され、バッチ処理は「バッチ」と示されている。
業務処理グループ名の欄には、各業務を実行する業務処理グループの名称が設定される。バッチグループについては、負荷制御対象バッチテーブル131で管理される長時間のバッチグループが設定される。なお、オンライン処理を行う業務処理グループには、「オングループ#l」(lは、1以上の整数)という名称が与えられている。また、バッチ処理を行う業務処理グループには、「バッチグループ#k」(kは1以上の整数)という名称が与えられている。
プロセス名の欄には、各業務を実行するプロセスの名称が設定される。なお、オンライン処理を行うプロセスには、「オンプロセス#m」(mは、1以上の整数)という名称が与えられている。また、バッチ処理を行うプロセスには、「バッチプロセス#n」(nは1以上の整数)という名称が与えられている。
資源使用量(負荷率)の欄には、各資源を使用しているプロセス毎の資源使用量または負荷率が設定される。なお、資源を使用していない場合は、空白が設定される。
資源使用回数の欄には、I/O資源、および通信資源を使用しているプロセス毎の資源使用回数が設定される。
資源使用時間の欄には、バッチプロセスにおけるプロセス毎の前回負荷情報収集時点からのCPU時間、およびプロセス処理時間が設定される。また、バッチプロセスにおける単位処理一回当たりのI/O資源、および通信資源の使用時間が設定される。
インターバル時間の欄には、I/O資源および通信資源を利用する際の各バッチグループのインターバル時間が設定される。
多重度の欄には、現在の業務処理グループ内の多重度が設定される。
ここで、資源名、資源使用量(負荷率)上限値、業務種別、業務処理グループ名、プロセス名の欄には、予めシステム管理者によってデータが設定される。また、多重度の欄には、システム管理者によって初期値が設定される。性能管理サーバ100による自動負荷制御が開始されると、性能情報設定部151によって、資源使用量(負荷率)、資源使用回数、資源使用時間の欄に適宜データが設定される。また、負荷パラメータ設定部152によって、インターバル時間、多重度の欄にデータが設定される。
以上のような構成のシステムによって、自動負荷制御が行われる。以下、アプリケーションサーバ210に対応づけられた自動負荷制御部150で実行される自動負荷制御の処理手順を詳細に説明する。
まず、性能管理サーバ100では、性能情報取得部110によって、各アプリケーションサーバ210から性能情報ログ120が採取される。そして、性能情報設定部151は、負荷制御対象バッチテーブル131を参照し、負荷制御対象のバッチグループ(長時間バッチ)についての性能情報を、資源負荷管理テーブル141に対して設定する。
負荷パラメータ設定部152は、所定時間間隔で起動される。起動された負荷パラメータ設定部152は、資源負荷管理テーブル141に設定された性能情報に基づいて、適切な負荷パラメータ(多重度とインターバル時間)を計算し、資源負荷管理テーブル141に設定する。
なお、負荷パラメータ設定部152の起動間隔は、例えば、バッチ処理の平均処理時間に基づいて定める。バッチ処理の平均処理時間が3分であれば、負荷パラメータ設定部152が3分間隔で起動される。
図10は、負荷パラメータ設定処理の手順を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS11]負荷パラメータ設定部152は、オンライングループ毎のオンライン多重度を算出する。オンライン多重度は、以下の式で算出される。
オンライン多重度=(オンプロセス負荷率+オンプロセス負荷上限値)÷オンプロセス負荷上限値 ・・・(1)
ここで、オンプロセス負荷率は、対象となっているオンライングループ内で多重処理されている各プロセスの負荷率(資源負荷管理テーブル141のプロセス資源に対応づけて登録されているオンラインプロセスの資源使用量(負荷率)の欄に登録されている値)の合計である。オンプロセス負荷上限値は、資源負荷管理テーブル141のプロセス資源に対応づけて登録されているオンライングループの資源使用量(負荷率)上限値の欄に登録されている値(オンライングループ内の1プロセスにおける資源使用量(負荷率)の上限値)である。
[ステップS12]負荷パラメータ設定部152は、バッチグループの多重度(バッチ多重度)を算出する。バッチ多重度算出処理の詳細は後述する。
[ステップS13]負荷パラメータ設定部152は、I/O負荷制御処理を、I/O負荷上限値を超えている全てのI/Oについて繰り返し行う。I/O負荷制御処理の詳細は後述する。
[ステップS14]負荷パラメータ設定部152は、通信負荷制御を、通信負荷上限値を超えている全ての通信資源に対して繰り返し行う。通信負荷制御処理の詳細は後述する。
[ステップS15]プロセス制御部153は、資源負荷管理テーブル141に設定された負荷パラメータ(多重度とインターバル時間)に基づいて、各アプリケーションサーバ210のプロセス制御の起動/停止制御、およびインターバル時間制御を行う。
具体的には、プロセス制御部153は、資源負荷管理テーブル141を参照し、負荷パラメータ設定処理前より多重度が増加した業務処理グループがある場合、その業務処理グループの処理を実行するプロセスの起動要求を、その業務処理グループが実行されるアプリケーションサーバに対して送信する。また、プロセス制御部153は、資源負荷管理テーブル141を参照し、負荷パラメータ設定処理前より多重度が減少した業務処理グループがある場合、その業務処理グループの処理を実行するプロセスの停止要求を、その業務処理グループが実行されるアプリケーションサーバに対して送信する。
なお、バッチグループの多重度を減少させる場合、アプリケーションサーバは、バッチプロセスを完全に停止するのではなく中断させる。中断したバッチプロセスは、実行中のバッチプロセスが終了した場合、もしくは多重度の増加によるプロセスの起動要求が出された際に処理が再開される。
また、オンライングループの多重度を減少させる場合、アプリケーションサーバは、オンラインプロセスが未使用になったタイミングで、そのオンラインプロセスを停止させる。
次に、バッチ多重度算出処理について説明する。バッチ多重度を計算する際には、負荷パラメータ設定部152内部で、各処理グループに関する多重度と資源使用量(負荷率)との関係を示す負荷シミュレーションテーブルを生成する。
図11は、負荷シミュレーションテーブルのデータ構造例を示す図である。負荷シミュレーションテーブル152aには、業務処理グループ名、多重度、CPU負荷率、I/O#1負荷率、I/O#2負荷率,・・・,通信#1負荷率,・・・の各欄が業務処理グループ毎に設けられている。
業務処理グループ名の欄には、アプリケーションサーバで実行されている処理グループの名称が設定される。なお、バッチグループについては、負荷制御対象バッチテーブル131で管理される長時間のバッチグループが優先度の高い順に上位から設定される。
多重度の欄には、初期値として、オンライングループについては各処理グループの現在の多重度が設定され、バッチグループについては0が設定される。CPU負荷率の欄には、初期値として、各処理グループの現時点におけるバッチプロセス1つ当たりのCPU負荷率が設定される。I/O#1負荷率、I/O#2負荷率,・・・の欄には、初期値として、各処理グループの現時点におけるバッチプロセス1つ当たりの各I/O負荷率が設定される。通信#1負荷率,・・・の欄には、初期値として、各処理グループの現時点におけるバッチプロセス1つ当たりの各通信負荷率が設定される。
負荷パラメータ設定部152は、負荷シミュレーションテーブル152aに登録されているバッチグループを上位から順(優先度の高い順)に選択する。そして、負荷パラメータ設定部152は、選択したバッチグループの多重度を1加算する。そのとき、負荷パラメータ設定部152は、バッチグループの多重度が増加することによる各資源のCPU負荷率およびI/O負荷率を計算し、選択したバッチグループのCPU負荷率、I/O#1負荷率、I/O#2負荷率,・・・の各欄に設定する。
例えば、CPU負荷率を計算する場合、負荷パラメータ設定部152は、バッチプロセス1つ当たりのCPU負荷率に変更後の多重度を乗算し、多重度が増加することによるCPU負荷率を求める。I/Oの負荷率についても同様にして算出できる。
負荷パラメータ設定部152は、各資源の負荷率を再計算後、各資源について、資源使用量(負荷率)上限値を超えるか否かを判断する。上限値を超えていなければ、負荷パラメータ設定部152は、選択したバッチグループの増加させた多重度を確定する。上限値を超えることとなる資源が少なくとも1つ存在する場合、負荷パラメータ設定部152は、選択したバッチグループを、多重度増加の対象から除外する。その場合、選択したバッチグループの多重度の加算を取り消す。
なお、選択したバッチグループの多重度の増加を確定した場合、負荷パラメータ設定部152は、負荷制御対象バッチテーブル131を参照し、増加後の多重度が該当するバッチグループの最大多重度に達しているか否かを判定する。最大多重度に達している場合、負荷パラメータ設定部152は、選択したバッチグループを以後の多重度増加の対象から除外する。
以上の処理が順次選択したバッチグループに対して行われる。そして、負荷シミュレーションテーブル152aに登録されている最下位のバッチグループに対して、多重度増加の検討が終了すると、負荷パラメータ設定部152は、負荷シミュレーションテーブル152aの上位から順に、多重度増加対象となるバッチグループを再度選択し、多重度を増加すべきかを検討する。
そして、負荷パラメータ設定部152は、負荷シミュレーションテーブル152aに登録されている全てのバッチグループが、多重度増加の対象から除外された場合、多重度算出処理を終了する。多重度算出処理を終了した時点で、負荷シミュレーションテーブル152aの多重度の欄に登録されている多重度が、各バッチグループの多重度となる。
次に、I/O負荷制御処理について詳細に説明する。なお、以下の説明では、資源負荷管理テーブル141に対応するアプリケーションサーバのI/O負荷制御処理を行うものとする。
図12は、I/O負荷制御処理の手順を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS21]負荷パラメータ設定部152は、資源負荷管理テーブル141においてI/O資源を1つ選択する。
[ステップS22]負荷パラメータ設定部152は、資源負荷管理テーブル141を参照し、選択したI/O資源を使用する全業務処理グループの資源使用量(負荷率)の合計値が、資源使用量(負荷率)上限値を超えているか否かを判断する。資源使用量(負荷率)上限値を超えている場合、処理がステップS23に進められる。資源使用量(負荷率)上限値を超えていない場合、処理がステップS28に進められる。
[ステップS23]負荷パラメータ設定部152は、選択したI/O資源を使用するバッチプロセス毎にI/Oインターバル時間を計算する。具体的には、以下の式によって、I/Oインターバル時間が計算される。
I/Oインターバル時間=(I/O処理時間÷((I/O負荷上限値−オンライングループI/O負荷率)÷バッチ多重度合計))−I/O処理時間 ・・・(2)
式(2)におけるI/O処理時間は、資源負荷管理テーブル141においてステップS21で選択したI/O資源を使用するバッチプロセスに対応づけて設定されたI/O資源の資源使用時間である。従って、I/O処理時間の値は、バッチプロセス毎に異なる値となる。I/O負荷上限値は、資源負荷管理テーブル141において選択したI/O資源に対応づけて設定されている資源使用量(負荷率)上限値である。オンライングループI/O負荷率は、資源負荷管理テーブル141において選択したI/O資源に対応づけて設定されている全オンラインプロセスの負荷率(資源使用量(負荷率)の欄の値)の合計値である。バッチ多重度合計は、資源負荷管理テーブル141において選択したI/O資源に対応づけて登録されているバッチプロセスの中で、選択したI/O資源を使用中のバッチプロセス(資源使用量(負荷率)の値が空白でないバッチプロセス)数の合計値である。
式(2)における「(I/O負荷上限値−オンライングループI/O負荷率)」の項は、I/O負荷上限値からオンライングループで使用されている分を除くI/O処理能力(バッチ処理用に割り当て可能な処理能力)を示している。このバッチ処理用に割り当て可能な処理能力を「バッチ多重度合計」で除算することで、バッチプロセス1つに割り当て可能な処理能力(I/Oの100%の処理能力を1とした場合の割合を示す数値)が求められる。
図13は、バッチプロセス1つに割り当て可能な処理能力を概念的に示す図である。図13には、I/O処理能力30のうち、I/O負荷上限値までの処理負荷をかけることができる。I/O負荷上限値までの処理能力からオンラインプロセス用の処理能力31を差し引いた残りが、バッチプロセスに割り当て可能な処理能力32,33となる。なお、本実施の形態では、異なるバッチグループに属するバッチプロセスであっても、均等に処理能力を割り当てている。
このようにして得られたバッチプロセス1つに割り当て可能な処理能力に基づいて、各バッチグループ内のバッチプロセスにおけるI/Oインターバル時間が求められる。すなわち、バッチプロセスの1回のI/O処理当たりの処理時間は、「I/O処理時間+I/Oインターバル時間」である。この処理時間のうちにI/O処理時間の割合が、バッチプロセス1つに割り当て可能な処理能力に相当するようにI/Oインターバル時間を定める。これを式で表すと次の様になる。
I/O処理時間÷(I/O処理時間+I/Oインターバル時間)=バッチプロセス1つに割り当て可能な処理能力 ・・・(3)
この式(3)をI/Oインターバル時間について解けば、式(2)が得られる。
以下、図12に戻りステップS24以降の処理を説明する。
[ステップS24]負荷パラメータ設定部152は、選択されたI/O資源を使用するバッチプロセスのCPU負荷率を再計算する。具体的には、負荷パラメータ設定部152は、資源負荷管理テーブル141の選択されたI/O資源に対応づけて登録されたバッチプロセス毎に、CPU時間に対するプロセス処理時間の割合を計算し、CPU資源の資源負荷率とする。なお、プロセス処理時間は、ステップS23の処理によって決定されたインターバル時間と資源使用回数を基に再計算されている。
[ステップS25]負荷パラメータ設定部152は、選択されたI/O資源を使用するバッチプロセスのI/O負荷率を再計算する。具体的には、負荷パラメータ設定部152は、資源負荷管理テーブル141の選択されたI/O資源に対応づけて登録されたバッチプロセス毎に、I/O時間に対するプロセス処理時間の割合を計算し、I/O資源の資源負荷率とする。なお、プロセス処理時間は、ステップS23の処理によって決定されたインターバル時間と資源使用回数を基に再計算されている。
[ステップS26]負荷パラメータ設定部152は、選択されたI/O資源を使用するバッチプロセスの通信資源使用量を再計算する。具体的には、負荷パラメータ設定部152は、資源負荷管理テーブル141の選択されたI/O資源に対応づけて登録されたバッチプロセス毎に、通信時間に対するプロセス処理時間の割合を計算し、その割合に応じた通信バッファの量を通信資源の資源使用量とする。なお、プロセス処理時間は、ステップS23の処理によって決定されたインターバル時間と資源使用回数を基に再計算されている。
[ステップS27]負荷パラメータ設定部152は、ステップS24〜S26で計算した各資源の資源使用量(負荷率)を、資源負荷管理テーブル141内の資源使用量(負荷率)の欄に設定する。
[ステップS28]負荷パラメータ設定部152は、未選択のI/O資源が存在するか否かを判断する。未選択のI/O資源が存在すれば、処理がステップS21に進められる。全てのI/O資源が選択され、I/O負荷制御処理が完了していれば、処理が終了する。
次に、通信負荷制御処理について詳細に説明する。なお、以下の説明では、資源負荷管理テーブル141に対応するアプリケーションサーバの通信負荷制御処理を行うものとする。
図14は、通信負荷制御処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS31]負荷パラメータ設定部152は、資源負荷管理テーブル141において通信資源を1つ選択する。
[ステップS32]負荷パラメータ設定部152は、資源負荷管理テーブル141を参照し、選択した通信資源を使用する全業務処理グループの資源使用量(負荷率)の合計値が、資源使用量(負荷率)上限値を超えているか否かを判断する。資源使用量(負荷率)上限値を超えている場合、処理がステップS33に進められる。資源使用量(負荷率)上限値を超えていない場合、処理がステップS38に進められる。
[ステップS33]負荷パラメータ設定部152は、選択した通信資源を使用するバッチプロセス毎に通信インターバル時間を計算する。具体的には、以下の式によって、通信インターバル時間が計算される。
通信インターバル時間=(通信処理時間÷((通信負荷上限値−オンライングループバッファ使用個数)÷バッチ多重度合計))−通信処理時間 ・・・(4)
式(4)における通信処理時間は、資源負荷管理テーブル141においてステップS21で選択した通信資源を使用するバッチプロセスに対応づけて設定された通信資源の資源使用時間である。従って、通信処理時間の値は、バッチプロセス毎に異なる値となる。通信負荷上限値は、資源負荷管理テーブル141において選択した通信資源に対応づけて設定されている資源使用量(負荷率)上限値である。オンライングループバッファ使用個数は、資源負荷管理テーブル141において選択した通信資源に対応づけて設定されている全オンラインプロセスの負荷率(資源使用量(負荷率)の欄の値)の合計値である。バッチ多重度合計は、資源負荷管理テーブル141において選択した通信資源に対応づけて登録されているバッチプロセスの中で、選択した通信資源を使用中のバッチプロセス(資源使用量(負荷率)の値が空白でないバッチプロセス)数の合計値である。
式(4)における「(通信負荷上限値−オンライングループバッファ使用個数)」の項は、通信負荷上限値からオンライングループで使用されている分を除く通信用の通信バッファの記憶容量(バッチ処理用に割り当て可能なバッファ数)を示している。このバッチ処理用に割り当て可能な処理能力を「バッチ多重度合計」で除算することで、バッチプロセス1つに割り当て可能な通信バッファの記憶容量の割合(通信バッファの全記憶容量を1とした場合の割合を示す数値)が求められる。
図15は、バッチプロセス1つに割り当て可能な通信バッファの記憶容量を概念的に示す図である。図15には、通信バッファ40の全記憶容量のうち、通信負荷上限値まで各プロセスに使用させることができる。通信負荷上限値までの記憶容量からオンラインプロセス使用領域43を差し引いた残りが、バッチプロセス使用領域41,42となる。なお、本実施の形態では、異なるバッチグループに属するバッチプロセスであっても、均等に通信バッファを割り当てている。
このようにして得られたバッチプロセス1つに割り当て可能な通信バッファの記憶容量に基づいて、各バッチグループ内のバッチプロセスにおける通信インターバル時間が求められる。すなわち、バッチプロセスの1回の通信処理当たりの処理時間は、「通信処理時間+通信インターバル時間」である。この処理時間のうちに通信処理時間の割合が、バッチプロセス1つに割り当て可能な通信バッファの記憶容量の割合に相当するように通信インターバル時間を定める。これを式で表すと次の様になる。
通信処理時間÷(通信処理時間+通信インターバル時間)=バッチプロセス1つに割り当て可能な通信バッファの記憶容量の割合 ・・・(5)
この式(5)を通信インターバル時間について解けば、式(4)が得られる。
以下、図14に戻りステップS34以降の処理を説明する。
[ステップS34]負荷パラメータ設定部152は、選択された通信資源を使用するバッチプロセスのCPU負荷率を再計算する。具体的には、負荷パラメータ設定部152は、資源負荷管理テーブル141の選択された通信資源に対応づけて登録されたバッチプロセス毎に、CPU時間に対するプロセス処理時間の割合を計算し、CPU資源の資源負荷率とする。なお、プロセス処理時間は、ステップS33の処理によって決定されたインターバル時間と資源使用回数を基に再計算されている。
[ステップS35]負荷パラメータ設定部152は、選択された通信資源を使用するバッチプロセスのI/O負荷率を再計算する。具体的には、負荷パラメータ設定部152は、資源負荷管理テーブル141の選択された通信資源に対応づけて登録されたバッチプロセス毎に、I/O時間に対するプロセス処理時間の割合を計算し、I/O資源の資源負荷率とする。なお、プロセス処理時間は、ステップS33の処理によって決定されたインターバル時間と資源使用回数を基に再計算されている。
[ステップS36]負荷パラメータ設定部152は、選択された通信資源を使用するバッチプロセスの通信資源使用量を再計算する。具体的には、負荷パラメータ設定部152は、資源負荷管理テーブル141の選択された通信資源に対応づけて登録されたバッチプロセス毎に、通信時間に対するプロセス処理時間の割合を計算し、その割合に応じた通信バッファの量を通信資源の資源使用量とする。なお、プロセス処理時間は、ステップS33の処理によって決定されたインターバル時間と資源使用回数を基に再計算されている。
[ステップS37]負荷パラメータ設定部152は、ステップS34〜S36で計算した各資源の資源負荷率を、資源負荷管理テーブル141内の資源使用量(負荷率)の欄に設定する。
[ステップS38]負荷パラメータ設定部152は、未選択の通信資源が存在するか否かを判断する。未選択の通信資源が存在すれば、処理がステップS31に進められる。全ての通信資源が選択され、通信負荷制御処理が完了していれば、処理が終了する。
以上のようにして、一定時間毎に最適な多重度とインターバル時間とを算出し、バッチ処理の多重度および各バッチプロセスの1回の資源利用(I/Oアクセスや通信)当たりのインターバル時間が変更される。バッチ処理の多重度が適宜変更されることにより、例えば、オンライン処理の負荷が低下した際には、バッチ処理に割り当てられる処理能力が増加する。その結果、バッチ処理の多重度を増加させることができる。
図16は、多重度調整処理を示す概念図である。図16(A)は、多重度変更前のバッチ処理のスケジュールを示す図であり、図16(B)は、多重度変更後のバッチ処理のスケジュールを示す図である。各スケジュールは、横軸に時間が示されている。スケジュール内の各矩形が、実行されるバッチ処理を示している。
図16の例では、変更前は4多重でバッチ処理を行っている。未処理のバッチ処理は12個である。従って、4多重のまま処理を続行すると、全てのバッチ処理を完了するまで、あとバッチ処理3回分の時間が必要となる。多重度調整タイミングで多重度が変更され、6多重でバッチ処理が行われると、あとバッチ処理2回分の時間で、全てのバッチ処理を完了できる。
ここで、多重度を増やしすぎると、CPU、I/O、通信の何れかの資源において、処理負荷が過大となる。CPU資源の処理負荷が過大となれば、多重度を減らすこととなるが、多くの場合、I/O資源や通信資源の方が先に負荷が過大となる。その場合、インターバル時間を調整することで、負荷の軽減が図られ、多重度を減少させずに負荷が最大負荷率以下に抑えられる。
なお、インターバル時間を調整することで資源の負荷を軽減できるということは、待ち行列理論によって説明できる。以下、I/Oインターバル時間を調整する場合の例を採り、処理時間の削減効果について説明する。
ここで、CPUによる演算処理とI/Oアクセスとが行われる場合のサービス時間(要求が出されてから処理が完了するまでの時間)は、
1処理時間=実時間+待ち時間 ・・・(6)
となる。ここで、1処理時間は、バッチプロセスがCPUで実行されている時間、およびバッチプロセスから出されたI/O要求に応じたI/Oアクセスが行われている時間である。待ち時間は、CPU資源やI/O資源に対して処理要求を出してからその処理が実行されるまでの待機時間である。
ここで、待ち行列理論のM/M/1型のモデル(要求の到着がランダム、サービス時間の分布は指数分布、サービス窓口が一個)に従うと、待ち時間は
待ち時間=(ρ/(1−ρ))×実時間 ・・・(7)
で表される。ここで、ρはトラフィック密度と呼ばれる処理の混み具合を示す数値である。トラフィック密度は、ρ=λ/μで表される。λは要求の平均到着率(単位時間当たりの平均到着数)である。μは要求の平均処理率(単位時間当たりの平均処理数)である。
ところで、(ρ/(1−ρ))は、システム内の処理要求の平均滞留数を表している。すなわち、新たに処理要求が出された時点ですでに滞留している全要求の処理時間が、待ち時間となる。
式(7)によれば、ρの値が大きいほど待ち時間が長くなり、しかもρが1に近づくと待ち時間は急激に上昇する。そのため、ρの値が所定の上限値以上にならないように調整することで、待ち時間を所定の時間以下に抑えることができる。
ρの値を低下させるには、λを小さくするか、μを大きくすることとなる。ただし、μはハードウェアの処理能力によって決まってしまう。そこで、λを小さくすることが考えられる。
λは要求の平均到着率であり、I/Oアクセスに当てはめれば、バッチプロセスからのI/O要求の発生頻度に相当する。そこで、バッチプロセスがCPUの処理を行ってからインターバル時間経過後にI/Oアクセスの要求を出力するようにすることで、λの値を小さくすることができる。λの値が小さくなればρが小さくなり、待ち時間が減少する。
以下、処理時間削減の具体例を示す。
まず、前提条件として、10多重でバッチプロセスが実行されているものとする。バッチ処理のCPU処理時間は3秒、I/O時間は、1回のI/Oアクセス当たり30msとする。バッチ処理では、I/Oアクセスが3000回発生するものとする。
さらに、バッチプロセスがアクセスする資源は、磁気ディスク上の1ファイルである。このファイルに対しては、他のCPUのバッチプロセスからもアクセスされるものとする。計算を分かりやすくするために、オンライン処理は発生していないものとする。また、インターバル時間を設けていない場合のI/O資源の負荷率は75%である。さらに、I/Oバウンド処理(I/O機器に対してデータを送信する処理)が多量に行われており、CPU待ちは発生していないものとする。
〔インターバルが無いときの処理時間〕
まず、インターバルを設定する前の全体処理時間について試算する。
1処理時間(1つのバッチプロセスの処理に要する時間)は、以下の式となる。
1処理時間=CPU時間+I/O時間
=CPU処理時間+I/O処理時間
=3秒+30ms×3000回=93秒 ・・・(8)
ここで、CPU時間は、待ち時間(この例では「0」)を含み、1つのバッチプロセの処理をCPUが行うのに要する時間である。CPU処理時間は、1つのバッチプロセスによるCPU資源の使用時間である。I/O処理時間は、1つのバッチプロセスによるI/O資源の使用時間である。
全体処理時間は、総I/O時間とほぼ等しくなる。総I/O時間は、I/O処理時間+I/O待ち時間である。I/Oアクセス1回当たりの処理時間は30msであり、待ち時間は90ms(=(0.75/(1−0.75))×30ms)である。すると、I/Oアクセス要求が出されてから処理が終了するまで、1回当たり120msかかる。
図17は、インターバルが無いときの全体処理時間を示す図である。図17には、CPUで処理するバッチプロセスの時間変化と、I/Oアクセスを行っているバッチプロセスの時間変化とを示している。10多重のバッチプロセスに1〜10の番号を付け、各バッチプロセスの処理が行われている時間帯をバッチプロセスの番号で示している。
I/Oアクセス1回当たり120msであり、3000回のI/Oアクセスを行うバッチ処理が10多重で実行されているため、総I/O時間は、120ms×3000回×10処理=3600秒となる。
これを式で示すと以下の通りである。
全体処理時間=総I/O時間
=I/O処理時間+I/O待ち時間
=30ms×(1+(0.75÷(1−0.75)))×3000回×10処理
=3600秒 ・・・(9)
〔インターバルを挿入したときの処理時間〕
次に、インターバルを挿入したときの処理時間について説明する。インターバル時間は、以下の式で求められる。
I/O処理時間÷(I/O処理時間+インターバル時間)=バッチプロセス1つに割り当て可能な処理能力 ・・・(10)
例えば、I/O負荷上限値を60%とすると、バッチプロセス1つに割り当て可能な処理能力は6%である。すると、30ms÷(30ms+インターバル時間)=0.06となり、インターバル時間=470msとなる。
このとき、1処理時間は以下の式となる。
1処理時間=CPU時間+I/O時間
=CPU処理時間+I/O処理時間+インターバル時間
=3秒+(30ms+470ms)×3000回
=1503秒 ・・・(11)
この1処理時間を、インターバル無しの場合の1処理時間(93秒)と比べると、時間が長くなっている。ただし、インターバルを設けることで、I/O待ち時間が削減され、全体処理時間が短縮される。
全体処理時間は、総I/O時間とほぼ等しくなる。総I/O時間は、I/O処理時間+I/O待ち時間である。I/Oアクセス1回当たりの処理時間は30msであり、待ち時間は45ms(=(0.6/(1−0.6))×30ms)である。すると、I/Oアクセス要求が出されてから処理が終了するまで、1回当たり75msかかる。
図18は、インターバルがあるときの全体処理時間を示す図である。図18には、CPUで処理するバッチプロセスの時間変化と、I/Oアクセスを行っているバッチプロセスの時間変化とを示している。10多重のバッチプロセスに1〜10の番号を付け、各バッチプロセスの処理が行われている時間帯をバッチプロセスの番号で示している。
I/Oアクセス1回当たり75msであり、3000回のI/Oアクセスを行うバッチ処理が10多重で実行されているため、総I/O時間は、75ms×3000回×10処理=2250秒となる。
これを式で示すと以下の通りである。
全体処理時間=総I/O時間
=I/O処理時間+I/O待ち時間
=30ms×(1+(0.60÷(1−0.60)))×3000回×10処理
=2250秒 ・・・(12)
以上より、インターバル時間の導入によって全体処理時間が3600秒から2250秒に短縮され、約37%のI/O負荷の削減が可能となったことがわかる。
このように、本実施の形態では、CPU資源、I/O資源、および通信資源の全ての資源において処理負荷に余裕がある場合にのみ、バッチプロセスの多重度を増やすようにした。そのため、サーバに対して、処理効率上最適な多重度で処理を実行させることができる。
さらに、I/O処理や通信処理の処理負荷が負荷上限値以上となった場合、I/O処理や通信処理の処理要求の出力をインターバル時間だけ待つようにした。このインターバル時間の調整により、I/O処理の負荷を軽減し、システム全体としての処理効率を向上させることができる。
なお、CPU資源の負荷が負荷上限値以上となった場合には、多重度を下げることで、処理負荷が下げられる。
また、上記の処理機能は、コンピュータによって実現することができる。その場合、負荷制御装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 多重化させた処理を実行するサーバの負荷を制御する負荷制御装置において、
前記サーバのCPU資源および他の資源の負荷情報を収集する負荷情報取得手段と、
前記負荷情報に基づいて、前記サーバで実行されている処理の多重度を増加させた場合の各資源の負荷の増加量を計算し、全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下となる多重度を決定する多重度決定手段と、
前記サーバで実行されている処理の多重度を前記多重度決定手段で決定された多重度に変更する多重度制御手段と、
を有することを特徴とする負荷制御装置。
(付記2) 前記多重度決定手段は、前記サーバで複数の処理が実行されている場合、各処理を順番に多重度増加検討対象として選択し、選択した処理の多重度を上げられるか否かを判断することを特徴とする付記1記載の負荷制御装置。
(付記3) 前記多重度決定手段は、全ての処理について多重度を増加できなくなるまで、多重度増加検討対象とする処理の選択を繰り返すことを特徴とする付記2記載の負荷制御装置。
(付記4) 前記多重度決定手段は、前記サーバで実行されている各処理の最大多重度が予め設定されており、最大多重度に達した処理については、多重度増加検討対象から除外することを特徴とする付記2記載の負荷制御装置。
(付記5) 前記多重度決定手段は、前記サーバで実行されている処理のうち、バッチ処理のみを選択して多重度を決定することを特徴とする付記1記載の負荷制御装置。
(付記6) 前記負荷情報に基づいて、他の資源の負荷情報が負荷上限値を超えているか否かを判断し、負荷上限値を超えている場合、前記他のハードウェア資源に応じたインターバル時間を計算するインターバル時間決定手段と、
前記他のハードウェア資源に対する処理要求を出力する際に前記インターバル時間だけ時間をあけてから前記処理要求を出力するように、前記サーバに指示を出すインターバル時間制御手段と、
をさらに有することを特徴とする付記1記載の負荷制御装置。
(付記7) 多重化させた処理を実行するサーバの負荷を制御するための負荷制御プログラムにおいて、
コンピュータを、
前記サーバのCPU資源および他の資源の負荷情報を収集する負荷情報取得手段、
前記負荷情報に基づいて、前記サーバで実行されている処理の多重度を増加させた場合の各資源の負荷の増加量を計算し、全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下となる多重度を決定する多重度決定手段、
前記サーバで実行されている処理の多重度を前記多重度決定手段で決定された多重度に変更する多重度制御手段、
として機能させることを特徴とする負荷制御プログラム。
(付記8) コンピュータによって、多重化させた処理を実行するサーバの負荷を制御するための負荷制御方法において、
前記サーバのCPU資源および他の資源の負荷情報を収集し、
前記負荷情報に基づいて、前記サーバで実行されている処理の多重度を増加させた場合の各資源の負荷の増加量を計算し、全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下となる多重度を決定し、
前記サーバで実行されている処理の多重度を決定された多重度に変更する、
ことを特徴とする負荷制御方法。
本実施の形態の概略を示す図である。 本実施の形態のシステム構成例を示す図である。 本実施の形態に用いる性能管理サーバのハードウェア構成例を示す図である。 性能管理のための機能を示すブロック図である。 性能情報ログのデータ構造例を示す図である。 負荷制御対象バッチテーブルのデータ構造例を示す図である。 資源負荷管理テーブルのCPU資源およびI/O資源部分を示す図である。 資源負荷管理テーブルの通信資源部分を示す図である。 資源負荷管理テーブルのプロセス資源部分を示す図である。 負荷パラメータ設定処理の手順を示すフローチャートである。 負荷シミュレーションテーブルのデータ構造例を示す図である。 I/O負荷制御処理の手順を示すフローチャートである。 バッチプロセス1つに割り当て可能な処理能力を概念的に示す図である。 通信負荷制御処理の手順を示すフローチャートである。 バッチプロセス1つに割り当て可能な通信バッファの記憶容量を概念的に示す図である。 多重度調整処理を示す概念図である。 インターバルが無いときの全体処理時間を示す図である。 インターバルがあるときの全体処理時間を示す図である。
符号の説明
1 負荷制御装置
1a 負荷情報取得手段
1b 多重度決定手段
1c 多重度制御手段
2 サーバ

Claims (4)

  1. 多重化させた複数の処理を実行するサーバの負荷を制御する負荷制御装置において、
    前記サーバのCPU資源および他の資源の処理毎の負荷情報を収集する負荷情報取得手段と、
    全ての処理について多重度を増加できなくなるまで複数の処理を順番に多重度増加検討対象として繰り返し選択し、前記負荷情報に基づいて、前記多重度増加検討対象の処理の多重度を所定数だけ増加させた場合の各資源の負荷の増加量を計算し、負荷の増加量で予測される全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下であれば選択した前記多重度増加検討対象の処理の多重度を増加可能と判断し、多重度をこれ以上増加できない処理があっても、多重度を増やすことができる他の処理があればその処理の多重度を増加可能とし、複数の処理それぞれについて増加可能と判断された多重度の最大値を、各処理の多重度決定する多重度決定手段と、
    前記サーバで実行されている複数の処理それぞれの多重度を前記多重度決定手段で決定された多重度に変更する多重度制御手段と、
    を有することを特徴とする負荷制御装置。
  2. 前記負荷情報に基づいて、他のハードウェア資源の負荷情報が負荷上限値を超えているか否かを判断し、負荷上限値を超えている場合、前記他のハードウェア資源に応じたインターバル時間を計算するインターバル時間決定手段と、
    前記他のハードウェア資源に対する処理要求を出力する際に前記インターバル時間だけ時間をあけてから前記処理要求を出力するように、前記サーバに指示を出すインターバル時間制御手段と、
    をさらに有することを特徴とする請求項1記載の負荷制御装置。
  3. 多重化させた複数の処理を実行するサーバの負荷を制御するための負荷制御プログラムにおいて、
    コンピュータを、
    前記サーバのCPU資源および他の資源の処理毎の負荷情報を収集する負荷情報取得手段、
    全ての処理について多重度を増加できなくなるまで複数の処理を順番に多重度増加検討対象として繰り返し選択し、前記負荷情報に基づいて、前記多重度増加検討対象の処理の多重度を所定数だけ増加させた場合の各資源の負荷の増加量を計算し、負荷の増加量で予測される全ての資源に対する負荷が資源毎に予め設定されている負荷上限値以下であれば選択した前記多重度増加検討対象の処理の多重度を増加可能と判断し、多重度をこれ以上増加できない処理があっても、多重度を増やすことができる他の処理があればその処理の多重度を増加可能とし、複数の処理それぞれについて増加可能と判断された多重度の最大値を、各処理の多重度に決定する多重度決定手段、
    前記サーバで実行されている複数の処理それぞれの多重度を前記多重度決定手段で決定された多重度に変更する多重度制御手段、
    として機能させることを特徴とする負荷制御プログラム。
  4. 前記負荷情報に基づいて、他のハードウェア資源の負荷情報が負荷上限値を超えているか否かを判断し、負荷上限値を超えている場合、前記他のハードウェア資源に応じたインターバル時間を計算するインターバル時間決定手段と、
    前記他のハードウェア資源に対する処理要求を出力する際に前記インターバル時間だけ時間をあけてから前記処理要求を出力するように、前記サーバに指示を出すインターバル時間制御手段と、
    をさらに有することを特徴とする請求項記載の負荷制御プログラム
JP2005067522A 2005-03-10 2005-03-10 負荷制御装置および負荷制御プログラム Expired - Fee Related JP4170302B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005067522A JP4170302B2 (ja) 2005-03-10 2005-03-10 負荷制御装置および負荷制御プログラム
US11/174,508 US20060206900A1 (en) 2005-03-10 2005-07-06 Apparatus and program for controlling loads

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005067522A JP4170302B2 (ja) 2005-03-10 2005-03-10 負荷制御装置および負荷制御プログラム

Publications (2)

Publication Number Publication Date
JP2006252163A JP2006252163A (ja) 2006-09-21
JP4170302B2 true JP4170302B2 (ja) 2008-10-22

Family

ID=36972515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005067522A Expired - Fee Related JP4170302B2 (ja) 2005-03-10 2005-03-10 負荷制御装置および負荷制御プログラム

Country Status (2)

Country Link
US (1) US20060206900A1 (ja)
JP (1) JP4170302B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US7966078B2 (en) 1999-02-01 2011-06-21 Steven Hoffberg Network media appliance system and method
US8336054B2 (en) * 2006-07-20 2012-12-18 Hewlett-Packard Development Company, L. P. System and method for allocating capacity of shared resources to a workload
US8458695B2 (en) 2006-10-17 2013-06-04 Manageiq, Inc. Automatic optimization for virtual systems
US9697019B1 (en) 2006-10-17 2017-07-04 Manageiq, Inc. Adapt a virtual machine to comply with system enforced policies and derive an optimized variant of the adapted virtual machine
US9015703B2 (en) 2006-10-17 2015-04-21 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US8612971B1 (en) 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
US8949825B1 (en) 2006-10-17 2015-02-03 Manageiq, Inc. Enforcement of compliance policies in managed virtual systems
US9086917B1 (en) 2006-10-17 2015-07-21 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8234640B1 (en) 2006-10-17 2012-07-31 Manageiq, Inc. Compliance-based adaptations in managed virtual systems
US8234641B2 (en) 2006-10-17 2012-07-31 Managelq, Inc. Compliance-based adaptations in managed virtual systems
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US8949826B2 (en) 2006-10-17 2015-02-03 Managelq, Inc. Control and management of virtual systems
US8752045B2 (en) 2006-10-17 2014-06-10 Manageiq, Inc. Methods and apparatus for using tags to control and manage assets
JP5010314B2 (ja) * 2007-03-16 2012-08-29 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
JP5239184B2 (ja) * 2007-03-20 2013-07-17 日本電気株式会社 プレゼンスサービスシステム
JP4367962B2 (ja) 2007-06-19 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報システムに発生したイベントのパターンを検出する技術
US8418173B2 (en) 2007-11-27 2013-04-09 Manageiq, Inc. Locating an unauthorized virtual machine and bypassing locator code by adjusting a boot pointer of a managed virtual machine in authorized environment
US8407688B2 (en) 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US8627330B2 (en) * 2008-01-03 2014-01-07 Hewlett-Packard Development Company, L.P. Workload manager managing a workload of an enterprise data warehouse
US8627325B2 (en) * 2008-01-03 2014-01-07 Hewlett-Packard Development Company, L.P. Scheduling memory usage of a workload
JP2009259060A (ja) * 2008-04-18 2009-11-05 Hitachi Ltd ストリームデータ記録再生装置
US9069613B2 (en) * 2008-09-30 2015-06-30 Hewlett-Packard Development Company, L.P. Processing batch database workload while avoiding overload
WO2010061735A1 (ja) * 2008-11-27 2010-06-03 インターナショナル・ビジネス・マシーンズ・コーポレーション 検出イベントに応じたアクション実行を支援するシステム、検出イベントに応じたアクション実行を支援する方法、支援装置及びコンピュータプログラム
JP4797095B2 (ja) 2009-07-24 2011-10-19 株式会社日立製作所 バッチ処理多重化方法
JP5555010B2 (ja) * 2010-02-26 2014-07-23 大阪瓦斯株式会社 不要アプリケーション監視装置
WO2011111215A1 (ja) * 2010-03-11 2011-09-15 富士通株式会社 ソフトウェア制御装置、ソフトウェア制御方法、およびソフトウェア制御プログラム
WO2012025962A1 (ja) * 2010-08-25 2012-03-01 富士通株式会社 負荷制御装置、負荷制御方法及び負荷制御プログラム
JP5598229B2 (ja) 2010-10-01 2014-10-01 富士ゼロックス株式会社 ジョブ分散処理システム、情報処理装置及びプログラム
WO2013076775A1 (ja) * 2011-11-24 2013-05-30 株式会社日立製作所 計算機システム、分割ジョブ処理方法及びプログラム
US9501321B1 (en) * 2014-01-24 2016-11-22 Amazon Technologies, Inc. Weighted service requests throttling
JP6377197B1 (ja) * 2017-03-03 2018-08-22 三菱電機インフォメーションシステムズ株式会社 スレッド数変動通信装置及びスレッド数変動通信プログラム
JP6711339B2 (ja) * 2017-10-25 2020-06-17 横河電機株式会社 通信処理装置、プログラム、および通信処理方法
KR102615227B1 (ko) * 2018-02-01 2023-12-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11899415B2 (en) * 2019-04-24 2024-02-13 Mitsubishi Electric Corporation Information processing system with circuitry to sequentially process received data
CN112988389B (zh) * 2021-03-22 2023-08-11 成都卓拙科技有限公司 结合负载调节及周期性调节的自动伸缩方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09167141A (ja) * 1995-12-18 1997-06-24 Hitachi Ltd 負荷分散制御方法
JPH09244940A (ja) * 1996-03-12 1997-09-19 Hitachi Ltd 分散計算機資源の管理方法
US6016503A (en) * 1997-08-29 2000-01-18 International Business Machines Corporation Methods, systems and computer program products for preemptive avoidance of constraints for shared resources
US7660896B1 (en) * 2003-04-15 2010-02-09 Akamai Technologies, Inc. Method of load balancing edge-enabled applications in a content delivery network (CDN)
US7665090B1 (en) * 2004-03-08 2010-02-16 Swsoft Holdings, Ltd. System, method, and computer program product for group scheduling of computer resources

Also Published As

Publication number Publication date
JP2006252163A (ja) 2006-09-21
US20060206900A1 (en) 2006-09-14

Similar Documents

Publication Publication Date Title
JP4170302B2 (ja) 負荷制御装置および負荷制御プログラム
JP4043355B2 (ja) サーバ負荷分散プログラム、サーバ負荷分散方法、およびサーバ負荷分散装置
CN1610347B (zh) 在基于群集的系统内管理性能及资源利用率的方法和设备
US7676578B1 (en) Resource entitlement control system controlling resource entitlement based on automatic determination of a target utilization and controller gain
US7890620B2 (en) Monitoring system and monitoring method
JP5041805B2 (ja) データストレージシステムのサービス品質コントローラ及びサービス品質方法
JP4621087B2 (ja) 複数のインスタンスアプリケーションに対し負荷分散装置を動作させるシステムおよび方法
US9104498B2 (en) Maximizing server utilization within a datacenter
WO2017167025A1 (zh) 一种实现任务调度的方法、装置及计算机存储介质
US20090083746A1 (en) Method for job management of computer system
KR102245341B1 (ko) 클라우드 엣지 내 워크로드 분산을 위한 예측 모델 적용 방법
EP2391961A1 (en) System and method for integrating capacity planning and workload management
US8341439B2 (en) Power management apparatus and method thereof and power control system
CN1391671A (zh) 计算环境中的工作负载管理
CN104243405A (zh) 一种请求处理方法、装置及系统
JP2009244945A (ja) 負荷分散プログラム、負荷分散方法、負荷分散装置およびそれを含むシステム
JP3006551B2 (ja) 複数コンピュータ間の業務分散システム、業務分散方法および業務分散プログラムを記録した記録媒体
CN109815204A (zh) 一种基于拥塞感知的元数据请求分发方法及设备
CN112882827B (zh) 用于负载均衡的方法、电子设备和计算机程序产品
US20100274621A1 (en) Method and System for Integration of Systems Management with Project and Portfolio Management
JP3545931B2 (ja) 呼制御スケジューリング方法
JPH10240548A (ja) タスクスケジューリング装置及び方法
JP2019046163A (ja) 情報処理装置、仮想マシン監視プログラム、および情報処理システム
WO2020235055A1 (ja) 仮想マシン監視装置、仮想マシン監視方法およびプログラム
JP5997659B2 (ja) 分散処理システムおよび分散処理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070823

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071029

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: 20080805

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080806

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees