JPWO2014024612A1 - コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 - Google Patents
コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 Download PDFInfo
- Publication number
- JPWO2014024612A1 JPWO2014024612A1 JP2014529391A JP2014529391A JPWO2014024612A1 JP WO2014024612 A1 JPWO2014024612 A1 JP WO2014024612A1 JP 2014529391 A JP2014529391 A JP 2014529391A JP 2014529391 A JP2014529391 A JP 2014529391A JP WO2014024612 A1 JPWO2014024612 A1 JP WO2014024612A1
- Authority
- JP
- Japan
- Prior art keywords
- load
- node
- evaluation
- function
- path
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
ノード間の負荷を分散する際、従来のコンピュータネットワークシステムでは、負荷の大きいノードを検出し、そのノードの負荷の一部を他のノードに分配することがよく行なわれる。
例えば、各ノードがデータサーバーであるようなコンピュータネットワークシステムでは、各ノードに蓄積されているデータ量に大きなばらつきがあるとき、蓄積するデータ量が大きいサーバーから小さいサーバーへと一部データを移動することにより、蓄積データ量の均衡化を図るものがある。この場合はデータ量が負荷に相当する。
別の例では、各ノードが計算資源を提供する計算サーバーであるようなコンピュータネットワークシステムにおいて、各ノードに対して割り当てられている計算量に大きなばらつきがあるとき、割り当てた計算量が大きいサーバーから小さいサーバーへと割当を変更することにより、割当計算量の均衡化を図るものがある。この場合は割り当てた計算が負荷に相当する。
例えば、蓄積データ量を均衡化するために、データサーバー間で大量のデータを移動する場合、データの移動に長時間を要し、その間、データ移動を担うネットワーク経路の帯域を圧迫するので、システム全体のレスポンス性能に悪影響を及ぼしてしまうことがある。
本発明はこのような状況に鑑みてなされたものであり、本発明が解決しようとする課題は、それぞれがノードとなる複数のコンピュータを互いに接続してなるコンピュータネットワークシステムにおいて、負荷の分散処理に起因するレスポンス性能の低下を回避することである。
それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含み、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める手段、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する手段、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素の搬送に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める手段、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する手段
を備えることを特徴とするコンピュータネットワークシステムを提供する。
また、本発明は、他の一態様として、
それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含むコンピュータネットワークシステムの前記複数のノードのいずれかとして動作するコンピュータであって、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める手段、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する手段、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める手段、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する手段
を備えることを特徴とするコンピュータを提供する。
また、本発明は、他の一態様として、
それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含むコンピュータネットワークシステムの前記複数のノードのいずれかとして動作するコンピュータを、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める手段、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する手段、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素の搬送に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める手段、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する手段
として機能させるためのプログラムを提供する。
また、本発明は、他の一態様として、
それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含むコンピュータネットワークシステムのノード間での負荷の移動の要否を判定する方法であって、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める段階、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する段階、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素の搬送に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める段階、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する段階
を含むことを特徴とする方法を提供する。
図2は本発明のコンピュータネットワークシステムを構成するノードが、負荷要素を移動するか否かを判定する方法を説明するためのフローチャートである。
図3は一般的なコンピュータネットワークシステムについて説明するための図である。
図4は図2の判定を行なう状態制御部を図3のコンピュータネットワークシステムに追加した図である。
図5は要素1、即ちストレージ装置であるデータサーバー1の評価関数fiと、要素2、即ち他のストレージ装置であるデータサーバー2の評価関数fjを説明するための図である。
図6は評価関数fi及びfjについて更に説明するための図である。
図7は3つのノードからなるコンピュータネットワークシステムについて説明するための図である。
図8は評価関数、負荷分散制御の結果、評価関数の傾きを示すグラフである。
図9は評価関数、負荷分散制御の結果、評価関数の傾きを示すグラフである。
図10は評価関数を示すグラフである。
図11は本発明の実施例1の動作を説明するためのフローチャートである。
図12は本願発明を適用しない場合の待ち行列の時間変化を示すグラフである。
図13は本願発明を適用した場合の待ち行列の時間変化の一例を示すグラフである。
図14は本願発明を適用した場合の待ち行列の時間変化の一例を示すグラフである。
図15は本発明を適用したノードに50秒後に格納されていたデータ数を示す表である。
次に、図2を参照してコンピュータネットワークシステム1の動作について説明する。いまコンピュータN1に負荷が集中しているものとする。
(ステップS1)コンピュータN1から他コンピュータに分配すべき負荷の量と、その負荷の移動先となる受け手側コンピュータを決定する。ここでは、コンピュータN1から他コンピュータに分配すべき負荷量をλとし、受け手側コンピュータの候補をコンピュータN2とする。負荷量λ及び受け手側コンピュータの決定は、コンピュータネットワークシステム1が自律分散制御系であり、個々のコンピュータが自律的に自身を制御する場合はコンピュータN1自身が行なう。また、コンピュータネットワークシステム1が集中制御系であり、システム1の全体を制御する集中制御コンピュータがコンピュータN1を制御する場合は集中制御コンピュータが行なう。
(ステップS2)コンピュータN1は分配すべき負荷λに応じて一乃至複数の適当な負荷要素を選択する。負荷要素とは負荷の原因となる要素であり、例えばそのコンピュータが管理しているデータ、そのコンピュータの記憶装置に格納しているデータや、そのコンピュータに対して割り当てられている処理である。負荷要素毎の負荷量を同じとする場合、選択した負荷要素による負荷量の合計が、負荷λと同じかなるべく近くなるように負荷要素を選択する。
各負荷要素により生じる負荷の大きさが等しいとみなせる場合、コンピュータN1が管理する負荷要素の中から、負荷量の合計が負荷λに一致するかなるべく近くなるように、ランダムに負荷要素を選択することが考えられる。
また、各負荷要素により生じる負荷の大きさが異なる場合、負荷要素毎の負荷の大きさを考慮して負荷要素を選択する。負荷要素毎の負荷量についてはステップS1に先立って算出しておくことが好ましい。例えば、コンピュータが管理するデータを負荷要素とする場合、コンピュータN1は、自身が管理するデータそれぞれに対するアクセスを監視し、各データへのアクセス頻度を記録しておき、アクセス頻度に応じてデータ毎にそのデータの負荷を評価して、データの負荷の合計が負荷λと一致するかなるべく近くなるようなデータの組み合わせを選択する。
一般的に負荷が均質でない場合、全体としての負荷ではなく、個別の負荷を測定する必要があり、サーバーやCPUの負荷をCPU占有率などの直接的な値で測定するのが難しくなる。個々のデータの負荷は、データへのアクセス頻度を用いて、サーバー、CPUの負荷へ以下のように変換する。
データサーバーiにおけるデータjの負荷λijは、データjに関する観測量をK1jとすると、次の式1により求められる。
関数gjは測定等により予め定めておく。観測量の例としては、データjへのアクセス頻度、データjのレプリカ数などがある。
負荷λijを求める際に用いる観察量は一種類だけとは限らず、複数用いてもよい。例えば、データjへのアクセス頻度をK1jと表し、データjのレプリカ数をK2jと表すものとする。一般に、あるデータのレプリカ数と、それらレプリカのひとつに対するアクセス頻度とは反比例する。このことを踏まえて、観測量K1j、K2jに基づいて負荷λijを求めるとすると、関数gを次の式2のように表すことができる。
複数の観測量に基づいて求める考えを更に進めると、データjに関するm種類(mは自然数)の観察量に基づいて負荷λijを求める場合に一般化することができる。すなわち、データサーバーiにおけるデータjによる負荷λijを、データjに関するm種類の観測量K1j、K2j、・・・、Kmjに基づいて次の式3で表すことができる。
式3に基づいて、データサーバーiに格納されている全データがデータサーバーiに与える負荷λiは、次の式4のように表すことができる。
個々のデータで変換関数gjが代わらない場合は、全データで共通の変換関数を使用しても構わない。
このようにして、データサーバーのデータ毎の負荷を割り出した後、移動するデータの候補を決定する。この決定には次の式5や式6を用いることができる。データサーバーiの負荷がλiのときデータサーバーiの評価関数fiの微分をdfi/dλiと表し、同時刻におけるデータサーバーkの負荷がλkのときデータサーバーkの評価関数fkの微分をdfk/dλkと表すものとする。このとき、データサーバーiとデータサーバーkの交換すべき負荷量dλi/dtは次の式5または式6により求めることができる。K1は負荷変更のゲインに相当する係数である。λnom,iはデータサーバiの規格化係数を表す。システム内に性能が異なるデータサーバーが混在している場合、システム全体で規格化した評価関数を定め更に、データサーバー毎にその性能や規模に応じた規格化係数を定めて、各データサーバーの評価関数を、その規格化係数を規格化した評価関数に乗算したものとして表すと都合が良い場合が多いため、ここでは規格化係数を導入している。
ここでは式5を用いた決定について説明する。式5により、データサーバーiとデータサーバーkの交換すべき負荷量dλi/dtがわかる。そこで、その負荷量dλi/dtが分かった後、負荷を送り出すほうのデータサーバーの中から、その負荷量dλi/dtにマッチした負荷λijを持つデータを選択する。選択されるデータは一つでも良いし、複数でも良い。複数の場合、選ばれたデータの負荷λijの和が移動する負荷量となる。式5で算出された負荷量にできるだけ近い負荷量になるように、移動データ候補を選ぶ。ネットワークが性能に影響を与えない場合は、選ばれたデータ候補を単純に送り出せばよい。これにより、最適な負荷分散が実現される。
上述の方法では、負荷を個別に評価し、式5の特性に符合した形で制御することで、データ種類によって負荷が異なり、負荷が均質ではなくなり、それとともに、負荷の切り出しを連続的に行えなくなる場合にも対処可能となった。
(ステップS3)コンピュータN1は、負荷の移動を行なわない場合のコンピュータN1のレスポンス性を示す評価値Dsと、負荷の移動を行なった場合に予想される、コンピュータN2及び経路P1,2それぞれのレスポンス性を示す評価値Dr、Dnを求める。
Ds、Dr、Dnは、コンピュータN1、コンピュータN2及び経路P1,2それぞれの性能に応じて定められる指標μによって一意に定められる関数であり、コンピュータN1、コンピュータN2及び経路P1,2に対する負荷量λを入力とし、負荷λに対するコンピュータN1、コンピュータN2及び経路P1,2のレスポンス性を示す値を出力とする。
今、コンピュータN1はデータdを保持しており、このデータdの移動の要否を検討しているものとする。このとき、評価値Ds、評価値Dr、評価値Dnは次のようなものである。
評価値Dsは、コンピュータN1の現時点におけるレスポンス性を示す値である。
評価値Drは、他の条件を現状のままに、コンピュータN2がデータdを現に保持していると仮定したときのコンピュータN2のレスポンス性を示す値である。コンピュータN2は何がしかの負荷を現に担っている。コンピュータN2がデータdを保持すると仮定すると、その保持に起因する追加の負荷をコンピュータN2は担うことになる。従ってコンピュータN2がデータdを保持すると仮定すると、コンピュータN2のレスポンスに影響がある。現に担っている負荷に加えて、データdの保持に起因する追加の負荷を担うことと仮定したときのコンピュータN2のレスポンス性を示す値が評価値Drである。尚、コンピュータN2が現に担う負荷がゼロの場合も同様である。
評価値Dnは、他の条件を現状のままに、コンピュータN1とコンピュータN2の間のネットワークが現にデータdを伝送していると仮定したときのネットワークのレスポンス性を示す値である。コンピュータN1とコンピュータN2の間をつなぐ経路Pは現に搬送中のデータに起因する負荷を担っている。ここで経路Pが搬送中のデータは、必ずしもコンピュータN1とコンピュータN2のいずれかを送信元、送信先とするものではなく、コンピュータN1、N2以外のコンピュータを送信元/送信先とするものも含む。こうした現に搬送中のデータに加えて、経路Pがデータdを搬送すると仮定すると、データdの搬送に起因する追加の負荷を経路Pは担うことになる。従って、経路Pがデータdを搬送すると仮定すると、経路Pのレスポンスに影響がある。現に搬送中のデータに加えて、経路Pがデータdを搬送すると仮定したときの経路Pのレスポンス性を示す値が評価値Dnである。尚、経路Pが現に何のデータも搬送していない場合も同様である。
(ステップS4)コンピュータN1は、Dsと、DrとDnの和Dr+Dnとの大小を比較する。上述のように、評価値Ds、Dr、Dnはいずれも、コンピュータ乃至経路がデータdを現に担っている、或いは、現に担っていると仮定したときの値である。本ステップでは、コンピュータN1、N2及びその間の経路P1,2に、同一のデータdが同時刻に存在すると仮定して比較を行なうことになる。現実にはこのような状態はありえないが、本願発明者らは、コンピュータN1からコンピュータN2へのデータdの移動が十分に短い時間内に完了する場合、このような近似的な比較であっても効果的な制御が可能であることを見出した。この知見は本発明の基礎となっている。
(ステップS5)コンピュータN1は、比較結果に応じて選択した負荷要素をコンピュータN2に移動するか否かを判定する。
データセンターのデータ配置の負荷分散とは、あるデータサーバーにアクセス頻度の高いデータが多く偏ってしまい、特定のデータサーバーが落ちてしまう事を避けるために実施するものである。特定のデータサーバーに集中したアクセス頻度の高いデータを、他の空いているデータサーバーに移動し、負荷を分散させるというものである。
これまでに検討されている、最も簡単な負荷分散制御としては、すべてのデータサーバーを中央制御ユニットがモニタし、負荷の高いデータサーバーのデータを負荷の低いデータサーバーへ移動させるというものが挙げられるだろう。
しかしながら、データサーバーの数が多くなれば、中央制御ユニットが制御しきれなくなるため、昨今の大規模化したシステムではうまく機能しなくなってきている。大規模なシステムでは、個々のデータサーバーが自律分散的に動作するのが望まれる。
自律分散的に行うものとしては、データの特性を統計的にモニタし、例えば、ある時間にあるデータに負荷が集中するなどの特性を見極め、その特性を基に予めシナリオを作成し、負荷を分散させるなどの制御が行われている。これは予測シナリオを用いて制御するので、シナリオベースの制御と言うことができる。
このような制御の場合、シナリオの想定内では自律分散的に動作させられるが、シナリオの想定外の事象が起きた場合、途端に破綻することとなる。したがって、自律分散的に動作しつつも、外部環境の変化に適応できるデータの配置負荷分散制御が望まれている。
(1)負荷量λと受け手側コンピュータの決定
ここでは性能の異なるサーバーが混在する場合を想定する。性能の異なるサーバーが複数(N個)存在し、それがネットワークを形成し、各サーバーにランダムにやってくる処理(負荷)をサーバー全体で負荷分散し、効率的な処理を実行するという問題を考える。効率的な処理とは、系全体でレスポンスを最小化するとか、エネルギー効率を最大化するという意味である。このような負荷分散の問題は、効率の悪いサーバーの起動、停止も含むので、これは「起動停止問題」となる。この問題の概略図を図3に示す。
我々はこの問題を検討した結果、以下の方法を考案した。解くべき問題は、2つの問題が混在している構造になっている。ひとつは、起動停止の決定であり、もうひとつは負荷の配置である。本明細書では、制御対象を機能ブロック、要素、リソース、ノードと表現するが、どれも同じである。
起動停止とは、リソース群があった場合、どのリソースを使い、どのリソースを使わないかを決定する、または管理する問題である。また、負荷の配置は、リソースが与えられたとして、系全体に与えられた仕事をどのように割り振れば、ある指標の元に最適化できるかという問題である。これらの問題は従来、個々に、確率論的なアプローチで解くことを試みられていることが多いが、単純な確率論では、変幻自在に変わっていく環境の中で、状況に応じてロバスト、リアルタイムに即応することが難しい。
今回は、これら2つの問題を一体のものとし、状況に応じてロバスト、リアルタイムに即応できる手法を考案した。その際、それぞれの問題を、確率論ではなく、決定論的または関係論的な方法で解く方法を考案した。「起動停止問題」をリアルタイムに解き、要素を制御するブロックは状態制御部と称し、図4に示すように各要素に付属される。図4では、状態制御部は要素の外側に記されているが、要素の内側に設置されていても良い。今回は完璧な最適化として、起動停止と負荷の配置を一体として解いたが、起動停止だけを決定するなど個別に使用することも当然可能である。
まず、我々は図5のような各要素と関係する評価関数fを導入する。評価関数fは、データサーバーのようなノード、データサーバー間のネットワークに対し、その性能に応じて予め定められる関数であり、ある時刻におけるデータサーバー、データサーバー間ネットワークの状態を示すパラメータλを変数とする関数である。関数fはいわば制御の指針として定められる関数であり、必ずしも測定可能な値、或いは、測定値から算出可能な値である必要はないが、そうであってもよい。関数fの横軸は各要素の状態に関するパラメータであり、今回の例ではサーバーの負荷量などに相当する。縦軸は、何らかの効率または利潤に関わる指標である。この何らかの効率に関わる指標の例は実施例のところで詳説するので、ここでは、一般的な効率として捉えていただきたい。この効率に関わる評価関数を凸関数で表す。凸関数を使用するのも本ステップで行なう制御手法のポイントである。なぜなら、多くのシステムは何らかの効率やシステムの安定性などを図5に示すような凸関数で表されるからである。図5のような上に凸な関数を凹関数と呼び、下に凸な関数を凸関数と呼ぶこともあるが、ここでは、関数の性質上で区別する表現を採用し、凹関数も凸関数と表現することにする。
評価関数が凸関数である要素を連携させて、全体で最適化(各要素の評価関数の値の総和が最大となる状態)する問題は、「凸計画問題」として知られており、各要素の動作レベルにおける評価関数の微分値が等しい状況で最適化が達成されることが数学的に明らかにされている。今回はこの原理を応用した。今回、評価関数として凸関数を使った理由がここにある。
この原理を勘案し、各要素の状態変化(今回のサーバのケースでは負荷分散)を上述の式5の方程式に従い制御する。ここで、K1は状態変更のゲインに相当する係数である。この制御をかけることで、各要素は評価関数の微分値dfi/dλiを等しくするように状態を変更しようとする。これは「凸計画問題」のところで説明したように、全体利潤を最大化するポイントに各要素の状態(負荷量)を制御するのと等価である。つまり、式5の制御により、評価関数の縦軸で設定された効率が系全体として最大化される。kは要素iに隣接する要素の番号を意味する。隣接要素が複数個有る場合は、順次、式5の制御を繰り返せばよい。
式5には、効率最大化以外に大きなポイントがある。それは、式5は要素iと要素kに対して、絶対値は同じで反対の符号の状態変化を要求することである。これは、ある要素とそれに隣接する要素のある時刻における状態変化の総和が0になることを意味する。このように制御することで、系全体でローカルに起こる負荷要求に対して、負荷の授受をローカルな自律分散的処理で行っているにも関わらず、系全体に要求されるトータルの負荷要求を過不足無く満足させられる。「起動停止問題」は系全体(この場合、サーバネットワーク全体)で満たさなくてはいけない総要求(総需要)がある。これを満たす事を需給平衡化とも言うが、ひとつの拘束条件となる。これが満たされないまま、効率や利潤が最大化されても意味がない。一般的には、全体の総要求を計算し、それをもとに各要素の担当分を分配したりするが、このような従来方法では、全体の総要求をまとめるために、系全体を統括する要素が必要になる。本制御手法は、負荷の授受を均衡させることで、全体の総要求をまとめなくても、ローカルな自律分散処理で総要求を満たすことができる。これは大規模なネットワークになり、系全体を統括する要素が設定し辛くなった場合に、特に有効になる。
また、本ステップの制御手法は上述の式6を用いても行うことができる。ここで、λnom,iは要素iの規格化係数で、要素がヘテロな場合、全体で規格化した係数を乗算しておいた方が良い場合が多く、式6に導入している。λnom,iは要素の能力や規模に相当する量である。式6の場合、式5の場合と異なり、要素間で負荷の授受が自動的に均衡しない。したがって、ある要素とそれに隣接する要素のある時刻における状態変化の総和が0になるような工夫を加える必要がある。
最も単純なものは、以下のようなものである。例えば、要素iが隣接要素に負荷を与えたい場合(式6がマイナスの値を持つ場合)、隣接要素のうち、負荷を受け取りたい要素(式6がプラスの値を持つ要素)を選び出し、それらの総数で式6から導出される値を割り算し、算出された分割された負荷を、負荷を受け取りたい要素それぞれに分配する。
その他の手法としては、分配するときに、隣接要素の負荷の状態を見て、負荷を受け取りやすい要素に重みをかけて(式6がプラスの値が大きい要素ほど多く)分配するなどが考えられる。隣接要素がどの程度負荷を受け取りやすいかは、今回の制御の原理と同様に、評価関数の微分値を比べればわかる。
上記までの説明の手法で、負荷の配置の問題は総需要を満たしながらリアルタイムに解くことができる。では、どの要素を起こして、どの要素を止めるかという起動停止はどのように決定していくのであろうか。以下に説明する。
まず、要素自身と、その要素に隣接するノードの評価関数間にある指標を定義する。それを説明するための図6に示す。負荷が0のときに、効率または利潤(縦軸)が負の値を取っている意味は、起動によりコストが発生することを意味している。サーバーなどのIT系だとやや想像しにくいが、例えば、発電所の場合、縦軸を利潤と考えれば、運転(起動)しているにも関わらず、需要がなければ、運転コストが回収(需要家から集める金額)を上回り、利潤がマイナスになる。評価関数の値が0になったところが、運転コストと回収が均衡した点であり、評価関数の値がプラスになるということは利益が発生している事を意味する。実施例のところで示すが、データセンターのレスポンスを最適化するようなときは、縦軸がレスポンス関連量となり、負荷0のところでも評価関数は正の値を持つ。負荷0において、評価関数は正負どちらもとる可能性があるのだが、負の値をとる方を考えておけば、正の値をとる場合はその一部として解くことができる。したがって、ここでは、負荷0において、評価関数が負の値をとるケースで説明する。
ここで、ノードi(自身)のゼロクロス点をλ0,i、隣接ノードjの評価関数における、ノードiのゼロクロス点と同じ傾きの点をzij、隣接ノードjの現在の負荷をλjとする。したがって、zijは次の式7で書くことができる。
そして、ここで次の式8で示す指標を定義する。
この指標は、現在の隣接ノードの負荷(総和)が、自身のゼロクロス点よりどれだけ大きいかを意味している。もしノードiが停止しているとして、ノードiを起動すべき条件は、起動することでノードiがゼロクロス点以上の負荷を担当する状況にあるかどうかである。そうすれば利潤はマイナス(評価関数値が負)にならないため、ノードiを起動することで不利はない。指標Siはそれを数値化したものである。隣接ノードがノードiのゼロクロス点における評価関数微分値と等価なzijよりどれだけ負荷を担当しているかを示すのが右辺第1項であり、それをゼロクロス点λ0,iで引くことで(右辺第2項)、自身のゼロクロス点以上の負荷が周りに存在しているかを示す指標となっている。Siが0より大きければ、ノードiを起動したときにいずれ隣接ノードが担当している負荷はノードiが担当することになり、かつノードiの担当負荷はゼロクロス点以上となる。逆に、Siが0より小さければ、ノードiが隣接ノードの担当負荷を新たに担っても、ゼロクロス点以下となり、ノードiの起動により利潤をマイナスにしてしまう。指標Siはこのようなものであり、Siの正負を見ることでノードiを起動すべきか停止すべきかがわかる。Siが負のときとは、その時点でノードiの負荷は評価関数が負の値をとる領域にあるということで、起動しているノードは評価関数が0以下になった時点で停止すると考えても良い。
起動しているノードを停止する場合にはもうひとつ考慮しなければならないことがある。ノードの性能が同じ場合の起動停止に関する場合である。先ほども述べたが、起動コストがかかる場合、どれかひとつのノードだけ起動し、残りは停止したほうが良いことが良く起こる。しかしながら、性能が同じ場合、どちらを止めればいいのか今のままでは判断できない。そこで、我々は次のようなアルゴリズムを導入した。
「評価関数値が0以下で、かつ隣接ノードを含め最も値が低い場合、停止。
値の比較は起動しているノード間で行う。
最小値が複数ある場合でも停止」
これにより、全結合なら、すべてのノードの性能が等しくても、最終的に1ノードだけ残ることになる。ネットワークの結合が疎の場合(要素と要素が全結合しておらず、まばらに結合している状態)、このアルゴリズムでもいくつかセグメント(停止したノードに取り囲まれた孤立した起動ノード群)が残ってしまう可能性はあるが、そのような場合は、ロードバランサを介して、実質的な隣接ノード(停止したノードを越えて存在する起動ノード群)を探し、上記アルゴリズムを実施するなどの方法で対処するなどが考えられる。
以上のように、式5で制御しながら、式8の指標のモニタと、上記停止用のアルゴリズムで起動停止を決定すれば、リアルタイムに「起動停止問題」を解くことができる。これは従来のように予めスケジューリングして「起動停止問題」を解いていたのに比べ画期的なことである。なぜなら、想定外の外乱や需給変化があってもリアルタイムに即応できるからである。
また、このシステムは、自律分散的に独立に動くので、どこかが故障したりしても、故障した要素からの信号が途絶えた分だけ、他の要素が自律的にリカバーするという動作を行う。また、突然要素を増やしたり、減らしたりしても、徐々に自律的に適正な動作に向かうことができる。つまり、外乱に対して、非常にロバストであり、また、要素の増減を自由にできるスケーラビリティを有している。
従来のシステムは、故障に対して無力であったり、様々なエラー用のシーケンスを用意したりしなければならなかった。また、勝手に要素(リソース)を増やしたり減らしたりすればシステム全体の安定性が保たれるか保証はなく、そのたびにプログラム、処理を見直さなければならなかった。本ステップの手法ではこれらの問題を自律分散適応的な制御ですべて解決することができるのである。
以下に、この制御手法の動作の詳細を説明する。簡単のため、今回は3つのノードが相互に繋がった3角形の構造のネットワーク状態に対してこの制御手法を適応した。ネットワークの構造を図7に示す。
まず、この3つのノードに図8に示すそれぞれ異なる評価関数を設定した。その後、総需要を時刻0から10まで0.2、時刻10から20まで1.0、時刻20以降にまた0.2と変化させた場合のノードの起動停止、負荷の分担を、本制御手法で実施した。その様子も図8に示す。総需要が0.2のときは最も利潤効率の良いノード1だけ起動し、総需要が1.0に増えると、性能の順にノード2、ノード3を起動し、負荷の分担を設定していることがわかる。そして、再度総需要が0.2になると、ノード2、3を停止して、ノード1のみ起動した状態に戻ることがわかる。本制御手法は数学的に起動停止問題を最適に解く仕組みとなっているので、これはリアルタイム(動的に)起動停止問題を解きながら、外乱(需要の急変)に適応しできたことを意味する。これは非常に大きな成果である。
また、3つのノードが同じ性能を持っている場合の例も図9に示す。ノードの性能が同じなので、評価関数のグラフはすべて重なっており、ひとつに見える。この場合も、総需要を時刻0から10まで0.2、時刻10から20まで1.0、時刻20以降にまた0.2と変化させた。すべてのノードの性能が同じなので、わかりにくいが、総需要が0.2のときは、ノード3のみ起動しており、総需要が1.0のときは3つのノードで均等に負荷を分担している様子がわかる。このように本制御手法は、起動コストがあり、ノードの性能が同じ場合でも有効に最適化を行える。
本ステップでの制御手法は、評価関数の微分を各要素で等しくするという制御を行っているが、ある関数の微分を各要素で等しくするというのが本質ではない。凸関数の微分を各要素で等しくするというのが本質である。
上記のような制御は、負荷自体が均質で任意に切り出せる場合、負荷がアナログ量であるなどの場合などには、式5あるいは式6の制御式によって導出される単位時間当たりの負荷変動量を各ノードが実現すれば良い。このとき、隣接ノードの評価関数の微分値を用いていることですでに周りの状況を勘案しているので、単純に式5あるいは式6の制御を自身に課せばよく、制御の段階で隣接ノードの状況を考える必要がない。負荷自体が均質で任意に切り出せる場合の例としては、サーバーを複数用意して処理を分散させる場合や複数のCPUを用意して処理を分散させる場合が挙げられる。アナログ量である場合の例としては、発電機ネットワークがお互いの出力パワを配分する場合が挙げられる。
しかしながら、上記制御手法を、例えば、データセンターのデータ配置分散に応用しようとすると問題が発生する。データの配置問題の場合、負荷の移動はデータ単位となるので、データ種類によって負荷が異なり負荷が均質ではなくなる。それとともに、負荷の切り出しを連続的に行えなくなるので、式5あるいは式6で計算された量と同じ負荷を移動することが必ずしもできない。また、データの移動の場合、ネットワークを通じてあるノードから別のノードにデータを移動し、負荷分散を達成するわけだが、データはネットワークへの負荷が大きく、ネットワークの状態を無視するわけにはいかない。
(2)移動する負荷要素の選択
本実施例では、データjへのアクセス頻度K1jとレプリカ数K2jとして、データサーバーiにおけるデータjの負荷λijを次の式9で表した。
(3)コンピュータN1、N2の評価関数
データサーバーのデータ配置負荷分散で一般的に評価されるのはレスポンス性能である。分散配置されたデータサーバーの系全体でレスポンス性能が最小になることが望まれる。サーバーなどの処理を行う機械のレスポンス性能を最小にする評価関数を今回は導出した。その説明を以下で行う。
待ち行列理論から、単位時間当たり平均λiのポアソン分布で負荷が到着し、単位時間当たり平均μmaxのポアソン分布で負荷を処理できるとすると(M/M/1の待ち行列)、系全体のレスポンスが最小となる条件は次の式10で表される。
式10の左辺は負荷量λiの1次関数であり、λiで積分すれば、λiの2次関数が得られる。2次関数は凸関数であることが知られているから、式10の左辺を積分した関数を各ノード(サーバーなど)の評価関数と考えるならば、式10の意味は凸関数である評価関数の微分値が各ノード(サーバーなど)で等しくなるときレスポンスが最小になることを意味している。これはとりもなおさず、式5、式6の制御と同じである。つまり、式10の左辺をλiで積分した関数を各ノードの評価関数として設定し、本願発明の自律分散制御を行えば、定常状態では、系全体のレスポンスを最小にすることができるのである。μmaxはサーバーの処理能力に関するパラメータであり、この値により、サーバーの能力を記述できる。したがって、すべて同じ性能のサーバー群である必要はなく、様々な性能のサーバーが混在している系でも良い。式10の左辺をλiで積分した場合、定数の自由度だけ解が不定になるので、今回は原点(0,0)を通る関数を各データサーバーの評価関数に設定した。評価関数は、μmaxで一意に決まり、ピーク値がμmax 1.5でピーク位置が(μmax,μmax 1.5/2)の2次関数となる。図10に設定した評価関数を示す。
(4)経路P1,2の評価関数
今回、ネットワークにも評価関数を設定した。ネットワーク(個々の回線またはリンク)も実はサーバーと同じ処理を実行する機械と考えることができる。単位時間ごとにやってくるパケットという負荷を処理していくと考えれば、サーバーと全く同じ観点で評価関数を設定できる。ネットワークの単位時間当たりの処理能力をμmax,nとすると、サーバーのときに使ったμmaxをμmax,nで置き換えた評価関数をネットワークに設定すれば良い。以下では簡単のため、ネットワークの処理能力もμmaxで統一して記載する。あるネットワークiにかかる負荷をλi,nとすると、今回のデータ移動のケースでは、あるデータjのデータ長さLjをとして次の式11で表される。
今回は、測定により次の式12を使用した。
(5)評価値Ds、Dr、Dnの算出
これで、データサーバー、ネットワークともに評価関数が設定されたわけだが、データを移動するかどうかを判断するための評価量Ds、Dr、Dnを設定しなければならない。今回は、データサーバー、ネットワークに設定した評価関数がレスポンスに関連した量を縦軸にしたものであるので、レスポンス量そのものを評価量Ds、Dr、Dnに設定することとした。
待ち行列理論を用いれば、レスポンス量と今回の評価関数の関係は簡単に導出できるので、データ送り側のデータサーバーの番号をi、データ受け側のデータサーバーの番号j、データを移動させるネットワークの番号をkとして、以下の式13−15のように設定した。それぞれの式の右辺は評価関数をレスポンスに変換する式である。ここで、λiはデータサーバーi全体の負荷、λjはデータサーバーjの全体の負荷、λkはデータサーバーiとデータサーバーjの間のネットワークの負荷を表す。
データ移動の最終決定は、式13、式14、式15で計算した評価量で、Dsと和Dr+Dnの大小を比較し、Dr+Dn<Dsならばデータの移動を行う。
図11を参照して、各ノードが実行する負荷の移動の要否判定について説明する。ノードは、そのノードに隣接する他のノードから必要な情報を取得(ステップS201)し、取得した情報に基づいて、負荷変化量を求め、その負荷変化量に相当する負荷を送信すべき隣接ノードを選択する(ステップS202)。
次に、ノードは、自ノードが保持している負荷(ノードがデータサーバーならばそのデータサーバーが保持しているデータオブジェクト)の中から、求めた負荷変化量に相当する負荷を選択する(ステップS203)。
次に、ノードは、評価量Ds、Dr、Dnを求める。評価量Dsは、ステップS203にて選択した負荷から自ノードが受ける影響の大きさを評価した値である。評価量Drは、ステップS203にて選択した負荷を、ステップS202にて選択した隣接ノードが保持したときに、その隣接ノードがその負荷から受ける影響の大きさを評価した値である。評価量Dnは、ステップS203にて選択した負荷を、ステップS202にて選択した隣接ノードと自ノードとの間のネットワークを介して送出したときに、そのネットワークがその負荷から受ける影響の大きさを評価した値である。
更に、Dr+Dn<Dsが成り立つか判定する(ステップS204)。判定が成り立つ場合、そのノードはその隣接ノード宛にその負荷を送出(ステップS205)し、更に、そのノードを起動したままにしておくか、それとも停止するかを決定(ステップS206)し、ステップS201に戻る。判定が成り立たない場合はその負荷の移動を中止(ステップS207)、ステップS201に戻る。
評価量Ds、Dr、Dnを算出するとき、どの内部状態(負荷)の評価関数微分値を使用するかは、いくつかのバリエーションがある。最も簡単なのは、現在の内部状態に対する評価関数微分値を用いる方法である。その他には、現在の内部状態に、データを転送することにより新たに発生する負荷分をプラスした内部状態に対する評価関数微分値を使用したりすればより正確である。また、データを受け取ったことにより新たに発生する負荷分をプラスした内部状態に対する評価関数微分値を使用しても良い。今回は、現在の内部状態に対する評価関数微分値を用いた。
(6)実施例1の効果
本実施例では、待ち行列の時間変化をモニタすることで、本願発明の効果を調べた。待ち行列とは、ある時刻にサーバーに溜まっている処理要求数で、これが多いということは処理が遅れており、系全体のレスポンスが低いことを意味する。今回の場合、待ち行列数とアクセス数は同じである。データサーバーを30台(データサーバーの処理能力は3種類で各10台ずつ)用意し、データ数はほぼ1kBのデータ(たまに10kB程度のデータも混じる)が系全体で200ランダムに配置される。3種類のデータサーバーは単位時間当たり、120、90、60の処理を行う設定とした。各データには単位時間当たり平均6のポアソン分布に従うアクセスが実施される。このアクセスが負荷、つまり処理である。
まず、本願発明を適用しない場合の待ち行列の時間変化を図12に示す。ノード番号1、2、3の結果を示している。これらの処理能力はそれぞれ120、90、60である。処理能力の比較的低いノード3の待ち行列が溜まりがちであることがわかる。残りのノード(データサーバー)の結果も、処理能力ごとにほぼ同じであった。系全体のレスポンスは0.089secであった。
次に、本発明を適用したコンピュータネットワークシステムにおいて、ネットワークの帯域が100kbpsの場合の結果を図13に示す。データの容量が1kBであるので、データ配置の負荷分散が実施されるはずである。結果を見ると、待ち行列が溜まりやすかったノード3の待ち行列が減っていることがわかる。系全体のレスポンスは0.021secと大幅に改善しており、本願発明の有効性が示された。
さらに、本発明を適用したコンピュータネットワークシステムにおいて、ネットワークの帯域が1Mbpsの場合の結果を図14に示す。待ち行列が溜まりやすかったノード3の待ち行列がほとんどなく、代わりにむしろノード1の待ち行列が少し増えている。ノード1は能力が比較的高いので、能力の高いノードにデータを集めていることが伺える。系全体のレスポンスは0.014secとさらに改善しており、本願発明の有効性が示された。
50秒後に、上記のノードに格納されていたデータ数を図15に示すが、ネットワークのレスポンスが良くなるほど、性能の高いノードにデータを配置していることがわかる。式10から今回の条件で導かれる最適なデータ配置個数を計算すると、図15の1Mbpsの場合と同じになった。つまり、本願発明によりデータの最適配置が実現されたと言うことができる。
実施例1と同じ設定で、サーバーを30台(データサーバーの処理能力は3種類で各10台ずつ)用意した。3種類のサーバーは単位時間当たり、120、90、60の処理を行う設定とした。各サーバーには単位時間当たり平均60のポアソン分布に従う処理が到着するものとする。実施した結果、本願発明を使用すると、使用しない場合に比べ10倍程度のレスポンス性能が得られた。以上より、本願発明が、サーバーの負荷分散にも有効であることがわかった。
実施例2では、例えば転送を待っている処理の待ち数がネットワークの負荷と関連する。評価関数はネットワークの転送能力(μmax)に基づいて実施例1と同様に求めることができる。その際、ネットワーク転送を待っている処理の待ち数に負荷を関連付ける。より正確には、μmax−(負荷の到着数/待ち数)がそのノードの負荷になる。待ち数を直接負荷と考えるのはある種の近似である。
以上、本発明を実施の形態及び実施例に則して説明したが、本発明はこれに限定されるものではない。
この出願は、2012年8月6日に出願された日本出願特願第2012−173520号を基礎とする優先権を主張し、その開示のすべてをここに取り込むものである。
Claims (40)
- それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含み、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める手段、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する手段、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素の搬送に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める手段、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する手段
を備えることを特徴とするコンピュータネットワークシステム。 - 前記負荷要素はデータオブジェクトdであり、前記負荷要素に起因して発生する負荷は、前記データオブジェクトdをそのノードが保持することに起因してそのノードが担う負荷であることを特徴とする請求項1に記載のコンピュータネットワークシステム。
- 第1のノードN1、第2のノードN2、経路Pのそれぞれに対して、その性能に応じた関数であって、そのノード或いは経路が現に担う或いは搬送する負荷量λを少なくとも変数とする凸関数である、評価関数f1、f2、fnを予め定め、
評価値D1を評価関数f1に基づいて定め、評価値D2を評価関数f2に基づいて定め、評価値Dnを評価関数fnに基づいて定める
ことを特徴とする請求項2に記載のコンピュータネットワークシステム。 - 評価値D1を評価関数f1の微分に基づいて定め、
評価値D2を評価関数f2の微分に基づいて定め、
評価値Dnを評価関数fnの微分に基づいて定める
ことを特徴とする請求項3に記載のコンピュータネットワークシステム。 - Kを予め定められた比例定数とするとき、λx=K(dfs/λs−dfr/λr)から負荷量λxを求めることを特徴とする請求項3及び4のいずれかに記載のコンピュータネットワークシステム。
- 前記第1のノードN1、前記第2のノードN2、前記経路Pの単位時間当たりの処理能力に応じて定められる係数をそれぞれ順にμmax,1、μmax,2、μmax,nとするとき、前記評価値D1、D2、Dnと前記評価関数f1、f2、fnの間に以下の数1の関係があることを特徴とする請求項3乃至5のいずれかに記載のコンピュータネットワークシステム。
- 関数gdを、データオブジェクトdに関するm種類(mは自然数)の観測量K1d、K2d、…Kmdを変数とする予め定められた関数とするとき、データオブジェクトdを保持するノードに、データオブジェクトdに起因して発生する負荷λdを、関数gdに基づいて求める手段を備えることを特徴とする請求項6に記載のコンピュータネットワークシステム。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdへのアクセス頻度であることを特徴とする請求項7に記載のコンピュータネットワークシステム。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdのレプリカ数であることを特徴とする請求項7及び8のいずれかに記載のコンピュータネットワークシステム。
- 前記負荷要素は処理であり、前記負荷要素に起因して発生する負荷は、その処理をそのノードが実行することに起因してそのノードが担う負荷であることを特徴とする請求項1に記載のコンピュータネットワークシステム。
- それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含むコンピュータネットワークシステムの前記複数のノードのいずれかとして動作するコンピュータであって、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める手段、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する手段、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める手段、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する手段
を備えることを特徴とするコンピュータ。 - 前記負荷要素はデータオブジェクトdであり、前記負荷要素に起因して発生する負荷は、前記データオブジェクトdをそのノードが保持することに起因してそのノードが担う負荷であることを特徴とする請求項11に記載のコンピュータ。
- 第1のノードN1、第2のノードN2、経路Pのそれぞれに対して、その性能に応じた関数であって、そのノード或いは経路が現に担う或いは搬送する負荷量λを少なくとも変数とする凸関数である、評価関数f1、f2、fnを予め定め、
評価値D1を評価関数f1に基づいて定め、評価値D2を評価関数f2に基づいて定め、評価値Dnを評価関数fnに基づいて定める
ことを特徴とする請求項12に記載のコンピュータ。 - 評価値D1を評価関数f1の微分に基づいて定め、
評価値D2を評価関数f2の微分に基づいて定め、
評価値Dnを評価関数fnの微分に基づいて定める
ことを特徴とする請求項13に記載のコンピュータ。 - Kを予め定められた比例定数とするとき、λx=K(dfs/λs−dfr/λr)から負荷量λxを求めることを特徴とする請求項13及び14のいずれかに記載のコンピュータ。
- 前記第1のノードN1、前記第2のノードN2、前記経路Pの単位時間当たりの処理能力に応じて定められる係数をそれぞれ順にμmax,1、μmax,2、μmax,nとするとき、前記評価値D1、D2、Dnと前記評価関数f1、f2、fnの間に以下の数2の関係があることを特徴とする請求項13乃至15のいずれかに記載のコンピュータ。
- 関数gdを、データオブジェクトdに関するm種類(mは自然数)の観測量K1d、K2d、…Kmdを変数とする予め定められた関数とするとき、データオブジェクトdを保持するノードに、データオブジェクトdに起因して発生する負荷λdを、関数gdに基づいて求める手段を備えることを特徴とする請求項16に記載のコンピュータ。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdへのアクセス頻度であることを特徴とする請求項17に記載のコンピュータ。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdのレプリカ数であることを特徴とする請求項17及び18のいずれかに記載のコンピュータ。
- 前記負荷要素は処理であり、前記負荷要素に起因して発生する負荷は、その処理をそのノードが実行することに起因してそのノードが担う負荷であることを特徴とする請求項11に記載のコンピュータ。
- それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含むコンピュータネットワークシステムの前記複数のノードのいずれかとして動作するコンピュータを、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める手段、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する手段、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素の搬送に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める手段、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する手段
として機能させるためのプログラム。 - 前記負荷要素はデータオブジェクトdであり、前記負荷要素に起因して発生する負荷は、前記データオブジェクトdをそのノードが保持することに起因してそのノードが担う負荷であることを特徴とする請求項21に記載のプログラム。
- 第1のノードN1、第2のノードN2、経路Pのそれぞれに対して、その性能に応じた関数であって、そのノード或いは経路が現に担う或いは搬送する負荷量λを少なくとも変数とする凸関数である、評価関数f1、f2、fnを予め定め、
評価値D1を評価関数f1に基づいて定め、評価値D2を評価関数f2に基づいて定め、評価値Dnを評価関数fnに基づいて定める
ことを特徴とする請求項22に記載のプログラム。 - 評価値D1を評価関数f1の微分に基づいて定め、
評価値D2を評価関数f2の微分に基づいて定め、
評価値Dnを評価関数fnの微分に基づいて定める
ことを特徴とする請求項23に記載のプログラム。 - Kを予め定められた比例定数とするとき、λx=K(dfs/λs−dfr/λr)から負荷量λxを求めることを特徴とする請求項23及び24のいずれかに記載のプログラム。
- 前記第1のノードN1、前記第2のノードN2、前記経路Pの単位時間当たりの処理能力に応じて定められる係数をそれぞれ順にμmax,1、μmax,2、μmax,nとするとき、前記評価値D1、D2、Dnと前記評価関数f1、f2、fnの間に以下の数3の関係があることを特徴とする請求項23及び24のいずれかに記載のプログラム。
- 関数gdを、データオブジェクトdに関するm種類(mは自然数)の観測量K1d、K2d、…Kmdを変数とする予め定められた関数とするとき、データオブジェクトdを保持するノードに、データオブジェクトdに起因して発生する負荷λdを、関数gdに基づいて求める手段を備えることを特徴とする請求項26に記載のプログラム。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdへのアクセス頻度であることを特徴とする請求項27に記載のプログラム。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdのレプリカ数であることを特徴とする請求項27及び28のいずれかに記載のプログラム。
- 前記負荷要素は処理であり、前記負荷要素に起因して発生する負荷は、その処理をそのノードが実行することに起因してそのノードが担う負荷であることを特徴とする請求項21に記載のプログラム。
- それぞれのノードが少なくとも一本の経路を介して他のノードに接続された複数のノードからなり、第1のノードN1と、第1のノードN1と経路Pを介して接続された第2のノードN2とを少なくとも含むコンピュータネットワークシステムのノード間での負荷の移動の要否を判定する方法であって、
第1のノードN1が現に担っている負荷量であって、第2のノードN2に移すべきか否かの検討の対象となる負荷量λxを定める段階、
第1のノードが現に保持する負荷要素の中から、負荷量λxに相当する負荷を第1のノードN1に生じさせる負荷要素を選択する段階、
前記選択した負荷要素に起因して発生する負荷を含む負荷全体を担うときの第1のノードN1のレスポンス性を評価する評価値D1、経路Pが現に担っている負荷に加えて、前記選択した負荷要素の搬送に起因して発生する負荷が経路Pに生じたと仮定したときの経路Pのレスポンス性を評価する評価値Dn、第2のノードが現に担っている負荷に加えて、前記選択した負荷要素に起因して発生する負荷を担うことにより第2のノードN2に生じる負荷を第2のノードN2が担うと仮定したときの第2のノードN2のレスポンス性を評価する評価値D2をそれぞれ求める段階、及び、
D1と和D2+Dnの大小の比較結果に応じて、前記移動負荷要素を移動するか否かを判定する段階
を含むことを特徴とする方法。 - 前記負荷要素はデータオブジェクトdであり、前記負荷要素に起因して発生する負荷は、前記データオブジェクトdをそのノードが保持することに起因してそのノードが担う負荷であることを特徴とする請求項31に記載の方法。
- 第1のノードN1、第2のノードN2、経路Pのそれぞれに対して、その性能に応じた関数であって、そのノード或いは経路が現に担う或いは搬送する負荷量λを少なくとも変数とする凸関数である、評価関数f1、f2、fnを予め定め、
評価値D1を評価関数f1に基づいて定め、評価値D2を評価関数f2に基づいて定め、評価値Dnを評価関数fnに基づいて定める
ことを特徴とする請求項32に記載の方法。 - 評価値D1を評価関数f1の微分に基づいて定め、
評価値D2を評価関数f2の微分に基づいて定め、
評価値Dnを評価関数fnの微分に基づいて定める
ことを特徴とする請求項33に記載の方法。 - Kを予め定められた比例定数とするとき、λx=K(dfs/λs−dfr/λr)から負荷量λxを求めることを特徴とする請求項33及び34のいずれかに記載の方法。
- 前記第1のノードN1、前記第2のノードN2、前記経路Pの単位時間当たりの処理能力に応じて定められる係数をそれぞれ順にμmax,1、μmax,2、μmax,nとするとき、前記評価値D1、D2、Dnと前記評価関数f1、f2、fnの間に以下の数4の関係があることを特徴とする請求項33乃至35のいずれかに記載の方法。
- 関数gdを、データオブジェクトdに関するm種類(mは自然数)の観測量K1d、K2d、…Kmdを変数とする予め定められた関数とするとき、データオブジェクトdを保持するノードに、データオブジェクトdに起因して発生する負荷λdを、関数gdに基づいて求めることを特徴とする請求項36に記載の方法。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdへのアクセス頻度であることを特徴とする請求項37に記載の方法。
- 観測量K1d、K2d、…Kmdのいずれかがデータオブジェクトdのレプリカ数であることを特徴とする請求項37及び38のいずれかに記載の方法。
- 前記負荷要素は処理であり、前記負荷要素に起因して発生する負荷は、その処理をそのノードが実行することに起因してそのノードが担う負荷であることを特徴とする請求項31に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012173520 | 2012-08-06 | ||
JP2012173520 | 2012-08-06 | ||
PCT/JP2013/068579 WO2014024612A1 (ja) | 2012-08-06 | 2013-07-02 | コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2014024612A1 true JPWO2014024612A1 (ja) | 2016-07-25 |
JP6288714B2 JP6288714B2 (ja) | 2018-03-07 |
Family
ID=50067852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014529391A Expired - Fee Related JP6288714B2 (ja) | 2012-08-06 | 2013-07-02 | コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9712609B2 (ja) |
JP (1) | JP6288714B2 (ja) |
WO (1) | WO2014024612A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6171600B2 (ja) * | 2013-06-12 | 2017-08-02 | 日本電気株式会社 | 負荷分散システム、負荷分散装置、負荷分散方法およびプログラム |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6353616B1 (en) * | 1998-05-21 | 2002-03-05 | Lucent Technologies Inc. | Adaptive processor schedulor and method for reservation protocol message processing |
US8024596B2 (en) * | 2008-04-29 | 2011-09-20 | Bose Corporation | Personal wireless network power-based task distribution |
JP2012141671A (ja) * | 2010-12-28 | 2012-07-26 | Hitachi Ltd | 仮想計算機の移動方法、仮想計算機システム及び管理サーバ |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5283897A (en) * | 1990-04-30 | 1994-02-01 | International Business Machines Corporation | Semi-dynamic load balancer for periodically reassigning new transactions of a transaction type from an overload processor to an under-utilized processor based on the predicted load thereof |
US6330583B1 (en) * | 1994-09-09 | 2001-12-11 | Martin Reiffin | Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks |
JP2000137692A (ja) * | 1998-10-30 | 2000-05-16 | Toshiba Corp | 分散ノード間負荷分散方式 |
JP2001109638A (ja) | 1999-10-06 | 2001-04-20 | Nec Corp | 推定伸長率に基づくトランザクション負荷分散方法及び方式並びにコンピュータ可読記録媒体 |
US7028297B2 (en) * | 2000-11-17 | 2006-04-11 | Aristos Logic Corporation | System and method of scalable transaction processing |
US20040025162A1 (en) * | 2002-07-31 | 2004-02-05 | Fisk David C. | Data storage management system and method |
JP2005004676A (ja) | 2003-06-16 | 2005-01-06 | Fujitsu Ltd | 適応型分散処理システム |
US7554909B2 (en) * | 2005-03-21 | 2009-06-30 | Intel Corporation | Dynamic service management for multicore processors |
US8639813B2 (en) * | 2008-11-25 | 2014-01-28 | Citrix Systems, Inc. | Systems and methods for GSLB based on SSL VPN users |
US8832709B2 (en) * | 2010-07-19 | 2014-09-09 | Flash Networks Ltd. | Network optimization |
-
2013
- 2013-07-02 WO PCT/JP2013/068579 patent/WO2014024612A1/ja active Application Filing
- 2013-07-02 JP JP2014529391A patent/JP6288714B2/ja not_active Expired - Fee Related
- 2013-07-02 US US14/420,127 patent/US9712609B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6353616B1 (en) * | 1998-05-21 | 2002-03-05 | Lucent Technologies Inc. | Adaptive processor schedulor and method for reservation protocol message processing |
US8024596B2 (en) * | 2008-04-29 | 2011-09-20 | Bose Corporation | Personal wireless network power-based task distribution |
JP2012141671A (ja) * | 2010-12-28 | 2012-07-26 | Hitachi Ltd | 仮想計算機の移動方法、仮想計算機システム及び管理サーバ |
Also Published As
Publication number | Publication date |
---|---|
US20150163298A1 (en) | 2015-06-11 |
WO2014024612A1 (ja) | 2014-02-13 |
JP6288714B2 (ja) | 2018-03-07 |
US9712609B2 (en) | 2017-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10904319B2 (en) | Dynamic deployment of an application based on micro-services | |
US7937473B2 (en) | Resource-amount calculation system, and method and program thereof | |
Cicconetti et al. | A decentralized framework for serverless edge computing in the internet of things | |
Yu et al. | Stochastic load balancing for virtual resource management in datacenters | |
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
US10474504B2 (en) | Distributed node intra-group task scheduling method and system | |
CN108228347A (zh) | 一种任务感知的Docker自适应调度系统 | |
US9628556B2 (en) | Decentralized request routing | |
KR20170029263A (ko) | 부하 분산 장치 및 방법 | |
CN103401947A (zh) | 多个服务器的任务分配方法和装置 | |
CN101803340B (zh) | 用于平衡信息负载的系统和方法 | |
CN102281190A (zh) | 负载均衡装置组网方法以及服务器、客户端接入方法 | |
CN109460301B (zh) | 一种流数据负载的弹性资源配置方法及系统 | |
CN106293933A (zh) | 一种支持多大数据计算框架的集群资源配置与调度方法 | |
JP4265377B2 (ja) | 負荷分散方法及び装置とシステム並びにプログラム | |
Mostafa | Cooperative fog communications using a multi-level load balancing | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
KR101448413B1 (ko) | Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치 | |
Kirichenko et al. | Dynamic load balancing algorithm of distributed systems | |
JP6288714B2 (ja) | コンピュータネットワークシステム、コンピュータネットワークシステムでの負荷の移動要否の判定方法 | |
CN102782653A (zh) | 负载控制设备 | |
Rajan | Service request scheduling based on quantification principle using conjoint analysis and Z-score in cloud | |
CN114978913B (zh) | 一种基于切链的服务功能链跨域部署方法及系统 | |
US7903571B1 (en) | System and method for improving multi-node processing | |
Radha et al. | Allocation of resources and scheduling in cloud computing with cloud migration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170524 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170904 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20171101 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171213 |
|
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: 20180110 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180201 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6288714 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |