JP3952058B2 - 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体 - Google Patents

推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体 Download PDF

Info

Publication number
JP3952058B2
JP3952058B2 JP2004328417A JP2004328417A JP3952058B2 JP 3952058 B2 JP3952058 B2 JP 3952058B2 JP 2004328417 A JP2004328417 A JP 2004328417A JP 2004328417 A JP2004328417 A JP 2004328417A JP 3952058 B2 JP3952058 B2 JP 3952058B2
Authority
JP
Japan
Prior art keywords
computer
processes
load
cpu
processing
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
JP2004328417A
Other languages
English (en)
Other versions
JP2005135426A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2004328417A priority Critical patent/JP3952058B2/ja
Publication of JP2005135426A publication Critical patent/JP2005135426A/ja
Application granted granted Critical
Publication of JP3952058B2 publication Critical patent/JP3952058B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、クラスタ構成などと呼ばれる比較的緊密に結合された複数の計算機が負荷分担してトランザクション処理を実行するシステムにおいて、トランザクション処理の負荷を各計算機に分散させる方式に関し、特に各計算機における負荷状況を示す指標である「処理時間の推定伸長率」に基づいて処理要求を動的に配分することにより計算機間の負荷をバランスさせ、全体として応答時間の平均及びばらつきを小さく保つ方式に関する。
この種の負荷分散方式は、複数の処理装置(計算機)をもつシステムにおいて、規模の小さい処理を要求するメッセージが次々に大量に到着するのを、これら複数の計算機に適切に分配することによって計算機間で負荷を分散させ、システムから最大の性能を引き出そうとする。個々の処理が小規模なので、一般に、処理の途中で移動させることは考えず、到着時に処理を実行すべき計算機を決定してそこへ送付し、終了までそこで処理させる。また、対話型処理なので、負荷分散の最終的な目標は応答時間の平均(及びばらつき)の最小化である。処理要求の到着時に実行させる計算機を決定するが、この実行計算機の選択に当たっては、基本的に、負荷が最も低い計算機を選ぶことになる。ここで、何を「負荷の指標」とするかという問題が生ずる。従来、負荷の指標としては、計算機のCPU使用率、実行中の処理数、近い過去の応答時間の実績などが、個々に単独で、あるいは組み合わせて用いられていた。
従来のシステムの一例が、特許文献1に記載されている(従来技術1と呼ぶ)。ここでは、一定時間ごとにサーバー(計算機)の負荷状態(実施例によればCPU使用率)を計測して格納しておき、処理要求到着時には格納してある負荷状態に基づき最も負荷の低いサーバーを実行計算機として決定する。また、端末側で応答時間を監視していて、これが所定値を越えているなら、経路変換(実行計算機の変更)要求を出す。ここでは、第一の負荷指標としてCPU使用率が用いられている。CPU使用率はよい指標ではあるが、測定値は過去の一定時間間隔における平均値であり、その後にあった処理の開始終了などの影響を含まないこともあり、「現在の負荷」を表しているという意味での信頼性はあまり高くない。特に、動的な制御の下では、次の測定時までは同じデータが用いられるので、この間に到着した処理要求は負荷が最小であると判断された特定の一つのサーバーに集中的に送られることになり、負荷のシーソー現象を起こす可能性がある。第二の負荷指標として、実行途中の処理の応答時間の実績が、その処理自身の実行先切り替えの判断に用いられている。ここにおけるように実行途中における実行計算機の切り替えがオーバヘッド小さく可能な場合があるとすれば、有効な指標であろう。しかし、到着時の配分においては、その処理自身の実績がないのでこの指標は使用不可能である。
従来のシステムの別の一例が、特許文献2に記載されている(従来技術2と呼ぶ)。ここでは、各計算機で最後に実行を終了したメッセージについてその処理時間を記憶しておき、この時間にその計算機上で処理中のメッセージの数を乗じたものを負荷の指標として用いている。メッセージの到着時には、すべての計算機についてこの負荷指標の値を計算し、この値の最も小さい計算機にメッセージを送り処理を依頼する。この場合、最後に終了したメッセージの処理時間がその計算機上の処理時間を代表するか、という問題がある。この処理時間は、その計算機の混み具合とその最終終了メッセージ処理のジョブ特性(純処理時間、CPU/入出力の比率)とを反映しているはずである。すべてのメッセージについて後者のジョブ特性が同一であるならば、負荷指標として目安を与えると考えられる。しかし、様々なジョブ特性のものが混在している一般の状況では、個々の処理時間実績をそのまま負荷状態を反映するものと考えると判断を誤る可能性が大きい。
他の従来のシステムの例が、特許文献3に記載されている(従来技術3と呼ぶ)。ここには多くの請求項があるが、本発明に近いものは請求項9、段落番号「152」〜「161」に記載されたものである。ここでは、トランザクション処理部の負荷を定期的に検出して時刻と共に負荷の履歴を記憶しておく。そして、負荷傾向Trを次の式で計算する。Tr=(W2−W1)/(T2−T1)トランザクション処理要求を受けると、一定時間Ti後に処理負荷予測値が閾値Wtを越えないと判断した場合(Tr・Ti≦Wt)、自分で受け付け、そうでなければ拒否する。あるいは、より負荷の低い他のサーバに処理を依頼する。この例では、負荷を定期的に検出してこれをベースとして判断するが、具体的に何をもって「負荷」とするかについては公報全体を通じて明確に規定されていない。負荷の指標を規定することは負荷配分にとって重要な第一歩であるが、それがなされていない。また、Ti後の負荷を過去の線形外挿により予測しようとしているが(Tr・Tiでは不足と思われるが、それは別として)、これは良い予測とは思えない。システム全体の負荷についてはこの種のマクロな予測も有効かも知れないが、自サーバについてはその先の負荷状況は、現在の状態と処理中トランザクションの終了タイミング、自分が新たに処理を受け入れるか否かというミクロな動きで決まるものであり、過去の傾向を延長してそのまま信じてしまうのは危険である。
また、上述の従来技術1,2,3はいずれも、到着したメッセージ自体の処理時間を最短にすることを狙って実行先を決定している。しかし、このような個別最適化がシステム全体としての最適化に直結するという保証は必ずしもあるわけではない。
他の従来のシステムの例が、非特許文献1に記載されている(従来技術4と呼ぶ)。前提としているモデルを1台のCPUに注目して示すと図2のようなものである。ジョブは到着すると、CPU(図では計算機i)とディスクの使用を繰り返し、処理を終了すると立ち去る。この間の時間が応答時間である。複数のジョブが並行処理されるので、CPUの前には待ち行列が生ずる。他のCPUも、図示した計算機iと同じ位置づけになり、ディスクに対するアクセス時間はすべてのCPUから同等である。ここでは、負荷指標として次の2つの式が示されている。
fi =si (ni +1) (式1)
Fi =si (ni +1) (式2)
ここで、fおよびFは負荷指標、iは計算機番号、sはジョブのCPUにおける純サービス時間の平均、nはCPU系に存在するジョブ数である。これらの式は、待ち行列理論で言う開放型待ち行列網モデルにおいて、CPU系について平衡状態における平均値に関して成立する関係をもとに、平均応答時間をある意味で最小化するという目的のために、小さいほどよい値として導き出されたものである。実際、(式2)はCPU系における平均滞在時間を表し、これに入出力系における平均滞在時間を加えると平均応答時間となるものである。これらの負荷指標は、静的負荷配分のための指標としてはある意味の最適性が証明されている。しかし、動的制御はその時々の状況に応じた制御を行いうるところにメリットがあり、si,niについては、平衡状態における平均値でなく現在値を用いないと意味がない。現在値に関しniは測定可能であるが、計算機i上で実行中のジョブミックスの特性を反映するsiは直接には測定不可能である。当文献上における評価では、siとして全体の平均値を用いている。実行する処理が、ジョブ特性の観点から一種類でしかも特性のばらつきが小さいなら全体の平均値を用いてもよいであろうが、一種類でもばらつきが大きい場合や、現実には一般的と考えられる特性の異なる複数種類の処理が混在する場合には、全体の平均値を用いてしまうと動的制御のメリットが大きく失われることになる。
特開平10−312365号公報 特開平10−27168号公報 特開平7−302242号公報 Optimal LoadBalancing in Distributed Computer Systems(H.Kameda他著)、第225頁〜第232頁、1997年、Springer社発行
第1の問題点は、負荷分散のベースとなる各計算機の負荷状況の把握が不十分であるということである。従来は、処理中トランザクション数、CPU使用率などがそれぞれ単独であるいは組み合わせて負荷指標として使われていたが、これらは、その時点で処理中のトランザクション群のCPU/入出力使用比率を含むジョブ特性まで含めた、システムの混み具合を充分に反映するものとは言えない。また、トランザクション処理のように小規模の処理要求が大量に到着するシステムでは、短い時間間隔で正確に負荷状況を把握する必要があるが、分散システムにおけるデータ収集のオーバヘッドを恐れ、収集頻度を少なくするような傾向があった。低オーバヘッドな良質のデータを用いる工夫と共に、クラスタ型などの環境ではデータ収集は高速・低オーバヘッドなので、これを生かして良い負荷分散を実現するような方式が求められる。
第2の問題点は、必ずしも、システム全体としての最適化(応答時間の平均、分散の最小化)を図るものではなかったということである。到着したトランザクションの配分先を決定するに際し、当該トランザクションにとってその時点で最適な(最短時間で処理できると予想される)計算機を選択していたが、このような個別最適化は、システム全体としての最適化につながることを、必ずしも保証するものではない。
本発明の目的は、クラスタ構成などと呼ばれる比較的緊密に結合された複数の計算機が負荷分担してトランザクション処理を実行するシステムにおいて、到着した処理要求に対し適切な実行先計算機を選択するための基準となる有効な負荷指標を提供し、これに基づく選択を小さいオーバヘッドで実行可能にすることにより、トランザクション処理の負荷を短期レンジでも計算機間でバランスさせ、もって、全体として応答時間の平均とばらつきを小さく保つことを可能にする動的な負荷分散方式を提供することにある。
本発明は、トランザクション処理要求を発生する端末装置群と該要求の処理を負荷分担して実行する複数の計算機からなるシステムにおいて、各計算機の処理時間の伸長率を推定し、この推定伸長率をベースとした各計算機の負荷指標に基づいてトランザクション処理要求を各計算機へ配分する。具体的には、本発明にかかる負荷分散方法にあっては、各計算機の負荷状況を推定し、該推定負荷状況に基づいてすべての計算機について処理時間の推定伸長率を求め、この推定伸長率をベースとして各計算機の負荷指標の値を計算し、該負荷指標の値に基づいてトランザクション実行の各計算機への配分を決定する。また、本発明にかかる負荷分散方式にあっては、各計算機の負荷状況を推定する負荷データ測定手段と、推定した該負荷状況を記憶する負荷データ記憶手段と、該推定負荷状況に基づいてすべての計算機について処理時間の推定伸長率を求め、この推定伸長率をベースとして各計算機の負荷指標の値を計算し、該負荷指標の値に基づいてトランザクション実行の各計算機への配分を決定する実行計算機選択手段と、前記各計算機ごとにその上に存在し、複数のトランザクション実行を並列に行い、前記実行計算機選択手段に指令されたトランザクションの実行を管理するトランザクション処理手段とを有する。
各計算機の処理時間の伸長率とは、業務処理プロセスの応答時間、すなわち待ち時間も含む処理時間の、純処理時間(CPU、ファイル装置という資源を実際に使用する時間の合計)に対する倍率を意味する。この伸長率は、当該計算機上で実行中のプロセスの集まり(ジョブミックス)の、動作中の群としてのプログラム特性(CPU使用特性だけでなく、CPU−I/O使用特性を含む)を反映している。従って、処理速度が同じ計算機ならば、同一の処理は伸長率の小さい計算機で実行した方が処理時間は短くなり、応答時間を短くできる。
各計算機における処理時間の伸長率は、一定時間ごとに各計算機の負荷データとして例えば処理中トランザクション数とCPU系に滞在する業務処理プロセス数、または、処理中トランザクション数とCPU使用率を測定し、これらに基づいて推定する。一定時間ごとに測定した負荷データの系列を総合的に用いて各計算機の負荷状況を推定したり、各計算機におけるトランザクション処理の開始・終了に応じて各計算機の処理中トランザクション現在数を常に把握しておき、この処理中トランザクション現在数を用いて推定負荷状況データを補正したりすれば、推定負荷状況の推定精度が高まり、ひいては伸長率の推定精度も高まる。
推定伸長率をベースとして各計算機の負荷指標の値を求め、これに応じて、到着する処理要求を計算機へスケジュールする。負荷指標としては、推定伸長率そのものを負荷指標とすることができる他、当該計算機へ新規にトランザクションを割当てる前あるいは割当て後における、総推定伸長率、すなわち、当該計算機における前記処理時間の推定伸長率に当該計算機の処理中トランザクション数を乗じた値を用いることができ、また、当該計算機へ新規にトランザクションを割り当てた後における前記総推定伸長率と、割当て前における前記総推定伸長率との差を用いることもできる。後者では、伸長率の増分最小の計算機が選択されるため、システム全体にとって当スケジュールによる応答時間総和の増加を最小にする選択になる。
本発明の推定伸長率に基づくトランザクション負荷分散方式では、実行計算機選択手段と負荷データ記憶手段とがそれぞれシステムに一つだけ存在して集中的にその機能を実行し、前記実行計算機選択手段は各計算機の前記負荷指標の値を直接的に反映してトランザクションの配分を行うよう構成して良い。具体的には、すべての処理要求を集中的に受け取って計算機に配分する中継配分装置(図1の2)を備え、各計算機(図1の1x)上に存在して一定時間ごとに負荷データを測定し中継配分装置に通知する手段(図1の1x1と1x3)と、これを受けて中継配分装置上で各計算機の負荷状況を推定して記憶すると共に各計算機の処理中トランザクション現在数を常に把握する手段(図1の8と6)と、中継配分装置上に存在し端末から処理要求が到着すると起動され、該到着処理要求を処理する計算機を決定して送付する実行計算機選択手段(図1の7)とを備え、実測に基づいたその時点の推定負荷状況と処理中トランザクション現在数とに基づいて各計算機の処理時間の推定伸長率を求め、この推定伸長率をベースに各計算機の負荷指標の値を計算し、該負荷指標の値から、到着した処理要求に関して動的負荷配分の観点から最適な計算機を決定して処理させるように動作する(この方式を第1の方式と呼ぶ)。
本発明の推定伸長率に基づくトランザクション負荷分散方式では、また、実行計算機選択手段が各計算機ごとに一つずつ分散して存在し、固定的、静的または準静的な分配方式によって計算機に配分されてきたトランザクションについて、該計算機上の実行計算機選択手段が、すべての計算機の前記負荷指標の値に基づき、次の2つの決定すなわち、該計算機でそのまま処理するか他に回すかを閾値判断で決定、および他に回す場合はその送付先を決定、を行うよう構成して良い。具体的な構成例としては、次の2つの方式が考えられる(それぞれ第2の方式、第3の方式と呼ぶ)。
第2の方式は、中継配分装置を備えず、したがって処理要求は静的な方式で各計算機へ配分されるが、各計算機上に存在して一定時間ごとに負荷データを測定しこれを元に負荷状況を推定して記憶すると共に他のすべての計算機に通知する手段(図6の1x1と8x)と、処理要求の到着と共に到着計算機上で起動されてすべての計算機についての前記推定負荷状況から各計算機の処理時間の推定伸長率を求めこれを元に負荷指標の値を計算し、各計算機の該負荷指標の値に基づいて自計算機で処理すべきか他計算機に依頼すべきかを閾値を用いて判断し、他に送付する場合はその送り先を決定し、選択した実行先に送付依頼するよう動作する実行計算機選択手段(図6の7x)とを備える構成である。
第3の方式は、処理要求を一括して受け取って静的/準静的方式により計算機に配分する中継仮配分装置(図7の25)を備え、動的に最適とは言えない仮配分がなされるが、各計算機上に第2の方式と同一の、一定時間ごとに働く測定手段と、負荷状況推定手段、及び仮配分された処理要求の到着時に起動され各計算機の推定伸長率を計算しこれに基づいて負荷指標の値を求め、自計算機で処理すべきか他に依頼するとしたらどの計算機かを決定し処理を依頼するように動作する実行計算機選択手段(図7の7x)を備える構成である。
本発明によれば、複数の計算機が負荷分担してトランザクション処理を実行するシステムにおいて、短期的にも計算機間の負荷をバランスさせ、全体として応答時間の平均及びばらつきを小さく保つことができる。その理由は、計算機の処理時間の伸長率をベースとする新規な負荷指標に基づいて処理要求を動的に配分しているためである。つまり、基本的な性能指標として処理時間の伸長率は、当該計算機上で実行中のプロセスの集まり(ジョブミックス)の、動作中の群としてのプログラム特性(CPU特性だけでなく、CPU−I/O使用特性を含む)を反映しており、対話型処理にとっては最適で、かつ、適用性が広いためである。
また本発明によれば、各計算機における処理時間の伸長率を、一定時間ごとの各計算機の処理中トランザクション数、CPU系に滞在する業務処理プロセス数、CPU使用率といった、動作中に観測可能なデータから導き出せるようにしたため、個々の処理要求のジョブ特性に関する先験的知識なしに、低オーバヘッドで実測可能な負荷データだけに基づいて、伸長率をベースとした負荷指標に基づく負荷分散が実現できる。
また一定時間ごとに測定した負荷データの系列を総合的に用いて各計算機の負荷状況を推定し、あるいは各計算機におけるトランザクション処理の開始・終了に応じて各計算機の処理中トランザクション現在数を常に把握しておき、この処理中トランザクション現在数を用いて推定負荷状況データを補正する構成にあっては、推定負荷状況の推定精度が高まり、ひいては伸長率の推定精度、負荷分散の精度をより向上させることができる。
推定伸長率をベースとした各計算機の負荷指標として、推定伸長率そのものを負荷指標としたり、当該計算機へ新規にトランザクションを割当てる前あるいは割当て後における総推定伸長率(当該計算機における前記処理時間の推定伸長率に当該計算機の処理中トランザクション数を乗じた値)を用いたり、また、当該計算機へ新規にトランザクションを割り当てた後における前記総推定伸長率と、割当て前における前記総推定伸長率との差を用いる構成にあっては、個々の計算機のあるいはシステム全体としての負荷の程度を表現する負荷の指標に基づいた負荷配分が可能となり、個々のトランザクション自体の処理時間の最短化だけでなく、その割当てが他に及ぼす影響まで考慮した、システム全体としての最適化も可能となる。
本発明は、集中的に動的に個々の処理要求を配分する構成のシステムにも、静的/準静的に配分をされてしまった後で受けた計算機が配分の修正という位置づけで処理の転送を行うことになるという構成のシステムにも適用が可能である。シミュレーションを用いた性能評価結果が、前述のように図8、図9に示されている。
次に、本発明の実施の形態について図面を参照して詳細に説明する。
図1を参照すると、本発明の第1の実施の形態は、プログラム制御により動作する計算機群1と、中継配分装置2と、高速チャネル3と、ファイル装置群4と、端末装置群5と、通信網51とから構成されている。
計算機群1は計算機11〜1nを含み、計算機11〜1nは、それぞれ、負荷データ測定手段A111〜1n1と、トランザクション処理手段112〜1n2と、通信手段113〜1n3とを含み、トランザクション処理手段112〜1n2はそれぞれ複数の業務処理プロセスを含み(図示せず)、中継配分装置2は通信手段21と、負荷データ記憶手段6と、実行計算機選択手段7と、負荷データ測定手段B8とを含む。計算機11〜1nは主記憶を共有しないが、ファイル装置群4には高速チャネル3を介して性能的に同等の条件で接続されており、ファイル装置を共有している。中継配分装置2も高速チャネル3を介して計算機群1に接続され、端末群5は通信網51を介して中継配分装置2に接続されている。
1つのトランザクションの処理の概略は次のようになる。トランザクション処理要求であるメッセージは端末群5に属する端末装置から送り出され、中継配分装置2に伝えられる。中継配分装置2は、受け取ったメッセージを処理する計算機1iを決定し、該計算機に高速チャネル3を介して該メッセージを送る。受け取った計算機1iではトランザクション処理を実行し、応答メッセージを作成して逆の経路を通して要求元端末に返す。
ここで、各計算機11〜1nに備わる負荷データ測定手段A111〜1n1、トランザクション処理手段112〜1n2、通信手段113〜1n3をソフトウェア的に実現する場合、これらの各手段を実現するプログラムは図示しないCD−ROM、磁気ディスク、半導体メモリ等の機械読み取り可能な記録媒体に保存されており、計算機群1の立ち上げ時などに記録媒体に記録されたプログラムが各計算機に読み込まれ、各計算機の動作を制御することにより、各計算機上にこれら各手段を実現する。また、中継配分装置2に備わる通信手段21、負荷データ記憶手段6、実行計算機選択手段7、負荷データ測定手段B8をソフトウェア的に実現する場合、これらの各手段を実現するプログラムは図示しないCD−ROM、磁気ディスク、半導体メモリ等の機械読み取り可能な記録媒体に保存されており、中継配分装置2を構成する計算機の立ち上げ時などに記録媒体に記録されたプログラムがその計算機に読み込まれ、その計算機の動作を制御することにより、その計算機上にこれら各手段を実現する。
上記の各手段はそれぞれ概略つぎのように動作する。
計算機11〜1nの各々は同一の機能を持つので、以下では1iで代表させる。計算機1i上の負荷データ測定手段A1i1は、一定時間ごとに自身の属する計算機1iの負荷データを測定し、結果を中継配分装置2に送る。トランザクション処理手段1i2は、中継配分装置2から送られた処理要求メッセージを通信手段1i3から受け取ると、自身の管理下の業務処理プロセスを割り当て、処理を行わせる。前記業務処理プロセスは、プログラムの実行のためにCPUの使用とファイル装置4上のファイルへのアクセスを繰り返し、処理が終了すると応答メッセージを作成し、通信手段1i3を介して中継配分装置2に送る。
中継配分装置2上の負荷データ記憶手段6には各計算機の負荷データが格納されている。負荷データ測定手段B8は、各計算機から一定時間ごとに送られてくる負荷データを通信手段21経由で受け、これを加工して推定データとして前記負荷データ記憶手段6に格納する。また、計算機へのトランザクション処理要求送付および応答メッセージ到着の通知を通信手段21から受け、負荷データ記憶手段6上の一部のデータを更新する。実行計算機選択手段7は、前記処理要求メッセージを通信手段21から渡され、負荷データ記憶手段6に記憶されている各計算機の前記推定負荷データから各計算機における推定伸長率を求め、これに基づいて実行すべき計算機を決定し、該計算機に向けて、通信手段21に処理要求メッセージを送付させる。
次に、図1〜図5を参照して本実施の形態の全体の動作について詳細に説明する。
図1において、トランザクション処理手段1i2は、中継配分装置2から送られた処理要求メッセージを通信手段1i3から受け取ると、自身の管理下の業務処理プロセスを割り当て、要求に応じたトランザクション処理を行わせる。トランザクション処理手段1i2は、複数のトランザクション、したがって複数の業務処理プロセスをマルチプログラミング状態で走らせることができ、これによって応答時間、資源使用効率を向上させている。業務処理プロセスは、適用業務プログラム実行のためにCPUの使用とファイルアクセスのためのファイル装置群4への入出力を繰り返し、処理が終了すると応答メッセージを作成し、通信手段1i3を介して中継配分装置2に送りプロセスを終了する。
図2に、1台の計算機iについて、性能面から見たシステムのモデルを示す。業務処理プロセスの資源使用特性はCPU使用時間と入出力の回数で捉えられるが、これはトランザクションごとに異なるものである。複数の処理を並行して走らせるので、資源の競合が起こる。そのため、少なくともCPUの前にはプロセス待ち行列ができることが想定される。一般に、使用率の高いCPUほど待ち時間が長い。入出力に関しては、いずれの計算機からも性能的に同条件にあるので、ここの処理時間は待ち時間も含めてアクセス元の計算機による差はないと考える。Niは計算機i上の処理中業務処理プロセス数を表すものとする。これは該計算機上で処理中のトランザクション数に相当する。PiはCPU系に存在する業務処理プロセス数を表すものとする。これはNiのうちCPU割当て待ち(レディ状態)あるいはCPU使用中であるプロセスの総数である。ファイル装置は共有されており、すべての計算機についてアクセス性能は同等なので、他の計算機も、性能的にはすべて計算機iと同じ位置づけとなる。
計算機1i上の負荷データ測定手段A1i1は、一定時間ごとに自身の属する計算機1iの負荷データとして、その時点でCPU系に存在する前記業務処理プロセス数Piあるいは直前の測定以後今回までの間のCPU使用率Ri、およびその時点での処理中業務処理プロセス数Niを測定し、結果を通信手段1i3を介して中継配分装置2に送る。前記測定の間隔は負荷分散の精度を左右するので、オーバーヘッドとの兼ね合いもあるが、通常のトランザクション処理では100ミリ秒程度以下、できれば10ミリ秒程度、であることが望ましい。Piを用いるかRiを用いるかは実施システムごとに決定してよい。Piを用いる場合をP方式、Riを用いる場合をR方式と呼ぶことにする。
図3に、中継配分装置2上の負荷データ記憶手段6に記憶する負荷データをテーブル形式で示す。計算機番号T1はシステム内で稼働中の計算機の識別を示し、テーブル上のデータは計算機ごとに1行を用意して管理されている。負荷データ測定手段B8は、前記負荷データ測定手段A1i1から一定時間ごとに送られるデータである、CPU系に存在する業務処理プロセス数Piあるいは直前の測定以後今回までの間のCPU使用率Ri、およびその時点での処理中業務処理プロセス数Niの値を通信手段21経由で受ける。そして、これを加工して推定データとして、前記Piの推定値Peiあるいは前記Riの推定値Rei、および前記Niの推定値Neiを求め、前記R方式ならReiからPeiを計算し、列T3にNeiを列T4にPeiをそれぞれi番目の値として格納する。
測定値をそのまま用いず推定値に変換するのは、過去のデータを総合的に組み込むことによりサンプリングの信頼性の低さを補うためである。具体的な求め方として、次の方法がある。測定値をm、推定値をe、最新の測定がn回目であったとする。
e(n)=a*m(n)+(1−a)*e(n−1) (式3)
ここで、aはパラメタ(0<a≦1)であり、また、e(n)の初期値e(0)はe(1)と等しいとする。すなわち、今回の測定値にaを乗じたものと前回の推定値に1−aを乗じたものとの和を今回の推定値とする。式3は次のように展開できる。
e(n)=a*m(n)+a(1−a)*m(n−1)+a(1−a)2 *m(n−2)+a(1−a)3 *m(n−3)+ …
この式は、推定値が、近い過去の測定値ほど重視する形で過去の測定値を全部取り込んだものになっていることを示している。aが大きい(1に近い)ほど近い過去を重視する度合いが高いことになる。前記測定間隔が十分に小さいなら、aの値は0.1などの小さい値とした方が推定値の信頼度は上がる。前記R方式では、式3により求められたReiから次の式によりPeiを求め、列T4に格納する。Pei=Rei/(1.0−Rei)(Rei≧0.99ならPei=Nei)この式は、M/M/1待ち行列における系の長さと使用率との関係そのものである。
また、計算機i上で処理中のトランザクション現在数Npiが、テーブル上の列T2に保持されている。この値は、前記負荷データ測定手段B8が、計算機へのトランザクション処理要求送付(トランザクション開始)および応答メッセージ到着(トランザクション終了)の通知を通信手段21から受けて更新し、保持する。したがって、信頼できる測定値である。
図4Aは、本発明の第1の実施の形態の実行計算機選択手段7の動作を示すフローチャートである。実行計算機選択手段7は、端末から処理要求メッセージが中継配分装置2に到着すると通信手段21に起動されて該メッセージを渡され(図4Aの71)、負荷データ記憶手段6に記憶されている各計算機の負荷データから各計算機における推定伸長率を求めて(図4Aの72,73)負荷指標の値を計算し(図4Aの74)、これ基づいて実行すべき計算機を決定し(図4Aの75)、該計算機に向けて、通信手段21に処理要求メッセージを送付させる(図4Aの76)。
推定値の補正(図4Aの72)では、負荷データ記憶手段6上のデータをベースに補正を行い、現時点における負荷データとして、処理中業務処理プロセス数(補正値)Nri、およびCPU系に存在する業務処理プロセス数(補正値)Priを次の式により求める。
Nri=w*Npi+(1−w)*Nei (式4)
ここでwは重み係数(w≦1.0)であり、0.8程度がよい。
Pri=Pei+(Nri−Nei),Nri≧Neiのとき (式5)
=Pei*(Nri/Nei),Nri<Neiのとき
式5は、過去のサンプリングから推定していたPeiを、これと同一条件で推定したNeiと現時点の状況を表す最も信頼できる補正値であるNriとの関係から、補正するものである。一定時間間隔でしか行わない推定をベースに、最新の推定値から現時点の真の値に近い補正値を得ることができる。
推定伸長率の計算(図4Aの73)では、推定伸長率Epiを次の式により求め、結果をテーブルの列T5に格納する。
X=Nri*(Pri+1)として、
Epi=X/(X−Pri*Pri),Pri<Nriのとき (式6)
=Nri+1.0 ,Pri≧Nriのとき
式6は、図2に示す1つの計算機(CPU1台)における平衡状態の平均値に関して成立する関係から、以下のようにして導かれる。
トランザクションは指数分布に従う時間間隔で到着する(ポアソン到着)とする。また、ディスク装置では待ちは生じない(装置が無限に存在する)ものとする。前述の処理中業務プロセス数、その内のCPU系に存在する業務処理プロセス数、CPU使用率もここでは平均値とし、これらを含めてすべての変数は計算機番号、推定状態を示す添字を省いて示す(例えば、処理中業務プロセス数はN、CPU系に存在する業務処理プロセス数はP、CPU使用率はRでそれぞれ示す)。また、以下で定義する4種の変数はトランザクション当たりの平均時間とする。
F:処理時間
t:純処理時間
s:CPU使用時間
d:入出力時間(t=s+d)
更に、対象計算機からの要求で実行中の入出力数の平均をDとする(N=P+D)。従来技術4の文献228頁の8.3式から、平衡状態の平均値について、
F=s(P+1)+d=sP+t (式61)
となり、入出力で待ちがないので、
d/s=D/R (式62)
となる。また、同文献228頁の式8.3と式8.1の対比からも知られるように、
P+1=1/(1−R) から R=P/(1+P) 式(63)
となる。
式63を式62に代入し、d=t−s、N=P+Dを適用すると、
s=Pt/(P+D+PD)=Pt/(N(P+1)−P・P) 式(64)
となり、式64を式61に代入すると、
F=P・Pt/(N(P+1)−P・P)+t=N(P+1)t/(N(P+1)−P・P)=Xt/(X−P・P)となる。ここで、X=N(P+1)である。したがって、伸長率Eは、
E=F/t=X/(X−P・P)
となり、式6が導かれる。また、伸長率Eは、NとCPU使用率Rを用いて次のように表すこともできる。
E=N(1−R)/(N(1−R)−R・R) 式(65)
式65は、式6にRとPの関係を表す式63を適用して得ることもできるし、従来技術4の文献の式8.1(Rを用いて処理時間を表現)から出発して、式62、式63を適用して得ることもできる(導出の記述は省略する)。しかし、Rについては式5で行ったのに相当する補正の手段がなさそうなので、本実施形態では補正の前にPに変換してから補正を受けるようにしてしまい、CPU使用率を測定した場合にも最終的な伸長率の式としてはNとPを用いる式6を使用するようにした。なお、本実施形態で推定伸長率を求めるために用いる計算式(式6)は、このようにシステムの統計的平衡状態に関して成立するものであり、平衡状態がある程度の時間続くときに、その間のP、Nの平均値を知れば推定可能になるものである。現状を表す平衡平均値としては、過去の履歴に基づいて式3を用いたNei、Peiが適当と考えられるが、Nについては正確な現在値Npiが知られているので、動的負荷配分の立場からはこれも反映すべく、前述した式4においては、この方針によりNの補正値を得ている。
再び図4(A)を参照して実行計算機選択手段7の残りの動作を説明する。
採用する負荷指標によっては、現状における推定伸長率Epiの他に到着メッセージを計算機iにスケジュールした場合の予測伸長率Eniが必要になる。あるいはEniだけを必要とすることもある。EniもEpiと同様に図4(A)のステップ73で計算される。
Eniが必要であって到着メッセージ処理のジョブ特性を利用しない場合は、スケジュール後のトランザクション数NniをNri+wとし、スケジュール後のCPU系滞在プロセス数PniをPri+wとして、式6と同様にEniを計算しテーブルの列T6に格納する。
到着メッセージ処理のジョブ特性が推定可能でこれを利用する場合は、メッセージの種類などからその純処理時間(CPU、ファイル装置という資源を実際に使用する時間の合計、言い換えると資源競合が全くない場合の処理時間)に占めるCPU時間の割合Cを推定し、これを用いて次の計算により、まず前記Pniを推定する。
をスケジュール前における計算機i上におけるCの推定値とすると、Cは式64におけるs/tに相当するので、式64にN、Pの補正値を当てはめて、
=Pri/(Nri*(1+Pri)−Pri・Pri)
となる。Cを計算機iに、C=C0である到着メッセージをスケジュールした場合の新ジョブミックスにおけるCの推定値とする。平均がCのジョブがNri個存在し、そこへC0のものが1個加わり総数はNniとなるので、その平均値は、
=(Nri*C1+C0 )/Nni
となる。式64から、s/t=P/(NP+N−P・P)なので、この式をスケジュール後の状態に適用すると、s/t=Cなので、Pniをyとおくと、
(Nni・y+Nni−y2)=y
となり、整理すると、次の2次方程式が得られる。
2+(1−C・Nni)y−C・Nni=0 (式7)
式7をyについて解くことによって、スケジュール後のPniの推定値が得られる。定数項が負の値なので正の解と負の解が得られる。正の解をPniとして採用する。そして、式6と同様にしてEniを計算する(これを、以下ではEkiとする)。
ここで処理時間の伸長率とは、業務処理プロセスの応答時間、すなわち待ち時間も含む処理時間の、純処理時間に対する倍率を表す。伸長率Eiは、計算機iにおける業務処理プロセスの伸長率である。処理速度が同じ計算機ならば、同一の処理は伸長率の小さい計算機で実行した方が処理時間は短く、したがって応答時間を短くできることになる。推定伸長率は、当該計算機上で実行中のプロセスの集まり(ジョブミックス)の、動作中の群としてのプログラム特性(CPU使用特性だけでなく、CPU−I/O使用特性を含む)を反映している。しかも、式6を用いると、実行中の個々のジョブの特性を知る必要がなく、動作中に観測可能なデータだけから得ることが可能なところに特徴がある。基本的に、従来技術4の考え方の系列に属し、式6は式2の拡張・変形により得られるが、当方式は現時点のシステム状況(ジョブミックス特性)を反映可能にし、かつ、CPU系での滞在時間だけでなく入出力も含めた全処理時間(応答時間)を対象にして、精度・ダイナミック性を向上させている。ただし、式6は平衡平均値に関する理論に基づいているので、短期的な状況の把握法としては100パーセントの信頼性があるとは言えない。
負荷指標の値の計算(図4Aの74)では、負荷データT2〜T6を用いて各計算機について負荷指標の値を計算する。負荷指標としては図5に示すように8種類(名称としてLで始まる)が考えられ、実施システムではこの内の一種類を選べばよい。図中に示した式による計算で結果を得てテーブルの推定負荷の列T7に格納する。いずれも、小さい値を持つ計算機ほどスケジュール先として望ましいことになる。どの時点の負荷を考えるかについて、到着メッセージのスケジュール前(この負荷をLpと表記する)/後があり、さらに、スケジュール後の場合に到着メッセージのジョブ特性を未知とする(負荷をLaと表記)か、推定可能とする(負荷をLkと表記)かがありうる。これら3ケース各々について、伸長率そのものを負荷指標と捉える( Lx1と表記) こともでき、推定伸長率に処理中業務処理プロセス数NriまたはNniを乗じたものを負荷指標とする(Lx2と表記)こともできる(xはp、aまたはkである)。後者は計算機上の個々のトランザクションの推定伸長率の総和という性格をもつ。さらに、スケジュールによる負荷の増加という観点から、上記の総和のスケジュール前後における増分を負荷指標とする(Lx3と表記)こともできる。伸長率の増分最小という選択は、システム全体にとって当スケジュールによる応答時間総和の増加を最小にする選択になり、結果として平均応答時間を最小化できると期待できる。到着メッセージのジョブ特性が相当の精度で推定可能な場合は、理論通り、Lk3を採用するのが最も良い結果を期待できる。ジョブ特性推定の精度が期待できない場合はLk3の選択は危険であり、平均応答時間最小という点からはLa2を採用するのがよい。
推定値の補正(図4Aの72)、推定伸長率の計算(73)、負荷指標の値の計算(74)は、入力メッセージを処理可能なすべての計算機に関して行い、推定負荷を得てテーブルの列T7に格納しておく。
実行すべき計算機の決定(図4Aの75)では、テーブルの列T7に格納されている各計算機の前記推定負荷をサーチし、推定負荷が最小の計算機(計算機jとする)を選択する。次に、メッセージの送付(図4Aの76)では、選択された計算機jに対して入力メッセージを送付して処理開始を促すように、通信手段21に指令する。
次に、本実施の形態の効果について説明する。
本実施の形態では、中継配分装置2の上で全計算機の負荷データをリアルタイムで管理し、またすべての処理要求メッセージを直接受け取り、直ちに、前記負荷データに基づいて各計算機における伸長率を計算し、その時点で最適な負荷指標値をもつ計算機に処理要求メッセージの処理を依頼するように構成されているため、集中的な制御が実現でき、オーバヘッドの少ない、かつ、良質な負荷配分を実現することができる。
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。
図6を参照すると、本発明の第2の実施の形態は、第1の実施の形態に対し、構成として、中継配分装置2をもたず端末群5は通信網51を介して直接に計算機群1に接続されている点と、計算機間を接続する交換・蓄積機構10が追加されている点が異なる。これに伴い、計算機1iは、負荷データ測定手段A1i1と、トランザクション処理手段1i2と、通信手段1i3に加えて、負荷データ記憶手段6iと、実行計算機選択手段7iと、負荷データ測定手段B8iとを含む。これらの各手段を他の手段と共にソフトウェア的に実現する場合、第1の実施の形態と同様にその実現用プログラムが図示しない記録媒体に記録されて提供される。
1つのトランザクションの処理の概略は次のようになる。トランザクション処理要求であるメッセージは端末群5に属する端末装置から送り先を指定して送り出され、通信網51を経由して指定された計算機で受け取られる。受け取った計算機はそのメッセージを自分で処理するか他に依頼するか、依頼するとしたらどの計算機にするかを決定し、依頼する場合は交換・蓄積機構10を介して依頼先計算機に該メッセージを送る。処理を行う計算機はトランザクション処理を実行し、応答メッセージを作成して要求元端末に返す。
ここで、上記の手段はそれぞれ概略つぎのように動作する。
計算機1i上の負荷データ測定手段A1i1は、一定時間ごとに自身の属する計算機1iの負荷データを測定し、負荷データ測定手段B8iでこれを加工して推定データとして負荷データ記憶手段6iに格納する、と共に交換・蓄積機構10により他のすべての計算機に通知する。また、同様に各計算機のトランザクション処理開始および終了を相互に通知し合う。これらによって、各計算機上の負荷データ記憶手段6xには全計算機の最新の負荷データが保持される。端末から来た処理要求メッセージは実行計算機選択手段7iが受け、負荷データ記憶手段6iに記憶されている各計算機の推定負荷データから各計算機における推定伸長率を求め、これに基づいて実行すべき計算機を決定し、自身で実行する場合にはトランザクション処理手段1i2に渡し、他の計算機に実行させる場合は該計算機のトランザクション処理手段1j2に向けて、交換・蓄積機構10を経由して処理要求メッセージを送付する。トランザクション処理手段1x2は、処理要求メッセージを受け取ると、自身の管理下の業務処理プロセスを割り当てて処理を行わせる。業務処理プロセスは、プログラムの実行のためにCPUの使用とファイル装置4上のファイルへのアクセスを繰り返し、処理が終了すると応答メッセージを作成し、通信手段1x3を介して要求元端末に送る。
次に、図6及び図4Bのフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
トランザクション処理手段1i2の動作は、処理要求メッセージを受け取るのが自分または他の計算機上の実行計算機選択手段7xからである点を除くと第1の実施の形態と同一である。負荷データとして管理するデータも第1の実施の形態と同一で図3に示すものであるが、各計算機上に負荷データ記憶手段6xとして、全計算機に関する同一内容のものを保持する。計算機1i上の負荷データ測定手段A1i1は、一定時間ごとに自身の属する計算機1iの負荷データとして、CPU系に滞在する業務処理プロセス数PiあるいはCPU使用率Ri、およびその時点での処理中業務処理プロセス数Niを測定する。そして、負荷データ測定手段B8iがこれを加工して、推定データとして、PeiあるいはRei、およびNeiを求め、前記R方式ならReiからPeiを計算し、列T3にNeiを列T4にPeiをそれぞれi番目の値として格納する。同時にNei、Peiの値を他のすべての計算機に交換・蓄積機構10を介して送り、負荷データ記憶手段6xの内容を更新させる。推定データの計算方法は第1の実施の形態におけるのと同一である。また、計算機1i上で処理中のトランザクション現在数Npi(テーブル上の列T2)に関しては、負荷データ測定手段B8iが、計算機1iでのトランザクション処理開始およびトランザクション処理終了の通知をトランザクション処理手段1i2から受けて更新・保持する、と共に他のすべての計算機に送り負荷データ記憶手段6xの内容を更新させる。
図4Bは、本発明の第2の実施の形態の実行計算機選択手段7の動作を示すフローチャートである。端末から処理要求メッセージが到着した計算機1iにおいて実行計算機選択手段7iが実行される。到着メッセージを受けた通信手段1i3に起動されて該メッセージを渡され(図4Bの71)、負荷データ記憶手段6iに記憶されている各計算機の負荷データから各計算機における推定伸長率を求めて(図4Bの72,73)負荷指標の値を計算し(図4Bの74)、これ基づいて自計算機(1i)で実行すべきかどうか判断し(図4Bの751)、自計算機ですべきでないなら実行する計算機を決定し(図4Bの75)、選択された計算機に向けて、処理要求メッセージを交換・蓄積機構10を介して送付させる(図4Bの76)。自計算機で実行すべきなら自分を選択し(図4Bの752)、処理を指示する(76)。実行計算機選択手段7xの動作として第1の実施の形態と論理的に異なるのは、自計算機で実行するか否かの判断のところだけである。 推定値の補正(図4Bの72)、推定伸長率の計算(73)、負荷指標の値の計算(74)は、入力メッセージを処理可能なすべての計算機に関して行い、推定負荷を得てテーブルの列T7に格納しておく。自計算機で実行するか否かの判断(751)には、まず、自計算機の現推定伸長率Epiを用い、これが閾値(小さめに1.3程度がよい)以下であったならば、自計算機で実行することにする。そうでない場合、負荷データ記憶手段6i上の推定負荷T7に基づいて、自計算機の推定負荷が最小でなくても、最小負荷の計算機との差が小さければ自計算機で実行するようにする。較差の大小の判断は閾値による。負荷指標として伸長率総和の増分以外の6種類のいずれかを採用する場合は、較差の判断は倍率閾値によるのがよく、1.3倍から1.5倍程度がよいようである。すなわち、自計算機のEpiがEpが最小である計算機jのEpjの1.3倍以内であったら自計算機で実行する、などである。負荷指標として伸長率総和の増分を採用する場合は、2台の計算機の負荷指標間の差をシステム内の全トランザクション数で除したものが閾値を越えるか否かで判断するのがよい。すなわち、実行中の全トランザクションの平均伸長率の増分の程度によって判断する。この場合の閾値は0.02程度がよい。ここで、閾値の値は、負荷の測定間隔が長い場合には大きくした方がよい。これは、測定間隔が長い場合は負荷指標の推定値の信頼性が低くなるので、トランザクション転送を行う頻度が少なくなるような安全サイドの選択をした方がいいからである。到着計算機で処理を実行してしまうことを優先するのは、他の計算機に転送するには転送元・転送先の双方にオーバヘッドがかかり、また、対象トランザクション自身の処理時間に遅延をもたらすからである。閾値を用いた判断を入れないと、ほとんどすべてのメッセージのトランザクション処理を他の計算機へ依頼する結果になる可能性が高い。
自計算機で処理することに決定したらトランザクション処理手段1i2にメッセージを引き渡し処理を依頼する。 到着計算機で処理すべきでないとなったときは、実行すべき計算機の決定(図4Bの75)で、テーブルの列T7に格納されている各計算機の推定負荷をサーチし、推定負荷が最小の計算機(計算機jとする)を選択する。そして、メッセージの送付(図4Bの76)で、選択された計算機jのトランザクション処理手段1j2に対して、入力メッセージを交換・蓄積機構10を介して送付し、処理開始を促す。
以上において、負荷データ記憶手段6は同一内容のものが各計算機上に保持されるとし、各計算機で自身に関して測定/計算後に他のすべての計算機に交換・蓄積機構10を介して通知するとしていたが、交換・蓄積機構10がある程度の容量をもち主記憶程度に速い蓄積機構を備えるなら、前記負荷データ記憶手段6の一部は、システム共用のものとして交換・蓄積機構10の上に格納し保持することもできる。負荷データ更新のオーバヘッドの観点から、この構成の方が望ましい。この場合、テーブルの列T1〜T4は交換・蓄積機構10に保持し、各計算機はメッセージが到着した際に、ここから引き出したデータに基づいて推定伸長率、推定負荷などを計算し、処理を実行すべき計算機を決定すればよい。また、交換・蓄積機構10が前述の条件を満たす場合、他の計算機に処理を依頼することになったときには、メッセージそのものを直接送付するのでなく、メッセージは交換・蓄積機構に格納し、依頼の通知だけを相手に送るように構成することもできる。この場合、受け取り側の計算機は、都合の良いときに非同期的に交換・蓄積機構から取り出すことになる。
次に、本実施の形態の効果について説明する。
本実施の形態では、特別な中継配分装置を備えなくてもよいため、システム全体として低コストで構成することができる。集中制御による負荷分散はできないが、処理要求メッセージは端末からの指定により送付された先の計算機で、その計算機及び他の計算機の負荷状況データに基づいて伸長率を計算し、転送のオーバヘッドも考慮した上で、その時点で最適な実行計算機を決定し、その計算機上で実行させるように構成されているため、集中制御である第1の実施の形態よりは落ちるが、分散制御下としては高い応答性能を実現できる。
図8及び図9に示すグラフは、本実施の形態におけるような分散制御下における負荷分散の効果を、シミュレーション評価によって確認した結果である。トランザクションとしては、純処理時間(450ミリ秒)に占めるCPU時間の割合が平均5%のものと平均60%のものの2種類が、7対3の割合で到着するとした。計算機は8台あり、各計算機への到着はランダムで、平均としては等しい到着率になるように設定した。横軸は到着率に比例する負荷率を示し、縦軸は図8では得られた平均応答時間(ミリ秒)であり、図9では応答時間のばらつき(標準偏差)である。それぞれのグラフ曲線は負荷分散方式に対応しており、実線のものが本実施の形態に関係する。NC方式は負荷分散をせず、到着したものをそのまま処理する。MPL方式は、処理中トランザクション現在数を負荷指標とする動的制御で、これが到着計算機より2以上小さい計算機が存在したら、最小の計算機に転送し処理させる。La2、Lk3はそれぞれ本実施の形態における推定伸長率に基づく負荷指標を用いた動的制御に対応する。これらの結果から、平均応答時間について、静的確率的配分としては最適であるはずのNC方式よりも動的制御は大幅によいことが分かり、特に推定伸長率に基づく方式は従来多く用いられている実行中トランザクション数に基づく方式よりも優れていることが示され、また、応答時間のばらつきについても同様な傾向が、より顕著に現れていることが分かる。このような差は負荷率が高いときに、より顕著である。
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。
図7を参照すると、本発明の第3の実施の形態は、第2の実施の形態に対し、構成として、中継仮配分装置25をもち、端末群5は中継仮配分装置25を経由して計算機11〜1nに接続されている点だけが異なる。
1つのトランザクションの処理の概略は次のようになる。トランザクション処理要求であるメッセージは端末群5に属する端末装置から送り出され、前記中継仮配分装置25に渡される。中継仮配分装置25は受け取ったメッセージを処理する計算機1iを仮決定し、該計算機に該メッセージを送る。受け取った計算機1iはそのメッセージを自分で処理するか他に依頼するか、依頼するとしたらどの計算機にするかを決定し、依頼する場合は交換・蓄積機構10を介して依頼先計算機に該メッセージを送る。処理する計算機はトランザクション処理を実行し、応答メッセージを作成して要求元端末に返す。ここで、第2の実施の形態に対して追加された中継仮配分装置25は、端末からのメッセージを受けて仮配分先計算機を決定して送付するが、基本的に、配分は詳細な動的情報に基づかない、静的/準静的な手法によって行われる。
次に、本実施の形態の全体の動作について詳細に説明する。
中継仮配分装置25は、第1の実施の形態における前記中継配分装置2と同様に、端末装置群5から送り出されるすべての処理要求メッセージを受け取り、これを渡すべき計算機を決定して送付する。中継仮配分装置25における静的/準静的な仮配分方式として次の3種類が想定される。実施に当たっては、このうちいずれか1種類か、あるいはこれらを組み合わせた方式を選択する。これら以外であっても、計算機からの負荷データの収集が少なく、実行のオーバヘッドも小さい配分方式なら採用可能である。(1)端末のグループ分けによる配分(2)到着順に、巡回的に各計算機へ配分(3)実績データに基づく確率的配分
(1)端末グループ分けによる配分では、メッセージ発生元の端末によって配分先の計算機を固定的に定めておく。すなわち、端末群を計算機1で処理するグループ、計算機2で処理するグループ、のように予めグループ分けしておき、どの端末から来たかによって行く先を機械的に決定する。第2の実施の形態とほとんど同じ方式になるが、本方式では端末群と計算機との対応関係を中継仮配分装置で集中的に管理できるので、過去の実績に応じて、例えばシステム立ち上げの度ごとに、長期的には負荷バランスのとれるグループ分けに設定し直すなどを容易にできる。
(2)到着順に巡回的に各計算機へ配分では、中継仮配分装置に到着した最初のメッセージは計算機1へ、次は計算機2へ、と順次配分し、最後の計算機nに配分した次のメッセージは再び計算機1へ、と巡回的に配分する。特に大部分のメッセージ処理のジョブ特性が同一クラスに属するような場合、短期的にも負荷をバランスさせる効果が期待できる。
(3)実績データに基づく確率的配分では、各計算機に配分するメッセージ数の比率を計算機ごとに設定し、短期的にもこの比率を守るように配分をする。各計算機から負荷状況のデータを1秒ごと、10秒ごとなどに定期的に受け取り、負荷がアンバランスであったなら、バランスさせるように個々の計算機への配分比率を上下させ、以後はこの配分比率に基づいて配分を行うようにする。
図7におけるトランザクション処理手段1x2の動作、各計算機上にある負荷データ記憶手段6xの内容は第2の実施の形態と同一である。計算機1x上の負荷データ測定手段A1x1、負荷データ測定手段B8xも第2の実施の形態におけるのと同一の動作をするが、それに加えて負荷データ測定手段Bは、中継仮配分装置25が前述の配分方式(3)を採用する場合、1秒、10秒などの間隔で負荷データの概要を中継仮配分装置25に送る。本発明の第3の実施の形態の実行計算機選択手段7の動作は、第2の実施の形態におけるのと同一であり、図4Bのフローチャートで示される。
以上において、負荷データ記憶手段6は同一内容のものが各計算機上に保持されるとし、各計算機で自身に関して測定/計算後に他のすべての計算機に交換・蓄積機構10を介して通知するとしていたが、負荷データ記憶手段6はシステム共用のものとして交換・蓄積機構10の上に格納し保持することもできる。負荷データ更新のオーバヘッドの観点から、この構成の方が望ましい。また、他の計算機に処理を依頼することになったときには、処理対象メッセージそのものを直接送付するのでなく、メッセージは交換・蓄積機構に格納し、依頼の通知だけを相手に送るように構成することもできる。以上の点に関しても、第2の実施の形態におけるのと同様である。
次に、本実施の形態の効果について説明する。
本実施の形態では、中継配分装置として、限定された機能だけをもち、計算機群11〜1nからの情報収集量・頻度も小さいものを備えるだけでよいので、比較的低コストで全体システムを構成できる。機能の限定された中継仮配分装置であるが、ここで準静的にとはいえ負荷の適切な仮配分を行うように構成されているため、中継仮配分装置が存在しない場合と比較して、応答性能(平均、ばらつき共)を向上させることができ、また、計算機に到達してから行われる負荷バランスのための転送の頻度を大幅に減少させることができる。
図8及び図9は、第2の実施の形態の効果の説明で前述した条件の下で、シミュレーション評価により得られたものであり、第3の実施の形態の結果が点線のグラフとして含まれている。グラフ曲線はそれぞれ負荷分散方式に対応している。R_NCは、仮配分として前記(2)到着順に巡回的に配分を実施して、仮配分先の計算機でそのまま処理を実行させたものである。R_Lk3は、仮配分を同じく(2)で行い、仮配分先の計算機で前記Lk3を負荷指標とする負荷配分を行った結果である。これから、準静的な配分だけでも静的な配分であるNC方式よりも応答性が大幅に向上することが分かり、さらに推定伸長率に基づく負荷分散を組み合わせることにより、第2の実施の形態によるよりも応答性を向上させられることが理解できる。
本発明の第1の実施の形態の構成を示す示すブロック図である。 任意の計算機iから見たシステムのモデルである。 負荷指標の値を計算するために用いるデータの一覧表である。 (A)第1の実施の形態における実行計算機選択手段の動作を示す流れ図である。(B)第2あるいは第3の実施の形態における実行計算機選択手段の動作を示す流れ図である。 本発明で用いる8種類の負荷の指標を示す一覧表である。 本発明の第2の実施の形態の構成を示すプロック図である。 本発明の第3の実施の形態の構成を示すブロック図である。 平均応答時間(本方式のシミュレーション結果)のグラフである。 応答時間の標準偏差(本方式のシミュレーション結果)のグラフである。
符号の説明
1 計算機群
10 交換・蓄積機構
11〜1n 計算機1〜n
1x1 計算機x上の負荷データ測定手段A
1x2 計算機x上のトランザクション処理手段
1x3 計算機x上の通信手段
2 中継配分装置
21 通信手段
25 中継仮配分装置
3 高速チャネル
4 ファイル装置群
5 端末装置群
51 通信網
6 負荷データ記憶手段
6x 計算機x上の負荷データ記憶手段
7 実行計算機選択手段
7x 計算機x上の実行計算機選択手段
8 負荷データ測定手段B
8x 計算機x上の負荷データ測定手段B

Claims (4)

  1. 端末装置群で発生したトランザクション処理要求の処理を負荷分担して実行する複数の計算機と、前記複数の計算機がファイル装置群を共有しているシステムにて、
    一定時間ごとに各計算機の負荷データとして、CPU割当て待ちプロセス数とCPU使用中であるプロセス数と前記ファイル装置群と前記計算機との間のファイルアクセスのためのプロセスの合計数である処理中業務処理プロセス数および前記CPU割当て待ちプロセス数と前記CPU使用中であるプロセス数の合計数を測定し、
    該測定した処理中業務処理プロセス数および、CPU割当て待ちプロセス数とCPU使用中であるプロセス数との合計数と、前記ファイルアクセスのためのプロセス数とを用いて、Nを前記処理中業務プロセス数、Pを前記CPU割当て待ちプロセス数とCPU使用中であるプロセス数との合計数、Dを前記ファイルアクセスのためのプロセス数、X=N×(P+1)=N×(N−D+1)とすると、P<NのときはX/(X−P×P)として、P=NのときはN+1としてすべての計算機について処理時間の推定伸長率を求め、または、D>0のときはX/(X−(N−D)×(N−D))として、D=0のときはN+1としてすべての計算機について処理時間の推定伸長率を求め
    該求めた推定伸長率に基づいてトランザクション実行の各計算機への配分を決定することを特徴とする推定伸長率に基づくトランザクション負荷分散方法。
  2. 端末装置群で発生したトランザクション処理要求の処理を負荷分担して実行する複数の計算機と、前記複数の計算機がファイル装置群を共有しているシステムにて、
    一定時間ごとに各計算機の負荷データとして、CPU割当て待ちプロセス数とCPU使用中であるプロセス数と前記ファイル装置群と前記計算機との間のファイルアクセスのためのプロセスの合計数である処理中業務処理プロセス数、およびCPU使用率を測定するとともに該測定したCPU使用率から前記CPU割当て待ちプロセス数と前記CPU使用中であるプロセス数との合計数を導出し、
    測定した処理中業務処理プロセス数および前記導出したCPU割当て待ちプロセス数と前記CPU使用中であるプロセス数との合計数と、前記ファイルアクセスのためのプロセス数とを用いて、Nを前記処理中業務プロセス数、Pを前記CPU割当て待ちプロセス数とCPU使用中であるプロセス数との合計数、Dを前記ファイルアクセスのためのプロセス数、X=N×(P+1)=N×(N−D+1)とすると、P<NのときはX/(X−P×P)として、P=NのときはN+1としてすべての計算機について処理時間の推定伸長率を求め、または、D>0のときはX/(X−(N−D)×(N−D))として、D=0のときはN+1としてすべての計算機について処理時間の推定伸長率を求め
    該求めた推定伸長率に基づいてトランザクション実行の各計算機への配分を決定すること
    を特徴とする推定伸長率に基づくトランザクション負荷分散方法。
  3. 一定時間ごとに各計算機の負荷データとして、CPU割当て待ちプロセス数とCPU使用中であるプロセス数と前記ファイル装置群と前記計算機との間のファイルアクセスのためのプロセスの合計数である処理中業務処理プロセス数および前記CPU割当て待ちプロセス数と前記CPU使用中であるプロセス数の合計数を測定する負荷データ測定手段と、
    該負荷データ測定手段で得られたデータを記憶する負荷データ記憶手段と、
    該負荷データ記憶手段に記憶された処理中業務処理プロセス数および、CPU割当て待ちプロセス数とCPU使用中であるプロセス数との合計数と、前記ファイルアクセスのためのプロセス数とを用いて、Nを前記処理中業務プロセス数、Pを前記CPU割当て待ちプロセス数とCPU使用中であるプロセス数との合計数、Dを前記ファイルアクセスのためのプロセス数、X=N×(P+1)=N×(N−D+1)とすると、P<NのときはX/(X−P×P)として、P=NのときはN+1としてすべての計算機について処理時間の推定伸長率を求め、または、D>0のときはX/(X−(N−D)×(N−D))として、D=0のときはN+1としてすべての計算機について処理時間の推定伸長率を求め
    該求めた推定伸長率に基づいてトランザクション実行の各計算機への配分を決定する実行計算機選択手段と、
    前記各計算機ごとにその上に存在し、複数のトランザクション実行を並列に行い、前記実行計算機選択手段に指令されたトランザクションの実行を管理するトランザクション処理手段とを備えたことを特徴とする推定伸長率に基づくトランザクション負荷分散方式。
  4. 端末装置群で発生したトランザクション処理要求の処理を負荷分担して実行する複数の計算機と、前記複数の計算機がファイル装置群を共有しているシステムにて、
    一定時間ごとに各計算機の負荷データとして、CPU割当て待ちプロセス数とCPU使用中であるプロセス数と前記ファイル装置群と前記計算機との間のファイルアクセスのためのプロセスの合計数である処理中業務処理プロセス数、およびCPU使用率を測定するとともに該測定したCPU使用率から前記CPU割当て待ちプロセス数と前記CPU使用中であるプロセス数との合計数を導出する負荷データ測定手段と、
    該負荷データ測定手段で得られたデータを記憶する負荷データ記憶手段と、
    該負荷データ記憶手段に記憶された処理中業務処理プロセス数および前記導出したCPU割当て待ちプロセス数と前記CPU使用中であるプロセス数との合計数と、前記ファイルアクセスのためのプロセス数とを用いて、Nを前記処理中業務プロセス数、Pを前記CPU割当て待ちプロセス数とCPU使用中であるプロセス数との合計数、Dを前記ファイルアクセスのためのプロセス数、X=N×(P+1)=N×(N−D+1)とすると、P<NのときはX/(X−P×P)として、P=NのときはN+1としてすべての計算機について処理時間の推定伸長率を求め、または、D>0のときはX/(X−(N−D)×(N−D))として、D= 0 のときはN+1としてすべての計算機について処理時間の推定伸長率を求め
    該求めた推定伸長率に基づいてトランザクション実行の各計算機への配分を決定する実行計算機選択手段と、
    前記各計算機ごとにその上に存在し、複数のトランザクション実行を並列に行い、前記実行計算機選択手段に指令されたトランザクションの実行を管理するトランザクション処理手段とを備えたことを特徴とする推定伸長率に基づくトランザクション負荷分散方式。
JP2004328417A 2004-11-12 2004-11-12 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体 Expired - Fee Related JP3952058B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004328417A JP3952058B2 (ja) 2004-11-12 2004-11-12 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004328417A JP3952058B2 (ja) 2004-11-12 2004-11-12 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP28527199A Division JP2001109638A (ja) 1999-10-06 1999-10-06 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体

Publications (2)

Publication Number Publication Date
JP2005135426A JP2005135426A (ja) 2005-05-26
JP3952058B2 true JP3952058B2 (ja) 2007-08-01

Family

ID=34650953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004328417A Expired - Fee Related JP3952058B2 (ja) 2004-11-12 2004-11-12 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体

Country Status (1)

Country Link
JP (1) JP3952058B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179304A (ja) * 2005-12-28 2007-07-12 Hitachi Ltd 実行ユーザ数によるバッチ処理とオンライン処理の排他制御方法
US8079033B2 (en) * 2007-02-20 2011-12-13 Amadeus Sas System and method for balancing information loads
JP5434562B2 (ja) 2009-12-18 2014-03-05 富士通株式会社 運用管理プログラム、運用管理装置および運用管理方法
JP6272190B2 (ja) * 2014-09-02 2018-01-31 株式会社日立製作所 計算機システム、計算機、負荷分散方法及びそのプログラム
CN107959692A (zh) * 2016-10-14 2018-04-24 中国电信股份有限公司 用于获得安全资源的等效负载的方法和系统

Also Published As

Publication number Publication date
JP2005135426A (ja) 2005-05-26

Similar Documents

Publication Publication Date Title
JP3716753B2 (ja) マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム
JP2001109638A (ja) 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体
JP5041805B2 (ja) データストレージシステムのサービス品質コントローラ及びサービス品質方法
KR102238034B1 (ko) 태스크 할당 시스템에서의 행동 페어링을 위한 기술들
WO2020059763A1 (ja) リソース割当計算装置及びリソース割当計算方法
JP2008242510A (ja) ジョブへの資源割当方式、ジョブへの資源割当方法およびプログラム
Shen et al. Probabilistic network-aware task placement for mapreduce scheduling
JP2016082519A (ja) 仮想ネットワーク割当方法および装置
Noormohammadpour et al. DDCCast: Meeting point to multipoint transfer deadlines across datacenters using ALAP scheduling policy
Zhang et al. Dynamic scheduling with service curve for QoS guarantee of large-scale cloud storage
Vashistha et al. Comparative study of load balancing algorithms
JP3952058B2 (ja) 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体
JP2005148911A (ja) 負荷分散方法及び装置とシステム並びにプログラム
Saravanakumar et al. A novel load balancing algorithm for computational grid
Zheng et al. Dynamic load balancing and pricing in grid computing with communication delay
Chatterjee et al. A new clustered load balancing approach for distributed systems
Tan et al. Dynamic task assignment in server farms: Better performance by task grouping
Ogawa et al. Cloud bursting approach based on predicting requests for business-critical web systems
WO2012172588A1 (ja) リクエスト振分け計算機、リクエスト振分け方法及びプログラム
US8316372B2 (en) Method for multiclass task allocation
JP5487891B2 (ja) 通信制御装置、通信制御プログラム、及び、データ配信システム
JP2007179359A (ja) タスク制御方法およびタスク入力制御装置
JP5488029B2 (ja) 分散処理システム、分散処理方法、及びプログラム
Schmidt et al. Scalable bandwidth optimization in advance reservation networks
JP2012133724A (ja) ジョブネット組替装置、ジョブネット組替プログラム及びジョブネット組替方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070109

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070308

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070316

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070416

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110511

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120511

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130511

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140511

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees