JP7125593B2 - Information processing program, information processing apparatus, and information processing method - Google Patents
Information processing program, information processing apparatus, and information processing method Download PDFInfo
- Publication number
- JP7125593B2 JP7125593B2 JP2018083895A JP2018083895A JP7125593B2 JP 7125593 B2 JP7125593 B2 JP 7125593B2 JP 2018083895 A JP2018083895 A JP 2018083895A JP 2018083895 A JP2018083895 A JP 2018083895A JP 7125593 B2 JP7125593 B2 JP 7125593B2
- Authority
- JP
- Japan
- Prior art keywords
- server
- information
- processing
- load
- servers
- 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
Landscapes
- Computer And Data Communications (AREA)
Description
本発明は、情報処理プログラム、情報処理装置及び情報処理方法に関する。 The present invention relates to an information processing program, an information processing apparatus, and an information processing method.
例えば、利用者にサービスを提供する事業者(以下、単に事業者とも呼ぶ)は、サービスの提供を行うための情報処理システムを構築して稼働させる。具体的に、事業者は、例えば、利用者から受け付けたリクエストに対して実行する必要がある各種処理(以下、単にリクエストに対応する処理とも呼ぶ)を実行する複数のサーバと、利用者から受け付けたリクエストを複数のサーバのうちのいずれかに割り当てるロードバランサとを含む情報処理システムの構築を行う。 For example, a business that provides services to users (hereinafter simply referred to as a business) builds and operates an information processing system for providing services. Specifically, for example, the business operator has multiple servers that execute various processes that need to be executed in response to requests received from users (hereinafter simply referred to as processing corresponding to requests), and a server that receives requests from users. An information processing system including a load balancer that allocates a request to one of a plurality of servers is constructed.
上記のような情報処理システムにおけるロードバランサは、例えば、複数のサーバに対して割り当てるリクエストの数が可能な限り均一になるように、利用者から受け付けたリクエストの割り当てを行う。これにより、事業者は、各サーバの処理負担の平準化を図ることが可能になる(例えば、特許文献1及び2参照)。
A load balancer in an information processing system as described above allocates requests received from users so that, for example, the number of requests allocated to a plurality of servers becomes uniform as much as possible. As a result, the business operator can level the processing load of each server (see
ここで、上記のようなリクエストに対応する各処理は、その内容によって実行時における処理負担が異なる。そのため、各サーバにおける処理負担は、各サーバに割り当てられたリクエストに対応する処理の内容によって大きく異なる場合がある。 Here, each process corresponding to the above requests differs in processing load at the time of execution depending on its contents. Therefore, the processing load on each server may vary greatly depending on the content of the processing corresponding to the request assigned to each server.
しかしながら、上記のようなロードバランサは、各サーバに対して一旦割り当てたリクエストを他のサーバに対して再度割り当てることができない場合がある。そのため、上記のような情報処理システムでは、一部のサーバに負荷が集中している場合であっても、そのサーバに割り当てられたリクエストを他のサーバに再度割り当てることができず、各サーバの処理負担の平準化させることができない場合がある。 However, the load balancer as described above may not be able to reassign requests once assigned to each server to other servers. Therefore, in the information processing system as described above, even if the load is concentrated on a part of a server, the requests assigned to that server cannot be re-assigned to other servers. It may not be possible to level the processing load.
そこで、一つの側面では、本発明は、各サーバの処理負担の平準化させることを可能とする情報処理プログラム、情報処理装置及び情報処理方法を提供することを目的とする。 Accordingly, in one aspect, an object of the present invention is to provide an information processing program, an information processing apparatus, and an information processing method that make it possible to level the processing load of each server.
実施の形態の一態様では、ロードバランサによって割り当てられたリクエストを個々に実行する複数のサーバのそれぞれで実行されるプログラムであって、自サーバに割り当てられた前記リクエストを実行するための複数の処理を特定し、特定した前記複数の処理ごとの負荷の情報と、前記自サーバとの対応情報を記憶部に記憶し、前記対応情報を記憶した記憶部を参照し、前記複数のサーバのそれぞれに対応する各処理の負荷の合計値を特定し、前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定し、前記差のうちの少なくとも1つが前記所定値以上であると判定した場合、前記所定値以上であると判定した前記差が前記所定値未満となるように、前記自サーバに対応付けられた処理を実行するサーバを変更し、かつ、前記対応情報を更新する、処理をコンピュータに実行させる。 According to one aspect of the embodiment, a program is executed by each of a plurality of servers for individually executing requests assigned by a load balancer, and includes a plurality of processes for executing the requests assigned to the own server. is specified, load information for each of the plurality of specified processes and correspondence information with the own server are stored in a storage unit, the storage unit storing the correspondence information is referenced, and each of the plurality of servers Identifying the total value of the load of each corresponding process, and determining whether or not at least one of the differences between the total value corresponding to the own server and the total value corresponding to the other servers is equal to or greater than a predetermined value. and when it is determined that at least one of the differences is equal to or greater than the predetermined value, the difference determined to be equal to or greater than the predetermined value is less than the predetermined value. A computer is caused to execute a process of changing the server that executes the process and updating the correspondence information.
一つの側面によれば、各サーバの処理負担の平準化させることを可能とする。 According to one aspect, it is possible to level the processing load of each server.
[情報処理システムの構成]
図1及び図2は、情報処理システム10の構成を示す図である。具体的に、図1に示す情報処理システム10は、サーバ1a、1b、1c及び1dと、ロードバランサ2と、操作端末3とを有する。なお、以下、サーバ1a、1b、1c及び1dを総称してサーバ1または情報処理装置1とも呼ぶ。
[Configuration of information processing system]
1 and 2 are diagrams showing the configuration of the
操作端末3は、例えば、利用者が使用するPC(Personal Computer)であり、各サーバ1に対して処理の実行を要求するためのリクエストを送信する。
The
ロードバランサ2は、例えば、物理マシン上に生成された1台以上の仮想マシンであり、操作端末3から受け付けたリクエストをサーバ1のうちのいずれかに送信する。具体的に、ロードバランサ2は、例えば、各サーバ1に対して送信したリクエストの数が均一になるように、リクエストを送信するサーバ1を決定する。
The
各サーバ1は、例えば、物理マシン上に生成された1台以上の仮想マシンであり、ロードバランサ2から受け付けたリクエストを蓄積し、先に受け付けたリクエストに対応する処理から順に実行する。具体的に、図1に示す例は、サーバ1aが処理A1及び処理A2を蓄積し、サーバ1bが処理B1を蓄積し、サーバ1cが処理C1及び処理C2を蓄積し、サーバ1dが処理D1を蓄積している状態を示す例である。なお、リクエストに対応する処理には、例えば、データベース(図示しない)に記憶されたデータを参照する処理、データベースに記憶されたデータを更新する処理、データベースに対して新たな情報を追加する処理及びデータベースに記憶されたデータを削除する処理が含まれるものであってよい。
Each
そして、例えば、図2に示すように、サーバ1aが処理A1、処理A2、処理A3及び処理A4を蓄積したことにより、サーバ1aの処理負荷が予め定められた閾値まで上昇した場合、管理サーバ(図示しない)は、例えば、新たなサーバ1eを追加する。一方、例えば、サーバ1aの処理負荷が予め定められた別の閾値まで低下した場合、管理サーバは、例えば、サーバ1のうちのいずれかのサーバを削除する。
Then, for example, as shown in FIG. 2, when the processing load of the
これにより、事業者は、利用者によるサービスの利用状況(例えば、操作端末3から送信されるリクエストの頻度)に応じて、サーバ1の台数を調整することが可能になる。そのため、事業者は、利用者に対するサービスの提供に用いられる物理リソース(例えば、物理マシンのCPUやメモリ等)を効率的に使用することが可能になる。
This enables the business operator to adjust the number of
ここで、操作端末3から送信されたリクエストに対応する各処理は、その内容によって各サーバ1における処理負担が大きく異なる。そのため、各サーバ1における処理負担は、各サーバ1に割り当てられたリクエストに対応する各処理の内容によって大きく異なる場合がある。
Here, each process corresponding to a request transmitted from the
しかしながら、ロードバランサ2は、各サーバ1に対して一旦割り当てたリクエストを、他のサーバ1に対して再度割り当てることができない場合がある。そのため、情報処理システム10では、一部のサーバ1に負荷が集中している場合であっても、そのサーバ1に割り当てられたリクエストを他のサーバ1に再度割り当てることができず、各サーバ1の処理負担の平準化させることができない場合がある。
However, the
そこで、本実施の形態における各サーバ1は、ロードバランサ2によって自サーバ1に割り当てられた各リクエストを実行するための複数の処理を特定する。そして、各サーバ1は、特定した複数の処理ごとの負荷の情報と、自サーバ1との対応情報を記憶部に記憶する。
Therefore, each
その後、各サーバ1は、対応情報を記憶した記憶部を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定し、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する。
After that, each
その結果、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であると判定した場合、各サーバ1は、所定値以上であると判定した差が所定値未満となるように、自サーバ1に対応付けられた処理を実行するサーバ1を変更し、かつ、対応情報を更新する。
As a result, when it is determined that at least one of the differences between the total value corresponding to the
すなわち、本実施の形態における各サーバ1は、例えば、各サーバ1の処理負荷の状態を示す対応情報を随時更新する。そして、各サーバ1は、対応情報を記憶した記憶部を参照し、自サーバ1が高負荷であると判定した場合、ロードバランサ2から受け付けたリクエストに対応する処理を他のサーバ1に引き継ぐ。
That is, each
これにより、各サーバ1は、各サーバ1の現在の状態を反映した対応情報を参照することで、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であるか否かの判定を行うことが可能になる。そのため、各サーバ1は、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であると判定した場合、自サーバ1に割り当てられたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼する旨の決定を行うことが可能になる。したがって、各サーバ1は、自サーバ1に割り当てられたリクエストに対応する処理の実行を、適切なタイミングにおいて他のサーバ1に依頼することが可能になり、各サーバ1の処理負担を平準化させることが可能になる。
As a result, each
[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図3は、サーバ1のハードウエア構成を示す図である。
[Hardware configuration of information processing system]
Next, the hardware configuration of the
サーバ1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
The
記憶媒体104は、例えば、ロードバランサ2によって割り当てられたリクエストに対応する処理を他のサーバ1に再度割り当てる処理(以下、サーバ変更処理とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示しない)を有する。また、記憶媒体104は、例えば、サーバ変更処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)であってよい。
The
CPU101は、記憶媒体104からメモリ102にロードされたプログラム110を実行してサーバ変更処理を行う。
The
外部インターフェース103は、例えば、他のサーバ1やロードバランサ2と通信を行う。
The
[情報処理システムの機能]
次に、情報処理システム10の機能について説明を行う。図4は、サーバ1の機能のブロック図である。
[Functions of information processing system]
Next, functions of the
各サーバ1は、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、リクエスト受付部111と、処理実行部112と、処理特定部113と、負荷判定部114と、サーバ決定部115(以下、装置決定部115とも呼ぶ)と、異常判定部116と、情報管理部117とを含む各種機能を実現する。
Each
そして、各サーバ1は、図4に示すように、対応情報131と、サーバ稼働情報132と、閾値情報133とを情報格納領域130に記憶する。
Each
リクエスト受付部111は、ロードバランサ2から送信されたリクエストを受け付ける。そして、情報管理部117は、例えば、リクエスト受付部111が受け付けたリクエストを情報格納領域130に記憶する。
The
処理実行部112は、リクエスト受付部111が受け付けたリクエストに対応する処理を実行する。具体的に、処理実行部112は、例えば、情報管理部117によって情報格納領域130に記憶されたリクエストに対応する処理を、ロードバランサ2から送信された順序が早いリクエストに対応する処理から順に実行する。
The
処理特定部113は、リクエスト受付部111が受け付けたリクエストに対応する処理を特定する。具体的に、処理特定部113は、自サーバ1に割り当てられたリクエストとして情報格納領域130に記憶されている1以上のリクエストにそれぞれ対応する処理を特定する。そして、情報管理部117は、処理特定部113が特定した処理ごとの負荷の情報と、自サーバ1を識別する識別情報とを対応付けた対応情報131を情報格納領域130に記憶する。対応情報131の具体例については後述する。
The
負荷判定部114は、対応情報131を記憶した情報格納領域130を参照し、各サーバ1に対応する各処理の負荷の合計値をサーバ1ごとに特定する。具体的に、負荷判定部114は、例えば、情報管理部117が対応情報131を記憶(更新)したことに応じて、各処理の負荷の合計値の特定を行うものであってよい。また、負荷判定部114は、例えば、定期的なタイミングにおいて、各処理の負荷の合計値の特定を行うものであってよい。そして、負荷判定部114は、特定した合計値のそれぞれから、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する。
The
サーバ決定部115は、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であると負荷判定部114が判定した場合、所定値以上であると判定した差が所定値未満となるように、自サーバ1に対応付けられた処理を実行するサーバ1を変更する。そして、情報管理部117は、この場合、変更された内容を反映するように、対応情報131の更新を行う。
If the
異常判定部116は、異常が発生している他のサーバ1が存在するか否かを判定する。そして、処理実行部112は、異常が発生している他のサーバ1が存在する場合、例えば、異常が発生している他のサーバ1が実行中であった処理と、異常が発生している他のサーバ1がこれから実行する予定であった処理とを引き継いで実行する。サーバ稼働情報132及び閾値情報133についての説明は後述する。
The
[第1の実施の形態の概略]
次に、第1の実施の形態の概略について説明する。図5は、第1の実施の形態におけるサーバ変更処理の概略を説明するフローチャート図である。また、図6及び図7は、第1の実施の形態におけるサーバ変更処理の概略を説明する図である。
[Outline of the first embodiment]
Next, an outline of the first embodiment will be described. FIG. 5 is a flowchart for explaining an outline of server change processing according to the first embodiment. 6 and 7 are diagrams for explaining the outline of the server change processing in the first embodiment.
サーバ1は、図5に示すように、処理実行タイミングまで待機する(S1のNO)。処理実行タイミングは、例えば、自サーバ1がロードバランサ2からリクエストを受け付けたタイミングであってよい。また、処理実行タイミングは、例えば、10秒間隔等の定期的なタイミングであってよい。
As shown in FIG. 5, the
そして、処理実行タイミングになった場合(S1のYES)、サーバ1は、ロードバランサ2によって自サーバ1に割り当てられたリクエストを実行するための複数の処理を特定する(S2)。続いて、サーバ1は、S2の処理で特定した複数の処理ごとの負荷の情報と、自サーバ1との対応情報131を情報格納領域130に記憶する(S3)。
Then, when it is time to execute the process (YES in S1), the
具体的に、サーバ1aは、図6に示すように、例えば、処理A1の実行中において新たなリクエストをロードバランサ2から受け付けた場合、実行中の処理A1及び新たなリクエストに対応する処理A2の実行に伴うサーバ1aの負荷についての情報と、サーバ1aの識別情報とを対応付けた対応情報131を情報格納領域130に記憶する。
Specifically, as shown in FIG. 6, for example, when the
その後、サーバ1は、対応情報131を記憶した情報格納領域130を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定し、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する(S4)。
After that, the
その結果、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であると判定した場合(S5のYES)、サーバ1は、S4の処理で所定値以上であると判定した差が所定値未満となるように、自サーバ1に対応付けられた処理を実行するサーバ1を変更して対応情報131を更新する(S6)。
As a result, if it is determined that at least one of the differences between the total value corresponding to its
具体的に、サーバ1aは、自サーバ1が高負荷状態にあると判定した場合、図7に示すように、例えば、ロードバランサ2によって自サーバ1に割り当てられた新たなリクエストに対応する処理A2を実行するサーバ1を、サーバ1aからサーバ1eに変更する。
Specifically, when the
一方、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差の全てが所定値以上でないと判定した場合(S5のNO)、サーバ1は、S6の処理を行わない。
On the other hand, if it is determined that all the differences between the total value corresponding to its
すなわち、本実施の形態における各サーバ1は、例えば、各サーバ1の処理負荷の状態を示す対応情報131を随時更新する。そして、各サーバ1は、対応情報131を記憶した情報格納領域130を参照し、自サーバ1が高負荷であると判定した場合、ロードバランサ2から受け付けたリクエストに対応する処理を他のサーバ1に引き継ぐ。
That is, each
これにより、各サーバ1は、各サーバ1の現在の状態を反映した対応情報131を参照することで、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であるか否かの判定を行うことが可能になる。そのため、各サーバ1は、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であると判定した場合、自サーバ1に割り当てられたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼する旨の決定を行うことが可能になる。したがって、各サーバ1は、自サーバ1に割り当てられたリクエストに対応する処理の実行を、適切なタイミングにおいて他のサーバ1に依頼することが可能になり、各サーバ1の処理負担を平準化させることが可能になる。
As a result, each
[第1の実施の形態の詳細]
次に、第1の実施の形態の詳細について説明する。図8から図14は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。また、図15から図27は、第1の実施の形態におけるサーバ変更処理の詳細を説明する図である。
[Details of the first embodiment]
Next, details of the first embodiment will be described. 8 to 14 are flowcharts for explaining the details of server change processing according to the first embodiment. 15 to 27 are diagrams for explaining the details of the server change processing according to the first embodiment.
[リクエストを受け付けた場合におけるサーバ変更処理]
初めに、ロードバランサ2からリクエストを受け付けた場合におけるサーバ変更処理について説明を行う。
[Server change processing when a request is accepted]
First, server change processing when a request is received from the
サーバ1のリクエスト受付部111は、図8に示すように、ロードバランサ2によって送信されたリクエストを受け付けるまで待機する(S11のNO)。
As shown in FIG. 8, the
そして、ロードバランサ2によって送信されたリクエストを受け付けた場合(S11のYES)、サーバ1の処理特定部113は、S11の処理で受け付けたリクエストに対応する処理を特定する(S12)。
Then, when the request transmitted by the
その後、サーバ1の情報管理部117は、S11の処理で受け付けたリクエストに対応する処理の負荷を示す情報と、自サーバ1の識別情報とを対応付けた対応情報131を情報格納領域130に記憶する(S13)。具体的に、情報管理部117は、S11の処理で受け付けたリクエストに対応する処理の識別情報と、S11の処理でリクエストを受け付けたサーバ1の識別情報とを対応付けた情報を第1対応情報131aの一部として記憶する。また、情報管理部117は、S11の処理で受け付けたリクエストに対応する処理と、各処理に含まれる各操作の実行状況とを対応付けた情報を第2対応情報131bの一部として記憶する。さらに、情報管理部117は、各サーバ1の識別情報と、各サーバ1の現在の負荷を示す情報とを対応付けた第3対応情報131cを更新する。以下、対応情報131の具体例について説明を行う。
Thereafter, the
[対応情報の具体例]
図15、図16、図17、図20、図21、図22、図23、図26及び図27は、対応情報131の具体例を説明する図である。具体的に、図15、図20及び図26は、第1対応情報131aの具体例を説明する図であり、図16、図21、図22、図23及び図27は、第2対応情報131bの具体例を説明する図であり、図17は、第3対応情報131cの具体例を説明する図である。
[Specific example of correspondence information]
15, 16, 17, 20, 21, 22, 23, 26 and 27 are diagrams for explaining specific examples of the
初めに、第1対応情報131aの具体例について説明を行う。 First, a specific example of the first correspondence information 131a will be described.
第1対応情報131aは、図15等に示すように、第1対応情報131aに含まれる各情報を識別する「項番」と、各処理の識別情報が設定される「処理ID」と、各処理に対応するリクエストを受け付けた日時が設定される「処理受付日時」とを項目として有する。また、第1対応情報131aは、図15等に示すように、各処理の実行が完了した日時が設定される「処理完了日時」と、各サーバ1の識別情報が設定される「サーバID」とを項目として有する。
The first correspondence information 131a includes, as shown in FIG. It has as an item "processing reception date and time" in which the date and time when the request corresponding to the processing is received is set. Further, as shown in FIG. 15 and the like, the first correspondence information 131a includes "processing completion date and time" in which the date and time when execution of each process is completed is set, and "server ID" in which identification information of each
具体的に、図15に示す第1対応情報131aにおいて、「項番」が「1」である情報には、「処理ID」として「A001」が設定され、「処理受付日時」として「2018/04/10 07:36:24」が設定されている。また、図15に示す第1対応情報131aにおいて、「項番」が「1」である情報には、「処理完了日時」として情報が設定されていないことを示す「-」が設定され、「サーバID」として「1a」が設定されている。 Specifically, in the first correspondence information 131a shown in FIG. 15, for the information whose “item number” is “1”, “A001” is set as the “processing ID” and “2018/2018” is set as the “processing reception date and time”. 04/10 07:36:24" is set. Further, in the first correspondence information 131a shown in FIG. 15, "-" indicating that the information is not set as the "processing completion date and time" is set to the information whose "item number" is "1", and " "1a" is set as "server ID".
また、図15に示す第1対応情報131aにおいて、「項番」が「2」である情報には、「処理ID」として「A003」が設定され、「処理受付日時」として「2018/04/10 08:11:51」が設定されている。また、図15に示す第1対応情報131aにおいて、「項番」が「2」である情報には、「処理完了日時」として「-」が設定され、「サーバID」として「1b」が設定されている。図15に含まれる他の情報についての説明は省略する。 Further, in the first correspondence information 131a shown in FIG. 15, "A003" is set as the "processing ID" for the information whose "item number" is "2", and "2018/04/04/2018" is set as the "processing reception date and time". 10 08:11:51" is set. Further, in the first correspondence information 131a shown in FIG. 15, "-" is set as the "process completion date and time" and "1b" is set as the "server ID" for the information whose "item number" is "2". It is Description of other information included in FIG. 15 is omitted.
すなわち、図15に示す第1対応情報131aは、サーバ1aに割り当てられたリクエストに対応する処理の「処理ID」が「A001」であり、サーバ1bに割り当てられたリクエストに対応する処理の「処理ID」が「A003」であり、サーバ1cに割り当てられたリクエストに対応する処理の「処理ID」が「A008」及び「A022」であることを示している。また、図15に示す第1対応情報131aは、サーバ1dに割り当てられたリクエストに対応する処理の「処理ID」が「A012」であり、サーバ1eに割り当てられたリクエストに対応する処理の「処理ID」が「A015」であることを示している。
That is, in the first correspondence information 131a shown in FIG. 15, the "process ID" of the process corresponding to the request assigned to the
次に、第2対応情報131bの具体例について説明を行う。 Next, a specific example of the second correspondence information 131b will be described.
第2対応情報131bは、図16等に示すように、第2対応情報131bに含まれる各情報を識別する「項番」と、各処理の識別情報が設定される「処理ID」と、各処理に含まれる各操作の識別情報が設定される「操作ID」と、各操作の処理状況が設定される「ステータス」とを項目として有する。「ステータス」には、各操作の実行が完了していることを示す「処理完了」、各操作を実行中であることを示す「処理中」、または、各操作の実行がまだ行われていないことを示す「未処理」が設定される。また、第2対応情報131bは、図16等に示すように、各操作の実行が開始された日時が設定される「操作開始日時」と、各操作の実行が完了した日時が設定される「操作完了日時」と、各サーバ1の識別情報が設定される「サーバID」とを項目として有する。
The second correspondence information 131b includes, as shown in FIG. It has items of "operation ID" in which identification information of each operation included in the process is set, and "status" in which the processing status of each operation is set. In "Status", "Processing completed" indicates that the execution of each operation has been completed, "Processing" indicates that each operation is being executed, or each operation has not yet been executed. "Unprocessed" is set to indicate that Further, as shown in FIG. 16 and the like, the second correspondence information 131b includes "operation start date and time" in which the date and time when the execution of each operation is started is set, and "operation start date and time" in which the date and time when the execution of each operation is completed is set. Operation completion date and time” and “server ID” in which identification information of each
具体的に、図16に示す第2対応情報131bにおいて、「項番」が「1」である情報には、「処理ID」として「A001」が設定され、「操作ID」として「B001」が設定され、「ステータス」として「処理完了」が設定されている。また、図16に示す第2対応情報131bにおいて、「項番」が「1」である情報には、「操作開始日時」として「2018/04/10 07:36:24」が設定され、「操作完了日時」として「2018/04/10 07:41:02」が設定され、「サーバID」として「1a」が設定されている。 Specifically, in the second correspondence information 131b shown in FIG. 16, "A001" is set as the "process ID" and "B001" is set as the "operation ID" for the information whose "item number" is "1". is set, and "process completed" is set as the "status". In addition, in the second correspondence information 131b shown in FIG. 16, "04/10/2018 07:36:24" is set as the "operation start date and time" for the information whose "item number" is "1", and " "2018/04/10 07:41:02" is set as "operation completion date and time", and "1a" is set as "server ID".
また、図16に示す第2対応情報131bにおいて、「項番」が「3」である情報には、「処理ID」として「A001」が設定され、「操作ID」として「B003」が設定され、「ステータス」として「処理中」が設定されている。また、図16に示す第2対応情報131bにおいて、「項番」が「3」である情報には、「操作開始日時」として「2018/04/10 07:41:43」が設定され、「操作完了日時」として「-」が設定され、「サーバID」として「1a」が設定されている。 Further, in the second correspondence information 131b shown in FIG. 16, "A001" is set as the "process ID" and "B003" is set as the "operation ID" for the information whose "item number" is "3". , "Processing" is set as "Status". In addition, in the second correspondence information 131b shown in FIG. 16, "2018/04/10 07:41:43" is set as the "operation start date and time" for the information whose "item number" is "3", and " "-" is set as the operation completion date and time, and "1a" is set as the "server ID".
さらに、図16に示す第2対応情報131bにおいて、「項番」が「5」である情報には、「処理ID」として「A001」が設定され、「操作ID」として「B005」が設定され、「ステータス」として「未処理」が設定されている。また、図16に示す第2対応情報131bにおいて、「項番」が「5」である情報には、「操作開始日時」として「-」が設定され、「操作完了日時」として「-」が設定され、「サーバID」として「1a」が設定されている。図16に含まれる他の情報についての説明は省略する。 Further, in the second correspondence information 131b shown in FIG. 16, "A001" is set as the "process ID" and "B005" is set as the "operation ID" for the information whose "item number" is "5". , "Unprocessed" is set as "Status". Further, in the second correspondence information 131b shown in FIG. 16, "-" is set as the "operation start date and time" and "-" is set as the "operation completion date and time" for the information whose "item number" is "5". "1a" is set as the "server ID". Description of other information included in FIG. 16 is omitted.
すなわち、図16に示す第2対応情報131bは、「処理ID」が「A001」である処理に含まれる各操作がサーバ1aによって実行されていることを示している。そして、図16に示す第2対応情報131bは、例えば、「操作ID」が「B001」及び「B002」である操作の実行が既に完了しており、「操作ID」が「B003」及び「B004」である操作の実行が現在行われており、「操作ID」が「B005」、「B006」及び「B007」である操作の実行がまだ行われていないことを示している。
That is, the second correspondence information 131b shown in FIG. 16 indicates that each operation included in the process with the "process ID" of "A001" is being executed by the
続いて、第3対応情報131cの具体例について説明を行う。 Next, a specific example of the third correspondence information 131c will be described.
第3対応情報131cは、図17に示すように、第3対応情報131cに含まれる各情報を識別する「項番」と、各サーバ1の識別情報が設定される「サーバID」と、各サーバ1の現在のCPU使用率(各サーバ1から取得した情報)が設定される「CPU使用率」とを項目として有する。また、第3対応情報131cは、図17に示すように、各サーバ1の現在のメモリ使用量(各サーバ1から取得した情報)が設定される「メモリ」と、各サーバ1における現在のスレッドの使用数(各サーバ1から取得した情報)が設定される「スレッド使用数」と、各サーバ1が実行している処理及び実行する予定の処理についての負荷の重度の合計値を示す「処理重度」とを項目として有する。
As shown in FIG. 17, the third correspondence information 131c includes a "item number" for identifying each piece of information included in the third correspondence information 131c, a "server ID" in which identification information of each
具体的に、図17に示す第3対応情報131cにおいて、「項番」が「1」である情報には、「サーバID」として「1a」が設定され、「CPU使用率」として「90(%)」が設定され、「メモリ使用量」として「18(GB)」が設定され、「スレッド使用数」として「5000」が設定され、「処理重度」として「200」が設定されている。 Specifically, in the third correspondence information 131c shown in FIG. 17, "1a" is set as the "server ID" and "90 ( %)” is set, “18 (GB)” is set as the “memory usage”, “5000” is set as the “number of threads used”, and “200” is set as the “processing level”.
また、図17に示す第3対応情報131cにおいて、「項番」が「2」である情報には、「サーバID」として「1b」が設定され、「CPU使用率」として「40(%)」が設定され、「メモリ使用量」として「10(GB)」が設定され、「スレッド使用数」として「6000」が設定され、「処理重度」として「120」が設定されている。図17に含まれる他の情報についての説明は省略する。 Further, in the third correspondence information 131c shown in FIG. 17, "1b" is set as the "server ID" and "40 (%)" is set as the "CPU usage rate" for the information whose "item number" is "2". ' is set, '10 (GB)' is set as the 'memory usage', '6000' is set as the 'number of threads used', and '120' is set as the 'processing level'. Description of other information included in FIG. 17 is omitted.
なお、図17に示す「処理重度」には、例えば、各サーバ1が受け付けたリクエストに対応する各処理の重度の合計値が設定されるものであってよい。
17, for example, the total value of the severity of each process corresponding to requests received by each
具体的に、情報管理部117は、例えば、リクエストに対応する処理がデータベース(図示しない)に記憶されたデータの参照である場合、その処理の重度に対応する値として「1」を特定するものであってよい。また、情報管理部117は、例えば、リクエストに対応する処理がデータベースに対するデータの追加やデータベースに記憶されたデータの削除である場合であって、処理に要する時間が所定の時間(例えば、1時間)を下回ると予測される場合、その処理の重度に対応する値として「2」を特定するものであってよい。また、情報管理部117は、例えば、リクエストに対応する処理がデータベースに対するデータの追加やデータベースに記憶されたデータの削除である場合であって、処理に要する時間が所定の時間を上回ると予測される場合、その処理の重度に対応する値として「3」を特定するものであってよい。さらに、情報管理部117は、例えば、リクエストに対応する処理がデータベースに記憶されたデータの更新である場合、その処理の重度に対応する値として「3」を特定するものであってよい。そして、情報管理部117は、例えば、各サーバ1が受け付けたリクエストに対応する各処理の重度に対応する値の合計値を「処理重度」に設定するものであってよい。
Specifically, for example, if the process corresponding to the request is to refer to data stored in a database (not shown), the
図8に戻り、サーバ1の負荷判定部114は、情報格納領域130に記憶された対応情報131を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定する(S14)。
Returning to FIG. 8, the
具体的に、負荷判定部114は、情報格納領域130に記憶された第3対応情報131cを参照し、各サーバ1に対応する情報の「CPU使用率」、「メモリ使用量」、「スレッド使用数」及び「負荷重度」に設定された情報をそれぞれ特定するものであってよい。
Specifically, the
そして、負荷判定部114は、S14の処理で特定した合計値に基づいて、各サーバ1間における合計値の差をそれぞれ算出する(S15)。以下、S15の処理の具体例について説明を行う。
Then, the
[S15の処理の具体例]
図18及び図19は、S15の処理の具体例を説明する図である。
[Specific example of processing in S15]
18 and 19 are diagrams for explaining a specific example of the processing of S15.
初めに、負荷判定部114は、情報格納領域130に記憶された閾値情報133を参照し、S14の処理で特定した合計値のそれぞれが、閾値情報133に情報が含まれる各閾値を超えているか否かを判定する。以下、閾値情報133の具体例について説明を行う。
First, the
[閾値情報の具体例]
図18は、閾値情報133の具体例を説明する図である。
[Specific example of threshold information]
FIG. 18 is a diagram explaining a specific example of the
閾値情報133は、図18に示すように、閾値情報133に含まれる各情報を識別する「項番」と、第3対応情報131cにおける各項目の名称が設定される「項目名」と、「項目名」に名称が設定された項目と比較する閾値がそれぞれ設定される「第1閾値」及び「第2閾値」とを項番として有する。また、閾値情報133は、図18に示すように、「項目名」に名称が設定された項目が取り得る値の上限値が設定される「上限」を項目として有する。
As shown in FIG. 18, the
具体的に、図18に示す閾値情報133において、「項番」が「1」である情報には、「項目名」として「CPU使用率」が設定され、「第1閾値」として「60(%)」が設定され、「第2閾値」として「80(%)」が設定され、「上限」として「100(%)」が設定されている。
Specifically, in the
また、図18に示す閾値情報133において、「項番」が「2」である情報には、「項目名」として「メモリ使用量」が設定され、「第1閾値」として「15(GB)」が設定され、「第2閾値」として「20(GB)」が設定され、「上限」として「24(GB)」が設定されている。図18に含まれる他の情報についての説明は省略する。
Further, in the
そして、負荷判定部114は、S15の処理において、例えば、図17で説明した第3対応情報131cにおける「CPU使用率」、「メモリ使用量」、「スレッド使用数」及び「処理重度」のそれぞれに設定された各値(S14の処理で特定した各合計値)を、図18で説明した閾値情報133における「第1閾値」に設定された閾値未満であるグループ(以下、低グループとも呼ぶ)と、「第1閾値」に設定された閾値以上であって「第2閾値」に設定された閾値未満であるグループ(以下、中グループとも呼ぶ)と、「第2閾値」に設定された閾値以上であるグループ(以下、高グループとも呼ぶ)とのいずれかに振り分ける。
Then, in the process of S15, the
具体的に、図17で説明した第3対応情報131cにおいて、「サーバID」が「1a」である情報には、「CPU使用率」として「90(%)」が設定され、「メモリ使用量」として「18(GB)」が設定され、「スレッド使用数」として「5000」が設定され、「処理重度」として「200」が設定されている。そのため、負荷判定部114は、図18で説明した閾値情報133を参照し、例えば、図19に示すように、サーバ1aのCPU使用率、メモリ使用量、スレッド使用数及び処理重度が、それぞれ高グループ、中グループ、低グループ及び中グループに分類されると判定する。なお、図19に示す例では、「低グループ」、「中グループ」及び「高グループ」を数値化することにより、それぞれ「1」、「2」及び「3」として表記している。
Specifically, in the third correspondence information 131c described with reference to FIG. 17, "90 (%)" is set as the "CPU usage rate" to the information whose "server ID" is "1a", and "memory usage ” is set to “18 (GB)”, the “number of threads used” is set to “5000”, and the “processing level” is set to “200”. Therefore, the
すなわち、負荷判定部114は、S14の処理で特定した合計値のグループ化を行ってから各処理を実行するサーバ1の決定を行う。これにより、情報処理装置1は、各処理を実行するサーバ1の変更が必要以上に行われることを防止することが可能になる。
That is, the
その後、負荷判定部114は、例えば、S14の処理で特定した合計値の各グループへの分類結果を参照し、各サーバ1間における合計値の差をそれぞれ算出する。
After that, the
具体的に、図19に示す情報には、例えば、サーバ1a、1b、1c、1d及び1eのそれぞれに対応するCPU使用率として、それぞれ「3」、「1」、「1」、「1」及び「1」が設定されている。そのため、負荷判定部114は、例えば、サーバ1aのCPU使用率についての差として「2」、「2」、「2」、「2」を特定し、サーバ1bのCPU使用率についての差として「-2」、「0」、「0」、「0」を特定する。
Specifically, the information shown in FIG. 19 includes, for example, "3", "1", "1", and "1" as CPU usage rates corresponding to
また、図19に示す情報には、例えば、サーバ1a、1b、1c、1d及び1eのそれぞれに対応するメモリ使用量として、それぞれ「2」、「1」、「2」、「1」及び「1」が設定されている。そのため、負荷判定部114は、例えば、サーバ1aのメモリ使用量についての差として「1」、「0」、「1」、「1」を特定し、サーバ1bのメモリ使用量についての差として「-1」、「-1」、「0」、「0」を特定する。
Further, the information shown in FIG. 19 includes, for example, "2", "1", "2", "1", and "2" as memory usage amounts corresponding to the
また、図19に示す情報には、例えば、サーバ1a、1b、1c、1d及び1eのそれぞれに対応するスレッド使用数として、それぞれ「1」、「1」、「1」、「1」及び「1」が設定されている。そのため、負荷判定部114は、例えば、サーバ1aのスレッド使用数についての差として「0」、「0」、「0」、「0」を特定し、サーバ1bのスレッド使用数についての差として「0」、「0」、「0」、「0」を特定する。
Further, in the information shown in FIG. 19, for example, "1", "1", "1", "1" and " 1” is set. Therefore, the
さらに、図19に示す情報には、例えば、サーバ1a、1b、1c、1d及び1eのそれぞれに対応する処理重度として、それぞれ「2」、「1」、「1」、「1」及び「1」が設定されている。そのため、負荷判定部114は、例えば、サーバ1aの処理重度についての差として「1」、「1」、「1」、「1」を特定し、サーバ1bの処理重度についての差として「-1」、「0」、「0」、「0」を特定する。
Further, the information shown in FIG. 19 includes, for example, "2", "1", "1", "1" and "1" as processing levels corresponding to the
図9に戻り、負荷判定部114は、S15の処理で算出した差のそれぞれに基づいて、自サーバ1についての差に、所定値以上の値が含まれているか否かを判定する(S21)。
Returning to FIG. 9, the
具体的に、例えば、サーバ1aのCPU使用率についての差として「2」、「2」、「2」、「2」が特定され、メモリ使用量についての差として「1」、「0」、「1」、「1」が特定され、スレッド使用数についての差として「0」、「0」、「0」、「0」が特定され、処理重度についての差として「1」、「1」、「1」、「1」が特定されている場合、負荷判定部114は、サーバ1aについての差に、「1」以上の値が1つ以上含まれていると判定する。そのため、S21の処理における所定値が「1」である場合、負荷判定部114は、サーバ1aについての差に、所定値以上の値が含まれていると判定する。
Specifically, for example, "2", "2", "2", and "2" are specified as differences in the CPU usage rate of the
一方、例えば、サーバ1bのCPU使用率についての差として「-2」、「0」、「0」、「0」が特定され、メモリ使用量についての差として「-1」、「-1」、「0」、「0」が特定され、スレッド使用数についての差として「0」、「0」、「0」、「0」が特定され、処理重度についての差として「-1」、「0」、「0」、「0」が特定されている場合、負荷判定部114は、サーバ1bについての差に、「1」以上の値が含まれていないと判定する。そのため、S21の処理における所定値が「1」である場合、負荷判定部114は、サーバ1bについての差に、所定値以上の値が含まれていないと判定する。
On the other hand, for example, "-2", "0", "0", and "0" are specified as the difference in the CPU usage rate of the
そして、自サーバ1についての差に、所定値以上の値が含まれていないと判定した場合(S22のNO)、サーバ1のサーバ決定部115は、S11の処理で受け付けたリクエストに対応する処理を自サーバ1で実行することを決定する(S23)。
Then, when it is determined that the difference for the
すなわち、サーバ決定部115は、この場合、自サーバ1が高負荷状態ではなく、S11の処理で受け付けたリクエストに対応する処理を実行することが可能であると判定する。
That is, in this case, the
一方、自サーバ1についての差に、所定値以上の値が含まれていると判定した場合(S22のYES)、負荷判定部114は、S15の処理で算出した差のそれぞれに基づいて、他のサーバ1(自サーバ1以外のサーバ1)のうちの1台についての差に、所定値以上の値が含まれているか否かを判定する(S24)。
On the other hand, if it is determined that the difference for its
その結果、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれていないと判定した場合(S25のNO)、サーバ決定部115は、S11の処理で受け付けたリクエストに対応する処理の実行を、S24の処理で判定を行った他のサーバ1に依頼する(S26)。
As a result, if it is determined that the difference for one of the
すなわち、サーバ決定部115は、自サーバ1が高負荷状態であると判定した場合、例えば、S11の処理で受け付けたリクエストに対応する処理の実行を、高負荷状態でない他のサーバ1に依頼する。
That is, when the
具体的に、S21の処理における所定値が「1」である場合において、サーバ1bについての差に「1」以上の値が含まれていないと判定した場合、サーバ決定部115は、例えば、S11の処理で受け付けたリクエストに対応する処理の実行をサーバ1bに依頼する。そして、情報管理部117は、この場合、S11の処理で受け付けたリクエストに対応する処理をサーバ1bが実行することを示す情報を、情報格納領域130に記憶された第1対応情報131a及び第2対応情報131bに反映する。
Specifically, when the predetermined value in the process of S21 is "1", if it is determined that the difference for the
なお、S11の処理で受け付けたリクエストに対応する処理の実行を依頼可能なサーバ1が複数存在する場合、サーバ決定部115は、複数存在したサーバ1のうち、現在の負荷が最も低いサーバ1に対して処理の実行を依頼するものであってよい。
Note that if there are a plurality of
また、サーバ決定部115は、例えば、S11の処理で受け付けたリクエストに対応する処理の実行を他のサーバ1に依頼する場合であって、S11の処理で受け付けたリクエストに対応する処理の実行を既に開始している場合、S11の処理で受け付けたリクエストに対応する処理に含まれる操作のうち、実行中の操作の次以降に実行される操作の実行を他のサーバ1に依頼するものであってもよい。
Further, the
そして、サーバ決定部115は、この場合、例えば、図20の下線部分に示すように、図15で説明した第1対応情報131aに含まれる情報のうち、S11の処理で受け付けたリクエストに対応する処理の情報(「項番」が「1」である情報)の「サーバID」に、自サーバ1を示す情報と、自サーバ1が実行中の操作の次以降に実行される操作の実行を依頼する他のサーバ1を示す情報とを含む情報(図20に示す例では「1a/1b」)を設定する。
Then, in this case, the
さらに、サーバ決定部115は、この場合、例えば、図21の下線部分に示すように、図16で説明した第2対応情報131bに含まれる情報のうち、他のサーバ1に実行を依頼する操作の情報(「項番」が「5」、「6」及び「7」である情報)の「サーバID」に、操作の実行を依頼する他のサーバ1を示す情報(図21に示す例では「1b」)を設定する。
Further, in this case, the
これにより、サーバ1は、他のサーバ1に実行を依頼した処理(操作)についての情報を対応情報131に反映することが可能になる。
As a result, the
一方、他のサーバ1についての差に、所定値以上の値が含まれていると判定した場合(S25のYES)、負荷判定部114は、図10に示すように、S24の処理において他のサーバ1の全てについての判定を行ったか否かを判定する(S31)。
On the other hand, if it is determined that the difference for the
その結果、他のサーバ1の全てについての判定を行っていない場合(S31のNO)、負荷判定部114は、S24以降の処理を再度行う。
As a result, when the determination has not been performed for all of the other servers 1 (NO in S31), the
一方、他のサーバ1の全てについての判定を行っている場合(S31のYES)、サーバ決定部115は、新たなサーバ1の追加を管理サーバ(図示しない)に指示する(S32)。そして、サーバ決定部115は、新たなサーバ1の追加が完了するまで待機する(S33のNO)。
On the other hand, if all
すなわち、他のサーバ1の全てが高負荷であるために、S11の処理で受け付けたリクエストに対応する処理を実行可能なサーバ1が存在しないと判定した場合、サーバ決定部115は、新たなサーバ1の追加を管理サーバに依頼する。
That is, when it is determined that there is no
そして、新たなサーバ1の追加が完了した場合(S33のYES)、サーバ決定部115は、S11の処理で受け付けたリクエストに対応する処理の実行を、S33の処理で追加が完了した新たなサーバ1に依頼する(S34)。
Then, when the addition of the
これにより、各サーバ1は、自サーバ1の状態が高負荷であると判定した場合、S11の処理で受け付けたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼することが可能になる。そのため、事業者は、各サーバ1の処理負担を平準化させることが可能になる。
As a result, when each
[処理の実行とともに行われるサーバ変更処理]
次に、処理の実行とともに行われるサーバ変更処理について説明を行う。
[Server change processing performed along with execution of processing]
Next, the server change processing that is performed along with the execution of the processing will be described.
サーバ1の処理実行部112は、図11に示すように、処理実行タイミングになるまで待機する(S41のNO)。
As shown in FIG. 11, the
そして、処理実行タイミングになった場合(S41のYES)、処理実行部112は、S23の処理、S26の処理、S34の処理、S53の処理、S56の処理、S64の処理及びS73の処理(以下、S23の処理等とも呼ぶ)で自サーバ1が実行することを決定した処理が存在するか否かを判定する(S42)。
Then, when the process execution timing comes (YES in S41), the
すなわち、処理実行部112は、例えば、ロードバランサ2や他のサーバ1によって自サーバ1が実行すべき処理として決定された処理のうち、実行がまだ完了していない処理が存在するか否かを判定する。S53の処理、S56の処理、S64の処理及びS73の処理についての説明は後述する。
That is, the
その結果、処理が存在すると判定した場合(S43のYES)、処理実行部112は、S42の処理で存在すると判定した処理を実行する(S44)。
As a result, when it is determined that the process exists (YES in S43), the
具体的に、処理実行部112は、この場合、S42の処理で存在すると判定した処理に含まれる各操作を順に実行する。そして、処理実行部112は、各操作の実行が完了した場合、図22の下線部分に示すように、例えば、図16で説明した第2対応情報131bに含まれる情報のうち、実行が完了した操作に対応する情報(図22に示す例では「項番」が「3」である情報)の「ステータス」を「処理中」から「処理完了」に更新し、「操作完了日時」に操作の実行が完了した日時(図22に示す例では「2018/04/10 07:54:05」)を設定する。その後、処理実行部112は、新たな操作の実行を開始した場合、図23の下線部分に示すように、例えば、図16で説明した第2対応情報131bに含まれる情報のうち、新たに実行を開始する操作に対応する情報(図23に示す例では「項番」が「5」である情報)の「ステータス」を「未処理」から「処理中」に更新し、「操作開始日時」に操作の実行を開始した日時(図23に示す例では「2018/04/10 07:46:17」)を設定する。
Specifically, in this case, the
一方、処理が存在しないと判定した場合(S43のYES)、処理実行部112は、S44の処理を行わない。
On the other hand, when it is determined that there is no process (YES in S43), the
続いて、負荷判定部114は、情報格納領域130に記憶された対応情報131を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定する(S45)。
Subsequently, the
具体的に、負荷判定部114は、S14の処理で説明した場合と同様に、情報格納領域130に記憶された第3対応情報131cを参照し、各サーバ1に対応する情報の「CPU使用率」、「メモリ使用量」、「スレッド使用数」及び「負荷重度」に設定された情報(合計値)をそれぞれ特定するものであってよい。
Specifically, the
すなわち、サーバ1は、ロードバランサ2から送信されたリクエストを受け付けた場合のみでなく、定期的なタイミングにおいてもS14以降の処理と同じ処理を行う。
That is, the
これにより、サーバ1は、ロードバランサ2からリクエストを受け付けていないタイミングであっても、自サーバ1が高負荷であると判定した場合に、自サーバ1が実行する処理として決定している処理の実行を他のサーバ1に依頼することが可能になる。
As a result, even when the
そして、負荷判定部114は、S45の処理で特定した合計値に基づいて、各サーバ1間における合計値の差をそれぞれ算出する(S46)。
Then, the
その後、負荷判定部114は、図12に示すように、S46の処理で算出した差のそれぞれに基づいて、自サーバ1についての差に、所定値以上の値が含まれているか否かを判定する(S51)。
After that, as shown in FIG. 12, the
そして、自サーバ1についての差に、所定値以上の値が含まれていないと判定した場合(S52のNO)、サーバ決定部115は、自サーバ1に対応付けられた処理の実行を他のサーバ1に依頼しないことを決定する(S53)。
Then, if it is determined that the difference for its
すなわち、サーバ決定部115は、この場合、自サーバ1が高負荷状態ではないため、S42の処理で存在すると判定した処理の実行を現段階では他のサーバ1に依頼しないことの決定を行う。
That is, in this case, the
一方、自サーバ1についての差に、所定値以上の値が含まれていると判定した場合(S52のYES)、負荷判定部114は、S46の処理で算出した差のそれぞれに基づいて、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれているか否かを判定する(S54)。
On the other hand, if it is determined that the difference for its
その結果、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれていないと判定した場合(S55のNO)、サーバ決定部115は、自サーバ1に対応付けられた処理(S42の処理で存在すると判定した処理)の実行を、S54の処理で判定を行った他のサーバ1に依頼する(S56)。
As a result, when it is determined that the difference for one of the
すなわち、サーバ決定部115は、この場合、自サーバ1が高負荷状態であるため、S42の処理で存在すると判定した処理の実行を、S54の処理で判定を行った他のサーバ1に依頼する。
That is, in this case, the
具体的に、サーバ決定部115は、この場合、例えば、S42の処理で存在すると判定した処理のうちの処理重度が最も大きい処理の実行を、S54の処理で判定を行った他のサーバ1に依頼する。
Specifically, in this case, the
なお、S42の処理で存在すると判定した処理の実行を他のサーバ1に依頼したにもかかわらず、自サーバ1についての差に依然として所定値以上の値が含まれている場合、サーバ決定部115は、次の処理実行タイミングにおいて、S42の処理で存在すると判定した他の処理の実行を他のサーバ1に対して再度依頼することになる。そのため、サーバ1は、結果として、自サーバ1についての差に所定値以上の値が含まれていないと判定されるまで、他のサーバ1に対する処理の実行の依頼を繰り返す。
It should be noted that, even though the
一方、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれていると判定した場合(S55のYES)、負荷判定部114は、図13に示すように、S54の処理において他のサーバ1の全てについての判定を行ったか否かを判定する(S61)。
On the other hand, if it is determined that the difference for one of the
その結果、他のサーバ1の全てについての判定を行っていない場合(S61のNO)、負荷判定部114は、S54以降の処理を再度行う。
As a result, when the determination has not been performed for all of the other servers 1 (NO in S61), the
また、他のサーバ1の全てについての判定を行っている場合(S61のYES)、サーバ決定部115は、新たなサーバ1の追加を管理サーバ(図示しない)に指示する(S62)。そして、サーバ決定部115は、新たなサーバ1の追加が完了するまで待機する(S63のNO)。
Also, if all the
そして、新たなサーバ1の追加が完了した場合(S63のYES)、サーバ決定部115は、自サーバ1に対応付けられた処理の実行を、S63の処理で追加が完了した新たなサーバ1に依頼する(S64)。
Then, when the addition of the
具体的に、サーバ決定部115は、この場合、例えば、S42の処理で存在すると判定した処理のうちの処理重度が最も大きい処理の実行を、S63の処理で追加が完了した新たなサーバ1に依頼する。
Specifically, in this case, the
これにより、各サーバ1は、自サーバ1の状態が高負荷であると判定した場合に、自サーバ1に対応付けられた処理の実行を他のサーバ1(新たに追加されたサーバ1)に依頼することが可能になる。そのため、事業者は、各サーバ1の処理負担を平準化させることが可能になる。
As a result, when each
続いて、S53の処理、または、S64の処理の後、サーバ1の異常判定部116は、図14に示すように、情報格納領域130に記憶されたサーバ稼働情報132を参照し、処理の実行を停止している他のサーバ1が存在するか否かを判定する(S71)。以下、サーバ稼働情報132の具体例について説明を行う。
Subsequently, after the process of S53 or the process of S64, the
[サーバ稼働情報の具体例]
図24及び図25は、サーバ稼働情報132の具体例を説明する図である。
[Specific example of server operation information]
24 and 25 are diagrams for explaining specific examples of the
図24等に示すサーバ稼働情報132は、サーバ稼働情報132に含まれる各情報を識別する「項番」と、各サーバ1の識別情報が設定される「サーバID」とを項目として有する。
The
具体的に、図24に示すサーバ稼働情報132において、「項番」が「1」から「5」である情報の「サーバID」には、それぞれ「1a」、「1b」、「1c」、「1d」及び「1e」が設定されている。すなわち、図24に示すサーバ稼働情報132は、サーバ1a、1b、1c、1d及び1eのそれぞれが処理の実行を継続していることを示している。
Specifically, in the
なお、サーバ稼働情報132は、例えば、各サーバ1によってアクセスされるデータを格納するデータベース(図示しない)とセッションが接続しているサーバ1を示す情報であり、データベースによって更新される情報であってよい。そして、例えば、サーバ1aにおいて異常が発生し、サーバ1aとデータベースとの間のセッションが切断された場合、データベースは、図25の下線部分に示すように、図24で説明したサーバ稼働情報132に含まれる情報から、「サーバID」が「1a」である情報(「項番」が「1」である情報)を削除する。
The
これにより、異常判定部116は、情報格納領域130に記憶されたサーバ稼働情報132を参照することで、処理の実行を停止しているサーバ1が存在するか否かの判定を行うことが可能になる。
As a result, by referring to the
図14に戻り、処理の実行を停止している他のサーバ1が存在すると判定した場合(S72のYES)、処理実行部112は、S71の処理で停止していると判定した他のサーバ1に対応付けられた処理の実行を引き継ぐ(S73)。
Returning to FIG. 14, when it is determined that there is another
一方、処理の実行を停止している他のサーバ1が存在しないと判定した場合(S72のNO)、処理実行部112は、S73の処理を行わない。
On the other hand, if it is determined that there is no
ここで、S71の処理で停止していると判定した他のサーバ1は、何らかの異常が発生したことによって処理を停止した可能性がある。そのため、処理実行部112は、例えば、図16で説明した第2対応情報131bを参照し、S71の処理で停止していると判定した他のサーバ1に対応付けられた各処理に含まれる各操作のうち、「ステータス」に「未処理」が設定された操作だけでなく、「ステータス」に「処理中」が設定された操作の実行についても引き継ぐ必要がある。
Here, there is a possibility that the
したがって、処理実行部112は、この場合、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作のうち、「ステータス」に「処理中」が設定された操作のロールバックを行う。その後、処理実行部112は、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作のうち、「ステータス」に「未処理」が設定された操作と、「ステータス」に「処理中」が設定された操作との実行を行う。
Therefore, in this case, the
また、処理実行部112は、この場合、例えば、図26の下線部分に示すように、図15で説明した第1対応情報131aに含まれる情報のうち、自サーバ1が実行を引き継ぐ処理の情報(図26に示す例では「項番」が「1」である情報)の「サーバID」に、S71の処理で停止していると判定した他のサーバ1を示す情報と、自サーバ1を示す情報とを含む情報(図26に示す例では「1a/1b」)を設定する。
In this case, the
また、処理実行部112は、例えば、図27の下線部分に示すように、図16で説明した第2対応情報131bに含まれる情報のうち、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作であって、「ステータス」に「処理中」が設定された操作の情報(図27に示す例では「項番」が「3」及び「4」である情報)の「ステータス」を「未処理」を更新し、「操作開始日時」に「-」を設定する。
Further, the
さらに、処理実行部112は、例えば、図27の下線部分に示すように、図16で説明した第2対応情報131bに含まれる情報のうち、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作であって、「ステータス」に「処理中」または「未処理」が設定された操作の情報(図27に示す例では「項番」が「3」から「7」である情報)の「サーバID」に、自サーバ1を示す情報(図27に示す例では「1b」)を設定する。
Further, the
これにより、各サーバ1は、異常の発生等によって処理の実行を停止しているサーバ1が発生した場合であっても、利用者が送信したリクエストに対応する処理の実行を継続することが可能になり、利用者に対するサービスに影響が及ぶことを防止することが可能になる。
As a result, each
このように、本実施の形態における各サーバ1は、ロードバランサ2によって自サーバ1に割り当てられたリクエストを実行するための複数の処理を特定する。そして、各サーバ1は、特定した複数の処理ごとの負荷の情報と、自サーバ1との対応情報131を情報格納領域130に記憶する。
Thus, each
その後、各サーバ1は、対応情報131を記憶した情報格納領域130を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定し、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する。
After that, each
その結果、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であると判定した場合、各サーバ1は、所定値以上であると判定した差が所定値未満となるように、自サーバ1に対応付けられた処理を実行するサーバ1を変更し、かつ、対応情報131を更新する。
As a result, when it is determined that at least one of the differences between the total value corresponding to the
すなわち、本実施の形態における各サーバ1は、例えば、各サーバ1の処理負荷の状態を示す対応情報を随時更新する。そして、各サーバ1は、対応情報131を記憶した情報格納領域130を参照し、自サーバ1が高負荷であると判定した場合、ロードバランサ2から受け付けたリクエストに対応する処理を他のサーバ1に引き継ぐ。
That is, each
これにより、各サーバ1は、各サーバ1の現在の状態を反映した対応情報131を参照することで、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であるか否かの判定を行うことが可能になる。そのため、各サーバ1は、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であると判定した場合、自サーバ1に割り当てられたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼する旨の決定を行うことが可能になる。したがって、各サーバ1は、自サーバ1に割り当てられたリクエストに対応する処理の実行を、適切なタイミングにおいて他のサーバ1に依頼することが可能になり、各サーバ1の処理負担を平準化させることが可能になる。
As a result, each
以上の実施の形態をまとめると、以下の付記のとおりである。 The above embodiments are summarized as follows.
(付記1)
ロードバランサによって割り当てられたリクエストを個々に実行する複数のサーバのそれぞれで実行されるプログラムであって、
自サーバに割り当てられた前記リクエストを実行するための複数の処理を特定し、
特定した前記複数の処理ごとの負荷の情報と、前記自サーバとの対応情報を記憶部に記憶し、
前記対応情報を記憶した記憶部を参照し、前記複数のサーバのそれぞれに対応する各処理の負荷の合計値を特定し、前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定し、
前記差のうちの少なくとも1つが前記所定値以上であると判定した場合、前記所定値以上であると判定した前記差が前記所定値未満となるように、前記自サーバに対応付けられた処理を実行するサーバを変更し、かつ、前記対応情報を更新する、
処理をコンピュータに実行させることを特徴する情報処理プログラム。
(Appendix 1)
A program running on each of a plurality of servers that individually execute requests assigned by a load balancer,
identifying a plurality of processes for executing the request assigned to its own server;
storing in a storage unit load information for each of the plurality of identified processes and correspondence information with the own server;
Referencing the storage unit storing the correspondence information, specifying the total value of the load of each process corresponding to each of the plurality of servers, and determining the total value corresponding to the own server and the total value corresponding to other servers Determining whether at least one of the differences between is greater than or equal to a predetermined value,
When it is determined that at least one of the differences is equal to or greater than the predetermined value, the processing associated with the own server is performed so that the difference determined to be equal to or greater than the predetermined value is less than the predetermined value. changing the server to be executed and updating the correspondence information;
An information processing program that causes a computer to execute processing.
(付記2)
付記1において、
前記判定する処理は、前記ロードバランサから前記自サーバに対して新たなリクエストが割り当てられたことに応じて行われる、
ことを特徴する情報処理プログラム。
(Appendix 2)
In
The determination process is performed in response to the allocation of a new request from the load balancer to the own server.
An information processing program characterized by:
(付記3)
付記1において、
前記判定する処理は、定期的なタイミングにおいて行われる、
ことを特徴する情報処理プログラム。
(Appendix 3)
In
The determination process is performed at regular timing,
An information processing program characterized by:
(付記4)
付記1において、
前記更新する処理では、前記差のうちの少なくとも1つが前記所定値以上である場合、前記自サーバに対応付けられた処理のうちの少なくとも1つの実行を他のサーバに依頼する、
ことを特徴する情報処理プログラム。
(Appendix 4)
In
In the updating process, when at least one of the differences is equal to or greater than the predetermined value, requesting another server to execute at least one of the processes associated with the own server;
An information processing program characterized by:
(付記5)
付記1において、さらに、
前記複数のサーバのうち、異常が発生している他のサーバが存在するか否かを判定し、
前記異常が発生している他のサーバが存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、前記他のサーバが実行中であった処理と前記他のサーバが実行中であった処理の後に実行する処理とを実行する、
処理をコンピュータに実行させることを特徴する情報処理プログラム。
(Appendix 5)
In
Determining whether or not there is another server in which an abnormality has occurred among the plurality of servers,
When it is determined that there is another server in which the abnormality has occurred, the storage unit that stores the correspondence information is referred to, and the processing that the other server is executing and the processing that the other server is executing are performed. and the processing to be executed after the processing that was performed,
An information processing program that causes a computer to execute processing.
(付記6)
付記5において、
前記異常が発生している他のサーバが存在するか否かを判定する処理では、前記記憶部とのセッションが切断されている他のサーバが存在するか否かの判定を行い、
前記他のサーバが実行中であった処理と前記他のサーバが実行中であった処理の後に実行する処理とを実行する処理では、前記セッションが切断されている他のサーバが存在すると判定した場合、前記セッションが切断されていると判定した他のサーバに対応する処理を実行する、
ことを特徴する情報処理プログラム。
(Appendix 6)
In
In the process of determining whether or not there is another server in which the abnormality has occurred, determining whether or not there is another server whose session with the storage unit is disconnected,
In the process of executing the process being executed by the other server and the process to be executed after the process being executed by the other server, it is determined that there is another server whose session is disconnected. In this case, executing a process corresponding to another server determined that the session has been disconnected,
An information processing program characterized by:
(付記7)
ロードバランサによって割り当てられたリクエストを個々に実行する複数の情報処理装置のうちの一の情報処理装置であって、
自装置に割り当てられた前記リクエストを実行するための複数の処理を特定する処理特定部と、
特定した前記複数の処理ごとの負荷の情報と、前記自装置との対応情報を記憶する記憶部と、
前記対応情報を記憶した記憶部を参照し、前記複数の情報処理装置のそれぞれに対応する各処理の負荷の合計値を特定し、前記自装置に対応する前記合計値と他の装置に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する負荷判定部と、
前記差のうちの少なくとも1つが前記所定値以上であると判定した場合、前記所定値以上であると判定した前記差が前記所定値未満となるように、前記自装置に対応付けられた処理を実行する情報処理装置を変更し、かつ、前記対応情報を更新する装置決定部と、を有する、
ことを特徴する情報処理装置。
(Appendix 7)
One information processing device among a plurality of information processing devices that individually executes requests assigned by a load balancer,
a process specifying unit that specifies a plurality of processes for executing the request assigned to the own device;
a storage unit that stores load information for each of the specified plurality of processes and correspondence information with the own device;
referring to the storage unit storing the correspondence information, specifying the total value of the load of each process corresponding to each of the plurality of information processing apparatuses, and comparing the total value corresponding to the own apparatus and the other apparatus; a load determination unit that determines whether at least one of the differences from the total value is equal to or greater than a predetermined value;
When it is determined that at least one of the differences is equal to or greater than the predetermined value, the processing associated with the own device is performed such that the difference determined to be equal to or greater than the predetermined value is less than the predetermined value. a device determination unit that changes the information processing device to be executed and updates the correspondence information;
An information processing device characterized by:
(付記8)
付記7において、さらに、
前記複数の情報処理装置のうち、異常が発生している他の装置が存在するか否かを判定し、
前記異常が発生している他の装置が存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、前記他の装置が実行中であった処理と前記他の装置が実行中であった処理の後に実行する処理とを実行する、
ことを特徴する情報処理装置。
(Appendix 8)
In
determining whether or not there is another device in which an abnormality has occurred among the plurality of information processing devices;
When it is determined that there is another device in which the abnormality has occurred, the storage unit that stores the corresponding information is referred to, and the process that the other device is executing and the process that the other device is executing are performed. and the processing to be executed after the processing that was performed,
An information processing device characterized by:
(付記9)
ロードバランサによって割り当てられたリクエストを個々に実行する複数のサーバのそれぞれで実行される情報処理方法であって、
自サーバに割り当てられた前記リクエストを実行するための複数の処理を特定し、
特定した前記複数の処理ごとの負荷の情報と、前記自サーバとの対応情報を記憶部に記憶し、
前記対応情報を記憶した記憶部を参照し、前記複数のサーバのそれぞれに対応する各処理の負荷の合計値を特定し、前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定し、
前記差のうちの少なくとも1つが前記所定値以上であると判定した場合、前記所定値以上であると判定した前記差が前記所定値未満となるように、前記自サーバに対応付けられた処理を実行するサーバを変更し、かつ、前記対応情報を更新する、
ことを特徴する情報処理方法。
(Appendix 9)
An information processing method performed by each of a plurality of servers individually executing requests assigned by a load balancer,
identifying a plurality of processes for executing the request assigned to its own server;
storing in a storage unit load information for each of the plurality of identified processes and correspondence information with the own server;
referring to the storage unit storing the correspondence information, specifying the total value of the load of each process corresponding to each of the plurality of servers, and determining the total value corresponding to the own server and the total value corresponding to other servers; Determining whether at least one of the differences between is greater than or equal to a predetermined value,
When it is determined that at least one of the differences is equal to or greater than the predetermined value, processing associated with the own server is performed so that the difference determined to be equal to or greater than the predetermined value is less than the predetermined value. changing the server to be executed and updating the correspondence information;
An information processing method characterized by:
(付記10)
付記9において、さらに、
前記複数のサーバのうち、異常が発生している他のサーバが存在するか否かを判定し、
前記異常が発生している他のサーバが存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、前記他のサーバが実行中であった処理と前記他のサーバが実行中であった処理の後に実行する処理とを実行する、
ことを特徴する情報処理方法。
(Appendix 10)
In Supplementary Note 9, further,
Determining whether or not there is another server in which an abnormality has occurred among the plurality of servers,
When it is determined that there is another server in which the abnormality has occurred, the storage unit that stores the correspondence information is referred to, and the processing that the other server is executing and the processing that the other server is executing are performed. and the processing to be executed after the processing that was performed,
An information processing method characterized by:
1a:サーバ 1b:サーバ
1c:サーバ 1d:サーバ
2:ロードバランサ 3:操作端末
1a:
Claims (8)
自サーバに割り当てられた前記リクエストを実行するための複数の処理を特定し、
特定した前記複数の処理ごとの負荷の情報と、前記自サーバとの対応情報を記憶部に記憶し、
前記対応情報を記憶した記憶部を参照し、前記複数のサーバのそれぞれに対応する各処理の負荷の合計値を特定し、前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定し、
前記差のうちの少なくとも1つが前記所定値以上であると判定した場合、前記所定値以上であると判定した前記差が前記所定値未満となるように、前記自サーバに対応付けられた処理を実行するサーバを変更し、かつ、前記対応情報を更新し、
前記複数のサーバのうち、異常が発生している他のサーバが存在するか否かを判定し、
前記異常が発生している他のサーバが存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、前記他のサーバが実行中であった処理を実行する、
処理をコンピュータに実行させることを特徴する情報処理プログラム。 A program running on each of a plurality of servers that individually execute requests assigned by a load balancer,
identifying a plurality of processes for executing the request assigned to its own server;
storing in a storage unit load information for each of the plurality of identified processes and correspondence information with the own server;
referring to the storage unit storing the correspondence information, specifying the total value of the load of each process corresponding to each of the plurality of servers, and determining the total value corresponding to the own server and the total value corresponding to other servers; Determining whether at least one of the differences between is greater than or equal to a predetermined value,
When it is determined that at least one of the differences is equal to or greater than the predetermined value, processing associated with the own server is performed so that the difference determined to be equal to or greater than the predetermined value is less than the predetermined value. change the server to be executed and update the correspondence information;
Determining whether or not there is another server in which an abnormality has occurred among the plurality of servers,
If it is determined that there is another server in which the abnormality has occurred, referring to the storage unit that stores the corresponding information and executing the process that the other server was executing;
An information processing program that causes a computer to execute processing.
前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する処理は、前記ロードバランサから前記自サーバに対して新たなリクエストが割り当てられたことに応じて行われる、
ことを特徴する情報処理プログラム。 In claim 1,
The process of determining whether at least one of the differences between the total value corresponding to the own server and the total value corresponding to the other servers is equal to or greater than a predetermined value includes: in response to a new request being assigned to
An information processing program characterized by:
前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する処理は、定期的なタイミングにおいて行われる、
ことを特徴する情報処理プログラム。 In claim 1,
The process of determining whether at least one of the differences between the total value corresponding to the own server and the total value corresponding to the other server is equal to or greater than a predetermined value is performed at regular timing,
An information processing program characterized by:
前記自サーバに対応付けられた処理を実行するサーバを変更し、かつ、前記対応情報を更新する処理では、前記差のうちの少なくとも1つが前記所定値以上である場合、前記自サーバに対応付けられた処理のうちの少なくとも1つの実行を他のサーバに依頼する、
ことを特徴する情報処理プログラム。 In claim 1,
In the process of changing the server that executes the process associated with the own server and updating the correspondence information, if at least one of the differences is equal to or greater than the predetermined value, the server is associated with the own server. requesting other servers to perform at least one of the processed processes;
An information processing program characterized by:
前記異常が発生している他のサーバが存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、前記他のサーバが実行中であった処理の後に実行する処理を実行する、
処理をコンピュータに実行させることを特徴する情報処理プログラム。 In claim 1, further:
When it is determined that there is another server in which the abnormality has occurred, the storage unit storing the corresponding information is referred to, and a process to be executed after the process being executed by the other server is executed. ,
An information processing program that causes a computer to execute processing.
前記異常が発生している他のサーバが存在するか否かを判定する処理では、前記記憶部とのセッションが切断されている他のサーバが存在するか否かの判定を行い、
前記他のサーバが実行中であった処理と前記他のサーバが実行中であった処理の後に実行する処理とを実行する処理では、前記セッションが切断されている他のサーバが存在すると判定した場合、前記セッションが切断されていると判定した他のサーバに対応する処理を実行する、
ことを特徴する情報処理プログラム。 In claim 5,
In the process of determining whether or not there is another server in which the abnormality has occurred, determining whether or not there is another server whose session with the storage unit is disconnected,
In the process of executing the process being executed by the other server and the process to be executed after the process being executed by the other server, it is determined that there is another server whose session is disconnected. In this case, executing a process corresponding to another server determined that the session has been disconnected,
An information processing program characterized by:
自装置に割り当てられた前記リクエストを実行するための複数の処理を特定する処理特定部と、
特定した前記複数の処理ごとの負荷の情報と、前記自装置との対応情報を記憶する記憶部と、
前記対応情報を記憶した記憶部を参照し、前記複数の情報処理装置のそれぞれに対応する各処理の負荷の合計値を特定し、前記自装置に対応する前記合計値と他の装置に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する負荷判定部と、
前記差のうちの少なくとも1つが前記所定値以上であると判定した場合、前記所定値以上であると判定した前記差が前記所定値未満となるように、前記自装置に対応付けられた処理を実行する情報処理装置を変更し、かつ、前記対応情報を更新する装置決定部と、
前記複数のサーバのうち、異常が発生している他のサーバが存在するか否かを判定する異常判定部と、
前記異常が発生している他のサーバが存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、前記他のサーバが実行中であった処理を実行する処理実行部と、を有する、
ことを特徴する情報処理装置。 One information processing device among a plurality of information processing devices that individually executes requests assigned by a load balancer,
a process specifying unit that specifies a plurality of processes for executing the request assigned to the own device;
a storage unit that stores load information for each of the specified plurality of processes and correspondence information with the own device;
referring to the storage unit storing the correspondence information, specifying the total value of the load of each process corresponding to each of the plurality of information processing devices, and comparing the total value corresponding to the own device with the load corresponding to the other device a load determination unit that determines whether at least one of the differences from the total value is equal to or greater than a predetermined value;
When it is determined that at least one of the differences is equal to or greater than the predetermined value, the processing associated with the own device is performed such that the difference determined to be equal to or greater than the predetermined value is less than the predetermined value. a device determination unit that changes the information processing device to be executed and updates the correspondence information;
an abnormality determination unit that determines whether or not there is another server in which an abnormality has occurred among the plurality of servers;
a processing execution unit that refers to a storage unit that stores the correspondence information and executes the processing that the other server was executing when it is determined that there is another server in which the abnormality has occurred. ,
An information processing device characterized by:
自サーバに割り当てられた前記リクエストを実行するための複数の処理を特定し、
特定した前記複数の処理ごとの負荷の情報と、前記自サーバとの対応情報を記憶部に記憶し、
前記対応情報を記憶した記憶部を参照し、前記複数のサーバのそれぞれに対応する各処理の負荷の合計値を特定し、前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定し、
前記差のうちの少なくとも1つが前記所定値以上であると判定した場合、前記所定値以上であると判定した前記差が前記所定値未満となるように、前記自サーバに対応付けられた処理を実行するサーバを変更し、かつ、前記対応情報を更新し、
前記複数のサーバのうち、異常が発生している他のサーバが存在するか否かを判定し、
前記異常が発生している他のサーバが存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、前記他のサーバが実行中であった処理を実行する、
ことを特徴する情報処理方法。 An information processing method performed by each of a plurality of servers individually executing requests assigned by a load balancer,
identifying a plurality of processes for executing the request assigned to its own server;
storing in a storage unit load information for each of the plurality of identified processes and correspondence information with the own server;
referring to the storage unit storing the correspondence information, specifying the total value of the load of each process corresponding to each of the plurality of servers, and determining the total value corresponding to the own server and the total value corresponding to other servers; Determining whether at least one of the differences between is greater than or equal to a predetermined value,
When it is determined that at least one of the differences is equal to or greater than the predetermined value, processing associated with the own server is performed so that the difference determined to be equal to or greater than the predetermined value is less than the predetermined value. change the server to be executed and update the correspondence information;
Determining whether or not there is another server in which an abnormality has occurred among the plurality of servers,
If it is determined that there is another server in which the abnormality has occurred, referring to the storage unit that stores the corresponding information and executing the process that the other server was executing;
An information processing method characterized by:
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018083895A JP7125593B2 (en) | 2018-04-25 | 2018-04-25 | Information processing program, information processing apparatus, and information processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018083895A JP7125593B2 (en) | 2018-04-25 | 2018-04-25 | Information processing program, information processing apparatus, and information processing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019191924A JP2019191924A (en) | 2019-10-31 |
| JP7125593B2 true JP7125593B2 (en) | 2022-08-25 |
Family
ID=68391349
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018083895A Active JP7125593B2 (en) | 2018-04-25 | 2018-04-25 | Information processing program, information processing apparatus, and information processing method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7125593B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117053446A (en) * | 2023-08-30 | 2023-11-14 | 珠海格力电器股份有限公司 | Control method, control device, chiller and computer-readable storage medium |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017146848A (en) | 2016-02-18 | 2017-08-24 | 日本電信電話株式会社 | Rebalancing device, rebalancing method, and program |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3006551B2 (en) * | 1996-07-12 | 2000-02-07 | 日本電気株式会社 | Business distribution system between plural computers, business distribution method, and recording medium recording business distribution program |
-
2018
- 2018-04-25 JP JP2018083895A patent/JP7125593B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2017146848A (en) | 2016-02-18 | 2017-08-24 | 日本電信電話株式会社 | Rebalancing device, rebalancing method, and program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2019191924A (en) | 2019-10-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112162865B (en) | Scheduling method and device of server and server | |
| US10733026B2 (en) | Automated workflow selection | |
| US9081624B2 (en) | Automatic load balancing, such as for hosted applications | |
| US9477743B2 (en) | System and method for load balancing in a distributed system by dynamic migration | |
| US20180352023A1 (en) | Decentralized, resource aware load distribution in a distributed system | |
| US10810054B1 (en) | Capacity balancing for data storage system | |
| US8578379B2 (en) | Managing memory overload of java virtual machines in web application server systems | |
| US8145449B2 (en) | Computer product, apparatus, and method for system management | |
| JP2012094030A (en) | Computer system and processing control method | |
| JP5609730B2 (en) | Information processing program and method, and transfer processing apparatus | |
| JP2011123817A (en) | Job distribution apparatus, job distribution program, and job distribution method | |
| US20190163528A1 (en) | Automated capacity management in distributed computing systems | |
| US20090235250A1 (en) | Management machine, management system, management program, and management method | |
| JPWO2018003031A1 (en) | Virtualization management program, virtualization management apparatus, and virtualization management method | |
| JP2019008417A (en) | Information processing apparatus, memory control method and memory control program | |
| US20230021746A1 (en) | Allocation and management of computing platform resources | |
| JP5942509B2 (en) | Batch processing system | |
| CN114564281A (en) | Container scheduling method, device, equipment and storage medium | |
| JP6692454B2 (en) | Continuous integration system and resource control method | |
| CN104793982A (en) | Method and device for establishing virtual machine | |
| JP7125593B2 (en) | Information processing program, information processing apparatus, and information processing method | |
| JP5879117B2 (en) | Information processing system and operation management method | |
| Xie et al. | A novel independent job rescheduling strategy for cloud resilience in the cloud environment | |
| JP6823257B2 (en) | Job monitoring program, job monitoring device and job monitoring method | |
| CN110648232A (en) | Method and device for controlling limit of processing node, storage medium and terminal |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210210 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211228 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220118 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220318 |
|
| 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: 20220712 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220725 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7125593 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |