JP6938944B2 - Information processing device and load balancing control method - Google Patents
Information processing device and load balancing control method Download PDFInfo
- Publication number
- JP6938944B2 JP6938944B2 JP2017028289A JP2017028289A JP6938944B2 JP 6938944 B2 JP6938944 B2 JP 6938944B2 JP 2017028289 A JP2017028289 A JP 2017028289A JP 2017028289 A JP2017028289 A JP 2017028289A JP 6938944 B2 JP6938944 B2 JP 6938944B2
- Authority
- JP
- Japan
- Prior art keywords
- control
- message
- amount
- control devices
- 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.)
- Active
Links
Images
Description
本発明は、情報処理装置、及び、負荷分散制御方法に関する。 The present invention relates to an information processing device and a load balancing control method.
ネットワークの設定変更を柔軟に行えるようにすることを目的として、SDN(Software Defined Networking)技術が開発されている。SDNでは、通信装置と、通信装置を
管理する通信制御装置と、通信装置と通信制御装置とを接続する制御ネットワークとが含まれる。SDNでは、通信装置は転送機能に特化している。通信装置は、通信制御装置によって管理されている。以降、SDNにおける通信装置をスイッチと称する。また、SDNにおける通信制御装置をコントローラと称する。
SDN (Software Defined Networking) technology has been developed for the purpose of flexibly changing network settings. The SDN includes a communication device, a communication control device that manages the communication device, and a control network that connects the communication device and the communication control device. In SDN, communication devices specialize in transfer functions. The communication device is managed by the communication control device. Hereinafter, the communication device in SDN will be referred to as a switch. Further, the communication control device in the SDN is referred to as a controller.
SDNでは、パス算出等のネットワーク制御ロジックは、コントローラ上の通信制御ソフトウェアに実装されている。例えば、通信制御ソフトウェアはパスを算出してコントローラにパスを通知し、コントローラがスイッチに対してパスの設定を行うソフトウェアである。以降、通信制御ソフトウェアを、アプリケーションと称する。 In SDN, network control logic such as path calculation is implemented in communication control software on the controller. For example, communication control software is software that calculates a path, notifies the controller of the path, and the controller sets the path to the switch. Hereinafter, the communication control software will be referred to as an application.
SDNにおけるアプリケーションの一つは、例えば、利用者から2点間のパス設定要求が入力された場合に、指定された2点間をつなぐスイッチへの制御メッセージを生成するパス設定アプリケーションである。 One of the applications in SDN is, for example, a path setting application that generates a control message to a switch connecting the specified two points when a user inputs a path setting request between the two points.
図24は、分散型通信制御システムP100の一例を示す図である。SDNにおいて、コントローラが1台である場合には、ネットワークの規模の拡大にコントローラの性能が追い付かなくなることがある。分散型通信制御システムP100は、複数のコントローラを有し、複数のコントローラ間でスイッチ(図中、SW)の管理を分担することで、処理性能を向上させる。スイッチを制御するコントローラは、制御されるスイッチの「マスタ」と称される。1台のスイッチに対して、マスタとなるコントローラは1台である。また、1台のコントローラは、複数のスイッチのマスタとなり得る。図24では、コントローラは、サーバP1とサーバP2上に実装されており、サーバP1とサーバP2とに備えられるコントローラは、それぞれ3台のスイッチのマスタを担っている。 FIG. 24 is a diagram showing an example of the distributed communication control system P100. In SDN, when there is only one controller, the performance of the controller may not be able to keep up with the expansion of the network scale. The distributed communication control system P100 has a plurality of controllers, and the processing performance is improved by sharing the management of switches (SW in the figure) among the plurality of controllers. The controller that controls the switch is referred to as the "master" of the controlled switch. There is one master controller for one switch. Also, one controller can be the master of a plurality of switches. In FIG. 24, the controller is mounted on the server P1 and the server P2, and the controllers provided in the server P1 and the server P2 each serve as a master of three switches.
例えば、利用者の組織又はエリア毎に、サービスのポリシや帯域制御に対する要望が異なるため、利用者の組織又はエリアそれぞれについて、パス設定アプリケーションが用意される。すなわち、分散型通信制御システムP100では、複数種類のパス設定アプリケーションが存在し、同種のアプリケーションのインスタンスが1つ又は複数のサーバ上で動作する。インスタンスとは、サーバ上のアプリケーションのことである。図24に示される例では、1種類のパス設定アプリケーションのインスタンスが、サーバP1とサーバP2上で動作している。 For example, since the service policy and bandwidth control requirements differ for each user's organization or area, a path setting application is prepared for each user's organization or area. That is, in the distributed communication control system P100, there are a plurality of types of path setting applications, and instances of the same type of applications operate on one or a plurality of servers. An instance is an application on a server. In the example shown in FIG. 24, an instance of one type of path setting application is running on the server P1 and the server P2.
図25は、分散型通信制御システムP100内のパス設定アプリケーションに対してパス設定要求が入力された場合の制御メッセージの流れの一例を示す図である。図25では、図24と同じ分散型通信制御システムP100が示されている。図24に示される例は、サーバP1上のパス設定アプリケーションに、拠点Ha−Hb間のパス設定要求が入力された場合の例である。 FIG. 25 is a diagram showing an example of the flow of control messages when a path setting request is input to the path setting application in the distributed communication control system P100. In FIG. 25, the same distributed communication control system P100 as in FIG. 24 is shown. The example shown in FIG. 24 is an example in which a path setting request between the bases Ha and Hb is input to the path setting application on the server P1.
サーバP1上のパス設定アプリケーションによって、拠点Ha−Hb間のパスとして、スイッチ#1、スイッチ#2を通過する経路が算出され、スイッチ#1、スイッチ#2宛てに、拠点Ha−Hb間のパスを設定するための制御メッセージが生成される。スイッチ
#1のマスタは、サーバP1上のコントローラである。スイッチ#2のマスタはサーバP2上のコントローラである。
The path setting application on the server P1 calculates the path passing through the
スイッチ#1のマスタは制御メッセージを生成したインスタンスと同じサーバP1上のコントローラであるで、スイッチ#1への制御メッセージは、サーバP1から宛先のスイッチ#1に送信される。以降、制御メッセージを、単に、メッセージと称する。
The master of
しかしながら、分散型通信制御システムP100では、以下のような問題が生じることがある。分散型通信制御システムP100では、1台のスイッチに対して複数のコントローラからメッセージが送信されると、スイッチの設定の整合性が取れなくなる可能性がある。スイッチの設定の整合性が取れなくなる可能性を低減するため、スイッチに対するメッセージは、該当のスイッチのマスタのコントローラから送信される仕様である。スイッチ#2のマスタのコントローラは、メッセージを生成したインスタンスのサーバP1とは異なるサーバP2上のコントローラである。したがって、スイッチ#2へのメッセージは、サーバP1からサーバP2に転送され、サーバP2からスイッチ#2に送信される。
However, in the distributed communication control system P100, the following problems may occur. In the distributed communication control system P100, if a message is transmitted from a plurality of controllers to one switch, the switch settings may become inconsistent. To reduce the possibility of inconsistent switch settings, the message to the switch is a specification sent from the controller of the master of the switch. The controller of the master of
例えば、メッセージがスイッチ#2に届くまでの時間は、コントローラ間のメッセージの転送の分、スイッチ#1にメッセージが届くまでの時間よりも長くなる。これによって、スイッチ#1には、拠点Ha−Hb間のパスの設定が完了しているにもかかわらず、スイッチ#2には拠点Ha−Hb間のパスの設定がない状態が生じ、データ転送に悪影響が生じる恐れがある。したがって、コントローラ間のメッセージの転送は、分散型通信制御システムP100の性能劣化の要因となるので、少ない方が好ましい。
For example, the time it takes for the message to reach
図26は、負荷分散装置を備える分散型通信制御システムの一例を示す図である。負荷分散装置P3は、各アプリケーションへの要求を受け付け、各サーバに均等に要求を振り分ける。これによって、各サーバのアプリケーションの処理負荷を平準化することができる。しかしながら、コントローラ間の制御メッセージの転送については考慮されておらず、アプリケーションへの要求を各サーバに均等に振り分けることによって、コントローラ間のメッセージの転送を低減させることができるとは限らない。 FIG. 26 is a diagram showing an example of a distributed communication control system including a load balancer. The load balancer P3 receives requests for each application and evenly distributes the requests to each server. As a result, the processing load of the application of each server can be leveled. However, the transfer of control messages between controllers is not considered, and it is not always possible to reduce the transfer of messages between controllers by evenly distributing the requests to the application to each server.
本発明の一態様は、アプリケーションの要求が分散される複数の制御装置について、制御装置間のメッセージの転送を低減可能な情報処理装置、及び、負荷分散制御方法を提供することを目的とする。 One aspect of the present invention is to provide an information processing device capable of reducing message transfer between control devices and a load balancing control method for a plurality of control devices in which application requirements are distributed.
本発明の態様の一つは、情報処理装置である。情報処理装置は、複数の制御装置それぞれについて、所定の処理の要求の振り分けに用いられる重みを、制御対象とする宛先装置の数が多い制御装置ほど当該制御装置に振り分けられる所定の処理の要求量が多くなるように、決定する処理部を備える。複数の制御装置それぞれは、複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、要求に応じて所定の処理を実行し、メッセージを生成し、メッセージの宛先装置を制御対象とする制御装置が自装置である場合にはメッセージを当該宛先装置に送信し、メッセージの宛先装置を制御対象とする制御装置が他の制御装置である場合にはメッセージを当該他の制御装置に転送する制御部と、を備える。 One aspect of the present invention is an information processing device. In the information processing device, the weight used for distributing the request for a predetermined process for each of the plurality of control devices is assigned to the control device as the number of destination devices to be controlled increases. A processing unit for determining the number of processing units is provided. Each of the plurality of control devices generates a message by executing a predetermined process according to the first receiving unit that receives the request distributed to the own device among the requests distributed among the plurality of control devices. If the control device that controls the destination device of the message is its own device, the message is sent to the destination device, and if the control device that controls the destination device of the message is another control device. Includes a control unit that transfers the message to the other control device.
開示の情報処理装置、及び、負荷分散制御方法によれば、アプリケーションの要求が分散される複数の制御装置について、制御装置間のメッセージの転送を低減することができる。 According to the disclosed information processing device and the load balancing control method, it is possible to reduce the transfer of messages between control devices for a plurality of control devices in which application requests are distributed.
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. The configurations of the following embodiments are examples, and the present invention is not limited to the configurations of the embodiments.
<第1実施形態>
図1は、第1実施形態に係る分散型通信制御システム100のシステム構成の一例を示す図である。分散型通信制御システム100は、サーバ1、サーバ2、負荷分散装置3、複数のスイッチ9、外部クライアント8を備える。サーバ1、サーバ2には、それぞれ、アプリケーションとコントローラとが実装されている。負荷分散装置3は、サーバ1、サーバ2に対して、外部クライアント8からのアプリケーションへの要求を、重みづけラウンドロビンで振り分けて送信する。サーバ1、サーバ2は、それぞれ、複数台のスイッチ9のマスタとして動作する。
<First Embodiment>
FIG. 1 is a diagram showing an example of a system configuration of the distributed
コントローラ間のメッセージの転送は、メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラとが、異なるサーバ上に存在する場合に発生する。したがって、メッセージを生成するインスタンスが存在するサーバと、メッセージの宛先スイッチ9のマスタであるコントローラが存在するサーバとが同じサーバになる可能性が高いほど、コントローラ間のメッセージの転送が発生する可能性は低くなる。
Message transfer between controllers occurs when the instance that generates the message and the controller that is the master of the
メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラと、が存在するサーバが同じである可能性を左右する要因の一つは、各コントローラの、各コントローラがマスタとして制御対象とするスイッチの数である。したがって、制御対象とするスイッチの数が多いコントローラに、より多くの要求が振り分けられることによって、メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラと、が存在するサーバが同じになる可能性を高くすることができる。
One of the factors that influences the possibility that the instance that generates the message and the controller that is the master of the
また、メッセージを生成するインスタンスと、メッセージの宛先スイッチ9のマスタであるコントローラと、が存在するサーバが同じになる可能性を左右する他の要因の一つは、アプリケーションの制御対象のスイッチ9がマスタとするコントローラの偏りがある。アプリケーションは複数種類存在し、種類ごとに、制御対象とするスイッチ9に偏りがある。例えば、所定のアプリケーションが、特定のエリアに存在するスイッチを制御対象とする場合には、当該エリア内のスイッチ9がマスタとするコントローラに偏りが生じる。
In addition, one of the other factors that influences the possibility that the instance that generates the message and the controller that is the master of the
アプリケーションの制御対象のスイッチがマスタとするコントローラの偏りと、コントローラがマスタとして制御対象とするスイッチの数とは、スイッチに直接転送されるメッセージ、又は、他のコントローラに転送されるメッセージ、の比率に投影される。第1実施形態では、線形計画法を用いて、各サーバにおける、スイッチに直接転送されるメッセージ量の比率に基づいて、スイッチに直接転送されるメッセージ量が最大となるような、負荷分散装置3のラウンドロビンで用いられる重みを決定する。ラウンドロビンの重みは、各アプリケーションについて決定される。
The bias of the controller controlled by the switch to be controlled by the application and the number of switches controlled by the controller as the master are the ratio of the message transferred directly to the switch or the message transferred to another controller. Projected on. In the first embodiment, the
第1実施形態では、ラウンドロビンの重みの決定をサーバ1が行う。ただし、これに限定されず、ラウンドロビンの重みの決定は、サーバ2、負荷分散装置3のいずれが行ってもよい。ラウンドロビンの重みを決定する装置は、「情報処理装置」の一例である。第1実施形態のサーバ1は、「情報処理装置」の一例である。また、サーバ1、サーバ2は、「制御装置」の一例である。スイッチ9は、「宛先装置」の一例である。
In the first embodiment, the
<装置構成>
図2は、サーバ1のハードウェア構成の一例である。サーバ1は、例えば、専用のコンピュータである。サーバ1は、CPU(Central Processing Unit)101、主記憶装置
102、補助記憶装置103、ネットワークインタフェース104を備える。また、これらはバス105により互いに接続されている。
<Device configuration>
FIG. 2 is an example of the hardware configuration of the
補助記憶装置103は、OS(Operating System)、様々なプログラムや、各プログラムの実行に際してCPU 101が使用するデータを格納する。補助記憶装置103は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードデ
ィスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置103
は、例えば、コントローラ用のプログラム103P、パス設定のアプリケーションを記憶する。
The
Stores, for example, the program 103P for the controller and the path setting application.
主記憶装置102は、CPU 101に、補助記憶装置103に格納されているプログ
ラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする記憶装置である。主記憶装置102は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)のような半導体メモリを含む。主記憶装置102は、「記憶部」の一例である。
The
CPU 101は、補助記憶装置103に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な処理を実行する
。CPU 101は、1つに限られず、複数備えられてもよい。CPU 101は、「制御装置」の「制御部」、「情報処理装置」の「処理部」の一例である。
The
ネットワークインタフェース104は、制御ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース104は、有線のネットワークと接続するインタフェースであってもよいし、無線のネットワークと接続するインタフェースであってもよい。ネットワークインタフェース104は、例えば、NIC(Network Interface Card)等である。ネットワークインタフェース104は、「制御装置」の「第1の受信部」、「情報処理装置」の「受信部」の一例である。
The
なお、図2に示されるサーバ1のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、サーバ1は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、Blu−ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。なお、サーバ2、負荷分散装置3も、図2に示されるハードウェア構成と同様に、CPU、主記憶装置、補助記憶装置、ネットワークインタフェースを備える。
The hardware configuration of the
図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を実行することによって達成される機能構成要素である。
FIG. 3 is a diagram showing an example of the functional configuration of the
要求受信部11は、負荷分散装置3によってサーバ1に振り分けられる、アプリケーション19のいずれかに対する要求を受信する。要求受信部11は、要求を該当するアプリケーション19に出力する。また、要求受信部11は、アプリケーション19ごとに、受信した要求量をアプリケーション要求量記憶部18Aに記録する。
The
アプリケーション19は、例えば、パス設定アプリケーションである。例えば、各利用組織、各エリアのポリシや帯域制御の要望に応じて、各利用組織、各エリアについてアプリケーション19は備えられる。アプリケーション19は、要求受信部11から要求の入力を受ける。アプリケーション19は、要求に応じて所定の処理を行い、処理結果に応じて、設定対象となるスイッチ9の識別情報を含むメッセージを生成し、メッセージ転送部12に出力する。
The
第1実施形態では、アプリケーション19は、パス設定アプリケーションであることが想定されている。したがって、アプリケーション19への要求は、例えば、2拠点間のパスの設定要求である。また、アプリケーション19は、要求によって指定された2拠点間のパスの経路を算出する処理を行う。アプリケーション19の処理結果は、算出した経路情報である。経路情報には、例えば、経路上のスイッチ9の識別情報と、経路上の各スイッチ9の出力インタフェース等が含まれる。したがって、アプリケーション19によって生成されるメッセージには、第1実施形態では、パス計算の結果得られた経路上のスイッチ9の識別情報が含まれる。なお、経路上のスイッチは、1又は複数台であるので、1つの要求について生成されるメッセージの数は、経路上のスイッチの数となる。
In the first embodiment, the
また、第1実施形態では、スイッチ9を制御するプロトコルとして、OpenFlowが用いられていることが想定されている。そのため、アプリケーション19によって生成されるメッセージは、OpenFlowのメッセージである。
Further, in the first embodiment, it is assumed that OpenFlow is used as a protocol for controlling the
メッセージ転送部12は、アプリケーション19からメッセージの入力を受ける。メッセージ転送部12は、マスタ情報を参照して、メッセージの宛先スイッチ9に応じて、メッセージをスイッチ設定部13又はサーバ2に送信する。マスタ情報は、スイッチの識別情報と当該スイッチのマスタとなるコントローラの識別情報との対応情報である。スイッチの識別情報、及び、マスタとなるコントローラの識別情報は、例えば、スイッチ名/コントローラ名、IP(Internet Protocol)アドレスである。
The
メッセージの宛先スイッチ9のマスタであるコントローラが、自サーバ1に搭載されている場合には、メッセージ転送部12は、メッセージをスイッチ設定部13に出力する。メッセージの宛先スイッチ9のマスタであるコントローラが、他のサーバ2に搭載されている場合には、メッセージ転送部12は、メッセージをサーバ2に転送する。
When the controller that is the master of the
メッセージ転送部12は、スイッチ設定部13に転送したメッセージ量と、サーバ2に転送したメッセージ量とを、アプリケーション19ごとに、メッセージ量記憶部18Bに記録する。以降、スイッチ設定部13に転送されるメッセージを、直接メッセージ、と称する。また、他のサーバ2に転送されるメッセージを、間接メッセージ、と称する。
The
スイッチ設定部13は、メッセージ転送部12又は他のサーバ2から、メッセージの入力を受ける。スイッチ設定部13は、自装置がマスタである制御対象のスイッチ9に、メッセージを送信する。
The
情報収集部14は、所定の周期で、アプリケーション要求量記憶部18A、メッセージ量記憶部18Bから、アプリケーション毎の、要求量と直接メッセージ量と間接メッセージ量とを取得し、制御部15に出力する。アプリケーション毎の、要求量と直接メッセージ量と間接メッセージ量との取得周期は、例えば、分散型通信制御システム100の管理者によって、秒単位で設定される。
The
計測結果受信部16は、所定の周期で他のサーバ2から送信される、サーバ2のアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量とを受信し、制御部15に出力する。
The measurement
制御部15は、情報収集部14からサーバ1におけるアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量との入力を受ける。また、制御部15は、計測結果受信部16から、サーバ2におけるアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量との入力を受ける。
The
制御部15は、サーバ1、サーバ2それぞれにおけるアプリケーション毎の要求量と直接メッセージ量と間接メッセージ量とに基づいて、負荷分散装置3のラウンドロビンの重
みを決定する。重みの決定の処理の詳細については、後述される。制御部15は、決定した重みを重み通知部17に出力する。
The
重み通知部17は、制御部15から、負荷分散装置3のラウンドロビンの重みの入力を受け、負荷分散装置3に通知する。
The
アプリケーション要求量記憶部18A、メッセージ量記憶部18B、マスタ情報記憶部18Cは、それぞれ、サーバ1の主記憶装置102の記憶領域内の所定の領域に相当する。アプリケーション要求量記憶部18Aは、負荷分散装置3からサーバ1に入力される要求量をアプリケーション毎に記憶する。メッセージ量記憶部18Bは、直接メッセージ量、間接メッセージ量を、アプリケーション毎に記憶する。アプリケーション要求量記憶部18A、メッセージ量記憶部18Bがそれぞれ保持する値は、例えば、情報収集部14による情報の取得によって、リセットされてもよいし、リセットされずに保持されてもよい。アプリケーション要求量記憶部18A及びメッセージ量記憶部18Bがそれぞれ保持する値が情報収集部14による情報の取得によってリセットされない場合には、情報収集部14は、前回の読み出した値との差分を、所定周期内の、要求量、直接メッセージ量、間接メッセージ量として取得する。
The application request
マスタ情報記憶部18Cは、マスタ情報を記憶する。マスタ情報は、例えば、分散型通信制御システム100の管理者によって、予め設定される。または、マスタ情報は、コントローラ間のネゴシエーションによって決定されてもよい。マスタ情報の決定方法は、これらに限定されない。
The master
なお、サーバ2の機能構成は、サーバ1の機能構成のうち、制御部15、計測結果受信部16、重み通知部17以外の構成要素を含む構成である。サーバ2において、情報収集部14は、所定の周期でアプリケーション要求量記憶部18Aとメッセージ量記憶部18Bとから取得した情報を、サーバ1に送信する。
The functional configuration of the
<ラウンドロビンの重みの決定処理の詳細>
図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制御アプリケーションのインスタンスが存在する。
<Details of round-robin weight determination process>
FIG. 4 is a diagram showing an example of a distributed
(ステップ1)
サーバ1の制御部15は、サーバ1、サーバ2の要求量及びメッセージ量の計測結果を取得する。具体例では、図5、図6の結果が取得されたことを想定する。
(Step 1)
The
図5は、図4に示される例におけるサーバ1の要求量及びメッセージ量の計測結果の一例である。図5から、サーバ1のDC#1制御アプリケーションは、20の要求量を受信し、20の要求量に対して合計で60のメッセージを生成していることが示される。サーバ1のDC#1制御アプリケーションが生成したメッセージのうち、40は直接メッセージであり、20は間接メッセージである。
FIG. 5 is an example of the measurement results of the request amount and the message amount of the
サーバ1のDC#2制御アプリケーションは、10の要求量を受信し、10の要求量に対して合計で40のメッセージを生成していることが示される。サーバ1のDC#2制御アプリケーションが生成したメッセージのうち、10は直接メッセージであり、30は間
接メッセージである。
It is shown that the
サーバ1のWAN制御アプリケーションは、5の要求量を受信し、5の要求量に対して合計で10のメッセージを生成していることが示される。サーバ1のWAN制御アプリケーションが生成したメッセージのうち、5は直接メッセージであり、5は間接メッセージである。
It is shown that the WAN control application of
図6は、図4に示される例におけるサーバ2の要求量及びメッセージ量の計測結果の一例である。図6から、サーバ2のDC#1制御アプリケーションは、20の要求量を受信し、20の要求量に対して合計で60のメッセージを生成していることが示される。サーバ2のDC#1制御アプリケーションが生成したメッセージのうち、20は直接メッセージであり、40は間接メッセージである。
FIG. 6 is an example of the measurement results of the request amount and the message amount of the
サーバ2のDC#2制御アプリケーションは、10の要求量を受信し、10の要求量に対して合計で40のメッセージを生成していることが示される。サーバ2のDC#2制御アプリケーションが生成したメッセージのうち、30は直接メッセージであり、10は間接メッセージである。
It is shown that the
サーバ2のWAN制御アプリケーションは、5の要求量を受信し、5の要求量に対して合計で10のメッセージを生成していることが示される。サーバ2のWAN制御アプリケーションが生成したメッセージのうち、5は直接メッセージであり、5は間接メッセージである。
It is shown that the WAN control application of
なお、要求量、メッセージ量の単位は、それぞれ、例えば、個数であってもよいし、単位時間における流入/流出量(kbps)等であってもよい。 The unit of the requested amount and the message amount may be, for example, the number, the inflow / outflow amount (kbps) in a unit time, or the like.
(ステップ2)
サーバ1の制御部15は、サーバ1及びサーバ2から収集された要求量とメッセージ量とに基づいて、アプリケーションとサーバとの各組合せについて、メッセージ総量に対する直接メッセージ量の比率を算出する。所定のサーバ上の所定のアプリケーションのメッセージの総量に対する直接メッセージ量の比率を、直接比率、と称する。
(Step 2)
The
図7は、具体例における、各サーバ上の各アプリケーションについての直接比率を示す図である。図5に示される例において、サーバ1のDC#1制御アプリケーションのメッセージ総数は60であり、直接メッセージ量は40であるので、サーバ1上のDC#1制御アプリケーションについての直接比率は、40/60=2/3となる。図6に示される例において、サーバ2のDC#1制御アプリケーションのメッセージ総数は60であり、直接メッセージ量は20であるので、サーバ2上のDC#1制御アプリケーションについての直接比率は、20/60=1/3となる。DC#2制御アプリケーション、WANアプリケーションについても同様に、各サーバについて、直接比率が求められる。
FIG. 7 is a diagram showing a direct ratio for each application on each server in a specific example. In the example shown in FIG. 5, the total number of messages of the
(ステップ3)
サーバ1の制御部15は、サーバ1及びサーバ2から収集されたアプリケーション毎の要求量に基づいて、各アプリケーションから発生した要求量を求める。アプリケーションから発生した要求量を、以降、発生要求量、と称する。
(Step 3)
The
図8は、具体例における、各アプリケーションの発生要求量の一例である。各アプリケーションの発生要求量は、各サーバから収集された当該アプリケーションの要求量の総和として求められる。例えば、DC#1制御アプリケーションについて、図5より、サーバ1へ振り分けられた要求量は20、図6より、サーバ2へ振り分けられた要求量は20で
あるので、DC#1制御アプリケーションの発生要求量は、20+20=40と求められる。DC#2制御アプリケーション、WAN制御アプリケーションについても同様にして、発生要求量が求められる。
FIG. 8 is an example of the generation request amount of each application in the specific example. The generated request amount of each application is calculated as the sum of the request amounts of the application collected from each server. For example, with respect to the
(ステップ4)
サーバ1の制御部15は、サーバ1及びサーバ2から収集されたアプリケーション毎の要求量に基づいて、各サーバが収容可能な要求量を求める。サーバが収容可能な要求量を、以降、収容量、と称する。
(Step 4)
The
図9は、具体例に係る各サーバの収容量の一例である。第1実施形態では、各サーバの収容量は、分散型通信制御システム100内の全アプリケーションの発生要求量の総量をサーバの台数で割った値として求められる。
FIG. 9 is an example of the capacity of each server according to the specific example. In the first embodiment, the capacity of each server is obtained as a value obtained by dividing the total amount of generation requests of all applications in the distributed
具体例では、図8から、全アプリケーションの発生要求量の総量は、DC#1制御アプリケーション、DC#2制御アプリケーション、WANアプリケーションそれぞれの発生要求量を足し合わせて、40+20+10=70と求められる。具体例では、サーバの台数は、サーバ1とサーバ2との2台である。したがって、具体例の各サーバの収容量は、70/2=35と求められる。
In a specific example, from FIG. 8, the total amount of generated requests for all applications is calculated to be 40 + 20 + 10 = 70 by adding the generated requests for each of the
(ステップ5)
サーバ1の制御部15は、直接比率、各アプリケーションの発生要求量、各サーバの収容量を用いて、線形計画問題を解く。第1実施形態では、目的関数と制約条件とは以下の通りに設定される。
The
目的関数は、各サーバ及び各アプリケーションの直接メッセージの総量を推定する関数である。制約条件1は、各サーバに割り当てられる要求量に上限の制約を与えるものである。制約条件2は、各アプリケーションの発生要求量を計測時と同じ状態に制限するものである。
The objective function is a function that estimates the total amount of direct messages for each server and each application.
サーバ1の制御部15は、上記制約条件のもとで、目的関数が最大となる線形計画問題を解く。線形計画問題の解として、目的関数が最大となる場合のXijの値が得られる。すなわち、サーバ1の制御部15は、計測時と同じ要求の発生状態であり、サーバの収容量に上限がある状態において、直接メッセージの総量が最大となるように、各アプリケーションについて、各サーバへ割り当てられる要求量を求める。直接メッセージの総量が最大となる場合には、間接メッセージ、すなわち、コントローラ間で転送されるメッセージの量が最小となる。
The
具体例では、Aijの値は、図7に示される各サーバ上の各アプリケーションについて
の直接比率の値となる。Riの値は、図8に示される各アプリケーションの発生要求量の値となる。Cの値は、図9に示される各サーバの収容量の値となる。
In a specific example, the value of Aij is the value of the direct ratio for each application on each server shown in FIG. The value of Ri is the value of the generated request amount of each application shown in FIG. The value of C is the capacity value of each server shown in FIG.
図10は、具体例に係る線形計画問題の解Xijの一例を示す図である。サーバ1には、DC#1制御アプリケーションの要求が35割り当てられる。サーバ2には、DC#1制御アプリケーションの要求が5、DC#2制御アプリケーションの要求が20、WAN制御アプリケーションの要求が10割り当てられる。
FIG. 10 is a diagram showing an example of a solution Xij of a linear programming problem according to a specific example. The
(ステップ6)
サーバ1の制御部15は、線形計画問題の解Xijから、各アプリケーションについて、各サーバへ割り当てられる要求の割合を求める。サーバ1の制御部15は、各アプリケーションについての、各サーバへ割り当てられる要求の割合を、負荷分散装置3がラウンドロビンで用いる重みとして、重み通知部17を通じて、負荷分散装置3に通知する。
(Step 6)
The
アプリケーションiについてサーバjへの要求の振り分けの重みWijは、Wij=Xij/Riで求められる。Riは、アプリケーションiの発生要求量である。 The weight Wij of distribution of requests to the server j for the application i is obtained by Wij = Xij / Ri. Ri is the requested amount of application i.
図11は、具体例に係る、負荷分散装置3に通知されるラウンドロビンの重みWijの一例である。負荷分散装置3は、以降、DC#1制御アプリケーションの要求を、サーバ1に重み7/8で、サーバ2に重み1/8で、振り分け、DC#2制御アプリケーション及びWAN制御アプリケーションの要求を、すべてサーバ2に振り分けるようになる。
FIG. 11 is an example of the round robin weight Wij notified to the
サーバ1の制御部15は、以上のステップ1〜6を所定の周期で繰り返し実行する。発生する要求量の変化に応じて、負荷分散装置3のラウンドロビンの重みも変化するので、要求量の変化に応じて、コントローラ間で転送されるメッセージが最小となるように調整される。直接メッセージは「第1のメッセージ」の一例である。間接メッセージは、「第2のメッセージ」の一例である。「直接比率」は、「第1の比率」の一例である。
The
<処理の流れ>
図12は、サーバ1の制御部15の、負荷分散装置3のラウンドロビンの重みの決定処理のフローチャートの一例である。図12に示される処理は、サーバ1の制御部15に、サーバ1及びサーバ2の要求量及びメッセージ量の情報が入力される周期と同じ周期で繰り返し実行される。図12に示される処理の実行主体は、CPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
<Processing flow>
FIG. 12 is an example of a flowchart of the round robin weight determination process of the
OP1では、制御部15は、サーバとアプリケーションとの組合せごとの、要求量、直接メッセージ量、間接メッセージ量、を情報収集部14から取得する。
In OP1, the
OP2では、制御部15は、サーバとアプリケーションとの組合せごとの直接比率Aijを求める。OP3では、制御部15は、アプリケーションごとに発生要求量Riを求める。OP4では、制御部15は、サーバの収容量Cを求める。OP5では、制御部15は、線形計画問題を解く。
In OP2, the
OP6では、制御部15は、アプリケーションiについて、サーバjへの要求の振り分けの重みWijを算出し、負荷分散装置3に通知する。その後、図12に示される処理が終了する。
In OP6, the
<第1実施形態の作用効果>
図13は、各アプリケーションの要求量の状態が同条件の場合の、比較例のサーバ1とサーバ2とのメッセージ量と、具体例で算出された重みWijを用いた場合のサーバ1と
サーバ2とのメッセージ量との一例を示す図である。図13における比較例は、要求が、サーバ1とサーバ2との間で均等に振り分けられた場合の例である。図13における比較例のサーバ1、サーバ2の計測結果は、それぞれ、図5、図6で示されるものと同じである。
<Action and effect of the first embodiment>
FIG. 13 shows the message amounts of the
比較例では、サーバ1における全アプリケーションの間接メッセージの量の合計は55、サーバ2における全アプリケーションの間接メッセージの量の合計は55である。比較例でのサーバ1とサーバ2との間接メッセージ量の合計は、55+55=110である。
In the comparative example, the total amount of indirect messages of all applications on the
具体例で算出された重みWijが用いられた場合では、サーバ1における全アプリケーションの間接メッセージの量の合計は35、サーバ2における全アプリケーションの間接メッセージの量の合計は40である。具体例では、サーバ1とサーバ2との間接メッセージ量の合計は、35+40=75である。
When the weight Wij calculated in the specific example is used, the total amount of indirect messages of all applications on the
したがって、第1実施形態によれば、負荷分散装置3のラウンドロビンの重みを変えることによって、コントローラ間で転送されるメッセージ(間接メッセージ)の量を低減できる。また、図13では、具体例のサーバ1の要求量の合計とサーバ2の要求量の合計とは同じである。これは、線形計画問題において、サーバの収容量の上限を制約条件として設けたことに起因する。したがって、第1実施形態によれば、コントローラ間で転送されるメッセージの量を低減しつつ、サーバ間の処理負荷を分散させることができる。また、線形計画法は既存のライブラリを利用可能であるので、実装が比較的容易である。
Therefore, according to the first embodiment, the amount of messages (indirect messages) transferred between the controllers can be reduced by changing the weight of the round robin of the
なお、第1実施形態では、直接比率を線形計画問題の定数Aijとし、目的関数を最大にするような解Xijを求め、解Xijに基づいて、負荷分散装置3のラウンドロビンの重みが決定される。これに代えて、サーバjにおけるアプリケーションiのメッセージ総量に対する間接メッセージの比率である間接比率を線形計画問題の定数Aijとしてもよい。この場合には、目的関数は、コントローラ間で転送されるメッセージの量(間接メッセージ量)となるので、解Xijは目的関数を最小にするものとして算出される。負荷分散装置3のラウンドロビンの重みは、解Xijから得られた各アプリケーションについて各サーバに割り当てられる要求の割合となる。
In the first embodiment, the direct ratio is set to the constant Aij of the linear programming problem, the solution Xij that maximizes the objective function is obtained, and the round robin weight of the
<第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台である。
<Modified example of the first embodiment>
In the first embodiment, the direct ratio of each server in each application is used for the constant Aij of the linear programming problem. Instead of this, if the
図14は、第1実施形態の変形例に係る線形計画問題の定数Aijの一例を示す図である。図14に示される例は、図4のシステム構成を前提とする。図14に示される例の線形計画問題の定数Aijは、各アプリケーションにおける、各コントローラがマスタであるスイッチの割合である。図14に示される例の線形計画問題の定数Aijの値は、図7に示される第1実施形態に係る線形計画問題の定数Aijの値と一致しているので、線形計画問題の解として、図10に示される例と同じ値が得られる。したがって、第1実施形態の変形例によっても、コントローラ間で転送されるメッセージ量を低減させることがで
きる。
FIG. 14 is a diagram showing an example of the constant Aij of the linear programming problem according to the modified example of the first embodiment. The example shown in FIG. 14 is premised on the system configuration of FIG. The constant Aij of the example linear programming problem shown in FIG. 14 is the percentage of switches in each application for which each controller is the master. Since the value of the constant Aij of the linear programming problem of the example shown in FIG. 14 matches the value of the constant Aij of the linear programming problem according to the first embodiment shown in FIG. 7, as a solution of the linear programming problem, The same values as in the example shown in FIG. 10 are obtained. Therefore, the amount of messages transferred between the controllers can be reduced even by the modification of the first embodiment.
<第2実施形態>
第2実施形態では、線形計画法ではなく、ヒューリスティックアルゴリズムを用いて、負荷分散装置3が、各アプリケーションについて要求を各サーバに割り当てる際に用いるラウンドロビンの重みが決定される。ヒューリスティックアルゴリズムとは、必ずしも正しい答えを導けるわけではないが、ある程度のレベルで正解に近い解を得ることができる方法である。
<Second Embodiment>
In the second embodiment, heuristic algorithms are used instead of linear programming to determine the round robin weights that the
第2実施形態では、第1実施形態と共通する説明は省略される。第2実施形態では、システム構成、各装置のハードウェア構成、及び、機能構成は、第1実施形態と同様である。第2実施形態では、機能構成のうち、制御部15の処理が第1実施形態と異なる。
In the second embodiment, the description common to the first embodiment is omitted. In the second embodiment, the system configuration, the hardware configuration of each device, and the functional configuration are the same as those in the first embodiment. In the second embodiment, the processing of the
図15は、第2実施形態に係る、負荷分散装置3のラウンドロビンの重みの決定処理の一例を示す図である。図15では、図4に示される具体例が想定されている。第2実施形態では、制御部15は、第1実施形態のラウンドロビンの重み決定処理のステップ1(情報収集)、ステップ2(直接比率)、ステップ3(各アプリケーションの発生要求量算出)、ステップ4(各サーバの収容量算出)を実行する。以降の処理は、以下の通りである。
FIG. 15 is a diagram showing an example of a round robin weight determination process of the
図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に示される例と同じ値である。 Table shown in FIG. 15, for each application i, the required amount r (i), direct ratio a (i, j) and the including of each server j. The direct ratios a (i, j) of each server j are sorted in descending order of value. The initial value of the request amount r (i) of the application i is the request generation amount Ri of the application i. Further, in FIG. 15, the capacity c (j) of the server j is shown. The initial value of the capacity c (j) of the server j is the capacity C obtained by dividing the total amount required by all applications by the number of controllers. The direct ratio a (i, j), the initial value Ri of the requested quantity r (i), and the initial value C of the server capacity c (j) are the same as the examples shown in FIGS. 7, 8 and 9, respectively. The value.
まず、制御部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制御アプリケーションについての処理は終了する。
First, the
次に、制御部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については、処理対象から除外される。
Next, the
次に、制御部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制御アプリケーションについての処理は終了する。
Next, the
次に、制御部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になったので、処理が終了する。
Next, the
図15での、各アプリケーションについて各サーバへ割り当てられる要求量の割合は、第1実施形態の線形計画法を用いた場合の結果と同じになる(図10参照)。 The ratio of the request amount allocated to each server for each application in FIG. 15 is the same as the result when the linear programming method of the first embodiment is used (see FIG. 10).
図16は、第2実施形態に係るサーバ1の制御部15の、負荷分散装置3のラウンドロビンの重みの決定処理のフローチャートの一例である。図16に示される処理は、サーバ1の制御部15に、サーバ1及びサーバ2の要求量及びメッセージ量の情報が入力される周期と同じ周期で繰り返し実行される。図16に示される処理の実行主体は、CPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
FIG. 16 is an example of a flowchart of the round robin weight determination process of the
OP11では、制御部15は、サーバとアプリケーションとの組合せごとの、要求量、直接メッセージ量、間接メッセージ量、を情報収集部14から取得する。
In OP11, the
OP12では、制御部15は、サーバj上のアプリケーションiにおける直接比率a(i,j)、アプリケーションiの要求量r(i)の初期値Ri、サーバjの収容量C(j)の初期値Cを求める。それぞれの求め方は、第1実施形態と同様である。
In OP12, the
OP13では、制御部15は、サーバj上のアプリケーションiに割り当てられる要求量x(i,j)、サーバj上のアプリケーションiに対応したフラグf(i,j)を、それぞれ、0で初期化する。サーバj上のアプリケーションiに対応したフラグf(i,j)は、0である場合には未処理、1である場合には処理済みであることが示される。
In OP13, the
OP14では、制御部15は、アプリケーションiの要求量r(i)がすべて0であるか否かを判定する。アプリケーションiの要求量r(i)がすべて0である場合には(OP14:YES)、図16に示されている処理が終了する。アプリケーションiの要求量r(i)のいずれかが0でない場合には(OP14:NO)、処理がOP15に進む。
In OP14, the
OP15では、制御部15は、フラグf(i,j)が0である、アプリケーションiとサーバjとの組合せのうち、直接比率a(i,j)が最大のアプリケーションiとサーバjとを求める。OP15で求められたアプリケーションi、サーバjを、それぞれ、以降、アプリケーションii、サーバjjと表記する。
In OP15, the
OP16では、制御部15は、アプリケーションiiの要求量r(ii)、サーバjj
の収容量c(jj)、サーバjj上のアプリケーションiiに割り当てられる要求量x(ii,jj)を更新する。mは、r(ii)とc(jj)のうちの小さい方の値である。
In OP16, the
The capacity c (jj) of the above and the required amount x (ii, JJ) allocated to the application ii on the server jj are updated. m is the smaller value of r (ii) and 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を加算した値に更新される。 The requested amount r (ii) of the application ii is updated to a value obtained by subtracting m from r (ii). The requested amount x (ii, jj) allocated to the application ii on the server jj is updated to a value obtained by subtracting m from x (ii, jj). The requested amount x (ii, jj) allocated to the application ii on the server jj is updated to a value obtained by adding m to x (ii, JJ).
OP17では、制御部15は、アプリケーションiiの要求量r(ii)が0となるアプリケーションiiについて、全サーバjjのフラグf(ii,j)(jは全サーバ)を1にする。アプリケーションiiの要求量r(ii)が0とならない場合には、OP17の処理は省略される。
In OP17, the
OP18では、制御部15は、サーバjjの収容量c(jj)が0となるサーバjjについて、全アプリケーションiiのフラグf(i,jj)(iは全アプリケーション)を1にする。サーバjjの収容量c(jj)が0とならない場合には、OP18の処理は省略される。その後、処理がOP14に進み、OP14からの処理が繰り返し実行される。
In OP18, the
第2実施形態では、ヒューリスティックアルゴリズムによって、各アプリケーションについて、各サーバに割り当てられる要求量が決定される。その結果は、線形計画法で各アプリケーションについて、各サーバに割り当てられる要求量が求められる場合と同じである。したがって、第2実施形態によっても、サーバ間の処理負荷を分散させつつ、コントローラ間のメッセージの転送を低減させることができる。 In the second embodiment, the heuristic algorithm determines the amount of demand allocated to each server for each application. The result is the same as when linear programming is used to determine the amount of demand allocated to each server for each application. Therefore, according to the second embodiment as well, it is possible to reduce the transfer of messages between the controllers while distributing the processing load between the servers.
また、ヒューリスティックアルゴリズムを用いることによって、より高速に、各アプリケーションについて、各サーバに割り当てられる要求量を求めることができる。 In addition, by using a heuristic algorithm, it is possible to obtain the required amount assigned to each server for each application at a higher speed.
<第3実施形態>
第1実施形態では、線形計画問題の制約条件の一つであるサーバの収容量Cは、全アプリケーションの要求量の総和をコントローラ台数で割った、サーバ間で均等になるような値の定数である。また、第2実施形態においても、サーバjの収容量c(j)の初期値は、全アプリケーションの要求量をコントローラ台数で割った、サーバ間で均等な値である。第3実施形態では、サーバの収容量について、許容範囲を設定する。なお、第3実施形態では、第1実施形態、第2実施形態と共通する説明については、省略される。第3実施形態は、システム構成、ハードウェア構成、および、機能構成は、第1実施形態と同じであることを想定する。
<Third Embodiment>
In the first embodiment, the server capacity C, which is one of the constraints of the linear programming problem, is a constant having a value obtained by dividing the sum of the demands of all applications by the number of controllers and equalizing among the servers. be. Further, also in the second embodiment, the initial value of the accommodation capacity c (j) of the server j is a value equal among the servers obtained by dividing the required amount of all applications by the number of controllers. In the third embodiment, an allowable range is set for the capacity of the server. In the third embodiment, the description common to the first embodiment and the second embodiment will be omitted. The third embodiment assumes that the system configuration, the hardware configuration, and the functional configuration are the same as those of the first embodiment.
第3実施形態のサーバの収容量の制約条件は以下の通りである。
αは誤差の許容範囲を表す係数である。なお、誤差の表現は、Cに対する倍率で指定する方法に限られず、例えば、Cに誤差の許容範囲αを加算又は減算して表現してもよい。 α is a coefficient representing the allowable range of error. The expression of the error is not limited to the method of specifying by the magnification with respect to C, and may be expressed by adding or subtracting the permissible range α of the error to C, for example.
図17は、第3実施形態に係るサーバjの収容量Cjの一例を示す図である。図17の前提は、第1実施形態の具体例と同じである。例えば、サーバ1の収容量C1は40、サ
ーバ2の収容量C2は35と求められる。
FIG. 17 is a diagram showing an example of the capacity Cj of the server j according to the third embodiment. The premise of FIG. 17 is the same as the specific example of the first embodiment. For example, the capacity C1 of the
図18は、図17のサーバjの収容量Cjの値の設定について、線形計画法で算出された、サーバj上のアプリケーションiに割り当てられる要求量Xijの値の一例を示す図である。 FIG. 18 is a diagram showing an example of the value of the required amount Xij assigned to the application i on the server j calculated by the linear programming method for setting the value of the capacity Cj of the server j in FIG.
図19は、図18のサーバj上のアプリケーションiに割り当てられる要求量Xijの値に対応する、負荷分散装置3のラウンドロビンの重みの一例を示す図である。
FIG. 19 is a diagram showing an example of the round robin weight of the
図20は、各アプリケーションの要求量の状態が同条件の場合の、図19で示される重みWijが用いられて、各アプリケーションの要求がサーバ1とサーバ2とに振り分けられた場合の、サーバ1とサーバ2とのメッセージ量の一例を示す図である。
FIG. 20 shows the
図19で示される重みWijが用いられた場合では、サーバ1における全アプリケーションの間接メッセージの量の合計は40、サーバ2における全アプリケーションの間接メッセージの量の合計は30である。具体例では、サーバ1とサーバ2との間接メッセージ量の合計は、30+30=70である。例えば、図13に示される比較例の計測結果と比較すると、比較例の計測結果での間接メッセージ量の合計は、110であるので、コントローラ間で転送されるメッセージ量が削減されていることが分かる。
When the weight Wij shown in FIG. 19 is used, the total amount of indirect messages of all applications on the
したがって、第3実施形態によれば、サーバの収容量に誤差の許容範囲を持たせることによって、より効率よく、コントローラ間で転送されるメッセージ(間接メッセージ)の量を低減できる。 Therefore, according to the third embodiment, the amount of messages (indirect messages) transferred between the controllers can be reduced more efficiently by providing an error tolerance in the capacity of the server.
また、第3実施形態では、第1実施形態の線形計画法による例が説明されたが、第2実施形態のヒューリスティックアルゴリズムを用いる場合にも第3実施形態で説明された技術を適用可能である。 Further, in the third embodiment, an example by the linear programming method of the first embodiment has been described, but the technique described in the third embodiment can also be applied when the heuristic algorithm of the second embodiment is used. ..
<第3実施形態の変形例>
サーバ間の性能差が事前に判明している場合には、サーバ間の性能差に応じて収容量Cjを変化させてもよい。サーバ間の性能差に応じて収容量Cjを変化させる場合には、サーバの収容量の制約条件は以下のようになる。
If the performance difference between the servers is known in advance, the accommodation capacity Cj may be changed according to the performance difference between the servers. When the capacity Cj is changed according to the performance difference between the servers, the constraint conditions for the capacity of the server are as follows.
αjは、サーバjの性能を表す係数である。最も性能の低いサーバjの係数αjの値が1に設定される。なお、サーバ間の性能差に応じて収容量Cjを変化させる場合のサーバの収容量の制約条件は、サーバの収容量Cに対する倍率で指定する方法に限定されない。例えば、サーバ間の性能差に応じて収容量Cjを変化させる場合のサーバの収容量の制約条件は、サーバの収容量Cに対する加算又は減算で表現されてもよい。 αj is a coefficient representing the performance of the server j. The value of the coefficient αj of the server j having the lowest performance is set to 1. It should be noted that the constraint condition of the capacity of the server when the capacity Cj is changed according to the performance difference between the servers is not limited to the method of specifying by the magnification with respect to the capacity C of the server. For example, the constraint condition of the capacity of the server when the capacity Cj is changed according to the performance difference between the servers may be expressed by addition or subtraction with respect to the capacity C of the server.
<第4実施形態>
第1実施形態、第2実施形態、第3実施形態では、負荷分散装置3のラウンドロビンの重みWijが0と算出されたアプリケーションiのインスタンスは、要求が入力されないにもかかわらず、サーバj上で動作し続ける。要求が入力されないアプリケーションiのサーバj上のインスタンスによって、サーバj上のリソースが消費される。
<Fourth Embodiment>
In the first embodiment, the second embodiment, and the third embodiment, the instance of the application i for which the round robin weight Wij of the
第4実施形態では、算出された負荷分散装置3のラウンドロビンの重みWijが所定の
閾値δ未満であるサーバj上のアプリケーションiのインスタンスについては、動作が停止される。第4実施形態では、第1実施形態、第2実施形態、第3実施形態と共通する説明は省略される。第4実施形態では、システム構成、ハードウェア構成、及び、機能構成は、第1実施形態と同じものが想定される。
In the fourth embodiment, the operation of the instance of the application i on the server j whose calculated round robin weight Wij of the
例えば、図11で示される例の負荷分散装置3のラウンドロビンの重みWijが取得され、閾値δ=0.01である場合には、制御部15は、サーバ1上のDC#2制御アプリケーションとWAN制御アプリケーションとのインスタンスの動作の停止を判定する。制御部15は、重み通知部17を通じて、重みWijとともに、サーバ1上のDC#2制御アプリケーションとWAN制御アプリケーションとのインスタンスの動作の停止を、負荷分散装置3に通知する。
For example, when the round robin weight Wij of the
図21は、第4実施形態に係る制御部15の処理の、負荷分散装置3のラウンドロビンの重みの決定処理のフローチャートの一例である。図21に示される処理は、サーバ1の制御部15に、サーバ1及びサーバ2の要求量及びメッセージ量の情報が入力される周期と同じ周期で繰り返し実行される。図21に示される処理の実行主体は、CPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
FIG. 21 is an example of a flowchart of the round robin weight determination process of the
OP21では、制御部15は、サーバとアプリケーションとの組合せごとの、要求量、直接メッセージ量、間接メッセージ量、を情報収集部14から取得する。
In OP21, the
OP22では、制御部15は、サーバとアプリケーションとの組合せごとの直接比率Aijを求める。OP23では、制御部15は、アプリケーションごとに発生要求量Riを求める。OP24では、制御部15は、サーバの収容量Cを求める。OP25では、制御部15は、線形計画問題を解く。OP26では、制御部15は、線形計画問題を解いて得られた各アプリケーションの各サーバへ割り当てる要求量から、各アプリケーションについて、各サーバへ割り当てられる要求の割合を、負荷分散装置3のラウンドロビンの重みWijとして、算出する。
In OP22, the
OP27では、制御部15は、閾値δ未満の重みWijがあるか否かを判定する。閾値δ未満の重みWijがある場合には(OP27:YES)、処理がOP28に進む。閾値δ未満の重みWijがない場合には(OP27:NO)、処理がOP29に進む。
In OP27, the
OP28では、制御部15は、閾値δ未満の重みWijに対応するサーバj上のアプリケーションiのインスタンスの停止を負荷分散装置3に通知する。
In OP28, the
OP29では、制御部15は、ラウンドロビンの重みWijを負荷分散装置3に通知する。その後、図21に示される処理が終了する。
In OP29, the
第4実施形態では、算出された負荷分散装置3のラウンドロビンの重みWijが閾値δ未満である場合には、該当のサーバj上のアプリケーションiのインスタンスの動作が停止される。これによって、サーバjのリソースの消費を低減することができる。
In the fourth embodiment, when the calculated round robin weight Wij of the
なお、第4実施形態では、第1実施形態に対して適用する場合について説明されたが、これに限定されず、第4実施形態で説明された技術は、第2実施形態、第3実施形態にも適用可能である。 In the fourth embodiment, the case of applying to the first embodiment has been described, but the technique described in the fourth embodiment is not limited to this, and the techniques described in the fourth embodiment are the second embodiment and the third embodiment. It is also applicable to.
<第5実施形態>
第5実施形態では、各アプリケーションの要求は、各アプリケーションについて直接比率が最も高いサーバに割り当てられるように、負荷分散装置3のラウンドロビンの重みが
決定される。
<Fifth Embodiment>
In the fifth embodiment, the round robin weight of the
図22は、第5実施形態に係る各アプリケーションについて、直接比率が最も高いサーバの一例を示す図である。図22に示される図は、各アプリケーションについて、各サーバの直接比率が図7に示される値である場合の例である。制御部15は、各アプリケーションについて、各サーバの直接比率を算出すると、各アプリケーションについて、直接比率が最も高いサーバを選択する。直接比率が最も高いサーバが複数存在する場合には、例えば、制御部15は、ランダムにいずれかのサーバを選択する。
FIG. 22 is a diagram showing an example of a server having the highest direct ratio for each application according to the fifth embodiment. The figure shown in FIG. 22 is an example in the case where the direct ratio of each server is the value shown in FIG. 7 for each application. When the
図7において、DC#1制御アプリケーションで直接比率が最も高いのは、サーバ1であるので、図22ではサーバ1が選択されている。図7において、DC#2制御アプリケーションで直接比率が最も高いのは、サーバ2であるので、図22ではサーバ2が選択されている。図7において、WAN制御アプリケーションでは、サーバ1、サーバ2でともに直接比率1/2と同じ値であるので、図22では、ランダムに選択された結果、サーバ1が選択されている。
In FIG. 7, the
したがって、図22では、DC#1制御アプリケーションの要求はすべてサーバ1に割り振られることが示される。DC#2制御アプリケーションの要求はすべてサーバ2に割り振られることが示される。WAN制御アプリケーションの要求はすべてサーバ1に割り振られることが示される。
Therefore, in FIG. 22, it is shown that all the requests of the
図23は、各アプリケーションの要求量の状態が同条件の場合の、比較例でのサーバ1とサーバ2とのメッセージ量と、各アプリケーションについて、図22で示されるサーバに要求が振り分けられた場合の、サーバ1とサーバ2とのメッセージ量の一例を示す図である。図23に示される比較例は、図13に示される比較例と同じ、要求が、サーバ1とサーバ2との間で均等に振り分けられた場合の例である。
FIG. 23 shows the amount of messages between the
各アプリケーションについて、図22で示されるサーバに要求が割り振られた場合では、サーバ1における全アプリケーションの間接メッセージの量の合計は50、サーバ2における全アプリケーションの間接メッセージの量の合計は20である。具体例では、サーバ1とサーバ2との間接メッセージ量の合計は、50+20=70である。比較例のサーバ1とサーバ2との間接メッセージ量の合計は、110であるので、第5実施形態では、コントローラ間のメッセージの転送が低減されていることが示されている。
For each application, when requests are allocated to the server shown in FIG. 22, the total amount of indirect messages of all applications on
したがって、第5実施形態によれば、各アプリケーションについて、直接比率が最も高いサーバにすべての要求を割り当てる、コントローラ間で転送されるメッセージ(間接メッセージ)の量を低減できる。 Therefore, according to the fifth embodiment, it is possible to reduce the amount of messages (indirect messages) transferred between the controllers, which allocate all requests to the server having the highest direct ratio for each application.
<その他>
負荷分散装置3のラウンドロビンの重みを、分散型通信制御システム100全体での、各コントローラがマスタとなっているスイッチの数の割合としてもよい。この場合には、例えば、制御部15は、マスタ情報から、各サーバについて、マスタとなっているスイッチの割合を算出し、算出した割合を負荷分散装置3に通知する。これによって、マスタとなっているスイッチの数が多いコントローラほどより多くの要求が振り分けられるようになる。また、この場合には、アプリケーションが設定対象とするスイッチのマスタであるコントローラの偏りは考慮されない。
<Others>
The round robin weight of the
<第6実施形態>
第6実施形態では、スイッチ9のマスタとなるコントローラを他のコントローラに変更させることによって、アプリケーションの設定領域内のスイッチ9において、コントロー
ラがマスタを担当するスイッチ9の数に偏りを生じさせる。第6実施形態では、第1〜第5実施形態と重複する説明は省略される。
<Sixth Embodiment>
In the sixth embodiment, by changing the controller that becomes the master of the
例えば、図4に示される分散型通信制御システム100において、WAN制御アプリケーションの設定領域内には、サーバ1をマスタとするスイッチが2台、サーバ2をマスタとするスイッチが2台存在している。この場合、WAN制御アプリケーションの設定領域内では、サーバ1とサーバ2との間でコントローラがマスタを担当するスイッチの数に偏りがない。
For example, in the distributed
コントローラがマスタを担当するスイッチ9の数に偏りがない場合には、負荷分散装置3のWAN制御アプリケーションについてのラウンドロビンの重みがどのように設定されても、コントローラ間のメッセージ量の削減効果が小さい。なぜなら、例えば、各スイッチ9へメッセージが均等に送信されることを想定する場合、ラウンドロビンの重みがどのような値であっても、各コントローラにおいて、振り分けられた要求量に応じたメッセージ量が均等にコントローラ間で分配されるためである。
If the number of
第6実施形態では、スイッチ群のマスタを特定のコントローラに意図的に偏らせることによって、コントローラ間のメッセージの削減効果を大きくする。ただし、システム内には、複数のアプリケーションが動作している。そのため、第6実施形態では、全てのアプリケーションのコントローラ間メッセージの総量が削減されるように、マスタを変更する対象となるスイッチが決定される。 In the sixth embodiment, the master of the switch group is intentionally biased to a specific controller to increase the effect of reducing messages between controllers. However, multiple applications are running in the system. Therefore, in the sixth embodiment, the switch to be changed to the master is determined so that the total amount of inter-controller messages of all applications is reduced.
また、スイッチ9のマスタを変更してコントローラ間メッセージ量が削減されても、特定のコントローラにメッセージの処理が集中してしまうと、当該コントローラの負荷が大きくなる。この場合、システム全体としてのパフォーマンスが低下してしまう可能性がある。したがって、第6実施形態では、コントローラ間の負荷が均等になるように、マスタを変更する対象となるスイッチと当該スイッチの変更後のマスタとが決定される。
Further, even if the master of the
具体的には、各コントローラからスイッチ9へ送信されるメッセージ数が均等になるように、さらに、各コントローラに振り分けられる要求量が均等になるように、マスタを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとが決定される。
Specifically, as the number of messages sent from the Con preparative roller to the
第6実施形態では、マスタを変更する対象となるスイッチと当該スイッチの変更後のマスタとの決定を、サーバ1が行う。ただし、マスタを変更する対象のスイッチと当該スイッチの変更後のマスタとの決定を行うのは、サーバ1に限定されず、サーバ2、負荷分散装置3のいずれが行ってもよい。
In the sixth embodiment, the
第6実施形態では、分散型通信制御システム100のシステム構成、サーバ1のハードウェア構成及び機能構成は、第1実施形態と同様である。ただし、第6実施形態で説明される技術は、第2〜第5実施形態のサーバ1にも適用可能である。
In the sixth embodiment, the system configuration of the distributed
第6実施形態では、サーバ1の制御部15は、マスタを変更する対象となるスイッチ9と、当該スイッチ9の変更後のマスタとを決定する。具体的には、制御部15は、システム内の全スイッチからマスタの変更対象となる1又は複数のスイッチ9と変更後のマスタとの組み合わせの事例全てについて、負荷分散装置3のラウンドロビンの重みWijを求め、求めた重みWijに従った各アプリケーションの要求の振り分けのシミュレーションを行う。シミュレーションの結果として、コントローラ間メッセージ量、コントローラ間におけるコンローラからスイッチ9への送信メッセージ量の偏りが取得される。
In the sixth embodiment, the
シミュレーションは、所定の期間内に発生した、各アプリケーションの、発生要求量、
スイッチ9へ送信されたメッセージの情報に基づいて行われる。シミュレーションに用いられる上述の情報は、他のコントローラ及び情報収集部14によって収集される。
The simulation is based on the required amount of each application that occurred within a predetermined period.
This is done based on the information in the message sent to the
制御部15は、シミュレーション結果から、コントローラからスイッチ9への送信メッセージ量のコントローラ間での偏りが所定の閾値より小さい事例のうち、コントローラ間メッセージ量が少ない事例を選択する。制御部15は、選択した事例に基づいて、マスタを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとを決定する。マスタを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとを決定する処理を、以降、マスタ変更決定処理と称する。
From the simulation result, the
<マスタ変更決定処理の詳細>
図27は、第6実施形態に係る具体例において想定される分散型通信制御システム100Aの一例を示す図である。具体例に係る分散型通信制御システム100Aには、2台のコントローラ#1、コントローラ#2が含まれる。また、分散型通信制御システム100Aには、7台のスイッチ#1〜#7が含まれる。
<Details of master change decision processing>
FIG. 27 is a diagram showing an example of the distributed
コントローラ#1、コントローラ#2は、それぞれ、サーバ1、サーバ2に存在するインスタンスであるとする。また、コントローラ#1、コントローラ#2を搭載するサーバ1、サーバ2には、ともに、アプリケーション#1、アプリケーション#2のインスタンスが存在することとする。以降、サーバとコントローラとの文言を区別することなく用いる。例えば、コントローラ#1と称する場合には、サーバ1を示すこととする。サーバ1と称する場合には、コントローラ#1が示されることとする。
It is assumed that the
また、第6実施形態の具体例では、サーバ1、すなわち、コントローラ#1を搭載するサーバ1が、マスタ変更決定処理を行うことを想定する。マスタ変更決定処理は、マスタであるコントローラを変更する対象となるスイッチ9と当該スイッチ9の変更後のマスタとを決定する処理である。ただし、マスタ変更決定処理を実行する装置は、サーバ1に限定されず、サーバ2、負荷分散装置3であってもよい。
Further, in the specific example of the sixth embodiment, it is assumed that the
図28は、第6実施形態の具体例に係るマスタ情報の一例である。マスタ情報には、分散型通信制御システム100A内の各スイッチのマスタとなるコントローラの情報が格納されている。マスタ情報は、サーバ1のマスタ情報記憶部18Cに格納されている。マスタ情報は、分散型通信制御システム100Aの管理者によって予め設定されてもよいし、コントローラ間のネゴシエーションによって取得されてもよい。
FIG. 28 is an example of master information according to a specific example of the sixth embodiment. The master information stores information on the controller that is the master of each switch in the distributed
図28中では、コントローラ#1、コントローラ#2は、それぞれ、C#1、C#2と表記されている。スイッチ#1〜スイッチ#7は、それぞれ、SW#1〜SW#7と表記されている。以降の図においても同様である。
In FIG. 28, the
具体例に係る分散型通信制御システム100Aでは、コントローラ#1をマスタとするスイッチは、スイッチ#1、#2、#5、#6である。コントローラ#2をマスタとするスイッチ9は、スイッチ#3、#4、#7である。
In the distributed
具体例に係るマスタ変更決定処理において、分散型通信制御システム100Aにおいてマスタが変更されるスイッチ数を1台に限定することを前提とする。ただし、マスタが変更されるスイッチ数は1台に限定されず、複数台のスイッチについてマスタが変更されるようにしてもよい。
In the master change determination process according to the specific example, it is premised that the number of switches whose master is changed in the distributed
(ステップ1)
サーバ1の制御部15は、現在のマスタ情報に基づいて、マスタの変更の対象となるス
イッチの選択と選択されたスイッチの変更後のマスタとの組み合わせの事例全てについて、各事例を示すマスタ変更情報を生成する。具体例では、コントローラが2台、スイッチが7台、マスタが変更されるスイッチは1台であることが前提であるので、マスタ変更情報は、(スイッチ数)×(コントローラ数−1)=7×1=7個作成される。マスタ変更情報は「事例情報」の一例である。ステップ1の処理は、「前記複数の宛先装置から、1又は複数の宛先装置を選択する事例を示す事例情報を複数生成」することの一例である。
(Step 1)
Based on the current master information, the
図29は、第6実施形態の具体例に係るマスタ変更情報の一例を示す図である。マスタ変更情報は、マスタとなるコントローラを変更する対象となるスイッチ9の選択と当該選択されたスイッチ9の変更後のマスタとの組み合わせの事例に関する情報である。図29に示される例では、マスタ変更情報には、マスタ変更情報の識別情報、マスタを変更する対象となるスイッチ9の識別情報と、当該スイッチ9の変更後のマスタとなるコントローラの識別情報とが含まれている。
FIG. 29 is a diagram showing an example of master change information according to a specific example of the sixth embodiment. The master change information is information regarding an example of a combination of the selection of the
図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である。
In the example shown in FIG. 29, in the master
例えば、コントローラが2台、マスタ変更対象のスイッチの数が最大で2台と設定されている場合には、図29に示されるマスタ変更情報に加えて、7台から2台のスイッチ9
を選ぶ組合せの数(21通り)のマスタ変更情報が作成される。なお、マスタ変更情報は、一時的に主記憶装置102内の記憶領域に保持され、マスタ変更決定処理が終了すると、削除される。
For example, when the number of controllers is set to 2 and the number of switches to be changed to the master is set to 2 at the maximum, 7 to 2
Master change information is created for the number of combinations (21 combinations) to be selected. The master change information is temporarily stored in the storage area in the
(ステップ2)
サーバ1の制御部15は、ステップ1で求めたマスタ変更情報全てについて、マスタ変更情報が適用された場合、すなわち、マスタ変更対象のスイッチ9のマスタをマスタ変更情報が示すコントローラに変更した場合のアプリケーションの要求の振り分けのシミュレーションを行う。制御部15は、シミュレーションの結果として、例えば、コントローラ間メッセージ量と、コントローラからスイッチ9への送信メッセージ量の分散値とを取得する。シミュレーションの手順は以下の通りである。コントローラからスイッチ9への送信メッセージ量の分散値、標準偏差、最大値と最小値との差等のばらつきを示す指標値は、「前記複数の制御装置それぞれから制御対象とする複数の宛先装置へ送信されるメッセージ量の前記複数の制御装置間でのばらつきを示す指標値」の一例である。
(Step 2)
When the master change information is applied to all the master change information obtained in
(ステップ2−1)
サーバ1の制御部15は、スイッチリストを取得する。スイッチリストは、アプリケーションが所定期間内に設定したスイッチのリストである。アプリケーションが設定したスイッチとは、例えば、アプリケーションの要求に応じてコントローラによって作成されたメッセージの送信先のスイッチである。または、アプリケーションが設定したスイッチとは、例えば、アプリケーションの要求に応じてコントローラによって作成されたメッセー
ジを受信したスイッチである。
(Step 2-1)
The
図30は、第6実施形態の具体例に係るスイッチリストの一例を示す図である。具体例ではアプリケーションは2つであることが想定されているので、図30では、アプリケーション#1とアプリケーション#2とのスイッチリストが示されている。
FIG. 30 is a diagram showing an example of a switch list according to a specific example of the sixth embodiment. Since it is assumed that there are two applications in the specific example, FIG. 30 shows a switch list between
スイッチリストに含まれるスイッチの識別情報は、該当するアプリケーションの要求に応じてコントローラで作成されてスイッチ9に送信された1つのメッセージにつき1つ含まれる。スイッチリストに含まれるスイッチの識別情報は、該当するアプリケーションの要求に応じてコントローラで作成されたメッセージの送信先のスイッチの識別情報である。例えば、図30に示される例において、アプリケーション#1のスイッチリストには、SW#1、SW#1、SW#5、SW#4...が格納されている。これは、アプリケーション#1において、SW#1に送信されたメッセージ、SW#1に送信されたメッセージ、SW#5に送信されたメッセージ、SW#4に送信されたメッセージが発生したことを示す。
The switch identification information included in the switch list is included once for each message created by the controller and sent to the
各アプリケーションのスイッチリストに含まれるメッセージの送信先のスイッチの情報のうち、自コントローラに関するメッセージの送信先のスイッチの情報は、例えば、メッセージ量記憶部18Bに蓄積されている。自コントローラに関するメッセージの送信先のスイッチの情報とは、自コントローラが送信したメッセージの送信先のスイッチ9の情報である。情報収集部14は、メッセージ量記憶部18Bから、自コントローラに関するメッセージの送信先のスイッチの情報を読み出し、制御部15に出力する。
Among the information of the switch of the destination of the message included in the switch list of each application, the information of the switch of the destination of the message regarding the own controller is stored in, for example, the message
各アプリケーションのメッセージの送信先のスイッチの情報のうち、他のコントローラに関するメッセージの送信先のスイッチの情報は、例えば、各コントローラから計測結果受信部16を通じて受信されることによって取得される。他のコントローラに関するメッセージの送信先のスイッチの情報は、他コントローラが送信したメッセージの送信先のスイッチ9の情報である。なお、スイッチリストは、一時的に主記憶装置102内の記憶領域に保持され、マスタ変更決定処理が終了すると、削除される。
Among the information of the switch of the destination of the message of each application, the information of the switch of the destination of the message regarding the other controller is acquired by being received from each controller through the measurement
スイッチリストに含まれるスイッチの識別情報は、1つのメッセージの送信先を示す情報であり、1つのメッセージに対応している。したがって、スイッチリストには、該当するアプリケーションの要求に応じて作成されたメッセージに関する情報が含まれている、と言ってもよい。そのため、以降、スイッチリストに含まれる要素(スイッチの識別情報)を、メッセージと表現することもある。 The switch identification information included in the switch list is information indicating the destination of one message, and corresponds to one message. Therefore, it can be said that the switch list contains information about the message created in response to the request of the corresponding application. Therefore, thereafter, the element (switch identification information) included in the switch list may be expressed as a message.
(ステップ2−2)
サーバ1の制御部15は、アプリケーションiとコントローラjとの全ての組合せについて、直接比率Aijを求める。第6実施形態では、直接比率Aijは、第1実施形態と同様にして求められる。
(Step 2-2)
The
図31は、第6実施形態の具体例に係るアプリケーションiのコントローラjにおける直接比率Aijの一例を示す図である。具体例では、コントローラは2台、アプリケーションは2つであるので、直接比率Aijは2×2の行列となる。 FIG. 31 is a diagram showing an example of the direct ratio Aij in the controller j of the application i according to the specific example of the sixth embodiment. In a specific example, since there are two controllers and two applications, the direct ratio Aij is a 2 × 2 matrix .
図31に示される例では、アプリケーション#1のコントローラ#1における直接比率A11は、1/4である。アプリケーション#1のコントローラ#2における直接比率A12は、3/4である。アプリケーション#2のコントローラ#1における直接比率A21は、3/5である。アプリケーション#2のコントローラ#2における直接比率A22は、2/5である。
In the example shown in FIG. 31, the direct ratio A11 in
(ステップ2−3)
サーバ1の制御部15は、所定期間内の各アプリケーションの発生要求量と直接比率Aijとに基づいて、コントローラ間メッセージ量を最小とする負荷分散装置3のラウンドロビンの重みWijを求める。所定期間内の各アプリケーションの発生要求量は、情報収集部14から取得される。負荷分散装置3のラウンドロビンの重みWijは、第1実施形態又は第2実施形態と同様にして求められる。ステップ2−3の処理は、「生成した前記複数の事例情報のそれぞれについて、選択された宛先装置を制御対象とする制御装置を他の制御装置に変更した場合について、前記重みを決定」することの一例である。
(Step 2-3)
The
図32は、第6実施形態の具体例に係るアプリケーションの発生要求量の一例を示す図である。具体例では、アプリケーション#1の発生要求量を20とする。アプリケーション#2の発生要求量を10とする。
FIG. 32 is a diagram showing an example of an application generation request amount according to a specific example of the sixth embodiment. In a specific example, the generation request amount of
図33は、第6実施形態の具体例に係る負荷分散装置3のラウンドロビンの重みWijの一例である。具体例では、アプリケーション#1に関して、コントローラ#1への重みW11は1/4、コントローラ#2への重みW12は3/4である。アプリケーション#2に関して、コントローラ#1への重みW21は1、コントローラ#2への重みW22は0である。
FIG. 33 is an example of the round robin weight Wij of the
(ステップ2−4)
サーバ1の制御部15は、スイッチリスト、負荷分散装置3のラウンドロビンの重みWijを用いて、各マスタ変更情報が適用された場合について、各アプリケーションからの要求の振り分けのシミュレーションを行う。例えば、シミュレーションは、以下のように行われる。
(Step 2-4)
The
制御部15は、アプリケーションiについて、スイッチリスト内の対象メッセージの送信先であるスイッチ9のマスタであるコントローラk(k:0を含まない正の整数)を、対象のマスタ変更情報とマスタ情報とに基づいて取得する。すなわち、対象メッセージの送信先であるスイッチ9のマスタであるコントローラkは、マスタ変更情報を適用した場合の変更後のマスタ情報に基づいて取得される。対象のメッセージは、いずれのコントローラにおいて作成されたとしても、マスタのコントローラkから送信先であるスイッチ9に送信される。したがって、スイッチリスト内の対象メッセージは、コントローラkからスイッチ9への送信メッセージであるので、制御部15は、コントローラからスイッチ9への送信メッセージ量CMikに1をインクリメントする。
For the application i, the
制御部15は、アプリケーションiに対するコントローラkのラウンドロビンの重みWikを用いて乱数を発生させ、発生した乱数に基づいて負荷分散装置3の要求の振り分け先となるコントローラjを選択する。
The
コントローラkとコントローラjとが一致しない場合には、当該メッセージの作成要因となった要求は負荷分散装置3によってコントローラk以外のコントローラに振り分けられることが示される。対象メッセージのマスタはコントローラkであるので、対象メッセージは振分先のコントローラj(j≠k)で作成されてマスタのコントローラkに送信され、マスタのコントローラkから送信先のスイッチ9に送信されることになる。したがって、コントローラkとコントローラjとが一致しない場合には、対象メッセージはコントローラ間メッセージとなるので、制御部15は、コントローラ間メッセージ量interMsgsに1をインクリメントする。
When the controller k and the controller j do not match, it is shown that the request that is the cause of creating the message is distributed by the
なお、コントローラkとコントローラjとが一致する場合には、対象メッセージの作成
要因となる要求は負荷分散装置3によってコントローラkに振り分けられることが示される。対象メッセージのマスタはコントローラkであるので、対象メッセージは振分先のコントローラj(j=k)によって作成されて送信先のスイッチ9に送信されることになる。この場合には、コントローラ間メッセージは発生しないので、コントローラ間メッセージ量interMsgsは更新されない。
When the controller k and the controller j match, it is shown that the request that causes the creation of the target message is distributed to the controller k by the
サーバ1の制御部15は、上記の処理を、各アプリケーションのスイッチリストに含まれる全てのメッセージについて行う。各アプリケーションのスイッチリストに含まれる全てのメッセージについて上記の処理が行われると、制御部15は、コントローラkからスイッチ9への送信メッセージ量CMikに基づいて、コントローラからスイッチ9への送信メッセージ量の分散値を求める。分散値の求め方は、周知の方法のいずれであってもよい。
The
なお、コントローラからスイッチ9への送信メッセージ量の偏りを示す値は、分散値に限定されない。コントローラ間における直接送信されるメッセージ量の偏りを示す値として、例えば、標準偏差、最大値と最小値との差等が用いられてもよい。
The value indicating the bias of the amount of transmitted messages from the controller to the
制御部15は、各マスタ変更情報が適用された全ての場合について、シミュレーションが行われ、コントローラ間メッセージ量interMsgsとコントローラからスイッチ9への送信メッセージ量の分散値とを求める。ステップ2−4の処理は、「決定した重みに基づいて前記所定の処理の要求の振り分けをシミュレートして、前記複数の制御装置間で転送されるメッセージ量と、前記複数の制御装置それぞれから制御対象とする複数の宛先装置へ送信されるメッセージ量の前記複数の制御装置間でのばらつきを示す指標値と、を取得」することの一例である。
The
(ステップ3)
サーバ1の制御部15は、シミュレーション結果に基づいて、採用するマスタ変更情報を選択する。具体的には、例えば、制御部15は、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であるマスタ変更情報のうち、最もコントローラ間メッセージ量の少ないマスタ変更情報を採用する。採用するマスタ変更情報が決定すると、当該マスタ変更情報に含まれるマスタ変更対象のスイッチ9が、マスタ変更対象のスイッチとして選択される。
(Step 3)
The
コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であるマスタ変更情報のうち、最もコントローラ間メッセージ量の少ないマスタ変更情報を採用することは、「前記複数の制御装置間で転送されるメッセージ量が削減され、且つ、前記複数の制御装置それぞれから前記制御対象とする複数の宛先装置へ送信されるメッセージ量が前記複数の制御装置間で均等であることを含む条件」の一例である。コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であることは、「前記複数の制御装置それぞれから前記制御対象とする複数の宛先装置へ送信されるメッセージ量が前記複数の制御装置間で均等であること」の一例である。
Of the master change information in which the distribution value of the amount of messages transmitted from the controller to the
ステップ3の処理は、「前記ばらつきを示す指標値が所定の閾値以下である事例情報のうち最も制御装置間で転送されるメッセージ量が少ない事例情報を抽出し、抽出された事例情報において選択された1又は複数の宛先装置を制御対象とする制御装置を他の制御装置に変更することを判定する」ことの一例である。
The process of
図34は、第6実施形態の具体例に係るシミュレーション結果の一例を示す図である。例えば、コントローラからスイッチ9への送信メッセージ量の分散値の閾値が5であるとする。
FIG. 34 is a diagram showing an example of simulation results according to a specific example of the sixth embodiment. For example, assume that the threshold value of the distributed value of the amount of messages transmitted from the controller to the
図34に示される例の場合、制御部15は、コントローラからスイッチ9への送信メッセージ量の分散値が閾値(5)以下のマスタ変更情報#1、#2、#5、#6、#7を抽出する。次に、制御部15は、マスタ変更情報#1、#2、#5、#6、#7のうち、コントローラ間メッセージ量が10で最も少ないマスタ変更情報#2を選択する。すなわち、制御部15は、マスタを変更するスイッチをスイッチ#2に決定する。
In the case of the example shown in FIG. 34, the
図35は、第6実施形態の具体例に係るマスタ変更情報#2を適用後のマスタ情報の一例を示す図である。マスタ変更情報#2は、スイッチ#2のマスタをコントローラ#1からコントローラ#2へと変更することを示す。したがって、制御部15は、マスタ情報記憶部18C内のマスタ情報を、スイッチ#2のマスタをコントローラ#1からコントローラ#2へと変更したものに更新する。
FIG. 35 is a diagram showing an example of master information after applying the master
また、制御部15は、例えば、他のコントローラにマスタ変更情報#2を通知する。マスタ変更情報は、例えば、図3には示されていない機能構成要素である、コントローラ間インタフェース部を通じて他のコントローラに通知される。マスタ変更情報を受信したコントローラは、マスタ変更情報に従って、マスタ情報を更新する。これは、システム内のコントローラ間でマスタ情報の整合性を保つ方法の一例である。
Further, the
<処理の流れ>
図36は、第6実施形態に係るマスタ変更決定処理のフローチャートの一例である。図36に示される処理は、例えば、所定の周期で実行されてもよいし、所定のイベントの発生を契機に実行されてもよい。図36に示される処理の実行契機となるイベントは、例えば、アプリケーションiについて、コントローラ間で直接比率Aijの偏りが閾値未満となること、である。図36に示される例の実行主体は、サーバ1のCPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
<Processing flow>
FIG. 36 is an example of a flowchart of the master change determination process according to the sixth embodiment. The process shown in FIG. 36 may be executed, for example, at a predetermined cycle, or may be executed when a predetermined event occurs. The event that triggers the execution of the process shown in FIG. 36 is, for example, that the bias of the direct ratio Aij between the controllers is less than the threshold value for the application i. The execution subject of the example shown in FIG. 36 is the
OP31では、制御部15は、マスタを変更するスイッチ9と当該スイッチ9の変更後のマスタとの組合せの全てのパターンについて、マスタ変更情報を生成する。例えば、コントローラが2台で、7台中1台のスイッチ9のマスタを変更する場合には、マスタ変更情報は7つ生成される。コントローラが2台で、7台中2台のスイッチ9のマスタを変更する場合には、マスタ変更情報は21個生成される。
In OP31, the
OP32では、制御部15は、全てのマスタ変更情報について、適用した場合のシミュレーションを行う。シミュレーションによって、各マスタ変更情報を適用した場合について、コントローラ間メッセージ量interMsgsとコントローラからスイッチ9への送信メッセージ量の分散値とが取得される。シミュレーションの処理の詳細は後述される。
In OP32, the
OP33では、制御部15は、シミュレーション結果から、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下のマスタ変更情報を抽出する。
In OP33, the
OP34では、制御部15は、OP33において抽出したマスタ変更情報のうち、コントローラ間メッセージが最も少ないマスタ変更情報を、採用するマスタ変更情報として取得する。制御部15は、取得したマスタ変更情報においてマスタを変更する対象となっているスイッチ9を、マスタ変更対象のスイッチとして決定する。その後、図36に示される処理が終了する。
In the OP 34, the
なお、OP33において、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下のマスタ変更情報が存在しない場合には、いずれのスイッチ9のマスタも変更
しないことが判定されてもよい。または、コントローラからスイッチ9への送信メッセージ量の分散値が最も小さいマスタ変更情報が選択されてもよい。
In OP33, if there is no master change information in which the distribution value of the amount of transmitted messages from the controller to the
なお、制御部15は、OP33、OP34の処理に代えて、以下の処理を実行してもよい。例えば、制御部15は、シミュレーション結果から、最もコントローラ間メッセージ量が少ないマスタ変更情報を選択する。次に、制御部15は、選択したマスタ変更情報の、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下であるか否かを判定する。
The
選択したマスタ変更情報の、コントローラからスイッチ9への送信メッセージ量の分散値が閾値以下である場合に、制御部15は、選択したマスタ変更情報を採用するマスタ変更情報として取得する。選択したマスタ変更情報の、コントローラからスイッチ9への送信メッセージ量の分散値が閾値より大きい場合には、制御部15は、次にコントローラ間メッセージ量が少ないマスタ変更情報を選択し、同様の処理を行う。
When the distributed value of the amount of messages transmitted from the controller to the
図36のOP31の処理は、マスタ変更決定処理の(ステップ1)に相当する。図36のOP32の処理は、マスタ変更決定処理の(ステップ2)に相当する。図36のOP33、OP34の処理は、マスタ変更決定処理の(ステップ3)に相当する。 The process of OP31 in FIG. 36 corresponds to (step 1) of the master change determination process. The process of OP32 in FIG. 36 corresponds to (step 2) of the master change determination process. The processes of OP33 and OP34 in FIG. 36 correspond to (step 3) of the master change determination process.
図37A及び図37Bは、シミュレーションの処理のフローチャートの一例である。図37A及び図37Bに示される処理は、図36のOP32において実行される処理である。図37A及び図37Bに示される例の実行主体は、サーバ1のCPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。図37A及び図37Bに示される処理は、所定期間に発生したアプリケーションの要求に応じてスイッチ9に送信されるメッセージに基づいて行われる。
37A and 37B are examples of flowcharts of simulation processing. The process shown in FIGS. 37A and 37B is the process executed in OP 32 of FIG. The execution subject of the example shown in FIGS. 37A and 37B is the
OP41では、制御部15は、各アプリケーションについて、スイッチリストを取得する。スイッチリストは、例えば、計測結果受信部16を通じて他のコントローラから受信される情報、及び、メッセージ量記憶部18Bに格納されている情報から取得される。
In OP41, the
OP42では、制御部15は、各アプリケーションの発生要求量を取得する。各アプリケーションの発生要求量は、制御部15がアプリケーション要求量記憶部18Aを参照することで取得される。
In OP42, the
OP43〜OP50の処理は、各マスタ変更情報について繰り返し実行される。OP43では、制御部15は、全てのアプリケーションi、全てのコントローラjについて、直接比率Aijを取得する。直接比率Aijは、例えば、第1実施形態と同様にして求められる。
The processes of OP43 to OP50 are repeatedly executed for each master change information. In OP43, the
OP44では、制御部15は、負荷分散装置3のラウンドロビンの重みWijを、全てのアプリケーションi、全てのコントローラjについて、取得する。負荷分散装置3のラウンドロビンの重みWijは、第1実施形態〜第5実施形態のいずれかと同様にして求められる。
In OP44, the
図37BのOP45〜OP49の処理は、全アプリケーションについて繰り返し行われる。また、図37BのOP45〜OP49の処理は、1つのアプリケーションのスイッチリストに含まれるメッセージの送信先であるスイッチの数分繰り返し実行される。すなわち、図37BのOP45〜OP49の処理は、(1つのアプリケーションのスイッチリストに含まれるメッセージの数)×(アプリケーションの数)×(マスタ変更情報の数)に相当する回数繰り返される。 The processes of OP45 to OP49 in FIG. 37B are repeated for all applications. Further, the processes of OP45 to OP49 in FIG. 37B are repeatedly executed for the number of switches to which the messages included in the switch list of one application are transmitted. That is, the processes of OP45 to OP49 in FIG. 37B are repeated a number of times corresponding to (the number of messages included in the switch list of one application) × (the number of applications) × (the number of master change information).
以降、処理対象のアプリケーションをアプリケーションiとする。アプリケーションiのスイッチリスト内の処理対象のメッセージを、対象メッセージ、と称する。 Hereinafter, the application to be processed is referred to as application i. The message to be processed in the switch list of application i is referred to as a target message.
OP45では、制御部15は、アプリケーションiのスイッチリスト内の対象メッセージの送信先であるスイッチ9のマスタであるコントローラkを、対象のマスタ変更情報とマスタ情報とに基づいて、取得する。すなわち、アプリケーションiのスイッチリスト内の対象メッセージの送信先であるスイッチ9のマスタであるコントローラkは、対象のマスタ変更情報が適用された後のマスタ情報に基づいて求められる。
In OP45, the
OP46では、制御部15は、コントローラkからスイッチ9への送信メッセージ量CMikに1を加算して更新する。
In OP46, the
OP47では、制御部15は、アプリケーションiに対するコントローラkの重みWikに基づいて乱数を発生させ、発生した乱数に基づいて、対象メッセージの振り分け先となるコントローラjを決定する。
In OP47, the
OP48では、制御部15は、対象メッセージのマスタであるコントローラkと、対象メッセージの振り分け先であるコントローラjとが一致するか否かを判定する。コントローラkとコントローラjとが一致する場合には(OP48:YES)、処理が、対象のアプリケーションiのスイッチリスト内の次のメッセージ又は次のアプリケーションについてOP45に、又は、OP50に進む。コントローラkとコントローラjとが一致しない場合には(OP48:NO)、処理がOP49に進む。
In OP48, the
OP49では、対象メッセージがコントローラ間メッセージとなることが示されるので、制御部15は、コントローラ間メッセージ量interMsgsに1を加算して更新する。その後、処理が、対象のアプリケーションiのスイッチリスト内の次のメッセージ、又は、次のアプリケーションについて、OP45に、又は、OP50に進む。
Since it is shown in OP49 that the target message is an inter-controller message, the
1つのマスタ変更情報について、全アプリケーションのスイッチリスト内の全メッセージについて、OP45〜OP49の処理が終了すると、処理がOP50に進む。 When the processing of OP45 to OP49 is completed for all the messages in the switch list of all applications for one master change information, the processing proceeds to OP50.
OP50では、制御部15は、各コントローラからスイッチ9への送信メッセージ量の分散値を求める。その後、次のマスタ変更情報について処理がOP45に進む。または、全てのマスタ変更情報についての処理が終了した場合には、処理が図36のOP33に進む。
In OP50, the
図37AのOP41の処理は、マスタ変更決定処理の(ステップ2−1)に相当する。図37AのOP43の処理は、マスタ変更決定処理の(ステップ2−2)に相当する。図37AのOP42、OP44の処理は、マスタ変更決定処理の(ステップ2−3)に相当する。図37Bの処理は、マスタ変更決定処理の(ステップ2−4)に相当する。 The process of OP41 in FIG. 37A corresponds to (step 2-1) of the master change determination process. The process of OP43 in FIG. 37A corresponds to (step 2-2) of the master change determination process. The processes of OP42 and OP44 in FIG. 37A correspond to (step 2-3) of the master change determination process. The process of FIG. 37B corresponds to (step 2-4) of the master change determination process.
<第6実施形態の作用効果>
第6実施形態では、スイッチ9のマスタを変更させることによって、スイッチ9のマスタを担当するコントローラに偏りを生じさせる。スイッチ9のマスタを担当するコントローラの偏りに応じて、第1〜第5実施形態に係る負荷分散装置3のラウンドロビンの重みWijの決定処理によってラウンドロビンの重みWijが決定される。これによって、コントローラ間メッセージ量の削減効果を向上させることができる。
<Action and effect of the sixth embodiment>
In the sixth embodiment, by changing the master of the
マスタの変更対象のスイッチ9は、シミュレーションによって、各コントローラからス
イッチ9への送信メッセージ量の偏りが少なく、且つ、コントローラ間メッセージ量が少なくなるように決定される。これによって、分散型通信制御システム100全体の処理効率を向上させることができる。
The
また、マスタ変更情報を適用した場合の、アプリケーションの要求の振り分けのシミュレーションでは、マスタ変更情報の適用後のマスタ情報に基づいて、負荷分散装置3のラウンドロビンの重みWijが求められる。求められるラウンドロビンの重みWijは、各アプリケーションのコントローラ間メッセージの総量を最小とするように求められる。したがって、第6実施形態によれば、全てのアプリケーションのコントローラ間メッセージの総量が削減されるように、マスタを変更するスイッチが決定される。
Further, in the simulation of distribution of application requests when the master change information is applied, the round robin weight Wij of the
<第7実施形態>
第6実施形態では、全てのマスタ変更情報について、マスタ変更情報が適用された場合のシミュレーションが行われる。第7実施形態では、シミュレーションを実行するマスタ変更情報を絞り込むことによって、シミュレーションの処理に係る負荷を削減し、処理を高速化させる。第7実施形態では、第6実施形態と重複する説明は省略される。第7実施形態では、分散型通信制御システム100のシステム構成、サーバ1のハードウェア構成及び機能構成は、第6実施形態と同様である。
<7th Embodiment>
In the sixth embodiment, a simulation is performed for all the master change information when the master change information is applied. In the seventh embodiment, the load related to the simulation processing is reduced and the processing speed is increased by narrowing down the master change information for executing the simulation. In the seventh embodiment, the description overlapping with the sixth embodiment is omitted. In the seventh embodiment, the system configuration of the distributed
<マスタ変更情報の絞り込み処理>
マスタ変更情報の絞り込み処理は、マスタ変更決定処理における、(ステップ1)のマスタ変更情報の作成の処理の前に実行される処理である。したがって、マスタ変更情報の絞り込み処理は、マスタ変更決定処理における(ステップ1)の処理のサブステップとして説明する。なお、以降、第6実施形態と同様の分散型通信制御システム100Aが想定された具体例とともに説明される。
<Processing to narrow down master change information>
The process of narrowing down the master change information is a process executed before the process of creating the master change information in (step 1) in the master change determination process. Therefore, the process of narrowing down the master change information will be described as a sub-step of the process of (step 1) in the master change determination process. Hereinafter, the same distributed
(ステップ1−1)
サーバ1の制御部15は、全てのアプリケーションとコントローラとの組み合わせについて、直接比率Aijを取得する。なお、直接比率Aijは、例えば、第1実施形態と同様にして取得される。
(Step 1-1)
The
図38は、第7実施形態の具体例に係るアプリケーションiのコントローラjにおける直接比率Aijの一例を示す図である。第7実施形態の具体例では、コントローラは2台、アプリケーションは2つであるので、直接比率Aijは2×2の行列となる。 FIG. 38 is a diagram showing an example of the direct ratio Aij in the controller j of the application i according to the specific example of the seventh embodiment. In the specific example of the seventh embodiment, since there are two controllers and two applications, the direct ratio Aij is a 2 × 2 matrix .
図38に示される例では、アプリケーション#1のコントローラ#1における直接比率A11は、1/2である。アプリケーション#1のコントローラ#2における直接比率A12は、1/2である。アプリケーション#2のコントローラ#1における直接比率A21は、2/3である。アプリケーション#2のコントローラ#2における直接比率A22は、1/3である。
In the example shown in FIG. 38, the direct ratio A11 in
(ステップ1−2)
サーバ1の制御部15は、ステップ1−1で求めた直接比率Aijについて、各アプリケーションについて、分散値を求める。ただし、分散値に限定されず、ばらつきを表す指標であればよく、例えば、標準偏差、最大値と最小値との差等が用いられてもよい。
(Step 1-2)
The
図39は、第7実施形態の具体例に係る各アプリケーションの直接比率の分散値の一例を示す図である。図39に示される各アプリケーションの直接比率の分散値は、図38に示される例の直接比率Aijに基づいて求められたものである。 FIG. 39 is a diagram showing an example of the variance value of the direct ratio of each application according to the specific example of the seventh embodiment. The variance value of the direct ratio of each application shown in FIG. 39 is obtained based on the direct ratio Aij of the example shown in FIG. 38.
図39に示される例では、アプリケーション#1の直接比率の分散値は、0である。アプリケーション#2の直接比率の分散値は、約0.28である。
In the example shown in FIG. 39, the variance value of the direct ratio of
(ステップ1−3)
サーバ1の制御部15は、直接比率の分散値が閾値以下のアプリケーションを抽出する。直接比率の分散値が小さいほど、アプリケーションの設定領域内におけるスイッチ9がマスタとするコントローラの偏りが小さいことが示される。そのため、直接比率の分散値が閾値以下のアプリケーションに、スイッチ9がマスタとするコントローラに偏りを生じさせることで、コントローラ間メッセージの削減により大きな効果が得られる。
(Step 1-3)
The
例えば、アプリケーションの直接比率の分散値が図39に示される例の値であり、閾値が0.1である場合には、制御部15は、アプリケーション#1を抽出する。ステップ1−1〜1−3の処理は、「前記複数種類の所定の処理から、前記複数の制御装置それぞれから前記制御対象の複数の宛先装置に送信されたメッセージ量が前記複数の制御装置間で均等である第1の種類を取得」することの一例である。アプリケーションの直接比率の分散値が閾値以下であることは、「前記複数の制御装置それぞれから前記制御対象の複数の宛先装置に送信されたメッセージ量が前記複数の制御装置間で均等である」ことの一例である。
For example, when the variance value of the direct ratio of the application is the value of the example shown in FIG. 39 and the threshold value is 0.1, the
(ステップ1−4)
サーバ1の制御部15は、ステップ1−3で抽出したアプリケーションについて、最も送信メッセージ量が多いスイッチ9を抽出する。各スイッチ9への所定のアプリケーションの送信メッセージ量は、当該所定のアプリケーションのスイッチリストに含まれるスイッチの識別情報を集計することで取得される。そのため、第7実施形態では、ステップ1−4の処理より前にスイッチリストの取得が行われる。ステップ1−4の処理は、「前記第1の種類の所定の処理のメッセージの受信メッセージ量の多い上位の1又は複数の宛先装置を取得」することの一例である。
(Step 1-4)
The
図40は、第7実施形態の具体例に係るアプリケーション#1の各スイッチ9への送信メッセージ量の一例である。図40に示される例では、SW#4への送信メッセージ量が一番多いので、スイッチ#4が抽出される。
FIG. 40 is an example of the amount of messages transmitted to each
(ステップ1−5)
サーバ1の制御部15は、現在のマスタ情報に基づいて、ステップ1−4において抽出したスイッチをマスタの変更対象とするマスタ変更情報を生成する。例えば、図40に示される第7実施形態の具体例では、スイッチ#4が抽出されるので、制御部15は、スイッチ#4のマスタをコントローラ#1(図28参照)からコントローラ#2に変更するマスタ変更情報を作成する。ステップ1−5の処理は、「複数の宛先装置から前記取得した1又は複数の宛先装置を選択する事例情報を生成する」ことの一例である。
(Step 1-5)
Based on the current master information, the
これによって、シミュレーションが実行されるマスタ変更情報の数を減らすことができる。なお、具体例では、7台のスイッチ9のうち1台のスイッチ9のマスタを変更することが前提とされているため、ステップ1−4では、最も送信メッセージ量の多いスイッチ9が抽出されるが、これに限られない。例えば、複数台のスイッチ9のマスタを変更する場合には、送信メッセージ量の多い該当数のスイッチ9が抽出されてもよい。ステップ2以降の処理は、第6実施形態と同様である。
This can reduce the number of master change information for which the simulation is performed. In the specific example, since it is assumed that the master of one of the seven
図41は、第7実施形態に係るマスタ変更決定処理のフローチャートの一例である。図41に示される処理は、図36に示される処理同様、例えば、所定の周期で実行されてもよいし、所定のイベントの発生を契機に実行されてもよい。処理の実行契機となるイベントは、例えば、アプリケーションiについて、コントローラ間で直接比率Aijの偏りが閾値未満となること、である。図41に示される例の実行主体は、サーバ1のCPU 101であるが、便宜上、機能構成要素である制御部15を主体として説明する。
FIG. 41 is an example of a flowchart of the master change determination process according to the seventh embodiment. Similar to the process shown in FIG. 36, the process shown in FIG. 41 may be executed, for example, at a predetermined cycle, or may be executed when a predetermined event occurs. The event that triggers the execution of the process is, for example, that the bias of the direct ratio Aij between the controllers is less than the threshold value for the application i. The execution subject of the example shown in FIG. 41 is the
OP60では、制御部15は、各アプリケーションについて、スイッチリストを作成する。
In OP60, the
OP61では、制御部15は、コントローラjとアプリケーションiとの全ての組合せについて、直接比率Aijを求める。直接比率Aijの求め方は、例えば、第1実施形態と同様である。
In OP61, the
OP62では、制御部15は、各アプリケーションの直接比率の分散値を求める。OP63では、制御部15は、直接比率の分散値が閾値以下のアプリケーションを抽出する。
In OP62, the
OP64では、制御部15は、OP63で抽出したアプリケーションの各スイッチ9への送信メッセージ量を取得する。OP65では、制御部15は、送信メッセージ量が最も多いスイッチをマスタ変更対象に設定する。ただし、マスタ変更対象となるスイッチ9の数が複数である場合には、送信メッセージ量の多い上位のスイッチ9が該当数選択される。
In OP64, the
OP66では、制御部15は、OP65においてマスタ変更対象に設定されたスイッチ9のマスタを変更するマスタ変更情報を作成する。OP67〜OP69では、OP66で作成されたマスタ変更情報について、図36のOP32〜OP34と同様の処理が行われる。
In OP66, the
なお、OP66において作成されるマスタ変更情報が1つであり、当該マスタ変更情報のコントローラからスイッチ9への送信メッセージ量の分散が閾値より大きい場合には、例えば、以下のようにしてもよい。OP65に処理が進み、制御部15は、次に送信メッセージ量が多いスイッチをマスタ変更対象に設定して、マスタ変更情報を作成し(OP66)、当該マスタ変更情報についてシミュレーションを行う。
When the master change information created in OP66 is one and the variance of the amount of messages transmitted from the controller to the
<第7実施形態の作用効果>
第7実施形態では、マスタが変更されるスイッチの全てのパターンについてではなく、条件を満たすスイッチのマスタが変更されるマスタ変更情報が作成される。これによって、シミュレーションの処理を削減することができ、マスタ変更決定処理を高速化することができる。また、シミュレーションに係るサーバ1の処理負荷を低減することができる。
<Action and effect of the seventh embodiment>
In the seventh embodiment, master change information is created in which the master of the switch satisfying the condition is changed, not for all the patterns of the switch whose master is changed. As a result, the simulation processing can be reduced and the master change determination processing can be speeded up. In addition, the processing load of the
また、マスタとなるコントローラの偏りが小さいアプリケーションについて、送信メッセージ量が多いスイッチ9がマスタ変更対象として設定されるので、よりコントローラ間メッセージを削減可能なマスタ変更情報を作成することができる。
Further, for an application in which the bias of the controller as the master is small, the
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
<Recording medium>
A program that enables a computer or other machine or device (hereinafter, computer or the like) to realize any of the above functions can be recorded on a recording medium that can be read by the computer or the like. The function can be provided by causing a computer or the like to read and execute the program of this recording medium.
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピ
ュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コ
ンピュータ等に固定された記録媒体としても利用可能である。
Here, a recording medium that can be read by a computer or the like is a non-temporary recording medium that can store information such as data and programs by electrical, magnetic, optical, mechanical, or chemical action and can be read from the computer or the like. Recording medium. Among such recording media, those that can be removed from a computer or the like include, for example, a memory such as a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a Blu-ray disk, a DAT, an 8 mm tape, or a flash memory. There are cards etc. Further, as a recording medium fixed to a computer or the like, there are a hard disk, a ROM (read-only memory), and the like. Further, the SSD (Solid State Drive) can be used as a recording medium that can be removed from a computer or the like, or as a recording medium that is fixed to the computer or the like.
1 サーバ
2 サーバ
3 負荷分散装置
9 スイッチ
11 要求受信部
12 メッセージ転送部
13 スイッチ設定部
14 情報収集部
15 制御部
16 計測結果受信部
17 重み通知部
18A アプリケーション要求量記憶部
18B メッセージ量記憶部
18C マスタ情報記憶部
101 CPU
102 主記憶装置
103 補助記憶装置
104 ネットワークインタフェース
1
102
Claims (17)
を備える情報処理装置。 A first receiving unit that receives a request that has been distributed to the own device among the requests that are distributed among a plurality of control devices, said executes a predetermined process in response to requests that are distributed to the own device, the predetermined depending on the result of the processing, to generate a message, when equipment of the destination of the message is a device of the control target of its own device transmits the message to the device of the destination equipment of the destination of the message When is a device to be controlled by another control device, the plurality of control devices including a control unit that transfers the message to the other control device are used for sorting the request for the predetermined process. the weight to be, as the made many requirements of a given process is distributed as the number of that equipment to the control target is often the controller to the control unit, determining unit,
Information processing device equipped with.
前記処理部は、前記複数の制御装置それぞれについて、前記複数の制御装置それぞれが制御対象とする装置の総数に対する前記複数の制御装置それぞれが制御対象とする装置の数の割合を、前記重みとして決定する、
請求項1に記載の情報処理装置。 For each of the plurality of control devices, further comprising a storage unit for storing the equipment information shall be the control object,
Wherein the processing unit, for each of the plurality of control devices, the ratio of the number of said plurality of control apparatus the plurality of control units to that equipment respectively the controlled object to the total number of devices each of which the control target, the weight Decide as,
The information processing device according to claim 1.
前記複数の制御装置それぞれから、前記複数の制御装置それぞれが受信した複数種類の所定の処理それぞれの要求量を受信する受信部をさらに備え、
前記処理部は、線形計画法において、前記複数種類の所定の処理のうちの種類iの所定の処理(1≦i≦所定の処理の種類の数)のメッセージの宛先の装置の総数に対する制御装置j(1≦j≦制御装置の数)の制御対象の装置の数の割合を定数Aijとし、前記制御装置jに振り分けられる前記種類iの所定の処理の要求量を変数Xijとして、ΣjX
ij(Σj:jに関する足し合わせ)を前記制御装置jに振り分け可能な要求量の上限値
とし、ΣiXij(Σi:iに関する足し合わせ)を前記種類iの所定の処理についての前記複数の制御装置それぞれが受信した要求量の総和とする制約条件のもとで、目的関数ΣAij*Xij(*は乗算記号)を最大化させる、前記制御装置jに振り分けられる前記
種類iの所定の処理の要求量Xijの値を取得し、取得された前記Xijの値の、前記種類iの所定の処理についての前記複数の制御装置それぞれが受信した要求量の総和に対する割合を、前記種類iの所定の処理の要求の前記制御装置jへの振り分けに用いられる重みとして決定する、
請求項1に記載の情報処理装置。 The information processing device
A receiving unit that receives a request amount of each of a plurality of types of predetermined processes received by each of the plurality of control devices is further provided from each of the plurality of control devices.
In the linear planning method, the processing unit is a control device for the total number of devices to which messages of a predetermined process of type i (1 ≤ i ≤ number of predetermined process types) among the plurality of types of predetermined processes are addressed. j the ratio of the number of equipment of the control object (the number of 1 ≦ j ≦ controller) and a constant Aij, the required amount of a given process of the type i to be allocated to the control unit j as variables Xij, sigma j X
ij (addition related to Σ j : j) is set as the upper limit of the required amount that can be distributed to the control device j, and Σ i Xij (addition related to Σ i : i) is set as the plurality of the predetermined processes of the type i. Predetermined processing of the type i assigned to the control device j that maximizes the objective function ΣAij * Xij (* is a multiplication symbol) under a constraint condition that is the sum of the requested amounts received by each of the control devices of The value of the requested amount Xij of the above is acquired, and the ratio of the acquired value of the Xij to the sum of the requested amounts received by each of the plurality of control devices for the predetermined process of the type i is determined by the predetermined type i. Is determined as a weight used for distributing the processing request to the control device j.
The information processing device according to claim 1.
前記複数の制御装置それぞれの、前記複数の制御装置それぞれによる前記所定の処理によって生成されたメッセージ総量に対する前記第1のメッセージの量の第1の比率又は前記第2のメッセージの量の第2の比率に基づいて、前記第1の比率が高い又は前記第2の比率が低い制御装置ほど当該制御装置へ振り分けられる前記所定の処理の要求量が多くなるように、前記複数の制御装置それぞれについて、前記所定の処理の要求の振り分けに用いられる重みを決定する処理部と、
を備える情報処理装置。 A first receiving unit that receives a request distributed to its own device among the requests distributed among a plurality of control devices, and a predetermined process is executed according to the request distributed to the own device to generate a message. and, if the equipment of the destination of the message is a device of the control target of its own device transmits the message to the device of the destination equipment of the destination of the message control target device of another control device In the case of, a message generated by each of the plurality of control devices executing the predetermined process from each of the plurality of control devices including a control unit for transferring the message to the other control device. The amount of the first message transmitted from each of the plurality of control devices to the device to be controlled by each of the plurality of control devices, and the second message transferred from each of the plurality of control devices to another control device. The amount of messages, the receiver that receives, and
A first ratio of the amount of the first message to the total amount of messages generated by the predetermined processing by each of the plurality of control devices, or a second of the amount of the second message. Based on the ratio, for each of the plurality of control devices, the control device having a higher first ratio or a lower second ratio requires a larger amount of the predetermined processing to be distributed to the control device. A processing unit that determines the weight used for distributing the request for the predetermined processing, and a processing unit that determines the weight.
Information processing device equipped with.
前記受信部は、前記複数の制御装置それぞれから、前記複数種類の所定の処理それぞれについての、前記第1のメッセージの量と、前記第2のメッセージの量とを受信し、
前記処理部は、前記複数の制御装置それぞれによって実行される前記複数種類の所定の処理それぞれについて、前記第1の比率又は第2の比率を求め、前記複数種類の所定の処理それぞれについて、前記複数の制御装置それぞれへの前記要求の振り分けに用いられる重みを決定する、
請求項4に記載の情報処理装置。 Each of the plurality of control devices executes a plurality of types of predetermined processes to generate a message.
The receiving unit receives from each of the plurality of control devices the amount of the first message and the amount of the second message for each of the plurality of types of predetermined processes.
The processing unit obtains the first ratio or the second ratio for each of the plurality of types of predetermined processes executed by each of the plurality of control devices, and the plurality of the plurality of predetermined processes for each of the plurality of types. Determines the weights used to distribute the requirements to each of the controllers in
The information processing device according to claim 4.
請求項4又は5に記載の情報処理装置。 The processing unit determines an upper limit value of a required amount that can be distributed to each of the plurality of control devices, and based on the first ratio or the second ratio and the upper limit value of the required amount, the first The control device having a higher ratio of The weight used for distributing the request to each of the plurality of control devices is determined so as not to exceed the upper limit value of each of the control devices.
The information processing device according to claim 4 or 5.
前記処理部は、線形計画法において、制御装置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に記載の情報処理装置。 The receiving unit, from each of the plurality of control devices, further receives the respective requirements of the double several predetermined process each of the plurality of control apparatus has received,
In the linear programming method, the processing unit is a predetermined process of type i (type of 1 ≦ i ≦ processing) among the plurality of types of predetermined processing executed by the control device j (1 ≦ j ≦ the number of control devices). Σ j Xij (Σ j :), where the first ratio or the second ratio with respect to (number of The addition related to j) is set as the upper limit of the required amount that can be processed by the control device j, and the addition related to Σ i Xij (Σ i : i) is received by each of the plurality of control devices for a predetermined process of the type i. The required amount of the predetermined processing of the type i allocated to the control device j that maximizes or minimizes the objective function ΣAij * Xij (* is a multiplication symbol) under the constraint condition that is the sum of the requested amounts. The value of Xij is acquired, and the ratio of the acquired value of Xij to the sum of the requested amounts received by each of the plurality of control devices for a predetermined process of the type i is assigned to the plurality of control devices j. Determined as the weight used for sorting the requirements for the predetermined processing of the type i.
The information processing device according to claim 6.
前記処理部は、前記複数の制御装置それぞれの処理可能な要求量の上限値と、前記複数種類の所定の処理それぞれの、前記複数の制御装置への要求の総量とに基づいて、前記複数種類の所定の処理それぞれについて、前記複数の制御装置のそれぞれが実行する前記複数種類の所定の処理それぞれについての前記第1の比率のうち最も高い値の第1の比率に対応する制御装置j(1≦j≦制御装置の数)に種類iの所定の処理(1≦i≦所定の処理の種類の数)の要求を割り当てる第1の処理を行い、前記制御装置jが実行する前記種類iの所定の処理についての前記第1の比率を第1の比率Aijとした場合に、前記第1の比率の高い順番で当該第1の比率Aijについて、前記制御装置jに割り当てられる要求量が前記要求量の上限値に達したら、前記制御装置jを除外した残りの制御装置について、前記複数種類の所定の処理それぞれの要求量の総数が0になるまで前記第1の処理を繰り返し実行し、前記複数の制御装置それぞれに割り当てられた前記複数種類の所定の処理それぞれの要求量の比率を、前記複数種類の所定の処理それぞれについて、前記複数の制御装置それぞれへの前記要求の振り分けに用いられる重みとして決定する、
請求項6に記載の情報処理装置。 The receiving unit, from each of the plurality of control devices, further receives the respective requirements of the double several predetermined process each of the plurality of control apparatus has received,
The processing unit has the plurality of types based on the upper limit of the amount of demand that can be processed by each of the plurality of control devices and the total amount of requests to the plurality of control devices for each of the plurality of types of predetermined processing. For each of the predetermined processes of the above, the control device j (1) corresponding to the first ratio of the highest value among the first ratios for each of the plurality of types of predetermined processes executed by each of the plurality of control devices. The first process of assigning a request for a predetermined process of type i (1 ≤ i ≤ the number of types of predetermined processes) to (≦ j ≦ the number of control devices) is performed, and the control device j executes the first process of the type i. When the first ratio for a predetermined process is set to the first ratio Aij, the required amount assigned to the control device j is the required amount for the first ratio Aij in descending order of the first ratio. When the upper limit of the amount is reached, the first process is repeatedly executed for the remaining control devices excluding the control device j until the total number of requested amounts of each of the plurality of types of predetermined processes becomes 0. The ratio of the required amount of each of the plurality of types of predetermined processes assigned to each of the plurality of control devices is used to distribute the request to each of the plurality of control devices for each of the plurality of types of predetermined processes. Decide as,
The information processing device according to claim 6.
請求項4から8のいずれか一項に記載の情報処理装置。 For a control device whose determined weight is lower than a predetermined threshold value, the processing unit determines to stop a predetermined process corresponding to the determined weight by the control device corresponding to the determined weight.
The information processing device according to any one of claims 4 to 8.
請求項3、7、8のいずれか一項に記載の情報処理装置。 The processing unit determines an upper limit value of the required amount of each of the plurality of control devices as a value having a predetermined allowable range.
The information processing device according to any one of claims 3, 7, and 8.
前記処理部は、前記複数の制御装置のそれぞれの前記要求量の上限値を、前記複数の制御装置それぞれが受信した前記複数種類の所定の処理それぞれの要求量の総和を前記複数の制御装置の台数で割った値とする、
請求項3、7、8のいずれか一項に記載の情報処理装置。 The receiving unit further receives from each of the plurality of control devices the requested amount of each of the plurality of types of predetermined processes received by each of the plurality of control devices.
The processing unit sets the upper limit of the required amount of each of the plurality of control devices and the sum of the requested amounts of each of the plurality of types of predetermined processes received by each of the plurality of control devices of the plurality of control devices. Divide by the number of units,
The information processing device according to any one of claims 3, 7, and 8.
請求項3、7、8のいずれか一項に記載の情報処理装置。 The processing unit determines an upper limit value of the required amount of each of the plurality of control devices according to the processing performance of each of the plurality of control devices.
The information processing device according to any one of claims 3, 7, and 8.
複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、前記自装置に振り分けられた要求に応じて所定の処理を実行し、メッセージを生成し、前記メッセージの宛先の装置が自装置の制御対象の装置である場合には前記メッセージを前記宛先の装置に送信し、前記メッセージの宛先の装置が他の制御装置の
制御対象の装置である場合には前記メッセージを前記他の制御装置に転送する制御部と、を備える前記複数の制御装置それぞれについて、制御対象とする装置の情報を記憶する記憶部と、
前記複数の制御装置それぞれについて、前記所定の処理の要求の振り分けに用いられる重みを、制御対象とする装置の数が多い制御装置ほど当該制御装置へ振り分けられる前記所定の処理の要求量が多くなるように、決定する、負荷分散制御方法。 The computer
A first receiving unit that receives a request distributed to its own device among the requests distributed among a plurality of control devices, and a predetermined process is executed according to the request distributed to the own device to generate a message. and, if the equipment of the destination of the message is a device of the control target of its own device transmits the message to the device of the destination equipment of the destination of the message of another control device
In the case of a device to be controlled, a control unit that transfers the message to the other control device, and a storage unit that stores information on the device to be controlled for each of the plurality of control devices.
For each of the plurality of control devices, the weights used for distribution of requests for the predetermined processing, demand of the predetermined processing is distributed number of that equipment to the control target to the many control device as the control device become so many, to determine the load sharing control method.
複数の制御装置間で振り分けられた要求のうち自装置に振り分けられた要求を受信する第1の受信部と、前記自装置に振り分けられた要求に応じて所定の処理を実行してメッセージを生成し、前記メッセージの宛先の装置が自装置の制御対象の装置である場合には前記メッセージを前記宛先の装置に送信し、前記メッセージの宛先の装置が他の制御装置の制御対象の装置である場合には前記メッセージを前記他の制御装置に転送する制御部と、を備える前記複数の制御装置それぞれから、前記複数の制御装置それぞれが前記所定の処理を実行することによって生成されたメッセージについて、前記複数の制御装置それぞれから前記複数の制御装置のそれぞれの制御対象の装置に送信された第1のメッセージの量と、前記複数の制御装置それぞれから他の制御装置に転送された第2のメッセージの量と、を受信し、
前記複数の制御装置それぞれの、前記複数の制御装置それぞれによる前記所定の処理によって生成されたメッセージ総量に対する前記第1のメッセージの量の第1の比率又は前記第2のメッセージの量の第2の比率に基づいて、前記第1の比率が高い又は前記第2の比率が低い制御装置ほど当該制御装置に振り分けられる前記所定の処理の要求量が多くなるように、前記複数の制御装置それぞれについて、前記所定の処理の要求の振り分けに用いられる重みを決定する、
負荷分散制御方法。 The computer
A first receiving unit that receives a request distributed to its own device among the requests distributed among a plurality of control devices, and a predetermined process is executed according to the request distributed to the own device to generate a message. and, if the equipment of the destination of the message is a device of the control target of its own device transmits the message to the device of the destination equipment of the destination of the message control target device of another control device In the case of, a message generated by each of the plurality of control devices executing the predetermined process from each of the plurality of control devices including a control unit for transferring the message to the other control device. The amount of the first message transmitted from each of the plurality of control devices to each of the controlled devices of the plurality of control devices, and the second message transferred from each of the plurality of control devices to another control device. The amount of messages, and received,
A first ratio of the amount of the first message to the total amount of messages generated by the predetermined processing by each of the plurality of control devices, or a second of the amount of the second message. Based on the ratio, for each of the plurality of control devices, the control device having a higher first ratio or a lower second ratio requires a larger amount of the predetermined processing to be distributed to the control device. Determines the weights used to distribute the requirements for the predetermined process.
Load balancing control method.
前記複数の制御装置それぞれが制御対象とする複数の装置から1又は複数の装置を選択し、
選択された装置を制御対象とする制御装置が他の制御装置に変更された場合に、前記複数の制御装置間で転送されるメッセージ量が削減され、且つ、前記複数の制御装置それぞれから前記複数の装置へ送信されるメッセージ量が前記複数の制御装置間で均等であることを含む条件を前記選択された装置が満たすか否かを判定し、
前記選択された装置が前記条件を満たす場合に、前記選択された装置を制御対象とする制御装置を他の制御装置に変更することを判定する、
請求項1から12のいずれか一項に記載の情報処理装置。 The processing unit
Select multiple instrumentation placed al one or more of equipment, each of the plurality of control apparatus is a control object,
When the control device for the selected equipment and the controlled object is changed to another control device, the amount of messages that are transferred between a plurality of control devices is reduced, and, from said each of the plurality of control devices the conditions under which the amount of messages sent to a plurality of equipment includes that uniform among the plurality of control devices to determine whether the selected equipment satisfies,
Determining that the selected equipment is if the condition is satisfied, it changes the control device to be controlled to the selected equipment to another control device,
The information processing device according to any one of claims 1 to 12.
前記複数の装置から、1又は複数の装置を選択する事例を示す事例情報を複数生成し、
生成した前記複数の事例情報のそれぞれについて、選択された装置を制御対象とする制御装置を他の制御装置に変更した場合について、前記重みを決定し、決定した重みに基づいて前記所定の処理の要求の振り分けをシミュレートして、前記複数の制御装置間で転送されるメッセージ量と、前記複数の制御装置それぞれから制御対象とする複数の装置へ送信されるメッセージ量の前記複数の制御装置間でのばらつきを示す指標値と、を取得し、
前記条件として、前記ばらつきを示す指標値が所定の閾値以下である事例情報のうち最も制御装置間で転送されるメッセージ量が少ない事例情報を抽出し、抽出された事例情報において選択された1又は複数の装置を制御対象とする制御装置を他の制御装置に変更することを判定する、
請求項15に記載の情報処理装置。 The processing unit
Wherein the plurality of instrumentation placed et al, to generate a plurality of case information indicating a case of selecting one or more equipment,
For each of the generated plurality of case information, the case of changing the controller to be controlled the selected equipment to another control device, to determine the weights, it determined the predetermined processing based on the weight was sorting and simulate the request, the amount of messages that are transferred between the plurality of control devices, said plurality of control of the amount of messages sent to a plurality of equipment to be controlled from each of the plurality of control devices Obtain the index value, which indicates the variation between devices, and
As the condition, one or one selected in the extracted case information is extracted from the case information in which the index value indicating the variation is equal to or less than a predetermined threshold value and the amount of messages transferred between the control devices is the smallest. It determines to change the control unit to be controlled a plurality of equipment to another control device,
The information processing device according to claim 15.
前記処理部は、前記複数種類の所定の処理から、前記複数の制御装置それぞれから前記制御対象の複数の装置に送信されたメッセージ量が前記複数の制御装置間で均等である第1の種類を取得し、前記第1の種類の所定の処理のメッセージの受信メッセージ量の多い上位の1又は複数の装置を取得し、前記複数の装置から前記取得した1又は複数の装置を選択する事例情報を生成する、
請求項16に記載の情報処理装置。 Each of the plurality of control devices executes a plurality of types of predetermined processes to generate a message.
Wherein the processing unit, the plurality of types of the predetermined process, the first type message volume which is transmitted to a plurality of equipment of the controlled object from each of the plurality of control devices is equal among the plurality of control devices acquires, selecting the first type of acquired one or more equipment received message intensive upper predetermined processing of the message, said plurality of instrumentation placed et the acquired one or more equipment Generate case information
The information processing device according to claim 16.
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 JP2017215933A (en) | 2017-12-07 |
JP2017215933A5 JP2017215933A5 (en) | 2020-02-06 |
JP6938944B2 true JP6938944B2 (en) | 2021-09-22 |
Family
ID=60575703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017028289A Active JP6938944B2 (en) | 2016-05-26 | 2017-02-17 | Information processing device and load balancing control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6938944B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286656B (en) * | 2020-10-21 | 2023-08-29 | 百度在线网络技术(北京)有限公司 | Applet simulation method, apparatus, electronic device, and computer-readable storage medium |
WO2023218663A1 (en) * | 2022-05-13 | 2023-11-16 | 楽天モバイル株式会社 | Execution platform determination system and execution platform determination method |
WO2023218664A1 (en) * | 2022-05-13 | 2023-11-16 | 楽天モバイル株式会社 | Replacement system and replacement method |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2011083780A1 (en) * | 2010-01-05 | 2013-05-13 | 日本電気株式会社 | Communication system, control device, processing rule setting method, packet transmission method and program |
EP2811701B1 (en) * | 2012-02-02 | 2019-07-24 | Nec Corporation | Controller, load-balancing method, computer program product and computer system |
WO2014046875A1 (en) * | 2012-09-20 | 2014-03-27 | Ntt Docomo, Inc. | A method and apparatus for topology and path verification in networks |
-
2017
- 2017-02-17 JP JP2017028289A patent/JP6938944B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017215933A (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7257728B2 (en) | Method, computer program and computer system for dynamic selection of deployment configurations of software applications | |
CN108009016B (en) | Resource load balancing control method and cluster scheduler | |
US10255052B2 (en) | Dynamic deployment of an application based on micro-services | |
US10841241B2 (en) | Intelligent placement within a data center | |
CN110869909B (en) | System and method for applying machine learning algorithms to calculate health scores for workload scheduling | |
US8793381B2 (en) | Workload adaptive cloud computing resource allocation | |
US10616370B2 (en) | Adjusting cloud-based execution environment by neural network | |
US9092266B2 (en) | Scalable scheduling for distributed data processing | |
US20160380908A1 (en) | Resource Prediction for Cloud Computing | |
JP5121936B2 (en) | RESOURCE ALLOCATION DEVICE, RESOURCE ALLOCATION PROGRAM, RECORDING MEDIUM, AND RESOURCE ALLOCATION METHOD | |
CN108463988A (en) | The network file of load balancing accesses | |
JPWO2008102739A1 (en) | Virtual server system and physical server selection method | |
JP6938944B2 (en) | Information processing device and load balancing control method | |
US10397315B2 (en) | Information processing apparatus and load distribution control method | |
JP7119082B2 (en) | Application Prioritization for Automatic Diagonal Scaling in Distributed Computing Environments | |
JP2014513852A (en) | Scalable centralized dynamic resource distribution in cluster data grids | |
WO2016040699A1 (en) | Computing instance launch time | |
US11489735B2 (en) | Dynamic network allocation apparatus, dynamic network allocation method and non-transitory computer-readable medium | |
KR20200062299A (en) | Transaction selection device for selecting blockchain transactions | |
Naik et al. | Multiobjective virtual machine selection for task scheduling in cloud computing | |
US20160019090A1 (en) | Data processing control method, computer-readable recording medium, and data processing control device | |
CN114207589A (en) | Computing platform optimization over the lifetime of workloads in a distributed computing environment | |
CN107483634B (en) | Load balancing method and system | |
IL301738A (en) | Predictive block storage size provisioning for cloud storage volumes | |
JPWO2016084327A1 (en) | Resource prediction apparatus, resource prediction method, resource prediction program, and distributed processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191112 |
|
A521 | Written amendment |
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 | Written amendment |
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 |