JP2017215933A - 情報処理装置、及び、負荷分散制御方法 - Google Patents

情報処理装置、及び、負荷分散制御方法 Download PDF

Info

Publication number
JP2017215933A
JP2017215933A JP2017028289A JP2017028289A JP2017215933A JP 2017215933 A JP2017215933 A JP 2017215933A JP 2017028289 A JP2017028289 A JP 2017028289A JP 2017028289 A JP2017028289 A JP 2017028289A JP 2017215933 A JP2017215933 A JP 2017215933A
Authority
JP
Japan
Prior art keywords
control
message
amount
request
server
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
Application number
JP2017028289A
Other languages
English (en)
Other versions
JP6938944B2 (ja
JP2017215933A5 (ja
Inventor
謙治 引地
Kenji Hikichi
謙治 引地
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 US15/581,168 priority Critical patent/US10397315B2/en
Publication of JP2017215933A publication Critical patent/JP2017215933A/ja
Publication of JP2017215933A5 publication Critical patent/JP2017215933A5/ja
Application granted granted Critical
Publication of JP6938944B2 publication Critical patent/JP6938944B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】アプリケーションの要求が分散される複数の制御装置について、制御装置間のメッセージの転送を低減させる。【解決手段】情報処理装置は、複数の制御装置それぞれについて、所定の処理の要求の振り分けに用いられる重みを、制御対象とする宛先装置の数が多い制御装置ほど当該制御装置に振り分けられる所定の処理の要求量が多くなるように、決定する処理部を備える。複数の制御装置それぞれは、複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、要求に応じて所定の処理を実行し、メッセージを生成し、メッセージの宛先装置を制御対象とする制御装置が自装置である場合にはメッセージを当該宛先装置に送信し、メッセージの宛先装置を制御対象とする制御装置が他の制御装置である場合にはメッセージを当該他の制御装置に転送する制御部と、を備える。【選択図】図1

Description

本発明は、情報処理装置、及び、負荷分散制御方法に関する。
ネットワークの設定変更を柔軟に行えるようにすることを目的として、SDN(Software Defined Networking)技術が開発されている。SDNでは、通信装置と、通信装置を
管理する通信制御装置と、通信装置と通信制御装置とを接続する制御ネットワークとが含まれる。SDNでは、通信装置は転送機能に特化している。通信装置は、通信制御装置によって管理されている。以降、SDNにおける通信装置をスイッチと称する。また、SDNにおける通信制御装置をコントローラと称する。
SDNでは、パス算出等のネットワーク制御ロジックは、コントローラ上の通信制御ソフトウェアに実装されている。例えば、通信制御ソフトウェアはパスを算出してコントローラにパスを通知し、コントローラがスイッチに対してパスの設定を行うソフトウェアである。以降、通信制御ソフトウェアを、アプリケーションと称する。
SDNにおけるアプリケーションの一つは、例えば、利用者から2点間のパス設定要求が入力された場合に、指定された2点間をつなぐスイッチへの制御メッセージを生成するパス設定アプリケーションである。
図24は、分散型通信制御システムP100の一例を示す図である。SDNにおいて、コントローラが1台である場合には、ネットワークの規模の拡大にコントローラの性能が追い付かなくなることがある。分散型通信制御システムP100は、複数のコントローラを有し、複数のコントローラ間でスイッチ(図中、SW)の管理を分担することで、処理性能を向上させる。スイッチを制御するコントローラは、制御されるスイッチの「マスタ」と称される。1台のスイッチに対して、マスタとなるコントローラは1台である。また、1台のコントローラは、複数のスイッチのマスタとなり得る。図24では、コントローラは、サーバP1とサーバP2上に実装されており、サーバP1とサーバP2とに備えられるコントローラは、それぞれ3台のスイッチのマスタを担っている。
例えば、利用者の組織又はエリア毎に、サービスのポリシや帯域制御に対する要望が異なるため、利用者の組織又はエリアそれぞれについて、パス設定アプリケーションが用意される。すなわち、分散型通信制御システムP100では、複数種類のパス設定アプリケーションが存在し、同種のアプリケーションのインスタンスが1つ又は複数のサーバ上で動作する。インスタンスとは、サーバ上のアプリケーションのことである。図24に示される例では、1種類のパス設定アプリケーションのインスタンスが、サーバP1とサーバP2上で動作している。
図25は、分散型通信制御システムP100内のパス設定アプリケーションに対してパス設定要求が入力された場合の制御メッセージの流れの一例を示す図である。図25では、図24と同じ分散型通信制御システムP100が示されている。図24に示される例は、サーバP1上のパス設定アプリケーションに、拠点Ha−Hb間のパス設定要求が入力された場合の例である。
サーバP1上のパス設定アプリケーションによって、拠点Ha−Hb間のパスとして、スイッチ#1、スイッチ#2を通過する経路が算出され、スイッチ#1、スイッチ#2宛てに、拠点Ha−Hb間のパスを設定するための制御メッセージが生成される。スイッチ
#1のマスタは、サーバP1上のコントローラである。スイッチ#2のマスタはサーバP2上のコントローラである。
スイッチ#1のマスタは制御メッセージを生成したインスタンスと同じサーバP1上のコントローラであるで、スイッチ#1への制御メッセージは、サーバP1から宛先のスイッチ#1に送信される。以降、制御メッセージを、単に、メッセージと称する。
特開2000−268004号公報
しかしながら、分散型通信制御システムP100では、以下のような問題が生じることがある。分散型通信制御システムP100では、1台のスイッチに対して複数のコントローラからメッセージが送信されると、スイッチの設定の整合性が取れなくなる可能性がある。スイッチの設定の整合性が取れなくなる可能性を低減するため、スイッチに対するメッセージは、該当のスイッチのマスタのコントローラから送信される仕様である。スイッチ#2のマスタのコントローラは、メッセージを生成したインスタンスのサーバP1とは異なるサーバP2上のコントローラである。したがって、スイッチ#2へのメッセージは、サーバP1からサーバP2に転送され、サーバP2からスイッチ#2に送信される。
例えば、メッセージがスイッチ#2に届くまでの時間は、コントローラ間のメッセージの転送の分、スイッチ#1にメッセージが届くまでの時間よりも長くなる。これによって、スイッチ#1には、拠点Ha−Hb間のパスの設定が完了しているにもかかわらず、スイッチ#2には拠点Ha−Hb間のパスの設定がない状態が生じ、データ転送に悪影響が生じる恐れがある。したがって、コントローラ間のメッセージの転送は、分散型通信制御システムP100の性能劣化の要因となるので、少ない方が好ましい。
図26は、負荷分散装置を備える分散型通信制御システムの一例を示す図である。負荷分散装置P3は、各アプリケーションへの要求を受け付け、各サーバに均等に要求を振り分ける。これによって、各サーバのアプリケーションの処理負荷を平準化することができる。しかしながら、コントローラ間の制御メッセージの転送については考慮されておらず、アプリケーションへの要求を各サーバに均等に振り分けることによって、コントローラ間のメッセージの転送を低減させることができるとは限らない。
本発明の一態様は、アプリケーションの要求が分散される複数の制御装置について、制御装置間のメッセージの転送を低減可能な情報処理装置、及び、負荷分散制御方法を提供することを目的とする。
本発明の態様の一つは、情報処理装置である。情報処理装置は、複数の制御装置それぞれについて、所定の処理の要求の振り分けに用いられる重みを、制御対象とする宛先装置の数が多い制御装置ほど当該制御装置に振り分けられる所定の処理の要求量が多くなるように、決定する処理部を備える。複数の制御装置それぞれは、複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、要求に応じて所定の処理を実行し、メッセージを生成し、メッセージの宛先装置を制御対象とする制御装置が自装置である場合にはメッセージを当該宛先装置に送信し、メッセージの宛先装置を制御対象とする制御装置が他の制御装置である場合にはメッセージを当該他の制御装置に転送する制御部と、を備える。
開示の情報処理装置、及び、負荷分散制御方法によれば、アプリケーションの要求が分散される複数の制御装置について、制御装置間のメッセージの転送を低減することができる。
図1は、第1実施形態に係る分散型通信制御システムのシステム構成の一例を示す図である。 図2は、サーバのハードウェア構成の一例である。 図3は、サーバの機能構成の一例を示す図である。 図4は、負荷分散装置によって用いられる重みの決定処理の具体例において想定される分散型通信制御システムの一例を示す図である。 図5は、図4に示される例におけるサーバ1の要求量及びメッセージ量の計測結果の一例である。 図6は、図4に示される例におけるサーバ2の要求量及びメッセージ量の計測結果の一例である。 図7は、具体例における、各サーバにおける各アプリケーションについての直接比率を示す図である。 図8は、具体例における、各アプリケーションの発生要求量の一例である。 図9は、具体例に係る各サーバの収容量の一例である。 図10は、具体例に係る線形計画問題の解Xijの一例を示す図である。 図11は、具体例に係る、負荷分散装置に通知されるラウンドロビンの重みWijの一例である。 図12は、制御部の、負荷分散装置のラウンドロビンの重みの決定処理のフローチャートの一例である。 図13は、各アプリケーションの要求量の状態が同条件の場合の、比較例の各サーバのメッセージ量と、具体例で算出された重みWijを用いた場合の各サーバのメッセージ量との一例を示す図である。 図14は、第1実施形態の変形例に係る線形計画問題の定数Aijの一例を示す図である。 図15は、第2実施形態に係る、負荷分散装置のラウンドロビンの重みの決定処理の一例を示す図である。 図16は、第2実施形態に係る制御部の、負荷分散装置のラウンドロビンの重みの決定処理のフローチャートの一例である。 図17は、第3実施形態に係るサーバの収容量Cjの一例を示す図である。 図18は、図17のサーバの収容量Cjの値の設定について、線形計画法で算出された、サーバjに割り当てられるアプリケーションiの要求量Xijの値の一例を示す図である。 図19は、図18のサーバjに割り当てられるアプリケーションiの要求量Xijの値に対応する、負荷分散装置のラウンドロビンの重みの一例を示す図である。 図20は、各アプリケーションの要求量の状態が同条件の場合の、図19で示される重みWijが用いられて、各アプリケーションの要求がサーバ1とサーバ2とに振り分けられた場合の、サーバ1とサーバ2とのメッセージ量の一例を示す図である。 図21は、第4実施形態に係る制御部の処理の、負荷分散装置のラウンドロビンの重みの決定処理のフローチャートの一例である。 図22は、第5実施形態に係る各アプリケーションについて、直接比率が最も高いサーバの一例を示す図である。 図23は、各アプリケーションの要求量の状態が同条件の場合の、比較例での各サーバのメッセージ量と、各アプリケーションについて、図22で示されるサーバに要求が振り分けられた場合の、各サーバのメッセージ量の一例を示す図である。 図24は、分散型通信制御システムの一例を示す図である。 図25は、分散型通信制御システム内のパス設定アプリケーションに対してパス設定要求が入力された場合の制御メッセージの流れの一例を示す図である。 図26は、負荷分散装置を備える分散型通信制御システムの一例を示す図である。 図27は、第6実施形態に係る具体例において想定される分散型通信制御システムの一例を示す図である。 図28は、第6実施形態の具体例に係るマスタ情報の一例である。 図29は、第6実施形態の具体例に係るマスタ変更情報の一例を示す図である。 図30は、第6実施形態の具体例に係るスイッチリストの一例を示す図である。 図31は、第6実施形態の具体例に係るアプリケーションiのコントローラjにおける直接比率Aijの一例を示す図である。 図32は、第6実施形態の具体例に係るアプリケーションの発生要求量の一例を示す図である。 図33は、第6実施形態の具体例に係る負荷分散装置のラウンドロビンの重みWijの一例である。 図34は、第6実施形態の具体例に係るシミュレーション結果の一例を示す図である。 図35は、第6実施形態の具体例に係るマスタ変更情報#2の適用後のマスタ情報の一例を示す図である。 図36は、第6実施形態に係るマスタ変更決定処理のフローチャートの一例である。 図37Aは、シミュレーション処理のフローチャートの一例である。 図37Bは、シミュレーション処理のフローチャートの一例である。 図38は、第7実施形態の具体例に係るアプリケーションiのコントローラjにおける直接比率Aijの一例を示す図である。 図39は、第7実施形態の具体例に係る各アプリケーションの直接比率の分散値の一例を示す図である。 図40は、第7実施形態の具体例に係るアプリケーション#1の各スイッチへの送信メッセージ量の一例である。 図41は、第7実施形態に係るマスタ変更決定処理の一例を示す図である。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<第1実施形態>
図1は、第1実施形態に係る分散型通信制御システム100のシステム構成の一例を示す図である。分散型通信制御システム100は、サーバ1、サーバ2、負荷分散装置3、複数のスイッチ9、外部クライアント8を備える。サーバ1、サーバ2には、それぞれ、アプリケーションとコントローラとが実装されている。負荷分散装置3は、サーバ1、サーバ2に対して、外部クライアント8からのアプリケーションへの要求を、重みづけラウンドロビンで振り分けて送信する。サーバ1、サーバ2は、それぞれ、複数台のスイッチ9のマスタとして動作する。
コントローラ間のメッセージの転送は、メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラとが、異なるサーバ上に存在する場合に発生する。したがって、メッセージを生成するインスタンスが存在するサーバと、メッセージの宛先スイッチ9のマスタであるコントローラが存在するサーバとが同じサーバになる可能性が高いほど、コントローラ間のメッセージの転送が発生する可能性は低くなる。
メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラと、が存在するサーバが同じである可能性を左右する要因の一つは、各コントローラの、各コントローラがマスタとして制御対象とするスイッチの数である。したがって、制御対象とするスイッチの数が多いコントローラに、より多くの要求が振り分けられることによって、メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラと、が存在するサーバが同じになる可能性を高くすることができる。
また、メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラと、が存在するサーバが同じになる可能性を左右する他の要因の一つは、アプリケーションの制御対象のスイッチ9がマスタとするコントローラの偏りがある。アプリケーションは複数種類存在し、種類ごとに、制御対象とするスイッチ9に偏りがある。例えば、所定のアプリケーションが、特定のエリアに存在するスイッチを制御対象とする場合には、当該エリア内のスイッチ9がマスタとするコントローラに偏りが生じる。
アプリケーションの制御対象のスイッチがマスタとするコントローラの偏りと、コントローラがマスタとして制御対象とするスイッチの数とは、スイッチに直接転送されるメッセージ、又は、他のコントローラに転送されるメッセージ、の比率に投影される。第1実施形態では、線形計画法を用いて、各サーバにおける、スイッチに直接転送されるメッセージ量の比率に基づいて、スイッチに直接転送されるメッセージ量が最大となるような、負荷分散装置3のラウンドロビンで用いられる重みを決定する。ラウンドロビンの重みは、各アプリケーションについて決定される。
第1実施形態では、ラウンドロビンの重みの決定をサーバ1が行う。ただし、これに限定されず、ラウンドロビンの重みの決定は、サーバ2、負荷分散装置3のいずれが行ってもよい。ラウンドロビンの重みを決定する装置は、「情報処理装置」の一例である。第1実施形態のサーバ1は、「情報処理装置」の一例である。また、サーバ1、サーバ2は、「制御装置」の一例である。スイッチ9は、「宛先装置」の一例である。
<装置構成>
図2は、サーバ1のハードウェア構成の一例である。サーバ1は、例えば、専用のコンピュータである。サーバ1は、CPU(Central Processing Unit)101、主記憶装置
102、補助記憶装置103、ネットワークインタフェース104を備える。また、これらはバス105により互いに接続されている。
補助記憶装置103は、OS(Operating System)、様々なプログラムや、各プログラムの実行に際してCPU 101が使用するデータを格納する。補助記憶装置103は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードデ
ィスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置103
は、例えば、コントローラ用のプログラム103P、パス設定のアプリケーションを記憶する。
主記憶装置102は、CPU 101に、補助記憶装置103に格納されているプログ
ラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする記憶装置である。主記憶装置102は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)のような半導体メモリを含む。主記憶装置102は、「記憶部」の一例である。
CPU 101は、補助記憶装置103に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な処理を実行する。CPU 101は、1つに限られず、複数備えられてもよい。CPU 101は、制御装置」の「制御部」、「情報処理装置」の「処理部」の一例である。
ネットワークインタフェース104は、制御ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース104は、有線のネットワークと接続するインタフェースであってもよいし、無線のネットワークと接続するインタフェースであってもよい。ネットワークインタフェース104は、例えば、NIC(Network Interface Card)等である。ネットワークインタフェース104は、「制御装置」の「第1の受信部」、「情報処理装置」の「受信部」の一例である。
なお、図2に示されるサーバ1のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、サーバ1は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、Blu−ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。なお、サーバ2、負荷分散装置3も、図2に示されるハードウェア構成と同様に、CPU、主記憶装置、補助記憶装置、ネットワークインタフェースを備える。
図3は、サーバ1の機能構成の一例を示す図である。サーバ1は、機能構成要素として、要求受信部11、メッセージ転送部12、スイッチ設定部13、情報収集部14、制御部15、計測結果受信部16、重み通知部17、アプリ要求量記憶部18A、メッセージ量記憶部18B、マスタ情報記憶部18C、アプリケーション19を備える。要求受信部11、メッセージ転送部12、スイッチ設定部13、情報収集部14、制御部15、計測結果受信部16、重み通知部17、アプリ要求量記憶部18A、メッセージ量記憶部18B、マスタ情報記憶部18Cは、例えば、CPU 101がコントローラ用プログラム103Pを実行することによって達成される機能構成要素である。
要求受信部11は、負荷分散装置3によってサーバ1に振り分けられる、アプリケーション19のいずれかに対する要求を受信する。要求受信部11は、要求を該当するアプリケーション19に出力する。また、要求受信部11は、アプリケーション19ごとに、受信した要求量をアプリケーション要求量記憶部18Aに記録する。
アプリケーション19は、例えば、パス設定アプリケーションである。例えば、各利用組織、各エリアのポリシや帯域制御の要望に応じて、各利用組織、各エリアについてアプリケーション19は備えられる。アプリケーション19は、要求受信部11から要求の入力を受ける。アプリケーション19は、要求に応じて所定の処理を行い、処理結果に応じて、設定対象となるスイッチ9の識別情報を含むメッセージを生成し、メッセージ転送部12に出力する。
第1実施形態では、アプリケーション19は、パス設定アプリケーションであることが想定されている。したがって、アプリケーション19への要求は、例えば、2拠点間のパ
スの設定要求である。また、アプリケーション19は、要求によって指定された2拠点かのパスの経路を算出する処理を行う。アプリケーション19の処理結果は、算出した経路情報である。経路情報には、例えば、経路上のスイッチ9の識別情報と、経路上の各スイッチ9の出力インタフェース等が含まれる。したがって、アプリケーション19によって生成されるメッセージには、第1実施形態では、パス計算の結果得られた経路上のスイッチ9の識別情報が含まれる。なお、経路上のスイッチは、1又は複数台であるので、1つの要求について生成されるメッセージの数は、経路上のスイッチの数となる。
また、第1実施形態では、スイッチ9を制御するプロトコルとして、OpenFlowが用いられていることが想定されている。そのため、アプリケーション19によって生成されるメッセージは、OpenFlowのメッセージである。
メッセージ転送部12は、アプリケーション19からメッセージの入力を受ける。メッセージ転送部12は、マスタ情報を参照して、メッセージの宛先スイッチ9に応じて、メッセージをスイッチ設定部13又はサーバ2に送信する。マスタ情報は、スイッチの識別情報と当該スイッチのマスタとなるコントローラの識別情報との対応情報である。スイッチの識別情報、及び、マスタとなるコントローラの識別情報は、例えば、スイッチ名/コントローラ名、IP(Internet Protocol)アドレスである。
メッセージの宛先スイッチ9のマスタであるコントローラが、自サーバ1に搭載されている場合には、メッセージ転送部12は、メッセージをスイッチ設定部13に出力する。メッセージの宛先スイッチ9のマスタであるコントローラが、他のサーバ2に搭載されている場合には、メッセージ転送部12は、メッセージをサーバ2に転送する。
メッセージ転送部12は、スイッチ設定部13に転送したメッセージ量と、サーバ2に転送したメッセージ量とを、アプリケーション19ごとに、メッセージ量記憶部18Bに記録する。以降、スイッチ設定部13に転送されるメッセージを、直接メッセージ、と称する。また、他のサーバ2に転送されるメッセージを、間接メッセージ、と称する。
スイッチ設定部13は、メッセージ転送部12又は他のサーバ2から、メッセージの入力を受ける。スイッチ設定部13は、自装置がマスタである制御対象のスイッチ9に、メッセージを送信する。
情報収集部14は、所定の周期で、アプリケーション要求量記憶部18A、メッセージ量記憶部18Bから、アプリケーション毎の、要求量と直接メッセージ量と間接メッセージ量とを取得し、制御部15に出力する。アプリケーション毎の、要求量と直接メッセージ量と間接メッセージ量との取得周期は、例えば、分散型通信制御システム100の管理者によって、秒単位で設定される。
計測結果受信部16は、所定の周期で他のサーバ2から送信される、サーバ2のアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量とを受信し、制御部15に出力する。
制御部15は、情報収集部14からサーバ1におけるアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量との入力を受ける。また、制御部15は、計測結果受信部16から、サーバ2におけるアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量との入力を受ける。
制御部15は、サーバ1、サーバ2それぞれにおけるアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量とに基づいて、負荷分散装置3のラウンドロビンの重
みを決定する。重みの決定の処理の詳細については、後述される。制御部15は、決定した重みを重み通知部17に出力する。
重み通知部17は、制御部15から、負荷分散装置3のラウンドロビンの重みの入力を受け、負荷分散装置3に通知する。
アプリケーション要求量記憶部18A、メッセージ量記憶部18B、マスタ情報記憶部18Cは、それぞれ、サーバ1の主記憶装置102の記憶領域内の所定の領域に相当する。アプリケーション要求量記憶部18Aは、負荷分散装置3からサーバ1に入力される要求量をアプリケーション毎に記憶する。メッセージ量記憶部18Bは、直接メッセージ量、間接メッセージ量を、アプリケーション毎に記憶する。アプリケーション要求量記憶部18A、メッセージ量記憶部18Bがそれぞれ保持する値は、例えば、情報収集部14による情報の取得によって、リセットされてもよいし、リセットされずに保持されてもよい。アプリケーション要求量記憶部18A及びメッセージ量記憶部18Bがそれぞれ保持する値が情報収集部14による情報の取得によってリセットされない場合には、情報収集部14は、前回の読み出した値との差分を、所定周期内の、要求量、直接メッセージ量、間接メッセージ量として取得する。
マスタ情報記憶部18Cは、マスタ情報を記憶する。マスタ情報は、例えば、分散型通信制御システム100の管理者によって、予め設定される。または、マスタ情報は、コントローラ間のネゴシエーションによって決定されてもよい。マスタ情報の決定方法は、これらに限定されない。
なお、サーバ2の機能構成は、サーバ1の機能構成のうち、制御部15、計測結果受信部16、重み通知部17以外の構成要素を含む構成である。サーバ2において、情報収集部14は、所定の周期でアプリケーション要求量記憶部18Aとメッセージ量記憶部18Bとから取得した情報を、サーバ1に送信する。
<ラウンドロビンの重みの決定処理の詳細>
図4は、負荷分散装置3によって用いられる重みの決定処理の具体例において想定される分散型通信制御システム100の一例を示す図である。スイッチ9によって形成されるネットワークは、データセンタ(DC)#1、データセンタ#2、WANの3つのエリアに分けられる。DC#1、DC#2、WANそれぞれのエリアに対して、アプリケーションが用意されている。負荷分散装置3、サーバ1、サーバ2には、DC#1、DC#2、WANそれぞれに向けたDC#1制御アプリケーション、DC#2制御アプリケーション、WAN制御アプリケーションのインスタンスが存在する。
(ステップ1)
サーバ1の制御部15は、サーバ1、サーバ2の要求量及びメッセージ量の計測結果を取得する。具体例では、図5、図6の結果が取得されたことを想定する。
図5は、図4に示される例におけるサーバ1の要求量及びメッセージ量の計測結果の一例である。図5から、サーバ1のDC#1制御アプリケーションは、20の要求量を受信し、20の要求量に対して合計で60のメッセージを生成していることが示される。サーバ1のDC#1制御アプリケーションが生成したメッセージのうち、40は直接メッセージであり、20は間接メッセージである。
サーバ1のDC#2制御アプリケーションは、10の要求量を受信し、10の要求量に対して合計で40のメッセージを生成していることが示される。サーバ1のDC#2制御アプリケーションが生成したメッセージのうち、10は直接メッセージであり、30は間
接メッセージである。
サーバ1のWAN制御アプリケーションは、5の要求量を受信し、5の要求量に対して合計で10のメッセージを生成していることが示される。サーバ1のWAN制御アプリケーションが生成したメッセージのうち、5は直接メッセージであり、5は間接メッセージである。
図6は、図4に示される例におけるサーバ2の要求量及びメッセージ量の計測結果の一例である。図6から、サーバ2のDC#1制御アプリケーションは、20の要求量を受信し、20の要求量に対して合計で60のメッセージを生成していることが示される。サーバ2のDC#1制御アプリケーションが生成したメッセージのうち、20は直接メッセージであり、40は間接メッセージである。
サーバ2のDC#2制御アプリケーションは、10の要求量を受信し、10の要求量に対して合計で40のメッセージを生成していることが示される。サーバ2のDC#2制御アプリケーションが生成したメッセージのうち、30は直接メッセージであり、10は間接メッセージである。
サーバ2のWAN制御アプリケーションは、5の要求量を受信し、5の要求量に対して合計で10のメッセージを生成していることが示される。サーバ1のWAN制御アプリケーションが生成したメッセージのうち、5は直接メッセージであり、5は間接メッセージである。
なお、要求量、メッセージ量の単位は、それぞれ、例えば、個数であってもよいし、単位時間における流入/流出量(kbps)等であってもよい。
(ステップ2)
サーバ1の制御部15は、サーバ1及びサーバ2から収集された要求量とメッセージ量とに基づいて、アプリケーションとサーバとの各組合せについて、メッセージ総量に対する直接メッセージ量の比率を算出する。所定のサーバ上の所定のアプリケーションのメッセージの総量に対する直接メッセージ量の比率を、直接比率、と称する。
図7は、具体例における、各サーバ上の各アプリケーションについての直接比率を示す図である。図5に示される例において、サーバ1のDC#1制御アプリケーションのメッセージ総数は60であり、直接メッセージ量は40であるので、サーバ1上のDC#1制御アプリケーションについての直接比率は、40/60=2/3となる。図5に示される例において、サーバ2のDC#1制御アプリケーションのメッセージ総数は60であり、直接メッセージ量は20であるので、サーバ2上のDC#1制御アプリケーションについての直接比率は、20/60=1/3となる。DC#2制御アプリケーション、WANアプリケーションについても同様に、各サーバについて、直接比率が求められる。
(ステップ3)
サーバ1の制御部15は、サーバ1及びサーバ2から収集されたアプリケーション毎の要求量に基づいて、各アプリケーションから発生した要求量を求める。アプリケーションから発生した要求量を、以降、発生要求量、と称する。
図8は、具体例における、各アプリケーションの発生要求量の一例である。各アプリケーションの発生要求量は、各サーバから収集された当該アプリケーションの要求量の総和として求められる。例えば、DC#1制御アプリケーションについて、図5より、サーバ1へ振り分けられた要求量は20、図6より、サーバ2へ振り分けられた要求量は20で
あるので、DC#1制御アプリケーションの発生要求量は、20+20=40と求められる。DC#2制御アプリケーション、WAN制御アプリケーションについても同様にして、発生要求量が求められる。
(ステップ4)
サーバ1の制御部15は、サーバ1及びサーバ2から収集されたアプリケーション毎の要求量に基づいて、各サーバが収容可能な要求量を求める。サーバが収容可能な要求量を、以降、収容量、と称する。
図9は、具体例に係る各サーバの収容量の一例である。第1実施形態では、各サーバの収容量は、分散型通信制御システム100内の全アプリケーションの発生要求量の総量をサーバの台数で割った値として求められる。
具体例では、図8から、全アプリケーションの発生要求量の総量は、DC#1制御アプリケーション、DC#2制御アプリケーション、WANアプリケーションそれぞれの発生要求量を足し合わせて、40+20+10=70と求められる。具体例では、サーバの台数は、サーバ1とサーバ2との2台である。したがって、具体例の各サーバの収容量は、70/2=35と求められる。
(ステップ5)
サーバ1の制御部15は、直接比率、各アプリケーションの発生要求量、各サーバの収容量を用いて、線形計画問題を解く。第1実施形態では、目的関数と制約条件とは以下の通りに設定される。
Figure 2017215933
目的関数は、各サーバ及び各アプリケーションの直接メッセージの総量を推定する関数である。制約条件1は、各サーバに割り当てられる要求量に上限の制約を与えるものである。制約条件2は、各アプリケーションの発生要求量を計測時と同じ状態に制限するものである。
サーバ1の制御部15は、上記制約条件のもとで、目的関数が最大となる線形計画問題を解く。線形計画問題の解として、目的関数が最大となる場合のXijの値が得られる。すなわち、サーバ1の制御部15は、計測時と同じ要求の発生状態であり、サーバの収容量に上限がある状態において、直接メッセージの総量が最大となるように、各アプリケーションについて、各サーバへ割り当てられる要求量を求める。直接メッセージの総量が最大となる場合には、間接メッセージ、すなわち、コントローラ間で転送されるメッセージの量が最小となる。
具体例では、Aijの値は、図7に示される各サーバ上の各アプリケーションについて
の直接比率の値となる。Riの値は、図8に示される各アプリケーションの発生要求量の値となる。Cの値は、図9に示される各サーバの収容量の値となる。
図10は、具体例に係る線形計画問題の解Xijの一例を示す図である。サーバ1には、DC#1制御アプリケーションの要求が35割り当てられる。サーバ2には、DC#1制御アプリケーションの要求が5、DC#2制御アプリケーションの要求が20、WAN制御アプリケーションの要求が10割り当てられる。
(ステップ6)
サーバ1の制御部15は、線形計画問題の解Xijから、各アプリケーションについて、各サーバへ割り当てられる要求の割合を求める。サーバ1の制御部15は、各アプリケーションについての、各サーバへ割り当てられる要求の割合を、負荷分散装置3がラウンドロビンで用いる重みとして、重み通知部17を通じて、負荷分散装置3に通知する。
アプリケーションiについてサーバjへの要求の振り分けの重みWijは、Wij=Xij/Riで求められる。Riは、アプリケーションiの発生要求量である。
図11は、具体例に係る、負荷分散装置3に通知されるラウンドロビンの重みWijの一例である。負荷分散装置3は、以降、DC#1制御アプリケーションの要求を、サーバ1に重み7/8で、サーバ2に重み1/8で、振り分け、DC#2制御アプリケーション及びWAN制御アプリケーションの要求を、すべてサーバ2に振り分けるようになる。
サーバ1の制御部15は、以上のステップ1〜6を所定の周期で繰り返し実行する。発生する要求量の変化に応じて、負荷分散装置3のラウンドロビンの重みも変化するので、要求量の変化に応じて、コントローラ間で転送されるメッセージが最小となるように調整される。直接メッセージは「第1のメッセージ」の一例である。間接メッセージは、「第2のメッセージ」の一例である。「直接比率」は、「第1の比率」の一例である。
<処理の流れ>
図12は、サーバ1の制御部15の、負荷分散装置3のラウンドロビンの重みの決定処理のフローチャートの一例である。図12に示される処理は、サーバ1の制御部15に、サーバ1及びサーバ2の要求量及びメッセージ量の情報が入力される周期と同じ周期で繰り返し実行される。図12に示される処理の実行主体は、CPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
OP1では、制御部15は、サーバとアプリケーションとの組合せごとの、要求量、直接メッセージ量、間接メッセージ量、を情報収集部14から取得する。
OP2では、制御部15は、サーバとアプリケーションとの組合せごとの直接比率Aijを求める。OP3では、制御部15は、アプリケーションごとに発生要求量Riを求める。OP4では、制御部15は、サーバの収容量Cを求める。OP5では、制御部15は、線形計画問題を解く。
OP6では、制御部15は、アプリケーションiについて、サーバjへの要求の振り分けの重みWijを算出し、負荷分散装置3に通知する。その後、図12に示される処理が終了する。
<第1実施形態の作用効果>
図13は、各アプリケーションの要求量の状態が同条件の場合の、比較例のサーバ1とサーバ2とのメッセージ量と、具体例で算出された重みWijを用いた場合のサーバ1と
サーバ2とのメッセージ量との一例を示す図である。図13における比較例は、要求が、サーバ1とサーバ2との間で均等に振り分けられた場合の例である。図13における比較例のサーバ1、サーバ2の計測結果は、それぞれ、図5、図6で示されるものと同じである。
比較例では、サーバ1における全アプリケーションの間接メッセージの量の合計は55、サーバ2における全アプリケーションの間接メッセージの量の合計は55である。比較例でのサーバ1とサーバ2との間接メッセージ量の合計は、55+55=110である。
具体例で算出された重みWijが用いられた場合では、サーバ1における全アプリケーションの間接メッセージの量の合計は35、サーバ2における全アプリケーションの間接メッセージの量の合計は40である。具体例では、サーバ1とサーバ2との間接メッセージ量の合計は、35+40=75である。
したがって、第1実施形態によれば、負荷分散装置3のラウンドロビンの重みを変えることによって、コントローラ間で転送されるメッセージ(間接メッセージ)の量を低減できる。また、図13では、具体例のサーバ1の要求量の合計とサーバ2の要求量の合計とは同じである。これは、線形計画問題において、サーバの収容量の上限を制約条件として設けたことに起因する。したがって、第1実施形態によれば、コントローラ間で転送されるメッセージの量を低減しつつ、サーバ間の処理負荷を分散させることができる。また、線形計画法は既存のライブラリを利用可能であるので、実装が比較的容易である。
なお、第1実施形態では、直接比率を線形計画問題の定数Aijとし、目的関数を最大にするような解Xijを求め、解Xijに基づいて、負荷分散装置3のラウンドロビンの重みが決定される。これに代えて、サーバjにおけるアプリケーションiのメッセージ総量に対する間接メッセージの比率である間接比率を線形計画問題の定数Aijとしてもよい。この場合には、目的関数は、コントローラ間で転送されるメッセージの量(間接メッセージ量)となるので、解Xijは目的関数を最小にするものとして算出される。負荷分散装置3のラウンドロビンの重みは、解Xijから得られた各アプリケーションについて各サーバに割り当てられる要求の割合となる。
<第1実施形態の変形例>
第1実施形態では、線形計画問題の定数Aijに、各アプリケーションにおける各サーバの直接比率が用いられる。これに代えて、線形計画問題の定数として、各アプリケーションの設定対象となるスイッチ9が予め判明しているのであれば、その中での各コントローラがマスタであるスイッチの割合を、線形計画問題の定数Aijとしてもよい。例えば、図4に示される例では、DC#1制御アプリケーションにおいて、設定対象のスイッチ3台のうち、サーバ1がマスタであるスイッチは2台、サーバ2がマスタであるスイッチは1台である。DC#2制御アプリケーションにおいて、設定対象のスイッチ4台のうち、サーバ1がマスタであるスイッチは1台、サーバ2がマスタであるスイッチは3台である。WAN制御アプリケーションにおいて、設定対象のスイッチ4台のうち、サーバ1がマスタであるスイッチは2台、サーバ2がマスタであるスイッチは2台である。
図14は、第1実施形態の変形例に係る線形計画問題の定数Aijの一例を示す図である。図14に示される例は、図4のシステム構成を前提とする。図14に示される例の線形計画問題の定数Aijは、各アプリケーションにおける、各コントローラがマスタであるスイッチの割合である。図14に示される例の線形計画問題の定数Aijの値は、図7に示される第1実施形態に係る線形計画問題の定数Aijの値と一致しているので、線形計画問題の解として、図10に示される例と同じ値が得られる。したがって、第1実施形態の変形例によっても、コントローラ間で転送されるメッセージ量を低減させることがで
きる。
<第2実施形態>
第2実施形態では、線形計画法ではなく、ヒューリスティックアルゴリズムを用いて、負荷分散装置3が、各アプリケーションについて要求を各サーバに割り当てる際に用いるラウンドロビンの重みが決定される。ヒューリスティックアルゴリズムとは、必ずしも正しい答えを導けるわけではないが、ある程度のレベルで正解に近い解を得ることができる方法である。
第2実施形態では、第1実施形態と共通する説明は省略される。第2実施形態では、システム構成、各装置のハードウェア構成、及び、機能構成は、第1実施形態と同様である。第2実施形態では、機能構成のうち、制御部15の処理が第1実施形態と異なる。
図15は、第2実施形態に係る、負荷分散装置3のラウンドロビンの重みの決定処理の一例を示す図である。図15では、図4に示される具体例が想定されている。第2実施形態では、制御部15は、第1実施形態のラウンドロビンの重み決定処理のステップ1(情報収集)、ステップ2(直接比率)、ステップ3(各アプリケーションの発生要求量算出)、ステップ4(各サーバの収容量算出)を実行する。以降の処理は、以下の通りである。
図15に示されるテーブルは、各アプリケーションiについて、要求量r(i)と、各サーバjの直接比率a(i,j)とを含むテーブルが示されている。各サーバjの直接比率a(i,j)は、値の大きい順位でソートされている。アプリケーションiの要求量r(i)の初期値は、アプリケーションiの要求発生量Riである。さらに、図15では、サーバjの収容量c(j)が示されている。サーバjの収容量c(j)の初期値は、全アプリケーションの要求量の総量をコントローラの台数で割って得られる収容量Cである。直接比率a(i,j)、要求量r(i)の初期値Ri、サーバの収容量c(j)の初期値Cは、それぞれ、図7、図8、図9に示される例と同じ値である。
まず、制御部15は、最も高い直接比率a(2,2)(=3/4)の、DC#2制御アプリケーションとサーバ2との組合せを選択し、サーバ2に、サーバ2が収容できるだけのDC#2制御アプリケーションの要求量を割り当てる。図15では、サーバ2の収容量c(2)は35で、DC#2制御アプリケーションの要求量r(2)は20であるので、サーバ2にDC#2制御アプリケーションの要求量r(2)=20すべてが割り当てられる。DC#2制御アプリケーションの要求量r(2)は、20から0に書き換えらえる。DC#2制御アプリケーションの要求量r(2)が0になったので、DC#2制御アプリケーションについての処理は終了する。
次に、制御部15は、2番目に高い直接比率a(1,1)(=2/3)の、DC#1制御アプリケーションとサーバ1との組合せを選択し、サーバ1に、サーバ1が収容できるだけのDC#1制御アプリケーションの要求量を割り当てる。図15では、サーバ1の収容量c(1)は35で、DC#1制御アプリケーションの要求量r(1)は40であるので、サーバ1には、サーバ1の収容量c(1)の35までDC#1制御アプリケーションの要求量が割り当てられる。DC#1制御アプリケーションの要求量c(1)は、40から5に書き換えらえる。サーバ1には収容量の上限までDC#1制御アプリケーションの要求が割り当てられているので、以降、サーバ1については、処理対象から除外される。
次に、制御部15は、直接比率a(3,2)(=1/2)の、WAN制御アプリケーションとサーバ2との組合せを選択し、サーバ2に、サーバ2が収容できるだけのWAN制御アプリケーションの要求量を割り当てる。サーバ2にはすでにDC#2制御アプリケー
ションの要求が20割り当てられているので、サーバ2の収容量c(2)は15である。WAN制御アプリケーションの要求量r(3)は10であるので、サーバ2にWAN制御アプリケーションの要求量r(3)=10すべてが割り当てられる。WAN制御アプリケーションの要求量r(3)は、10から0に書き換えらえる。WAN制御アプリケーションの要求量r(3)が0になったので、WAN制御アプリケーションについての処理は終了する。
次に、制御部15は、直接比率a(1,2)(=1/3)の、DC#1制御アプリケーションとサーバ2との組合せを選択し、サーバ2に、サーバ2が収容できるだけのDC#1制御アプリケーションの要求量を割り当てる。サーバ2にはすでにDC#2制御アプリケーションの要求が20と、WAN制御アプリケーションの要求が10とが割り当てられているので、サーバ2の収容量c(2)は5である。図15では、サーバ2の収容量c(2)は5で、DC#1制御アプリケーションの要求量r(1)は5であるので、サーバ2にDC#1制御アプリケーションの残りの要求量r(1)=5すべてが割り当てられる。DC#1制御アプリケーションの要求量r(1)は、5から0に書き換えらえる。DC#1制御アプリケーションの要求量r(1)が0になり、すべてのアプリケーションの要求量が0になったので、処理が終了する。
図15での、各アプリケーションについて各サーバへ割り当てられる要求量の割合は、第1実施形態の線形計画法を用いた場合の結果と同じになる(図10参照)。
図16は、第2実施形態に係るサーバ1の制御部15の、負荷分散装置3のラウンドロビンの重みの決定処理のフローチャートの一例である。図16に示される処理は、サーバ1の制御部15に、サーバ1及びサーバ2の要求量及びメッセージ量の情報が入力される周期と同じ周期で繰り返し実行される。図16に示される処理の実行主体は、CPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
OP11では、制御部15は、サーバとアプリケーションとの組合せごとの、要求量、直接メッセージ量、間接メッセージ量、を情報収集部14から取得する。
OP12では、制御部15は、サーバj上のアプリケーションiにおける直接比率a(i,j)、アプリケーションiの要求量r(i)の初期値Ri、サーバjの収容量C(j)の初期値Cを求める。それぞれの求め方は、第1実施形態と同様である。
OP13では、制御部15は、サーバj上のアプリケーションiに割り当てられる要求量x(i,j)、サーバj上のアプリケーションiに対応したフラグf(i,j)を、それぞれ、0で初期化する。サーバj上のアプリケーションiに対応したフラグf(i,j)は、0である場合には未処理、1である場合には処理済みであることが示される。
OP14では、制御部15は、アプリケーションiの要求量r(i)がすべて0であるか否かを判定する。アプリケーションiの要求量r(i)がすべて0である場合には(OP14:YES)、図16に示されている処理が終了する。アプリケーションiの要求量r(i)のいずれかが0でない場合には(OP14:NO)、処理がOP15に進む。
OP15では、制御部15は、フラグf(i,j)が0である、アプリケーションiとサーバjとの組合せのうち、直接比率a(i,j)が最大のアプリケーションiとサーバjとを求める。OP15で求められたアプリケーションi、サーバjを、それぞれ、以降、アプリケーションii、サーバjjと表記する。
OP16では、制御部15は、アプリケーションiiの要求量r(ii)、サーバjj
の収容量c(jj)、サーバjj上のアプリケーションiiに割り当てられる要求量x(ii,jj)を更新する。mは、r(ii)とc(jj)のうちの小さい方の値である。
アプリケーションiiの要求量r(ii)は、r(ii)からmを差し引いた値に更新される。サーバjj上のアプリケーションiiに割り当てられる要求量x(ii,jj)は、x(ii,jj)からmを差し引いた値に更新される。サーバjj上のアプリケーションiiに割り当てられる要求量x(ii,jj)は、x(ii,jj)にmを加算した値に更新される。
OP17では、制御部15は、アプリケーションiiの要求量r(ii)が0となるアプリケーションiiについて、全サーバjjのフラグf(ii,j)(jは全サーバ)を0にする。アプリケーションiiの要求量r(ii)が0とならない場合には、OP17の処理は省略される。
OP18では、制御部15は、サーバjjの収容量c(jj)が0となるサーバjjについて、全アプリケーションiiのフラグf(i,jj)(iは全サーバ)を0にする。サーバjjの収容量c(jj)が0とならない場合には、OP18の処理は省略される。その後、処理がOP14に進み、OP14からの処理が繰り返し実行される。
第2実施形態では、ヒューリスティックアルゴリズムによって、各アプリケーションについて、各サーバに割り当てられる要求量が決定される。その結果は、線形計画法で各アプリケーションについて、各サーバに割り当てられる要求量が求められる場合と同じである。したがって、第2実施形態によっても、サーバ間の処理負荷を分散させつつ、コントローラ間のメッセージの転送を低減させることができる。
また、ヒューリスティックアルゴリズムを用いることによって、より高速に、各アプリケーションについて、各サーバに割り当てられる要求量を求めることができる。
<第3実施形態>
第1実施形態では、線形計画問題の制約条件の一つであるサーバの収容量Cは、全アプリケーションの要求量の総和をコントローラ台数で割った、サーバ間で均等になるような値の定数である。また、第2実施形態においても、サーバjの収容量c(j)の初期値は、全アプリケーションの要求量をコントローラ台数で割った、サーバ間で均等な値である。第3実施形態では、サーバの収容量について、許容範囲を設定する。なお、第3実施形態では、第1実施形態、第2実施形態と共通する説明については、省略される。第3実施形態は、システム構成、ハードウェア構成、および、機能構成は、第1実施形態と同じであることを想定する。
第3実施形態のサーバの収容量の制約条件は以下の通りである。
Figure 2017215933
αは誤差の許容範囲を表す係数である。なお、誤差の表現は、Cに対する倍率で指定する方法に限られず、例えば、Cに誤差の許容範囲αを加算又は減算して表現してもよい。
図17は、第3実施形態に係るサーバjの収容量Cjの一例を示す図である。図17の前提は、第1実施形態の具体例と同じである。例えば、サーバ1の収容量C1は40、サ
ーバ2の収容量C2は35と求められる。
図18は、図17のサーバjの収容量Cjの値の設定について、線形計画法で算出された、サーバj上のアプリケーションiに割り当てられる要求量Xijの値の一例を示す図である。
図19は、図18のサーバj上のアプリケーションiに割り当てられる要求量Xijの値に対応する、負荷分散装置3のラウンドロビンの重みの一例を示す図である。
図20は、各アプリケーションの要求量の状態が同条件の場合の、図19で示される重みWijが用いられて、各アプリケーションの要求がサーバ1とサーバ2とに振り分けられた場合の、サーバ1とサーバ2とのメッセージ量の一例を示す図である。
図19で示される重みWijが用いられた場合では、サーバ1における全アプリケーションの間接メッセージの量の合計は40、サーバ2における全アプリケーションの間接メッセージの量の合計は30である。具体例では、サーバ1とサーバ2との間接メッセージ量の合計は、30+30=70である。例えば、図13に示される比較例の計測結果と比較すると、比較例の計測結果での間接メッセージ量の合計は、110であるので、コントローラ間で転送されるメッセージ量が削減されていることが分かる。
したがって、第3実施形態によれば、サーバの収容量に誤差の許容範囲を持たせることによって、より効率よく、コントローラ間で転送されるメッセージ(間接メッセージ)の量を低減できる。
また、第3実施形態では、第1実施形態の線形計画法による例が説明されたが、第2実施形態のヒューリスティックアルゴリズムを用いる場合にも第3実施形態で説明された技術を適用可能である。
<第3実施形態の変形例>
サーバ間の性能差が事前に判明している場合には、サーバ間の性能差に応じて収容量Cjを変化させてもよい。サーバ間の性能差に応じて収容量Cjを変化させる場合には、サーバの収容量の制約条件は以下のようになる。
Figure 2017215933
αjは、サーバjの性能を表す係数である。最も性能の低いサーバjの係数αjの値が1に設定される。なお、サーバ間の性能差に応じて収容量Cjを変化させる場合のサーバの収容量の制約条件は、サーバの収容量Cに対する倍率で指定する方法に限定されない。例えば、サーバ間の性能差に応じて収容量Cjを変化させる場合のサーバの収容量の制約条件は、サーバの収容量Cに対する加算又は減算で表現されてもよい。
<第4実施形態>
第1実施形態、第2実施形態、第3実施形態では、負荷分散装置3のラウンドロビンの重みWijが0と算出されたアプリケーションiのインスタンスは、要求が入力されないにもかかわらず、サーバj上で動作し続ける。要求が入力されないアプリケーションiのサーバj上のインスタンスによって、サーバj上のリソースが消費される。
第4実施形態では、算出された負荷分散装置3のラウンドロビンの重みWijが所定の
閾値δ未満であるサーバj上のアプリケーションiのインスタンスについては、動作が停止される。第4実施形態では、第1実施形態、第2実施形態、第3実施形態と共通する説明は省略される。第4実施形態では、システム構成、ハードウェア構成、及び、機能構成は、第1実施形態と同じものが想定される。
例えば、図11で示される例の負荷分散装置3のラウンドロビンの重みWijが取得され、閾値δ=0.01である場合には、制御部15は、サーバ1上のDC#2制御アプリケーションとWAN制御アプリケーションとのインスタンスの動作の停止を判定する。制御部15は、重み通知部17を通じて、重みWijとともに、サーバ1上のDC#2制御アプリケーションとWAN制御アプリケーションとのインスタンスの動作の停止を、負荷分散装置3に通知する。
図21は、第4実施形態に係る制御部15の処理の、負荷分散装置3のラウンドロビンの重みの決定処理のフローチャートの一例である。図21に示される処理は、サーバ1の制御部15に、サーバ1及びサーバ2の要求量及びメッセージ量の情報が入力される周期と同じ周期で繰り返し実行される。図21に示される処理の実行主体は、CPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
OP21では、制御部15は、サーバとアプリケーションとの組合せごとの、要求量、直接メッセージ量、間接メッセージ量、を情報収集部14から取得する。
OP22では、制御部15は、サーバとアプリケーションとの組合せごとの直接比率Aijを求める。OP23では、制御部15は、アプリケーションごとに発生要求量Riを求める。OP24では、制御部15は、サーバの収容量Cを求める。OP25では、制御部15は、線形計画問題を解く。OP26では、制御部15は、線形計画問題を解いて得られた各アプリケーションの各サーバへ割り当てる要求量から、各アプリケーションについて、各サーバへ割り当てられる要求の割合を、負荷分散装置3のラウンドロビンの重みWijとして、算出する。
OP27では、制御部15は、閾値δ未満の重みWijがあるか否かを判定する。閾値δ未満の重みWijがある場合には(OP27:YES)、処理がOP28に進む。閾値δ未満の重みWijがない場合には(OP27:NO)、処理がOP29に進む。
OP28では、制御部15は、閾値δ未満の重みWijに対応するサーバj上のアプリケーションiのインスタンスの停止を負荷分散装置3に通知する。
OP29では、制御部15は、ラウンドロビンの重みWijを負荷分散装置3に通知する。その後、図21に示される処理が終了する。
第4実施形態では、算出された負荷分散装置3のラウンドロビンの重みWijが閾値δ未満である場合には、該当のサーバj上のアプリケーションiのインスタンスの動作が停止される。これによって、サーバjのリソースの消費を低減することができる。
なお、第4実施形態では、第1実施形態に対して適用する場合について説明されたが、これに限定されず、第4実施形態で説明された技術は、第2実施形態、第3実施形態にも適用可能である。
<第5実施形態>
第5実施形態では、各アプリケーションの要求は、各アプリケーションについて直接比率が最も高いサーバに割り当てられるように、負荷分散装置3のラウンドロビンの重みが
決定される。
図22は、第5実施形態に係る各アプリケーションについて、直接比率が最も高いサーバの一例を示す図である。図22に示される図は、各アプリケーションについて、各セーバの直接比率が図7に示される値である場合の例である。制御部15は、各アプリケーションについて、各サーバの直接比率を算出すると、各アプリケーションについて、直接比率が最も高いサーバを選択する。直接比率が最も高いサーバが複数存在する場合には、例えば、制御部15は、ランダムにいずれかのサーバを選択する。
図7において、DC#1制御アプリケーションで直接比率が最も高いのは、サーバ1であるので、図22ではサーバ1が選択されている。図7において、DC#2制御アプリケーションで直接比率が最も高いのは、サーバ2であるので、図22ではサーバ2が選択されている。図7において、WAN制御アプリケーションでは、サーバ1、サーバ2でともに直接比率1/2と同じ値であるので、図22では、ランダムに選択された結果、サーバ1が選択されている。
したがって、図22では、DC#1制御アプリケーションの要求はすべてサーバ1に割り振られることが示される。DC#2制御アプリケーションの要求はすべてサーバ2に割り振られることが示される。WAN制御アプリケーションの要求はすべてサーバ1に割り振られることが示される。
図23は、各アプリケーションの要求量の状態が同条件の場合の、比較例でのサーバ1とサーバ2とのメッセージ量と、各アプリケーションについて、図22で示されるサーバに要求が振り分けられた場合の、サーバ1とサーバ2とのメッセージ量の一例を示す図である。図23に示される比較例は、図13に示される比較例と同じ、要求が、サーバ1とサーバ2との間で均等に振り分けられた場合の例である。
各アプリケーションについて、図22で示されるサーバに要求が割り振られた場合では、サーバ1における全アプリケーションの間接メッセージの量の合計は50、サーバ2における全アプリケーションの間接メッセージの量の合計は20である。具体例では、サーバ1とサーバ2との間接メッセージ量の合計は、50+20=70である。比較例のサーバ1とサーバ2との間接メッセージ量の合計は、110であるので、第5実施形態では、コントローラ間のメッセージの転送が低減されていることが示されている。
したがって、第5実施形態によれば、各アプリケーションについて、直接比率が最も高いサーバにすべての要求を割り当てる、コントローラ間で転送されるメッセージ(間接メッセージ)の量を低減できる。
<その他>
負荷分散装置3のラウンドロビンの重みを、分散型通信制御システム100全体での、各コントローラがマスタとなっているスイッチの数の割合としてもよい。この場合には、例えば、制御部15は、マスタ情報から、各サーバについて、マスタとなっているスイッチの割合を算出し、算出した割合を負荷分散装置3に通知する。これによって、マスタとなっているスイッチの数が多いコントローラほどより多くの要求が振り分けられるようになる。また、この場合には、アプリケーションが設定対象とするスイッチのマスタであるコントローラの偏りは考慮されない。
<第6実施形態>
第6実施形態では、スイッチ9のマスタとなるコントローラを他のコントローラに変更させることによって、アプリケーションの設定領域内のスイッチ9において、コントロー
ラがマスタを担当するスイッチ9の数に偏りを生じさせる。第6実施形態では、第1〜第5実施形態と重複する説明は省略される。
例えば、図4に示される分散型通信制御システム100において、WAN制御アプリケーションの設定領域内には、サーバ1をマスタとするスイッチが2台、サーバ2をマスタとするスイッチが2台存在している。この場合、WAN制御アプリケーションの設定領域内では、サーバ1とサーバ2との間でコントローラがマスタを担当するスイッチの数に偏りがない。
コントローラがマスタを担当するスイッチ9の数に偏りがない場合には、負荷分散装置3のWAN制御アプリケーションについてのラウンドロビンの重みがどのように設定されても、コントローラ間のメッセージ量の削減効果が小さい。なぜなら、例えば、各スイッチ9へメッセージが均等に送信されることを想定する場合、ラウンドロビンの重みがどのような値であっても、各コントローラにおいて、振り分けられた要求量に応じたメッセージ量が均等にコントローラ間で分配されるためである。
第6実施形態では、スイッチ群のマスタを特定のコントローラに意図的に偏らせることによって、コントローラ間のメッセージの削減効果を大きくする。ただし、システム内には、複数のアプリケーションが動作している。そのため、第6実施形態では、全てのアプリケーションのコントローラ間メッセージの総量が削減されるように、マスタを変更する対象となるスイッチが決定される。
また、スイッチ9のマスタを変更してコントローラ間メッセージ量が削減されても、特定のコントローラにメッセージの処理が集中してしまうと、当該コントローラの負荷が大きくなる。この場合、システム全体としてのパフォーマンスが低下してしまう可能性がある。したがって、第6実施形態では、コントローラ間の負荷が均等になるように、マスタを変更する対象となるスイッチと当該スイッチの変更後のマスタとが決定される。
具体的には、各コンローラからスイッチ9へ送信されるメッセージ数が均等になるように、さらに、各コントローラに振り分けられる要求量が均等になるように、マスタを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとが決定される。
第6実施形態では、マスタを変更する対象となるスイッチと当該スイッチの変更後のマスタとの決定を、サーバ1が行う。ただし、マスタを変更する対象のスイッチと当該スイッチの変更後のマスタとの決定を行うのは、サーバ1に限定されず、サーバ2、負荷分散装置3のいずれが行ってもよい。
第6実施形態では、分散型通信制御システム100のシステム構成、サーバ1のハードウェア構成及び機能構成は、第1実施形態と同様である。ただし、第6実施形態で説明される技術は、第2〜第5実施形態のサーバ1にも適用可能である。
第6実施形態では、サーバ1の制御部15は、マスタを変更する対象となるスイッチ9と、当該スイッチ9の変更後のマスタとを決定する。具体的には、制御部15は、システム内の全スイッチからマスタの変更対象となる1又は複数のスイッチ9と変更後のマスタとの組み合わせの事例全てについて、負荷分散装置3のラウンドロビンの重みWijを求め、求めた重みWijに従った各アプリケーションの要求の振り分けのシミュレーションを行う。シミュレーションの結果として、コントローラ間メッセージ量、コントローラ間におけるコンローラからスイッチ9への送信メッセージ量の偏りが取得される。
シミュレーションは、所定の期間内に発生した、各アプリケーションの、発生要求量、
スイッチ9へ送信されたメッセージの情報に基づいて行われる。シミュレーションに用いられる上述の情報は、他のコントローラ及び情報収集部14によって収集される。
制御部15は、シミュレーション結果から、コントローラからスイッチ9への送信メッセージ量のコントローラ間での偏りが所定の閾値より小さい事例のうち、コントローラ間メッセージ量が少ない事例を選択する。制御部15は、選択した事例に基づいて、マスタを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとを決定する。マスタを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとを決定する処理を、以降、マスタ変更決定処理と称する。
<マスタ変更決定処理の詳細>
図27は、第6実施形態に係る具体例において想定される分散型通信制御システム100Aの一例を示す図である。具体例に係る分散型通信制御システム100Aには、2台のコントローラ#1、コントローラ#2が含まれる。また、分散型通信制御システム100Aには、7台のスイッチ#1〜#7が含まれる。
コントローラ#1、コントローラ#2は、それぞれ、サーバ1、サーバ2に存在するインスタンスであるとする。また、コントローラ#1、コントローラ#2を搭載するサーバ1、サーバ2には、ともに、アプリケーション#1、アプリケーション#2のインスタンスが存在することとする。以降、サーバとコントローラとの文言を区別することなく用いる。例えば、コントローラ#1と称する場合には、サーバ1を示すこととする。サーバ1と称する場合には、コントローラ#1が示されることとする。
また、第6実施形態の具体例では、サーバ1、すなわち、コントローラ#1を搭載するサーバ1が、マスタ変更決定処理を行うことを想定する。マスタ変更決定処理は、マスタであるコントローラを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとを決定する処理である。ただし、マスタ変更決定処理を実行する装置は、サーバ1に限定されず、サーバ2、負荷分散装置3であってもよい。
図28は、第6実施形態の具体例に係るマスタ情報の一例である。マスタ情報には、分散型通信制御システム100A内の各スイッチのマスタとなるコントローラの情報が格納されている。マスタ情報は、サーバ1のマスタ情報記憶部18Cに格納されている。マスタ情報は、分散型通信制御システム100Aの管理者によって予め設定されてもよいし、コントローラ間のネゴシエーションによって取得されてもよい。
図28中では、コントローラ#1、コントローラ#2は、それぞれ、C#1、C#2と表記されている。スイッチ#1〜スイッチ#7は、それぞれ、SW#1〜SW#7と表記されている。以降の図においても同様である。
具体例に係る分散型通信制御システム100Aでは、コントローラ#1をマスタとするスイッチは、スイッチ#1、#2、#5、#6である。コントローラ#2をマスタとするスイッチ9は、スイッチ#3、#4、#7である。
具体例に係るマスタ変更決定処理において、分散型通信制御システム100Aにおいてマスタが変更されるスイッチ数を1台に限定することを前提とする。ただし、マスタが変更されるスイッチ数は1台に限定されず、複数台のスイッチについてマスタが変更されるようにしてもよい。
(ステップ1)
サーバ1の制御部15は、現在のマスタ情報に基づいて、マスタの変更の対象となるス
イッチの選択と選択されたスイッチの変更後のマスタとの組み合わせの事例全てについて、各事例を示すマスタ変更情報を生成する。具体例では、コントローラが2台、スイッチが7台、マスタが変更されるスイッチは1台であることが前提であるので、マスタ変更情報は、(スイッチ数)×(コントローラ数−1)=7×1=7個作成される。マスタ変更情報は「事例情報」の一例である。ステップ1の処理は、「前記複数の宛先装置から、1又は複数の宛先装置を選択する事例を示す事例情報を複数生成」することの一例である。
図29は、第6実施形態の具体例に係るマスタ変更情報の一例を示す図である。マスタ変更情報は、マスタとなるコントローラを変更する対象となるスイッチ9の選択と当該選択されたスイッチ9の変更後のマスタとの組み合わせの事例に関する情報である。図29に示される例では、マスタ変更情報には、マスタ変更情報の識別情報、マスタを変更する対象となるスイッチ9の識別情報と、当該スイッチ9の変更後のマスタとなるコントローラの識別情報とが含まれている。
図29に示される例では、マスタ変更情報#1では、マスタ変更対象のスイッチ9はスイッチ#1であり、スイッチ#1の変更後のマスタはコントローラ#2である。マスタ変更情報#2では、マスタ変更対象のスイッチ9はスイッチ#2であり、スイッチ#2の変更後のマスタはコントローラ#2である。マスタ変更情報#3では、マスタ変更対象のスイッチ9はスイッチ#3であり、スイッチ#3の変更後のマスタはコントローラ#1である。マスタ変更情報#4では、マスタ変更対象のスイッチ9はスイッチ#4であり、スイッチ#4の変更後のマスタはコントローラ#1である。マスタ変更情報#5では、マスタ変更対象のスイッチ9はスイッチ#5であり、スイッチ#5の変更後のマスタはコントローラ#2である。マスタ変更情報#6では、マスタ変更対象のスイッチ9はスイッチ#6であり、スイッチ#6の変更後のマスタはコントローラ#2である。マスタ変更情報#7では、マスタ変更対象のスイッチ9はスイッチ#7であり、スイッチ#7の変更後のマスタはコントローラ#1である。
例えば、コントローラが2台、マスタ変更対象のスイッチの数が最大で2台と設定されている場合には、図29に示されるマスタ変更情報に加えて、7台から2台のスイッチ9
を選ぶ組合せの数(21通り)のマスタ変更情報が作成される。なお、マスタ変更情報は、一時的に主記憶装置102内の記憶領域に保持され、マスタ変更決定処理が終了すると、削除される。
(ステップ2)
サーバ1の制御部15は、ステップ1で求めたマスタ変更情報全てについて、マスタ変更情報が適用された場合、すなわち、マスタ変更対象のスイッチ9のマスタをマスタ変更情報が示すコントローラに変更した場合のアプリケーションの要求の振り分けのシミュレーションを行う。制御部15は、シミュレーションの結果として、例えば、コントローラ間メッセージ量と、コントローラからスイッチ9への送信メッセージ量の分散値とを取得する。シミュレーションの手順は以下の通りである。コントローラからスイッチ9への送信メッセージ量の分散値、標準偏差、最大値と最小値との差等のばらつきを示す指標値は、「前記複数の制御装置それぞれから制御対象とする複数の宛先装置へ送信されるメッセージ量の前記複数の制御装置間でのばらつきを示す指標値」の一例である。
(ステップ2−1)
サーバ1の制御部15は、スイッチリストを取得する。スイッチリストは、アプリケーションが所定期間内に設定したスイッチのリストである。アプリケーションが設定したスイッチとは、例えば、アプリケーションの要求に応じてコントローラによって作成されたメッセージの送信先のスイッチである。または、アプリケーションが設定したスイッチとは、例えば、アプリケーションの要求に応じてコントローラによって作成されたメッセー
ジを受信したスイッチである。
図30は、第6実施形態の具体例に係るスイッチリストの一例を示す図である。具体例ではアプリケーションは2つであることが想定されているので、図30では、アプリケーション#1とアプリケーション#2とのスイッチリストが示されている。
スイッチリストに含まれるスイッチの識別情報は、該当するアプリケーションの要求に応じてコントローラで作成されてスイッチ9に送信された1つのメッセージにつき1つ含まれる。スイッチリストに含まれるスイッチの識別情報は、該当するアプリケーションの要求に応じてコントローラで作成されたメッセージの送信先のスイッチの識別情報である。例えば、図30に示される例において、アプリケーション#1のスイッチリストには、SW#1、SW#1、SW#5、SW#4...が格納されている。これは、アプリケーション#1において、SW#1に送信されたメッセージ、SW#1に送信されたメッセージ、SW#5に送信されたメッセージ、SW#4に送信されたメッセージが発生したことを示す。
各アプリケーションのスイッチリストに含まれるメッセージの送信先のスイッチの情報のうち、自コントローラに関するメッセージの送信先のスイッチの情報は、例えば、メッセージ量記憶部18Bに蓄積されている。自コントローラに関するメッセージの送信先のスイッチの情報とは、自コントローラが送信したメッセージの送信先のスイッチ9の情報である。情報収集部14は、メッセージ量記憶部18Bから、自コントローラに関するメッセージの送信先のスイッチの情報を読み出し、制御部15に出力する。
各アプリケーションのメッセージの送信先のスイッチの情報のうち、他のコントローラに関するメッセージの送信先のスイッチの情報は、例えば、各コントローラから計測結果受信部16を通じて受信されることによって取得される。他のコントローラに関するメッセージの送信先のスイッチの情報は、他コントローラが送信したメッセージの送信先のスイッチ9の情報である。なお、スイッチリストは、一時的に主記憶装置102内の記憶領域に保持され、マスタ変更決定処理が終了すると、削除される。
スイッチリストに含まれるスイッチの識別情報は、1つのメッセージの送信先を示す情報であり、1つのメッセージに対応している。したがって、スイッチリストには、該当するアプリケーションの要求に応じて作成されたメッセージに関する情報が含まれている、と言ってもよい。そのため、以降、スイッチリストに含まれる要素(スイッチの識別情報)を、メッセージと表現することもある。
(ステップ2−2)
サーバ1の制御部15は、アプリケーションiとコントローラjとの全ての組合せについて、直接比率Aijを求める。第6実施形態では、直接比率Aijは、第1実施形態と同様にして求められる。
図31は、第6実施形態の具体例に係るアプリケーションiのコントローラjにおける直接比率Aijの一例を示す図である。具体例では、コントローラは2台、アプリケーションは2つであるので、直接比率Aijは2×2の行例となる。
図31に示される例では、アプリケーション#1のコントローラ#1における直接比率A11は、1/4である。アプリケーション#1のコントローラ#2における直接比率A12は、3/4である。アプリケーション#2のコントローラ#1における直接比率A21は、3/5である。アプリケーション#2のコントローラ#2における直接比率A22は、2/5である。
(ステップ2−3)
サーバ1の制御部15は、所定期間内の各アプリケーションの発生要求量と直接比率Aijとに基づいて、コントローラ間メッセージ量を最小とする負荷分散装置3のラウンドロビンの重みWijを求める。所定期間内の各アプリケーションの発生要求量は、情報収集部14から取得される。負荷分散装置3のラウンドロビンの重みWijは、第1実施形態又は第2実施形態と同様にして求められる。ステップ2−3の処理は、「生成した前記複数の事例情報のそれぞれについて、選択された宛先装置を制御対象とする制御装置を他の制御装置に変更した場合について、前記重みを決定」することの一例である。
図32は、第6実施形態の具体例に係るアプリケーションの発生要求量の一例を示す図である。具体例では、アプリケーション#1の発生要求量を20とする。アプリケーション#2の発生要求量を10とする。
図33は、第6実施形態の具体例に係る負荷分散装置3のラウンドロビンの重みWijの一例である。具体例では、アプリケーション#1に関して、コントローラ#1への重みW11は1/4、コントローラ#2への重みW12は3/4である。アプリケーション#2に関して、コントローラ#1への重みW21は1、コントローラ#2への重みW22は0である。
(ステップ2−4)
サーバ1の制御部15は、スイッチリスト、負荷分散装置3のラウンドロビンの重みWijを用いて、各マスタ変更情報が適用された場合について、各アプリケーションからの要求の振り分けのシミュレーションを行う。例えば、シミュレーションは、以下のように行われる。
制御部15は、アプリケーションiについて、スイッチリスト内の対象メッセージの送信先であるスイッチ9のマスタであるコントローラk(k:0を含まない正の整数)を、対象のマスタ変更情報とマスタ情報とに基づいて取得する。すなわち、対象メッセージの送信先であるスイッチ9のマスタであるコントローラkは、マスタ変更情報を適用した場合の変更後のマスタ情報に基づいて取得される。対象のメッセージは、いずれのコントローラにおいて作成されたとしても、マスタのコントローラkから送信先であるスイッチ9に送信される。したがって、スイッチリスト内の対象メッセージは、コントローラkからスイッチ9への送信メッセージであるので、制御部15は、コントローラからスイッチ9への送信メッセージ量CMikに1をインクリメントする。
制御部15は、アプリケーションiに対するコントローラkのラウンドロビンの重みWikを用いて乱数を発生させ、発生した乱数に基づいて負荷分散装置3の要求の振り分け先となるコントローラjを選択する。
コントローラkとコントローラjとが一致しない場合には、当該メッセージの作成要因となった要求は負荷分散装置3によってコントローラk以外のコントローラに振り分けられることが示される。対象メッセージのマスタはコントローラkであるので、対象メッセージは振分先のコントローラj(j≠k)で作成されてマスタのコントローラkに送信され、マスタのコントローラkから送信先のスイッチ9に送信されることになる。したがって、コントローラkとコントローラjとが一致しない場合には、対象メッセージはコントローラ間メッセージとなるので、制御部15は、コントローラ間メッセージ量interMsgsに1をインクリメントする。
なお、コントローラkとコントローラjとが一致する場合には、対象メッセージの作成
要因となる要求は負荷分散装置3によってコントローラkに振り分けられることが示される。対象メッセージのマスタはコントローラkであるので、対象メッセージは振分先のコントローラj(j=k)によって作成されて送信先のスイッチ9に送信されることになる。この場合には、コントローラ間メッセージは発生しないので、コントローラ間メッセージ量interMsgsは更新されない。
サーバ1の制御部15は、上記の処理を、各アプリケーションのスイッチリストに含まれる全てのメッセージについて行う。各アプリケーションのスイッチリストに含まれる全てのメッセージについて上記の処理が行われると、制御部15は、コントローラkからスイッチ9への送信メッセージ量CMikに基づいて、コントローラからスイッチ9への送信メッセージ量の分散値を求める。分散値の求め方は、周知の方法のいずれであってもよい。
なお、コントローラからスイッチ9への送信メッセージ量の偏りを示す値は、分散値に限定されない。コントローラ間における直接送信されるメッセージ量の偏りを示す値として、例えば、標準偏差、最大値と最小値との差等が用いられてもよい。
制御部15は、各マスタ変更情報が適用された全ての場合について、シミュレーションが行われ、コントローラ間メッセージ量interMsgsとコントローラからスイッチ9への送信メッセージ量の分散値とを求める。ステップ2−4の処理は、「決定した重みに基づいて前記所定の処理の要求の振り分けをシミュレートして、前記複数の制御装置間で転送されるメッセージ量と、前記複数の制御装置それぞれから制御対象とする複数の宛先装置へ送信されるメッセージ量の前記複数の制御装置間でのばらつきを示す指標値と、を取得」することの一例である。
(ステップ3)
サーバ1の制御部15は、シミュレーション結果に基づいて、採用するマスタ変更情報を選択する。具体的には、例えば、制御部15は、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であるマスタ変更情報のうち、最もコントローラ間メッセージ量の少ないマスタ変更情報を採用する。採用するマスタ変更情報が決定すると、当該マスタ変更情報に含まれるマスタ変更対象のスイッチ9が、マスタ変更対象のスイッチとして選択される。
コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であるマスタ変更情報のうち、最もコントローラ間メッセージ量の少ないマスタ変更情報を採用することは、「前記複数の制御装置間で転送されるメッセージ量が削減され、且つ、前記複数の制御装置それぞれから前記制御対象とする複数の宛先装置へ送信されるメッセージ量が前記複数の制御装置間で均等であることを含む条件」の一例である。コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であることは、「前記複数の制御装置それぞれから前記制御対象とする複数の宛先装置へ送信されるメッセージ量が前記複数の制御装置間で均等であること」の一例である。
ステップ3の処理は、「前記ばらつきを示す指標値が所定の閾値以下である事例情報のうち最も制御装置間で転送されるメッセージ量が少ない事例情報を抽出し、抽出された事例情報において選択された1又は複数の宛先装置を制御対象とする制御装置を他の制御装置に変更することを判定する」ことの一例である。
図34は、第6実施形態の具体例に係るシミュレーション結果の一例を示す図である。例えば、コントローラからスイッチ9への送信メッセージ量の分散値の閾値が5であるとする。
図34に示される例の場合、制御部15は、コントローラからスイッチ9への送信メッセージ量の分散値が閾値(5)以下のマスタ変更情報#1、#2、#5、#6、#7を抽出する。次に、制御部15は、マスタ変更情報#1、#2、#5、#6、#7のうち、コントローラ間メッセージ量が10で最も少ないマスタ変更情報#2を選択する。すなわち、制御部15は、マスタを変更するスイッチをスイッチ#2に決定する。
図35は、第6実施形態の具体例に係るマスタ変更情報#2を適用後のマスタ情報の一例を示す図である。マスタ変更情報#2は、スイッチ#2のマスタをコントローラ#1からコントローラ#2へと変更することを示す。したがって、制御部15は、マスタ情報記憶部18C内のマスタ情報を、スイッチ#2のマスタをコントローラ#1からコントローラ#2へと変更したものに更新する。
また、制御部15は、例えば、他のコントローラにマスタ変更情報#2を通知する。マスタ変更情報は、例えば、図3には示されていない機能構成要素である、コントローラ間インタフェース部を通じて他のコントローラに通知される。マスタ変更情報を受信したコントローラは、マスタ変更情報に従って、マスタ情報を更新する。これは、システム内のコントローラ間でマスタ情報の整合性を保つ方法の一例である。
<処理の流れ>
図36は、第6実施形態に係るマスタ変更決定処理のフローチャートの一例である。図36に示される処理は、例えば、所定の周期で実行されてもよいし、所定のイベントの発生を契機に実行されてもよい。図36に示される処理の実行契機となるイベントは、例えば、アプリケーションiについて、コントローラ間で直接比率Aijの偏りが閾値未満となること、である。図36に示される例の実行主体は、サーバ1のCPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
OP31では、制御部15は、マスタを変更するスイッチ9と当該スイッチ9の変更後のマスタとの組合せの全てのパターンについて、マスタ変更情報を生成する。例えば、コントローラが2台で、7台中1台のスイッチ9のマスタを変更する場合には、マスタ変更情報は7つ生成される。コントローラが2台で、7台中2台のスイッチ9のマスタを変更する場合には、マスタ変更情報は21個生成される。
OP32では、制御部15は、全てのマスタ変更情報について、適用した場合のシミュレーションを行う。シミュレーションによって、各マスタ変更情報を適用した場合について、コントローラ間メッセージ量interMsgsとコントローラからスイッチ9への送信メッセージ量の分散値とが取得される。シミュレーションの処理の詳細は後述される。
OP33では、制御部15は、シミュレーション結果から、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下のマスタ変更情報を抽出する。
OP34では、制御部15は、OP33において抽出したマスタ変更情報のうち、コントローラ間メッセージが最も少ないマスタ変更情報を、採用するマスタ変更情報として取得する。制御部15は、取得したマスタ変更情報においてマスタを変更する対象となっているスイッチ9を、マスタ変更対象のスイッチとして決定する。その後、図36に示される処理が終了する。
なお、OP33において、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下のマスタ変更情報が存在しない場合には、いずれのスイッチ9のマスタも変更
しないことが判定されてもよい。または、コントローラからスイッチ9への送信メッセージ量の分散値が最も小さいマスタ変更情報が選択されてもよい。
なお、制御部15は、OP33、OP34の処理に代えて、以下の処理を実行してもよい。例えば、制御部15は、シミュレーション結果から、最もコントローラ間メッセージ量が少ないマスタ変更情報を選択する。次に、制御部15は、選択したマスタ変更情報の、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であるか否かを判定する。
選択したマスタ変更情報の、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下である場合に、制御部15は、選択したマスタ変更情報を採用するマスタ変更情報として取得する。選択したマスタ変更情報の、コントローラからスイッチ9への送信メッセージ量の分散値が閾値より大きい場合には、制御部15は、次にコントローラ間メッセージ量が少ないマスタ変更情報を選択し、同様の処理を行う。
図36のOP31の処理は、マスタ変更決定処理の(ステップ1)に相当する。図36のOP32の処理は、マスタ変更決定処理の(ステップ2)に相当する。図36のOP33、OP34の処理は、マスタ変更決定処理の(ステップ3)に相当する。
図37A及び図37Bは、シミュレーションの処理のフローチャートの一例である。図37A及び図37Bに示される処理は、図36のOP32において実行される処理である。図37A及び図37Bに示される例の実行主体は、サーバ1のCPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。図37A及び図37Bに示される処理は、所定期間に発生したアプリケーションの要求に応じてスイッチ9に送信されるメッセージに基づいて行われる。
OP41では、制御部15は、各アプリケーションについて、スイッチリストを取得する。スイッチリストは、例えば、計測結果受信部16を通じて他のコントローラから受信される情報、及び、メッセージ量記憶部18Bに格納されている情報から取得される。
OP42では、制御部15は、各アプリケーションの発生要求量を取得する。各アプリケーションの発生要求量は、制御部15がアプリケーション要求量記憶部18Aを参照することで取得される。
OP43〜OP50の処理は、各マスタ変更情報について繰り返し実行される。OP43では、制御部15は、全てのアプリケーションi、全てのコントローラjについて、直接比率Aijを取得する。直接比率Aijは、例えば、第1実施形態と同様にして求められる。
OP44では、制御部15は、負荷分散装置3のラウンロビンの重みWijを、全てのアプリケーションi、全てのコントローラjについて、取得する。負荷分散装置3のラウンロビンの重みWijは、第1実施形態〜第5実施形態のいずれかと同様にして求められる。
図37BのOP45〜OP49の処理は、全アプリケーションについて繰り返し行われる。また、図37BのOP45〜OP49の処理は、1つのアプリケーションのスイッチリストに含まれるメッセージの送信先であるスイッチの数分繰り返し実行される。すなわち、図37BのOP45〜OP49の処理は、(1つのアプリケーションのスイッチリストに含まれるメッセージの数)×(アプリケーションの数)×(マスタ変更情報の数)に相当する回数繰り返される。
以降、処理対象のアプリケーションをアプリケーションiとする。アプリケーションiのスイッチリスト内の処理対象のメッセージを、対象メッセージ、と称する。
OP45では、制御部15は、アプリケーションiのスイッチリスト内の対象メッセージの送信先であるスイッチ9のマスタであるコントローラkを、対象のマスタ変更情報とマスタ情報とに基づいて、取得する。すなわち、アプリケーションiのスイッチリスト内の対象メッセージの送信先であるスイッチ9のマスタであるコントローラkは、対象のマスタ変更情報が適用された後のマスタ情報に基づいて求められる。
OP46では、制御部15は、コントローラkからスイッチ9への送信メッセージ量CMikに1を加算して更新する。
OP47では、制御部15は、アプリケーションiに対するコントローラkの重みWikに基づいて乱数を発生させ、発生した乱数に基づいて、対象メッセージの振り分け先となるコントローラjを決定する。
OP48では、制御部15は、対象メッセージのマスタであるコントローラkと、対象メッセージの振り分け先であるコントローラjとが一致するか否かを判定する。コントローラkとコントローラjとが一致する場合には(OP48:YES)、処理が、対象のアプリケーションiのスイッチリスト内の次のメッセージ又は次のアプリケーションについてOP45に、又は、OP50に進む。コントローラkとコントローラjとが一致しない場合には(OP48:NO)、処理がOP49に進む。
OP49では、対象メッセージがコントローラ間メッセージとなることが示されるので、制御部15は、コントローラ間メッセージ量interMsgsに1を加算して更新する。その後、処理が、対象のアプリケーションiのスイッチリスト内の次のメッセージ、又は、次のアプリケーションについて、OP45に、又は、OP50に進む。
1つのマスタ変更情報について、全アプリケーションのスイッチリスト内の全メッセージについて、OP45〜OP49の処理が終了すると、処理がOP50に進む。
OP50では、制御部15は、各コントローラからスイッチ9への送信メッセージ量の分散値を求める。その後、次のマスタ変更情報について処理がOP45に進む。または、全てのマスタ変更情報についての処理が終了した場合には、処理が図36のOP33に進む。
図37AのOP41の処理は、マスタ変更決定処理の(ステップ2−1)に相当する。図37AのOP43の処理は、マスタ変更決定処理の(ステップ2−2)に相当する。図37AのOP42、OP44の処理は、マスタ変更決定処理の(ステップ2−3)に相当する。図37Bの処理は、マスタ変更決定処理の(ステップ2−4)に相当する。
<第6実施形態の作用効果>
第6実施形態では、スイッチ9のマスタを変更させることによって、スイッチ9のマスタを担当するコントローラに偏りを生じさせる。スイッチ9のマスタを担当するコントローラの偏りに応じて、第1〜第5実施形態に係る負荷分散装置3のラウンドロビンの重みWijの決定処理によってラウンドロビンの重みWijが決定される。これによって、コントローラ間メッセージ量の削減効果を向上させることができる。
マスタの変更対象のスイッチ9は、シミュレーションによって、各コントローラからス
イッチ9への送信メッセージ量の偏りが少なく、且つ、コントローラ間メッセージ量が少なくなるように決定される。これによって、分散型通信制御システム100全体の処理効率を向上させることができる。
また、マスタ変更情報を適用した場合の、アプリケーションの要求の振り分けのシミュレーションでは、マスタ変更情報の適用後のマスタ情報に基づいて、負荷分散装置3のラウンドロビンの重みWijが求められる。求められるラウンドロビンの重みWijは、各アプリケーションのコントローラ間メッセージの総量を最小とするように求められる。したがって、第6実施形態によれば、全てのアプリケーションのコントローラ間メッセージの総量が削減されるように、マスタを変更するスイッチが決定される。
<第7実施形態>
第6実施形態では、全てのマスタ変更情報について、マスタ変更情報が適用された場合のシミュレーションが行われる。第7実施形態では、シミュレーションを実行するマスタ変更情報を絞り込むことによって、シミュレーションの処理に係る負荷を削減し、処理を高速化させる。第7実施形態では、第6実施形態と重複する説明は省略される。第7実施形態では、分散型通信システム100のシステム構成、サーバ1のハードウェア構成及び機能構成は、第6実施形態と同様である。
<マスタ変更情報の絞り込み処理>
マスタ変更情報の絞り込み処理は、マスタ変更決定処理における、(ステップ1)のマスタ変更情報の作成の処理の前に実行される処理である。したがって、マスタ変更情報の絞り込み処理は、マスタ変更決定処理における(ステップ1)の処理のサブステップとして説明する。なお、以降、第6実施形態と同様の分散型通信制御システム100Aが想定された具体例とともに説明される。
(ステップ1−1)
サーバ1の制御部15は、全てのアプリケーションとコントローラとの組み合わせについて、直接比率Aijを取得する。なお、直接比率Aijは、例えば、第1実施形態と同様にして取得される。
図38は、第7実施形態の具体例に係るアプリケーションiのコントローラjにおける直接比率Aijの一例を示す図である。第7実施形態の具体例では、コントローラは2台、アプリケーションは2つであるので、直接比率Aijは2×2の行例となる。
図38に示される例では、アプリケーション#1のコントローラ#1における直接比率A11は、1/2である。アプリケーション#1のコントローラ#2における直接比率A12は、1/2である。アプリケーション#2のコントローラ#1における直接比率A21は、2/3である。アプリケーション#2のコントローラ#2における直接比率A22は、1/3である。
(ステップ1−2)
サーバ1の制御部15は、ステップ1−1で求めた直接比率Aijについて、各アプリケーションについて、分散値を求める。ただし、分散値に限定されず、ばらつきを表す指標であればよく、例えば、標準偏差、最大値と最小値との差等が用いられてもよい。
図39は、第7実施形態の具体例に係る各アプリケーションの直接比率の分散値の一例を示す図である。図39に示される各アプリケーションの直接比率の分散値は、図38に示される例の直接比率Aijに基づいて求められたものである。
図39に示される例では、アプリケーション#1の直接比率の分散値は、0である。アプリケーション#2の直接比率の分散値は、約0.28である。
(ステップ1−3)
サーバ1の制御部15は、直接比率の分散値が閾値以下のアプリケーションを抽出する。直接比率の分散値が小さいほど、アプリケーションの設定領域内におけるスイッチ9がマスタとするコントローラの偏りが小さいことが示される。そのため、直接比率の分散値が閾値以下のアプリケーションに、スイッチ9がマスタとするコントローラに偏りを生じさせることで、コントローラ間メッセージの削減により大きな効果が得られる。
例えば、アプリケーションの直接比率の分散値が図39に示される例の値であり、閾値が0.1である場合には、制御部15は、アプリケーション#1を抽出する。ステップ1−1〜1−3の処理は、「前記複数種類の所定の処理から、前記複数の制御装置それぞれから前記制御対象の複数の宛先装置に送信されたメッセージ量が前記複数の制御装置間で均等である第1の種類を取得」することの一例である。アプリケーションの直接比率の分散値が閾値以下であることは、「前記複数の制御装置それぞれから前記制御対象の複数の宛先装置に送信されたメッセージ量が前記複数の制御装置間で均等である」ことの一例である。
(ステップ1−4)
サーバ1の制御部15は、ステップ1−3で抽出したアプリケーションについて、最も送信メッセージ量が多いスイッチ9を抽出する。各スイッチ9への所定のアプリケーションの送信メッセージ量は、当該所定のアプリケーションのスイッチリストに含まれるスイッチの識別情報を集計することで取得される。そのため、第7実施形態では、ステップ1−4の処理より前にスイッチリストの取得が行われる。ステップ1−4の処理は、「前記第1の種類の所定の処理のメッセージの受信メッセージ量の多い上位の1又は複数の宛先装置を取得」することの一例である。
図40は、第7実施形態の具体例に係るアプリケーション#1の各スイッチ9への送信メッセージ量の一例である。図40に示される例では、SW#4への送信メッセージ量が一番多いので、スイッチ#4が抽出される。
(ステップ1−5)
サーバ1の制御部15は、現在のマスタ情報に基づいて、ステップ1−4において抽出したスイッチをマスタの変更対象とするマスタ変更情報を生成する。例えば、図40に示される第7実施形態の具体例では、スイッチ#4が抽出されるので、制御部15は、スイッチ#4のマスタをコントローラ#1(図28参照)からコントローラ#2に変更するマスタ変更情報を作成する。ステップ1−5の処理は、「複数の宛先装置から前記取得した1又は複数の宛先装置を選択する事例情報を生成する」ことの一例である。
これによって、シミュレーションが実行されるマスタ変更情報の数を減らすことができる。なお、具体例では、7台のスイッチ9のうち1台のスイッチ9のマスタを変更することが前提とされているため、ステップ1−4では、最も送信メッセージ量の多いスイッチ9が抽出されるが、これに限られない。例えば、複数台のスイッチ9のマスタを変更する場合には、送信メッセージ量の多い該当数のスイッチ9が抽出されてもよい。ステップ2以降の処理は、第6実施形態と同様である。
図41は、第7実施形態に係るマスタ変更決定処理の一例を示す図である。図41に示される処理は、図36に示される処理同様、例えば、所定の周期で実行されてもよいし、所定のイベントの発生を契機に実行されてもよい。処理の実行契機となるイベントは、例
えば、アプリケーションiについて、コントローラ間で直接比率Aijの偏りが閾値未満となること、である。図41に示される例の実行主体は、サーバ1のCPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
OP60では、制御部15は、各アプリケーションについて、スイッチリストを作成する。
OP61では、制御部15は、コントローラjとアプリケーションiとの全ての組合せについて、直接比率Aijを求める。直接比率Aijの求め方は、例えば、第1実施形態と同様である。
OP62では、制御部15は、各アプリケーションの直接比率の分散値を求める。OP63では、制御部15は、直接比率の分散値が閾値以下のアプリケーションを抽出する。
OP64では、制御部15は、OP63で抽出したアプリケーションの各スイッチ9への送信メッセージ量を取得する。OP65では、制御部15は、送信メッセージ量が最も多いスイッチをマスタ変更対象に設定する。ただし、マスタ変更対象となるスイッチ9の数が複数である場合には、送信メッセージ量の多い上位のスイッチ9が該当数選択される。
OP66では、制御部15は、OP65においてマスタ変更対象に設定されたスイッチ9のマスタを変更するマスタ変更情報を作成する。OP67〜OP69では、OP66で作成されたマスタ変更情報について、図36のOP32〜OP34と同様の処理が行われる。
なお、OP66において作成されるマスタ変更情報が1つであり、当該マスタ変更情報のコントローラからスイッチ9への送信メッセージ量の分散が閾値より大きい場合には、例えば、以下のようにしてもよい。OP65に処理が進み、制御部15は、次に送信メッセージ量が多いスイッチをマスタ変更対象に設定して、マスタ変更情報を作成し(OP66)、当該マスタ変更情報についてシミュレーションを行う。
<第7実施形態の作用効果>
第7実施形態では、マスタが変更されるスイッチの全てのパターンについてではなく、条件を満たすスイッチのマスタが変更されるマスタ変更情報が作成される。これによって、シミュレーションの処理を削減することができ、マスタ変更決定処理を高速化することができる。また、シミュレーションに係るサーバ1の処理負荷を低減することができる。
また、マスタとなるコントローラの偏りが小さいアプリケーションについて、送信メッセージ量が多いスイッチ9がマスタ変更対象として設定されるので、よりコントローラ間メッセージを削減可能なマスタ変更情報を作成することができる。
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピ
ュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コ
ンピュータ等に固定された記録媒体としても利用可能である。
1 サーバ
2 サーバ
3 負荷分散装置
9 スイッチ
11 要求受信部
12 メッセージ転送部
13 スイッチ設定部
14 情報収集部
15 制御部
16 計測結果受信部
17 重み通知部
18A アプリケーション要求量記憶部
18B メッセージ量記憶部
18C マスタ情報記憶部
101 CPU
102 主記憶装置
103 補助記憶装置
104 ネットワークインタフェース

Claims (17)

  1. 複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、要求に応じて所定の処理を実行し、メッセージを生成し、前記メッセージの宛先装置を制御対象とする制御装置が自装置である場合には前記メッセージを前記宛先装置に送信し、前記メッセージの宛先装置を制御対象とする制御装置が他の制御装置である場合には前記メッセージを前記他の制御装置に転送する制御部と、を備える前記複数の制御装置それぞれについて、前記所定の処理の要求の振り分けに用いられる重みを、制御対象とする宛先装置の数が多い制御装置ほど当該制御装置へ振り分けられる前記所定の処理の要求量が多くなるように、決定する処理部、
    を備える情報処理装置。
  2. 前記複数の制御装置それぞれについて、制御対象とする宛先装置の情報を記憶する記憶部をさらに備え、
    前記処理部は、前記複数の制御装置それぞれについて、宛先装置の総数に対する前記複数の制御装置それぞれが制御対象とする宛先装置の数の割合を、前記重みとして決定する、
    請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、
    前記複数の制御装置それぞれから、前記複数の制御装置それぞれが受信した複数種類の所定の処理それぞれの要求量を受信する受信部をさらに備え、
    前記処理部は、線形計画法において、前記複数種類の所定の処理のうちの種類iの所定の処理(1≦i≦所定の処理の種類の数)のメッセージの宛先装置の総数に対する制御装置j(1≦j≦制御装置の数)の制御対象の宛先装置の数の割合を定数Aijとし、前記制御装置jに振り分けられる前記種類iの所定の処理の要求量を変数Xijとして、Σj
    Xij(Σj:jに関する足し合わせ)を前記制御装置jに振り分け可能な要求量の上限
    値とし、ΣiXij(Σi:iに関する足し合わせ)を前記種類iの所定の処理についての前記複数の制御装置それぞれが受信した要求量の総和とする制約条件のもとで、目的関数ΣAij*Xij(*は乗算記号)を最大化させる、前記制御装置jに振り分けられる前
    記種類iの所定の処理の要求量Xijの値を取得し、取得された前記Xijの値の、前記種類iの所定の処理についての前記複数の制御装置それぞれが受信した要求量の総和に対する割合を、前記種類iの所定の処理の要求の前記制御装置jへの振り分けに用いられる重みとして決定する、
    請求項1に記載の情報処理装置。
  4. 複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、要求に応じて所定の処理を実行してメッセージを生成し、前記メッセージの宛先装置を制御対象とする制御装置が自装置である場合には前記メッセージを前記宛先装置に送信し、前記メッセージの宛先装置を制御対象とする制御装置が他の制御装置である場合には前記メッセージを前記他の制御装置に転送する制御部と、を備える前記複数の制御装置それぞれから、前記複数の制御装置それぞれが前記所定の処理を実行することによって生成されたメッセージについて、前記複数の制御装置それぞれから宛先装置に送信された第1のメッセージの量と、前記複数の制御装置それぞれから他の制御装置に転送された第2のメッセージの量と、を受信する受信部と、
    前記複数の制御装置それぞれの、前記複数の制御装置それぞれによる前記所定の処理によって生成されたメッセージ総量に対する前記第1のメッセージの量の第1の比率又は前記第2のメッセージの量の第2の比率に基づいて、前記第1の比率が高い又は前記第2の比率が低い制御装置ほど当該制御装置へ振り分けられる前記所定の処理の要求量が多くなるように、前記複数の制御装置それぞれについて、前記所定の処理の要求の振り分けに用
    いられる重みを決定する処理部と、
    を備える情報処理装置。
  5. 前記複数の制御装置それぞれは、複数種類の所定の処理を実行して、メッセージを生成し、
    前記受信部は、前記複数の制御装置それぞれから、前記複数種類の所定の処理それぞれについての、前記第1のメッセージの量と、前記第2のメッセージの量とを受信し、
    前記処理部は、前記複数の制御装置それぞれによって実行される前記複数種類の所定の処理それぞれについて、前記第1の比率又は第2の比率を求め、前記複数種類の所定の処理それぞれについて、前記複数の制御装置それぞれへの前記要求の振り分けに用いられる重みを決定する、
    請求項4に記載の情報処理装置。
  6. 前記処理部は、前記複数の制御装置それぞれについて振り分け可能な要求量の上限値を決定し、前記第1の比率又は第2の比率と、前記要求量の上限値とに基づいて、前記第1の比率が高い又は前記第2の比率が低い制御装置ほど当該制御装置へ振り分けられる前記所定の処理の要求量が多くなるように、且つ、前記複数の制御装置それぞれに振り分けられる要求量が前記複数の制御装置それぞれの前記上限値を超えないように、前記複数の制御装置それぞれへの前記要求の振り分けに用いられる重みを決定する、
    請求項4又は5に記載の情報処理装置。
  7. 前記受信部は、前記複数の制御装置それぞれから、前記複数の制御装置それぞれが受信した前記複数種類の所定の処理のそれぞれの要求量をさらに受信し、
    前記処理部は、線形計画法において、制御装置j(1≦j≦制御装置の数)が実行する前記複数種類の所定の処理のうちの種類iの所定の処理(1≦i≦処理の種類の数)についての前記第1の比率又は前記第2の比率を定数Aijとし、前記制御装置jに振り分けられる前記種類iの所定の処理の要求量を変数Xijとして、ΣjXij(Σj:jに関する足し合わせ)を前記制御装置jが処理可能な要求量の上限値とし、ΣiXij(Σi:iに関する足し合わせ)を前記種類iの所定の処理についての前記複数の制御装置それぞれが受信した要求量の総和とする制約条件のもとで、目的関数ΣAij*Xij(*は乗算
    記号)を最大化又は最小化させる、前記制御装置jに振り分けられる前記種類iの所定の処理の要求量Xijの値を取得し、取得された前記Xijの値の、前記種類iの所定の処理についての前記複数の制御装置それぞれが受信した要求量の総和に対する割合を、前記複数の制御装置jへの前記種類iの所定の処理の要求の振り分けに用いられる重みとして決定する、
    請求項6に記載の情報処理装置。
  8. 前記受信部は、前記複数の制御装置それぞれから、前記複数の制御装置それぞれが受信した前記複数種類の所定の処理のそれぞれの要求量をさらに受信し、
    前記処理部は、前記複数の制御装置それぞれの処理可能な要求量の上限値と、前記複数種類の所定の処理それぞれの、前記複数の制御装置への要求の総量とに基づいて、前記複数種類の所定の処理それぞれについて、前記複数の制御装置のそれぞれが実行する前記複数種類の所定の処理それぞれについての前記第1の比率のうち最も高い値の第1の比率に対応する制御装置j(1≦j≦制御装置の数)に種類iの所定の処理(1≦i≦所定の処理の種類の数)の要求を割り当てる第1の処理を行い、前記第1の比率の高い順番で当該第1の比率Aijについて、前記制御装置jに割り当てられる要求量が前記要求量の上限値に達したら、前記制御装置jを除外した残りの制御装置について、前記複数種類の所定の処理それぞれの要求量の総数が0になるまで前記第1の処理を繰り返し実行し、前記複数の制御装置それぞれに割り当てられた前記複数種類の所定の処理それぞれの要求量の比率を、前記複数種類の所定の処理それぞれについて、前記複数の制御装置それぞれへの前
    記要求の振り分けに用いられる重みとして決定する、
    請求項6に記載の情報処理装置。
  9. 前記処理部は、前記決定された重みが所定の閾値よりも低い制御装置について、前記決定された重みに対応する制御装置による前記決定された重みに対応する所定の処理の停止を判定する、
    請求項4から8のいずれか一項に記載の情報処理装置。
  10. 前記処理部は、前記複数の制御装置のそれぞれの前記要求量の上限値を、所定の許容範囲を有する値として決定する、
    請求項3、7、8のいずれか一項に記載の情報処理装置。
  11. 前記受信部は、前記複数の制御装置それぞれから、前記複数の制御装置それぞれが受信した前記複数種類の所定の処理それぞれの要求量をさらに受信し、
    前記処理部は、前記複数の制御装置のそれぞれの前記要求量の上限値を、前記複数の制御装置それぞれが受信した前記複数種類の所定の処理それぞれの要求量の総和を前記複数の制御装置の台数で割った値とする、
    請求項3、7、8のいずれか一項に記載の情報処理装置。
  12. 前記処理部は、前記複数の制御装置それぞれの前記要求量の上限値を、前記複数の制御装置それぞれの処理性能に応じて決定する、
    請求項3、7、8のいずれか一項に記載の情報処理装置。
  13. コンピュータが、
    複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、要求に応じて所定の処理を実行し、メッセージを生成し、前記メッセージの宛先装置を制御対象とする制御装置が自装置である場合には前記メッセージを前記宛先装置に送信し、前記メッセージの宛先装置を制御対象とする制御装置が他の制御装置である場合には前記メッセージを前記他の制御装置に転送する制御部と、を備える前記複数の制御装置それぞれについて、制御対象である宛先装置の情報を記憶する記憶部と、
    前記複数の制御装置それぞれについて、前記所定の処理の要求の振り分けに用いられる重みを、制御対象とする宛先装置の数が多い制御装置ほど当該制御装置へ振り分けられる前記所定の処理の要求量が多くなるように、決定する処理部、
    を備える負荷分散制御方法。
  14. コンピュータが、
    複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、要求に応じて所定の処理を実行してメッセージを生成し、前記メッセージの宛先装置を制御対象とする制御装置が自装置である場合には前記メッセージを前記宛先装置に送信し、前記メッセージの宛先装置を制御対象とする制御装置が他の制御装置である場合には前記メッセージを前記他の制御装置に転送する制御部と、を備える前記複数の制御装置それぞれから、前記複数の制御装置それぞれが前記所定の処理を実行することによって生成されたメッセージについて、前記複数の制御装置それぞれから宛先装置に送信された第1のメッセージの量と、前記複数の制御装置それぞれから他の制御装置に転送された第2のメッセージの量と、を受信し、
    前記複数の制御装置それぞれの、前記複数の制御装置それぞれによる前記所定の処理によって生成されたメッセージ総量に対する前記第1のメッセージの量の第1の比率又は前記第2のメッセージの量の第2の比率に基づいて、前記第1の比率が高い又は前記第2の比率が低い制御装置ほど当該制御装置に振り分けられる前記所定の処理の要求量が多くなるように、前記複数の制御装置それぞれについて、前記所定の処理の要求の振り分けに用
    いられる重みを決定する、
    負荷分散制御方法。
  15. 前記処理部は、
    前記複数の制御装置それぞれが制御対象とする複数の宛先装置から1又は複数の宛先装置を選択し、
    選択された宛先装置を制御対象とする制御装置が他の制御装置に変更された場合に、前記複数の制御装置間で転送されるメッセージ量が削減され、且つ、前記複数の制御装置それぞれから前記複数の宛先装置へ送信されるメッセージ量が前記複数の制御装置間で均等であることを含む条件を前記選択された宛先装置が満たすか否かを判定し、
    前記選択された宛先装置が前記条件を満たす場合に、前記選択された宛先装置を制御対象とする制御装置を他の制御装置に変更することを判定する、
    請求項1−12のいずれか一項に記載の情報処理装置。
  16. 前記処理部は、
    前記複数の宛先装置から、1又は複数の宛先装置を選択する事例を示す事例情報を複数生成し、
    生成した前記複数の事例情報のそれぞれについて、選択された宛先装置を制御対象とする制御装置を他の制御装置に変更した場合について、前記重みを決定し、決定した重みに基づいて前記所定の処理の要求の振り分けをシミュレートして、前記複数の制御装置間で転送されるメッセージ量と、前記複数の制御装置それぞれから制御対象とする複数の宛先装置へ送信されるメッセージ量の前記複数の制御装置間でのばらつきを示す指標値と、を取得し、
    前記条件として、前記ばらつきを示す指標値が所定の閾値以下である事例情報のうち最も制御装置間で転送されるメッセージ量が少ない事例情報を抽出し、抽出された事例情報において選択された1又は複数の宛先装置を制御対象とする制御装置を他の制御装置に変更することを判定する、
    請求項15に記載の情報処理装置。
  17. 前記複数の制御装置それぞれは、複数種類の所定の処理を実行して、メッセージを生成し、
    前記処理部は、前記複数種類の所定の処理から、前記複数の制御装置それぞれから前記制御対象の複数の宛先装置に送信されたメッセージ量が前記複数の制御装置間で均等である第1の種類を取得し、前記第1の種類の所定の処理のメッセージの受信メッセージ量の多い上位の1又は複数の宛先装置を取得し、前記複数の宛先装置から前記取得した1又は複数の宛先装置を選択する事例情報を生成する、
    請求項16に記載の情報処理装置。
JP2017028289A 2016-05-26 2017-02-17 情報処理装置、及び、負荷分散制御方法 Active JP6938944B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/581,168 US10397315B2 (en) 2016-05-26 2017-04-28 Information processing apparatus and load distribution control method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016105589 2016-05-26
JP2016105589 2016-05-26

Publications (3)

Publication Number Publication Date
JP2017215933A true JP2017215933A (ja) 2017-12-07
JP2017215933A5 JP2017215933A5 (ja) 2020-02-06
JP6938944B2 JP6938944B2 (ja) 2021-09-22

Family

ID=60575703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017028289A Active JP6938944B2 (ja) 2016-05-26 2017-02-17 情報処理装置、及び、負荷分散制御方法

Country Status (1)

Country Link
JP (1) JP6938944B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286656A (zh) * 2020-10-21 2021-01-29 百度在线网络技术(北京)有限公司 小程序模拟方法、装置、电子设备和计算机可读存储介质
WO2023218664A1 (ja) * 2022-05-13 2023-11-16 楽天モバイル株式会社 リプレースシステム及びリプレース方法
WO2023218663A1 (ja) * 2022-05-13 2023-11-16 楽天モバイル株式会社 実行基盤決定システム及び実行基盤決定方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011083780A1 (ja) * 2010-01-05 2011-07-14 日本電気株式会社 通信システム、制御装置、処理規則の設定方法、パケットの送信方法およびプログラム
WO2013114490A1 (ja) * 2012-02-02 2013-08-08 日本電気株式会社 コントローラ、負荷分散方法、プログラムを格納した非一時的なコンピュータ可読媒体、コンピュータシステム、制御装置
JP2015533049A (ja) * 2012-09-20 2015-11-16 株式会社Nttドコモ ネットワークにおけるトポロジ及びパス検証のための方法及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011083780A1 (ja) * 2010-01-05 2011-07-14 日本電気株式会社 通信システム、制御装置、処理規則の設定方法、パケットの送信方法およびプログラム
WO2013114490A1 (ja) * 2012-02-02 2013-08-08 日本電気株式会社 コントローラ、負荷分散方法、プログラムを格納した非一時的なコンピュータ可読媒体、コンピュータシステム、制御装置
JP2015533049A (ja) * 2012-09-20 2015-11-16 株式会社Nttドコモ ネットワークにおけるトポロジ及びパス検証のための方法及び装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286656A (zh) * 2020-10-21 2021-01-29 百度在线网络技术(北京)有限公司 小程序模拟方法、装置、电子设备和计算机可读存储介质
CN112286656B (zh) * 2020-10-21 2023-08-29 百度在线网络技术(北京)有限公司 小程序模拟方法、装置、电子设备和计算机可读存储介质
WO2023218664A1 (ja) * 2022-05-13 2023-11-16 楽天モバイル株式会社 リプレースシステム及びリプレース方法
WO2023218663A1 (ja) * 2022-05-13 2023-11-16 楽天モバイル株式会社 実行基盤決定システム及び実行基盤決定方法

Also Published As

Publication number Publication date
JP6938944B2 (ja) 2021-09-22

Similar Documents

Publication Publication Date Title
US10904319B2 (en) Dynamic deployment of an application based on micro-services
US10924535B2 (en) Resource load balancing control method and cluster scheduler
JP7257728B2 (ja) ソフトウェア・アプリケーションのデプロイメント構成の動的選択のための方法、コンピュータ・プログラム及びコンピュータ・システム
US11429449B2 (en) Method for fast scheduling for balanced resource allocation in distributed and collaborative container platform environment
US11736561B2 (en) Load balanced network file accesses
US10623481B2 (en) Balancing resources in distributed computing environments
CN104184813B (zh) 虚拟机的负载均衡方法和相关设备及集群系统
JP2018198068A (ja) 分散型クラウドにおける作業負荷移動に基づくプロファイルベースのsla保証
CN106326002B (zh) 资源调度方法、装置及设备
US10397315B2 (en) Information processing apparatus and load distribution control method
JPWO2008102739A1 (ja) 仮想サーバシステム及び物理サーバ選択方法
US11574243B1 (en) Heterogeneous compute instance auto-scaling with reinforcement learning
JP2020127182A (ja) 制御装置、制御方法及びプログラム
KR20200062299A (ko) 블록체인 트랜잭션들을 선택하기 위한 트랜잭션 선택 디바이스
JP6938944B2 (ja) 情報処理装置、及び、負荷分散制御方法
Manikandan et al. Virtualized load balancer for hybrid cloud using genetic algorithm
CN109960579A (zh) 一种调整业务容器的方法及装置
JP7182836B2 (ja) 分散コンピューティング環境における作業負荷の自動対角スケーリング
US10387578B1 (en) Utilization limiting for nested object queries
CN110609744B (zh) 处理计算任务的方法、设备和计算机程序产品
Sood Function points‐based resource prediction in cloud computing
US9736035B2 (en) Method and apparatus for providing information for selecting clouds
CN115701585A (zh) 实例迁移方法、装置及相关设备
Sahana et al. Weight based Load Balancing in Kubernetes using AWS
Nema et al. A new efficient Virtual Machine load balancing Algorithm for a cloud computing environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210816

R150 Certificate of patent or registration of utility model

Ref document number: 6938944

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150