Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7125593B2 - Information processing program, information processing apparatus, and information processing method - Google Patents
[go: Go Back, main page]

JP7125593B2 - Information processing program, information processing apparatus, and information processing method - Google Patents

Information processing program, information processing apparatus, and information processing method Download PDF

Info

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
Application number
JP2018083895A
Other languages
Japanese (ja)
Other versions
JP2019191924A (en
Inventor
善之 窪田
良平 高橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018083895A priority Critical patent/JP7125593B2/en
Publication of JP2019191924A publication Critical patent/JP2019191924A/en
Application granted granted Critical
Publication of JP7125593B2 publication Critical patent/JP7125593B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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 Patent Documents 1 and 2, for example).

特開2016-015074号公報JP 2016-015074 A 特開2012-069056号公報JP 2012-069056 A

ここで、上記のようなリクエストに対応する各処理は、その内容によって実行時における処理負担が異なる。そのため、各サーバにおける処理負担は、各サーバに割り当てられたリクエストに対応する処理の内容によって大きく異なる場合がある。 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は、情報処理システム10の構成を示す図である。FIG. 1 is a diagram showing the configuration of an information processing system 10. As shown in FIG. 図2は、情報処理システム10の構成を示す図である。FIG. 2 is a diagram showing the configuration of the information processing system 10. As shown in FIG. 図3は、サーバ1のハードウエア構成を示す図である。FIG. 3 is a diagram showing the hardware configuration of the server 1. As shown in FIG. 図4は、サーバ1の機能のブロック図である。FIG. 4 is a functional block diagram of the server 1. As shown in FIG. 図5は、第1の実施の形態におけるサーバ変更処理の概略を説明するフローチャート図である。FIG. 5 is a flowchart for explaining an outline of server change processing according to the first embodiment. 図6は、第1の実施の形態におけるサーバ変更処理の概略を説明する図である。FIG. 6 is a diagram for explaining an outline of server change processing according to the first embodiment. 図7は、第1の実施の形態におけるサーバ変更処理の概略を説明する図である。FIG. 7 is a diagram for explaining an outline of server change processing according to the first embodiment. 図8は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。FIG. 8 is a flowchart for explaining details of server change processing according to the first embodiment. 図9は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。FIG. 9 is a flowchart for explaining details of server change processing according to the first embodiment. 図10は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。FIG. 10 is a flowchart illustrating details of server change processing according to the first embodiment. 図11は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。FIG. 11 is a flowchart illustrating details of server change processing according to the first embodiment. 図12は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。FIG. 12 is a flowchart illustrating details of server change processing according to the first embodiment. 図13は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。FIG. 13 is a flowchart illustrating details of server change processing according to the first embodiment. 図14は、第1の実施の形態におけるサーバ変更処理の詳細を説明するフローチャート図である。FIG. 14 is a flowchart for explaining details of server change processing according to the first embodiment. 図15は、対応情報131の具体例を説明する図である。FIG. 15 is a diagram explaining a specific example of the correspondence information 131. As shown in FIG. 図16は、対応情報131の具体例を説明する図である。FIG. 16 is a diagram explaining a specific example of the correspondence information 131. As shown in FIG. 図17は、対応情報131の具体例を説明する図である。FIG. 17 is a diagram explaining a specific example of the correspondence information 131. As shown in FIG. 図18は、閾値情報133の具体例を説明する図である。FIG. 18 is a diagram explaining a specific example of the threshold information 133. As shown in FIG. 図19は、S15の処理の具体例を説明する図である。FIG. 19 is a diagram illustrating a specific example of the process of S15. 図20は、対応情報131の具体例を説明する図である。FIG. 20 is a diagram explaining a specific example of the correspondence information 131. As shown in FIG. 図21は、対応情報131の具体例を説明する図である。FIG. 21 is a diagram explaining a specific example of the correspondence information 131. As shown in FIG. 図22は、対応情報131の具体例を説明する図である。FIG. 22 is a diagram for explaining a specific example of the correspondence information 131. As shown in FIG. 図23は、対応情報131の具体例を説明する図である。FIG. 23 is a diagram for explaining a specific example of the correspondence information 131. As shown in FIG. 図24は、サーバ稼働情報132の具体例を説明する図である。FIG. 24 is a diagram explaining a specific example of the server operation information 132. As shown in FIG. 図25は、サーバ稼働情報132の具体例を説明する図である。FIG. 25 is a diagram explaining a specific example of the server operation information 132. As shown in FIG. 図26は、対応情報131の具体例を説明する図である。FIG. 26 is a diagram explaining a specific example of the correspondence information 131. As shown in FIG. 図27は、対応情報131の具体例を説明する図である。FIG. 27 is a diagram explaining a specific example of the correspondence information 131. As shown in FIG.

[情報処理システムの構成]
図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 information processing system 10. FIG. Specifically, the information processing system 10 shown in FIG. 1 includes servers 1a, 1b, 1c, and 1d, a load balancer 2, and an operation terminal 3. Note that the servers 1a, 1b, 1c, and 1d are also collectively referred to as the server 1 or the information processing device 1 hereinafter.

操作端末3は、例えば、利用者が使用するPC(Personal Computer)であり、各サーバ1に対して処理の実行を要求するためのリクエストを送信する。 The operation terminal 3 is, for example, a PC (Personal Computer) used by a user, and transmits a request for requesting each server 1 to execute a process.

ロードバランサ2は、例えば、物理マシン上に生成された1台以上の仮想マシンであり、操作端末3から受け付けたリクエストをサーバ1のうちのいずれかに送信する。具体的に、ロードバランサ2は、例えば、各サーバ1に対して送信したリクエストの数が均一になるように、リクエストを送信するサーバ1を決定する。 The load balancer 2 is, for example, one or more virtual machines generated on a physical machine, and transmits a request received from the operation terminal 3 to one of the servers 1 . Specifically, the load balancer 2 determines the servers 1 to which requests are sent, for example, so that the number of requests sent to each server 1 is uniform.

各サーバ1は、例えば、物理マシン上に生成された1台以上の仮想マシンであり、ロードバランサ2から受け付けたリクエストを蓄積し、先に受け付けたリクエストに対応する処理から順に実行する。具体的に、図1に示す例は、サーバ1aが処理A1及び処理A2を蓄積し、サーバ1bが処理B1を蓄積し、サーバ1cが処理C1及び処理C2を蓄積し、サーバ1dが処理D1を蓄積している状態を示す例である。なお、リクエストに対応する処理には、例えば、データベース(図示しない)に記憶されたデータを参照する処理、データベースに記憶されたデータを更新する処理、データベースに対して新たな情報を追加する処理及びデータベースに記憶されたデータを削除する処理が含まれるものであってよい。 Each server 1 is, for example, one or more virtual machines generated on a physical machine, accumulates requests received from the load balancer 2, and sequentially executes processes corresponding to previously received requests. Specifically, in the example shown in FIG. 1, the server 1a stores processing A1 and processing A2, the server 1b stores processing B1, the server 1c stores processing C1 and processing C2, and the server 1d stores processing D1. It is an example showing a state of accumulation. Note that the processing corresponding to the request includes, for example, processing of referring to data stored in a database (not shown), processing of updating data stored in the database, processing of adding new information to the database, and It may include processing to delete data stored in the database.

そして、例えば、図2に示すように、サーバ1aが処理A1、処理A2、処理A3及び処理A4を蓄積したことにより、サーバ1aの処理負荷が予め定められた閾値まで上昇した場合、管理サーバ(図示しない)は、例えば、新たなサーバ1eを追加する。一方、例えば、サーバ1aの処理負荷が予め定められた別の閾値まで低下した場合、管理サーバは、例えば、サーバ1のうちのいずれかのサーバを削除する。 Then, for example, as shown in FIG. 2, when the processing load of the server 1a rises to a predetermined threshold value due to accumulation of the processing A1, the processing A2, the processing A3, and the processing A4 on the server 1a, the management server ( not shown) adds, for example, a new server 1e. On the other hand, for example, when the processing load of the server 1a falls to another predetermined threshold value, the management server deletes one of the servers 1, for example.

これにより、事業者は、利用者によるサービスの利用状況(例えば、操作端末3から送信されるリクエストの頻度)に応じて、サーバ1の台数を調整することが可能になる。そのため、事業者は、利用者に対するサービスの提供に用いられる物理リソース(例えば、物理マシンのCPUやメモリ等)を効率的に使用することが可能になる。 This enables the business operator to adjust the number of servers 1 according to the usage status of services by users (for example, the frequency of requests transmitted from the operation terminals 3). Therefore, the business can efficiently use physical resources (for example, CPUs and memories of physical machines) used for providing services to users.

ここで、操作端末3から送信されたリクエストに対応する各処理は、その内容によって各サーバ1における処理負担が大きく異なる。そのため、各サーバ1における処理負担は、各サーバ1に割り当てられたリクエストに対応する各処理の内容によって大きく異なる場合がある。 Here, each process corresponding to a request transmitted from the operation terminal 3 has a significantly different processing load on each server 1 depending on its contents. Therefore, the processing load on each server 1 may vary greatly depending on the content of each process corresponding to the request assigned to each server 1 .

しかしながら、ロードバランサ2は、各サーバ1に対して一旦割り当てたリクエストを、他のサーバ1に対して再度割り当てることができない場合がある。そのため、情報処理システム10では、一部のサーバ1に負荷が集中している場合であっても、そのサーバ1に割り当てられたリクエストを他のサーバ1に再度割り当てることができず、各サーバ1の処理負担の平準化させることができない場合がある。 However, the load balancer 2 may not be able to reassign a request once assigned to each server 1 to another server 1 . Therefore, in the information processing system 10, even if the load is concentrated on a part of the servers 1, the requests assigned to the server 1 cannot be re-assigned to the other servers 1. It may not be possible to level the processing burden of

そこで、本実施の形態における各サーバ1は、ロードバランサ2によって自サーバ1に割り当てられた各リクエストを実行するための複数の処理を特定する。そして、各サーバ1は、特定した複数の処理ごとの負荷の情報と、自サーバ1との対応情報を記憶部に記憶する。 Therefore, each server 1 in this embodiment specifies a plurality of processes for executing each request assigned to the server 1 by the load balancer 2 . Then, each server 1 stores load information for each of the specified plurality of processes and correspondence information with its own server 1 in a storage unit.

その後、各サーバ1は、対応情報を記憶した記憶部を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定し、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する。 After that, each server 1 refers to the storage unit storing the correspondence information, specifies the total value of the load of each process corresponding to each of the plurality of servers 1, and determines the total value corresponding to the own server 1 and the other servers. It is determined whether or not at least one of the differences from the total value corresponding to 1 is greater than or equal to a predetermined value.

その結果、自サーバ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 own server 1 and the total value corresponding to the other servers 1 is equal to or greater than the predetermined value, each server 1 is equal to or greater than the predetermined value. The server 1 that executes the process associated with the own server 1 is changed and the correspondence information is updated so that the difference determined to be less than a predetermined value.

すなわち、本実施の形態における各サーバ1は、例えば、各サーバ1の処理負荷の状態を示す対応情報を随時更新する。そして、各サーバ1は、対応情報を記憶した記憶部を参照し、自サーバ1が高負荷であると判定した場合、ロードバランサ2から受け付けたリクエストに対応する処理を他のサーバ1に引き継ぐ。 That is, each server 1 in the present embodiment, for example, updates corresponding information indicating the state of the processing load of each server 1 as needed. Then, each server 1 refers to the storage unit that stores the correspondence information, and when it determines that the load of the server 1 itself is high, the other server 1 takes over the processing corresponding to the request received from the load balancer 2 .

これにより、各サーバ1は、各サーバ1の現在の状態を反映した対応情報を参照することで、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であるか否かの判定を行うことが可能になる。そのため、各サーバ1は、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であると判定した場合、自サーバ1に割り当てられたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼する旨の決定を行うことが可能になる。したがって、各サーバ1は、自サーバ1に割り当てられたリクエストに対応する処理の実行を、適切なタイミングにおいて他のサーバ1に依頼することが可能になり、各サーバ1の処理負担を平準化させることが可能になる。 As a result, each server 1 refers to the corresponding information reflecting the current state of each server 1 to determine whether the state of the server 1 is higher than the states of the other servers 1 or not. judgment can be made. Therefore, when each server 1 determines that the state of its own server 1 has a higher load than the states of other servers 1, it causes other servers 1 to execute the processing corresponding to the request assigned to its own server 1. 1 (server 1 that is not heavily loaded). Therefore, each server 1 can request other servers 1 to execute the processing corresponding to the request assigned to the server 1 at appropriate timing, thereby leveling the processing load of each server 1. becomes possible.

[情報処理システムのハードウエア構成]
次に、情報処理システム10のハードウエア構成について説明する。図3は、サーバ1のハードウエア構成を示す図である。
[Hardware configuration of information processing system]
Next, the hardware configuration of the information processing system 10 will be described. FIG. 3 is a diagram showing the hardware configuration of the server 1. As shown in FIG.

サーバ1は、プロセッサであるCPU101と、メモリ102と、外部インターフェース(I/Oユニット)103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。 The server 1 has a CPU 101 as a processor, a memory 102 , an external interface (I/O unit) 103 and a storage medium 104 . Each unit is connected to each other via a bus 105 .

記憶媒体104は、例えば、ロードバランサ2によって割り当てられたリクエストに対応する処理を他のサーバ1に再度割り当てる処理(以下、サーバ変更処理とも呼ぶ)を行うためのプログラム110を記憶するプログラム格納領域(図示しない)を有する。また、記憶媒体104は、例えば、サーバ変更処理を行う際に用いられる情報を記憶する情報格納領域130(以下、記憶部130とも呼ぶ)を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)であってよい。 The storage medium 104 is, for example, a program storage area (a program storage area ( not shown). The storage medium 104 also has, for example, an information storage area 130 (hereinafter also referred to as a storage unit 130) that stores information used when performing server change processing. Note that the storage medium 104 may be, for example, an HDD (Hard Disk Drive).

CPU101は、記憶媒体104からメモリ102にロードされたプログラム110を実行してサーバ変更処理を行う。 The CPU 101 executes the program 110 loaded from the storage medium 104 to the memory 102 to perform server change processing.

外部インターフェース103は、例えば、他のサーバ1やロードバランサ2と通信を行う。 The external interface 103 communicates with other servers 1 and load balancers 2, for example.

[情報処理システムの機能]
次に、情報処理システム10の機能について説明を行う。図4は、サーバ1の機能のブロック図である。
[Functions of information processing system]
Next, functions of the information processing system 10 will be described. FIG. 4 is a functional block diagram of the server 1. As shown in FIG.

各サーバ1は、CPU101やメモリ102等のハードウエアとプログラム110とが有機的に協働することにより、リクエスト受付部111と、処理実行部112と、処理特定部113と、負荷判定部114と、サーバ決定部115(以下、装置決定部115とも呼ぶ)と、異常判定部116と、情報管理部117とを含む各種機能を実現する。 Each server 1 has a request reception unit 111, a process execution unit 112, a process identification unit 113, and a load determination unit 114 through organic cooperation between hardware such as the CPU 101 and the memory 102 and the program 110. , a server determination unit 115 (hereinafter also referred to as a device determination unit 115 ), an abnormality determination unit 116 , and an information management unit 117 .

そして、各サーバ1は、図4に示すように、対応情報131と、サーバ稼働情報132と、閾値情報133とを情報格納領域130に記憶する。 Each server 1 stores correspondence information 131, server operation information 132, and threshold information 133 in the information storage area 130, as shown in FIG.

リクエスト受付部111は、ロードバランサ2から送信されたリクエストを受け付ける。そして、情報管理部117は、例えば、リクエスト受付部111が受け付けたリクエストを情報格納領域130に記憶する。 The request accepting unit 111 accepts requests sent from the load balancer 2 . Then, the information management unit 117 stores the request received by the request receiving unit 111 in the information storage area 130, for example.

処理実行部112は、リクエスト受付部111が受け付けたリクエストに対応する処理を実行する。具体的に、処理実行部112は、例えば、情報管理部117によって情報格納領域130に記憶されたリクエストに対応する処理を、ロードバランサ2から送信された順序が早いリクエストに対応する処理から順に実行する。 The processing execution unit 112 executes processing corresponding to the request received by the request reception unit 111 . Specifically, for example, the processing execution unit 112 sequentially executes the processing corresponding to the requests stored in the information storage area 130 by the information management unit 117, starting with the processing corresponding to the request transmitted from the load balancer 2 earlier. do.

処理特定部113は、リクエスト受付部111が受け付けたリクエストに対応する処理を特定する。具体的に、処理特定部113は、自サーバ1に割り当てられたリクエストとして情報格納領域130に記憶されている1以上のリクエストにそれぞれ対応する処理を特定する。そして、情報管理部117は、処理特定部113が特定した処理ごとの負荷の情報と、自サーバ1を識別する識別情報とを対応付けた対応情報131を情報格納領域130に記憶する。対応情報131の具体例については後述する。 The process specifying unit 113 specifies a process corresponding to the request accepted by the request accepting unit 111 . Specifically, the process specifying unit 113 specifies processes corresponding to one or more requests stored in the information storage area 130 as requests assigned to the server 1 . Then, the information management unit 117 stores, in the information storage area 130, correspondence information 131 in which the information of the load for each process specified by the process specifying unit 113 and the identification information for identifying the own server 1 are associated with each other. A specific example of the correspondence information 131 will be described later.

負荷判定部114は、対応情報131を記憶した情報格納領域130を参照し、各サーバ1に対応する各処理の負荷の合計値をサーバ1ごとに特定する。具体的に、負荷判定部114は、例えば、情報管理部117が対応情報131を記憶(更新)したことに応じて、各処理の負荷の合計値の特定を行うものであってよい。また、負荷判定部114は、例えば、定期的なタイミングにおいて、各処理の負荷の合計値の特定を行うものであってよい。そして、負荷判定部114は、特定した合計値のそれぞれから、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する。 The load determination unit 114 refers to the information storage area 130 storing the correspondence information 131 and specifies the total value of the load of each process corresponding to each server 1 for each server 1 . Specifically, the load determination unit 114 may specify the total value of the load of each process, for example, in response to the information management unit 117 storing (updating) the correspondence information 131 . Further, the load determination unit 114 may specify the total value of the load of each process at regular timing, for example. Then, from each of the specified total values, the load determination unit 114 determines whether at least one of the differences between the total value corresponding to the own server 1 and the total value corresponding to the other server 1 is equal to or greater than a predetermined value. determine whether

サーバ決定部115は、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であると負荷判定部114が判定した場合、所定値以上であると判定した差が所定値未満となるように、自サーバ1に対応付けられた処理を実行するサーバ1を変更する。そして、情報管理部117は、この場合、変更された内容を反映するように、対応情報131の更新を行う。 If the load determination unit 114 determines that at least one of the differences between the total value corresponding to the server 1 and the total value corresponding to the other server 1 is equal to or greater than a predetermined value, the server determination unit 115 The server 1 that executes the process associated with the own server 1 is changed so that the difference determined to be above is less than the predetermined value. In this case, the information management unit 117 updates the correspondence information 131 so as to reflect the changed contents.

異常判定部116は、異常が発生している他のサーバ1が存在するか否かを判定する。そして、処理実行部112は、異常が発生している他のサーバ1が存在する場合、例えば、異常が発生している他のサーバ1が実行中であった処理と、異常が発生している他のサーバ1がこれから実行する予定であった処理とを引き継いで実行する。サーバ稼働情報132及び閾値情報133についての説明は後述する。 The abnormality determination unit 116 determines whether or not there is another server 1 in which an abnormality has occurred. Then, when there is another server 1 in which an abnormality has occurred, the process execution unit 112, for example, determines whether the process that was being executed by the other server 1 in which an abnormality has occurred The other server 1 takes over and executes the processing that was scheduled to be executed from now on. The server operation information 132 and the threshold information 133 will be described later.

[第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 server 1 waits until the process execution timing (NO in S1). The processing execution timing may be, for example, the timing at which the server 1 receives a request from the load balancer 2 . Also, the processing execution timing may be, for example, periodic timing such as an interval of 10 seconds.

そして、処理実行タイミングになった場合(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 server 1 identifies a plurality of processes for executing the request assigned to it by the load balancer 2 (S2). Subsequently, the server 1 stores the load information for each of the plurality of processes specified in the process of S2 and the correspondence information 131 with the own server 1 in the information storage area 130 (S3).

具体的に、サーバ1aは、図6に示すように、例えば、処理A1の実行中において新たなリクエストをロードバランサ2から受け付けた場合、実行中の処理A1及び新たなリクエストに対応する処理A2の実行に伴うサーバ1aの負荷についての情報と、サーバ1aの識別情報とを対応付けた対応情報131を情報格納領域130に記憶する。 Specifically, as shown in FIG. 6, for example, when the server 1a receives a new request from the load balancer 2 during execution of the process A1, the server 1a The information storage area 130 stores correspondence information 131 in which the information about the load on the server 1a accompanying the execution is associated with the identification information of the server 1a.

その後、サーバ1は、対応情報131を記憶した情報格納領域130を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定し、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する(S4)。 After that, the server 1 refers to the information storage area 130 storing the correspondence information 131, specifies the total value of the load of each process corresponding to each of the plurality of servers 1, and is equal to or greater than a predetermined value (S4).

その結果、自サーバ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 own server 1 and the total value corresponding to the other server 1 is equal to or greater than a predetermined value (YES in S5), the server 1 performs S4 The server 1 executing the process associated with the own server 1 is changed to update the correspondence information 131 so that the difference determined to be equal to or greater than the predetermined value in the process of 1 is less than the predetermined value (S6).

具体的に、サーバ1aは、自サーバ1が高負荷状態にあると判定した場合、図7に示すように、例えば、ロードバランサ2によって自サーバ1に割り当てられた新たなリクエストに対応する処理A2を実行するサーバ1を、サーバ1aからサーバ1eに変更する。 Specifically, when the server 1a determines that its own server 1 is in a high load state, for example, as shown in FIG. is changed from server 1a to server 1e.

一方、自サーバ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 own server 1 and the total values corresponding to the other servers 1 are not equal to or greater than the predetermined value (NO in S5), the server 1 does not perform the processing of S6. .

すなわち、本実施の形態における各サーバ1は、例えば、各サーバ1の処理負荷の状態を示す対応情報131を随時更新する。そして、各サーバ1は、対応情報131を記憶した情報格納領域130を参照し、自サーバ1が高負荷であると判定した場合、ロードバランサ2から受け付けたリクエストに対応する処理を他のサーバ1に引き継ぐ。 That is, each server 1 in the present embodiment updates the corresponding information 131 indicating, for example, the state of the processing load of each server 1 as needed. Then, each server 1 refers to the information storage area 130 that stores the correspondence information 131, and if it determines that the load on its own server 1 is high, the processing corresponding to the request received from the load balancer 2 is performed by another server 1. take over to

これにより、各サーバ1は、各サーバ1の現在の状態を反映した対応情報131を参照することで、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であるか否かの判定を行うことが可能になる。そのため、各サーバ1は、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であると判定した場合、自サーバ1に割り当てられたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼する旨の決定を行うことが可能になる。したがって、各サーバ1は、自サーバ1に割り当てられたリクエストに対応する処理の実行を、適切なタイミングにおいて他のサーバ1に依頼することが可能になり、各サーバ1の処理負担を平準化させることが可能になる。 As a result, each server 1 can refer to the correspondence information 131 reflecting the current state of each server 1 to determine whether the state of its own server 1 is higher than the states of other servers 1 or not. can be determined. Therefore, when each server 1 determines that the state of its own server 1 has a higher load than the states of other servers 1, it causes other servers 1 to execute the processing corresponding to the request assigned to its own server 1. 1 (server 1 that is not heavily loaded). Therefore, each server 1 can request other servers 1 to execute the processing corresponding to the request assigned to the server 1 at appropriate timing, thereby leveling the processing load of each server 1. becomes possible.

[第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 load balancer 2 will be described.

サーバ1のリクエスト受付部111は、図8に示すように、ロードバランサ2によって送信されたリクエストを受け付けるまで待機する(S11のNO)。 As shown in FIG. 8, the request reception unit 111 of the server 1 waits until the request transmitted by the load balancer 2 is received (NO in S11).

そして、ロードバランサ2によって送信されたリクエストを受け付けた場合(S11のYES)、サーバ1の処理特定部113は、S11の処理で受け付けたリクエストに対応する処理を特定する(S12)。 Then, when the request transmitted by the load balancer 2 is accepted (YES in S11), the process specifying unit 113 of the server 1 specifies the process corresponding to the request accepted in the process of S11 (S12).

その後、サーバ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 information management unit 117 of the server 1 stores, in the information storage area 130, the correspondence information 131 in which the information indicating the processing load corresponding to the request received in the processing of S11 is associated with the identification information of the own server 1. (S13). Specifically, the information management unit 117 converts the identification information of the process corresponding to the request received in the process of S11 and the identification information of the server 1 that received the request in the process of S11 into first correspondence information. 131a. Further, the information management unit 117 stores, as part of the second correspondence information 131b, information that associates the process corresponding to the request received in the process of S11 with the execution status of each operation included in each process. Furthermore, the information management unit 117 updates the third correspondence information 131c in which the identification information of each server 1 and the information indicating the current load of each server 1 are associated with each other. A specific example of the correspondence information 131 will be described below.

[対応情報の具体例]
図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 correspondence information 131. FIG. Specifically, FIGS. 15, 20, and 26 are diagrams for explaining specific examples of the first correspondence information 131a, and FIGS. FIG. 17 is a diagram illustrating a specific example of the third correspondence information 131c.

初めに、第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 server 1 is set. and as items.

具体的に、図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 server 1a is "A001", and the "process ID" of the process corresponding to the request assigned to the server 1b ID" is "A003", and the "process IDs" of the processes corresponding to the requests assigned to the server 1c are "A008" and "A022". Further, the first correspondence information 131a illustrated in FIG. 15 indicates that the "process ID" of the process corresponding to the request assigned to the server 1d is "A012" and the "process ID" of the process corresponding to the request assigned to the server 1e. ID" is "A015".

次に、第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 server 1 is set are included as items.

具体的に、図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 server 1a. The second correspondence information 131b shown in FIG. 16 indicates that, for example, the operations whose “operation IDs” are “B001” and “B002” have already been executed, and “operation IDs” are “B003” and “B004”. is currently being executed, and the operations whose "operation IDs" are "B005", "B006" and "B007" have not yet been executed.

続いて、第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 server 1 is set, and each It has as an item "CPU usage rate" in which the current CPU usage rate of the server 1 (information acquired from each server 1) is set. 17, the third correspondence information 131c includes "memory" in which the current memory usage of each server 1 (information acquired from each server 1) is set, and the current thread in each server 1. (information obtained from each server 1) is set, and the "process "severity" as items.

具体的に、図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 server 1 may be set.

具体的に、情報管理部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 information management unit 117 specifies "1" as the value corresponding to the severity of the process. can be Further, the information management unit 117, for example, when the processing corresponding to the request is addition of data to the database or deletion of data stored in the database, the processing takes a predetermined time (for example, 1 hour). ), it may specify "2" as the value corresponding to the severity of the treatment. Further, the information management unit 117 predicts that, for example, when the processing corresponding to the request is addition of data to the database or deletion of data stored in the database, the time required for the processing will exceed the predetermined time. If so, "3" may be specified as the value corresponding to the severity of the process. Further, for example, when the process corresponding to the request is updating data stored in the database, the information management unit 117 may specify "3" as the value corresponding to the severity of the process. Then, the information management unit 117 may set, for example, the total value of the values corresponding to the severity of each process corresponding to the request received by each server 1 as the “processing severity”.

図8に戻り、サーバ1の負荷判定部114は、情報格納領域130に記憶された対応情報131を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定する(S14)。 Returning to FIG. 8, the load determination unit 114 of the server 1 refers to the correspondence information 131 stored in the information storage area 130, and specifies the total value of the load of each process corresponding to each of the plurality of servers 1 (S14 ).

具体的に、負荷判定部114は、情報格納領域130に記憶された第3対応情報131cを参照し、各サーバ1に対応する情報の「CPU使用率」、「メモリ使用量」、「スレッド使用数」及び「負荷重度」に設定された情報をそれぞれ特定するものであってよい。 Specifically, the load determination unit 114 refers to the third correspondence information 131c stored in the information storage area 130, and refers to the “CPU usage”, “memory usage”, and “thread usage” corresponding to each server 1. information set in "number" and "load severity", respectively.

そして、負荷判定部114は、S14の処理で特定した合計値に基づいて、各サーバ1間における合計値の差をそれぞれ算出する(S15)。以下、S15の処理の具体例について説明を行う。 Then, the load determination unit 114 calculates the difference in total value between the servers 1 based on the total value specified in the process of S14 (S15). A specific example of the processing of S15 will be described below.

[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 load determination unit 114 refers to the threshold information 133 stored in the information storage area 130, and determines whether each of the total values specified in the process of S14 exceeds each threshold whose information is included in the threshold information 133. determine whether or not A specific example of the threshold information 133 will be described below.

[閾値情報の具体例]
図18は、閾値情報133の具体例を説明する図である。
[Specific example of threshold information]
FIG. 18 is a diagram explaining a specific example of the threshold information 133. As shown in FIG.

閾値情報133は、図18に示すように、閾値情報133に含まれる各情報を識別する「項番」と、第3対応情報131cにおける各項目の名称が設定される「項目名」と、「項目名」に名称が設定された項目と比較する閾値がそれぞれ設定される「第1閾値」及び「第2閾値」とを項番として有する。また、閾値情報133は、図18に示すように、「項目名」に名称が設定された項目が取り得る値の上限値が設定される「上限」を項目として有する。 As shown in FIG. 18, the threshold information 133 includes an "item number" for identifying each piece of information included in the threshold information 133, an "item name" in which the name of each item in the third correspondence information 131c is set, and an "item name". It has item numbers "first threshold" and "second threshold" for which thresholds to be compared with the item whose name is set in "item name" are respectively set. As shown in FIG. 18, the threshold information 133 has an item of "upper limit" in which the upper limit of the values that the item whose name is set in "item name" is set.

具体的に、図18に示す閾値情報133において、「項番」が「1」である情報には、「項目名」として「CPU使用率」が設定され、「第1閾値」として「60(%)」が設定され、「第2閾値」として「80(%)」が設定され、「上限」として「100(%)」が設定されている。 Specifically, in the threshold information 133 shown in FIG. 18, for the information whose "item number" is "1", "CPU usage rate" is set as the "item name", and "60 ( %)” is set, “80 (%)” is set as the “second threshold”, and “100 (%)” is set as the “upper limit”.

また、図18に示す閾値情報133において、「項番」が「2」である情報には、「項目名」として「メモリ使用量」が設定され、「第1閾値」として「15(GB)」が設定され、「第2閾値」として「20(GB)」が設定され、「上限」として「24(GB)」が設定されている。図18に含まれる他の情報についての説明は省略する。 Further, in the threshold information 133 shown in FIG. 18, for the information whose "item number" is "2", "memory usage" is set as the "item name", and "15 (GB)" is set as the "first threshold". ” is set, “20 (GB)” is set as the “second threshold value”, and “24 (GB)” is set as the “upper limit”. Description of other information included in FIG. 18 is omitted.

そして、負荷判定部114は、S15の処理において、例えば、図17で説明した第3対応情報131cにおける「CPU使用率」、「メモリ使用量」、「スレッド使用数」及び「処理重度」のそれぞれに設定された各値(S14の処理で特定した各合計値)を、図18で説明した閾値情報133における「第1閾値」に設定された閾値未満であるグループ(以下、低グループとも呼ぶ)と、「第1閾値」に設定された閾値以上であって「第2閾値」に設定された閾値未満であるグループ(以下、中グループとも呼ぶ)と、「第2閾値」に設定された閾値以上であるグループ(以下、高グループとも呼ぶ)とのいずれかに振り分ける。 Then, in the process of S15, the load determination unit 114, for example, determines the "CPU usage", "memory usage", "thread usage", and "processing level" in the third correspondence information 131c described with reference to FIG. Each value (each total value specified in the process of S14) set to is less than the threshold set in the "first threshold" in the threshold information 133 described in FIG. 18 (hereinafter also referred to as a low group) , a group that is equal to or greater than the threshold set as the "first threshold" and less than the threshold set as the "second threshold" (hereinafter also referred to as a middle group), and a threshold set as the "second threshold" They are sorted into one of the above groups (hereinafter also referred to as high groups).

具体的に、図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 load determination unit 114 refers to the threshold information 133 described with reference to FIG. 18, and, for example, as illustrated in FIG. It is determined to be classified into a group, medium group, low group and medium group. In the example shown in FIG. 19, the "low group", "medium group" and "high group" are expressed as "1", "2" and "3", respectively.

すなわち、負荷判定部114は、S14の処理で特定した合計値のグループ化を行ってから各処理を実行するサーバ1の決定を行う。これにより、情報処理装置1は、各処理を実行するサーバ1の変更が必要以上に行われることを防止することが可能になる。 That is, the load determination unit 114 performs grouping of the total values specified in the process of S14, and then determines the server 1 that executes each process. As a result, the information processing device 1 can prevent the server 1 that executes each process from being changed more than necessary.

その後、負荷判定部114は、例えば、S14の処理で特定した合計値の各グループへの分類結果を参照し、各サーバ1間における合計値の差をそれぞれ算出する。 After that, the load determination unit 114 refers to the result of classifying the total value into each group specified in the process of S14, for example, and calculates the difference in the total value between the servers 1, respectively.

具体的に、図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 servers 1a, 1b, 1c, 1d, and 1e, respectively. and "1" are set. Therefore, the load determination unit 114 specifies, for example, "2", "2", "2", "2" as the difference in the CPU usage rate of the server 1a, and "2" as the difference in the CPU usage rate of the server 1b. −2”, “0”, “0”, “0”.

また、図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 servers 1a, 1b, 1c, 1d, and 1e, respectively. 1” is set. Therefore, the load determination unit 114 specifies, for example, "1", "0", "1", and "1" as the difference in the memory usage of the server 1a, and "1" as the difference in the memory usage of the server 1b. −1”, “−1”, “0”, “0”.

また、図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 load determination unit 114 specifies, for example, "0", "0", "0", "0" as the difference in the thread usage count of the server 1a, and "0" as the difference in the thread usage count of the server 1b. 0”, “0”, “0”, “0”.

さらに、図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 servers 1a, 1b, 1c, 1d and 1e, respectively. ” is set. Therefore, the load determination unit 114 specifies, for example, "1", "1", "1", "1" as the difference in the processing level of the server 1a, and "-1" as the difference in the processing level of the server 1b. , '0', '0', '0'.

図9に戻り、負荷判定部114は、S15の処理で算出した差のそれぞれに基づいて、自サーバ1についての差に、所定値以上の値が含まれているか否かを判定する(S21)。 Returning to FIG. 9, the load determination unit 114 determines whether or not the difference for the own server 1 includes a value equal to or greater than a predetermined value based on each of the differences calculated in the process of S15 (S21). .

具体的に、例えば、サーバ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 server 1a, and "1", "0", and "1", "0", as differences in the memory usage. "1", "1" are identified, "0", "0", "0", "0" are identified as the difference in the number of threads used, and "1", "1" are identified as the difference in the processing severity. , “1”, and “1” are specified, the load determination unit 114 determines that one or more values of “1” or more are included in the difference for the server 1a. Therefore, when the predetermined value in the process of S21 is "1", the load determining unit 114 determines that the difference for the server 1a includes a value equal to or greater than the predetermined value.

一方、例えば、サーバ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 server 1b, and "-1" and "-1" are specified as the difference in the memory usage. , “0”, “0” are specified, “0”, “0”, “0”, “0” are specified as the difference in the number of threads used, and “−1”, “ 0”, “0”, and “0” are specified, the load determination unit 114 determines that the difference for the server 1b does not include a value of “1” or more. Therefore, when the predetermined value in the process of S21 is "1", the load determination unit 114 determines that the difference for the server 1b does not include a value equal to or greater than the predetermined value.

そして、自サーバ1についての差に、所定値以上の値が含まれていないと判定した場合(S22のNO)、サーバ1のサーバ決定部115は、S11の処理で受け付けたリクエストに対応する処理を自サーバ1で実行することを決定する(S23)。 Then, when it is determined that the difference for the server 1 does not include a value equal to or greater than the predetermined value (NO in S22), the server determination unit 115 of the server 1 performs the process corresponding to the request received in the process of S11. is to be executed by its own server 1 (S23).

すなわち、サーバ決定部115は、この場合、自サーバ1が高負荷状態ではなく、S11の処理で受け付けたリクエストに対応する処理を実行することが可能であると判定する。 That is, in this case, the server determination unit 115 determines that the server 1 is not in a high load state and that the process corresponding to the request accepted in the process of S11 can be executed.

一方、自サーバ1についての差に、所定値以上の値が含まれていると判定した場合(S22のYES)、負荷判定部114は、S15の処理で算出した差のそれぞれに基づいて、他のサーバ1(自サーバ1以外のサーバ1)のうちの1台についての差に、所定値以上の値が含まれているか否かを判定する(S24)。 On the other hand, if it is determined that the difference for its own server 1 includes a value equal to or greater than the predetermined value (YES in S22), the load determining unit 114 determines whether the difference calculated in S15 is (S24).

その結果、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれていないと判定した場合(S25のNO)、サーバ決定部115は、S11の処理で受け付けたリクエストに対応する処理の実行を、S24の処理で判定を行った他のサーバ1に依頼する(S26)。 As a result, if it is determined that the difference for one of the other servers 1 does not include a value equal to or greater than the predetermined value (NO in S25), the server determination unit 115 determines that the request accepted in the process of S11 (S26).

すなわち、サーバ決定部115は、自サーバ1が高負荷状態であると判定した場合、例えば、S11の処理で受け付けたリクエストに対応する処理の実行を、高負荷状態でない他のサーバ1に依頼する。 That is, when the server determining unit 115 determines that its own server 1 is in a high load state, for example, it requests another server 1 that is not in a high load state to execute the process corresponding to the request received in the process of S11. .

具体的に、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 server 1b does not include a value of "1" or more, the server determination unit 115 performs the The server 1b is requested to execute the process corresponding to the request received in the process of . In this case, the information management unit 117 stores information indicating that the server 1b will execute the process corresponding to the request accepted in the process of S11, the first correspondence information 131a stored in the information storage area 130 and the second correspondence information 131a. It is reflected in the correspondence information 131b.

なお、S11の処理で受け付けたリクエストに対応する処理の実行を依頼可能なサーバ1が複数存在する場合、サーバ決定部115は、複数存在したサーバ1のうち、現在の負荷が最も低いサーバ1に対して処理の実行を依頼するものであってよい。 Note that if there are a plurality of servers 1 that can be requested to execute the processing corresponding to the request received in the processing of S11, the server determination unit 115 selects the server 1 with the lowest current load among the plurality of servers 1. Execution of processing may be requested to the client.

また、サーバ決定部115は、例えば、S11の処理で受け付けたリクエストに対応する処理の実行を他のサーバ1に依頼する場合であって、S11の処理で受け付けたリクエストに対応する処理の実行を既に開始している場合、S11の処理で受け付けたリクエストに対応する処理に含まれる操作のうち、実行中の操作の次以降に実行される操作の実行を他のサーバ1に依頼するものであってもよい。 Further, the server determining unit 115, for example, when requesting the other server 1 to execute the process corresponding to the request received in the process of S11, executes the process corresponding to the request received in the process of S11. If it has already started, it requests the other server 1 to execute the operation to be executed after the operation being executed among the operations included in the processing corresponding to the request received in the processing of S11. may

そして、サーバ決定部115は、この場合、例えば、図20の下線部分に示すように、図15で説明した第1対応情報131aに含まれる情報のうち、S11の処理で受け付けたリクエストに対応する処理の情報(「項番」が「1」である情報)の「サーバID」に、自サーバ1を示す情報と、自サーバ1が実行中の操作の次以降に実行される操作の実行を依頼する他のサーバ1を示す情報とを含む情報(図20に示す例では「1a/1b」)を設定する。 Then, in this case, the server determination unit 115, for example, as shown in the underlined portion of FIG. In the "server ID" of the processing information (information whose "item number" is "1"), information indicating the own server 1 and the execution of the operation to be executed after the operation being executed by the own server 1 are added. and information indicating the other server 1 to be requested (“1a/1b” in the example shown in FIG. 20) is set.

さらに、サーバ決定部115は、この場合、例えば、図21の下線部分に示すように、図16で説明した第2対応情報131bに含まれる情報のうち、他のサーバ1に実行を依頼する操作の情報(「項番」が「5」、「6」及び「7」である情報)の「サーバID」に、操作の実行を依頼する他のサーバ1を示す情報(図21に示す例では「1b」)を設定する。 Further, in this case, the server determining unit 115, for example, as shown in the underlined portion of FIG. (In the example shown in FIG. 21, information indicating the other server 1 requested to execute the operation (in the example shown in FIG. 21, "1b").

これにより、サーバ1は、他のサーバ1に実行を依頼した処理(操作)についての情報を対応情報131に反映することが可能になる。 As a result, the server 1 can reflect in the correspondence information 131 the information about the process (operation) requested to be executed by another server 1 .

一方、他のサーバ1についての差に、所定値以上の値が含まれていると判定した場合(S25のYES)、負荷判定部114は、図10に示すように、S24の処理において他のサーバ1の全てについての判定を行ったか否かを判定する(S31)。 On the other hand, if it is determined that the difference for the other server 1 includes a value equal to or greater than the predetermined value (YES in S25), the load determining unit 114 performs the process of S24 as shown in FIG. It is determined whether or not all of the servers 1 have been determined (S31).

その結果、他のサーバ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 load determination unit 114 performs the processes after S24 again.

一方、他のサーバ1の全てについての判定を行っている場合(S31のYES)、サーバ決定部115は、新たなサーバ1の追加を管理サーバ(図示しない)に指示する(S32)。そして、サーバ決定部115は、新たなサーバ1の追加が完了するまで待機する(S33のNO)。 On the other hand, if all other servers 1 have been determined (YES in S31), the server determination unit 115 instructs the management server (not shown) to add a new server 1 (S32). Then, the server determination unit 115 waits until addition of the new server 1 is completed (NO in S33).

すなわち、他のサーバ1の全てが高負荷であるために、S11の処理で受け付けたリクエストに対応する処理を実行可能なサーバ1が存在しないと判定した場合、サーバ決定部115は、新たなサーバ1の追加を管理サーバに依頼する。 That is, when it is determined that there is no server 1 capable of executing the process corresponding to the request accepted in the process of S11 because all of the other servers 1 are heavily loaded, the server determination unit 115 selects a new server. Request the addition of 1 to the management server.

そして、新たなサーバ1の追加が完了した場合(S33のYES)、サーバ決定部115は、S11の処理で受け付けたリクエストに対応する処理の実行を、S33の処理で追加が完了した新たなサーバ1に依頼する(S34)。 Then, when the addition of the new server 1 is completed (YES in S33), the server determination unit 115 causes the new server added in the process of S33 to execute the process corresponding to the request received in the process of S11. 1 (S34).

これにより、各サーバ1は、自サーバ1の状態が高負荷であると判定した場合、S11の処理で受け付けたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼することが可能になる。そのため、事業者は、各サーバ1の処理負担を平準化させることが可能になる。 As a result, when each server 1 determines that its own server 1 is under high load, it requests another server 1 (server 1 not under high load) to execute the process corresponding to the request accepted in the process of S11. it becomes possible to Therefore, the business can equalize the processing load of each server 1 .

[処理の実行とともに行われるサーバ変更処理]
次に、処理の実行とともに行われるサーバ変更処理について説明を行う。
[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 process execution unit 112 of the server 1 waits until the process execution timing (NO in S41).

そして、処理実行タイミングになった場合(S41のYES)、処理実行部112は、S23の処理、S26の処理、S34の処理、S53の処理、S56の処理、S64の処理及びS73の処理(以下、S23の処理等とも呼ぶ)で自サーバ1が実行することを決定した処理が存在するか否かを判定する(S42)。 Then, when the process execution timing comes (YES in S41), the process execution unit 112 performs the process of S23, the process of S26, the process of S34, the process of S53, the process of S56, the process of S64, and the process of S73 (hereinafter referred to as , S23, etc.) is determined to be executed by the server 1 (S42).

すなわち、処理実行部112は、例えば、ロードバランサ2や他のサーバ1によって自サーバ1が実行すべき処理として決定された処理のうち、実行がまだ完了していない処理が存在するか否かを判定する。S53の処理、S56の処理、S64の処理及びS73の処理についての説明は後述する。 That is, the process execution unit 112 determines whether or not there is a process that has not been completed among the processes determined by the load balancer 2 or other servers 1 as processes to be executed by the local server 1. judge. The processing of S53, the processing of S56, the processing of S64, and the processing of S73 will be described later.

その結果、処理が存在すると判定した場合(S43のYES)、処理実行部112は、S42の処理で存在すると判定した処理を実行する(S44)。 As a result, when it is determined that the process exists (YES in S43), the process execution unit 112 executes the process determined to exist in the process of S42 (S44).

具体的に、処理実行部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 process execution unit 112 sequentially executes each operation included in the process determined to exist in the process of S42. Then, when the execution of each operation is completed, the process execution unit 112 selects, for example, the information included in the second correspondence information 131b described in FIG. The “status” of the information corresponding to the operation (information whose “item number” is “3” in the example shown in FIG. 22) is updated from “processing” to “processing completed”, and the operation completion date and time is changed. The date and time when the execution was completed (“2018/04/10 07:54:05” in the example shown in FIG. 22) is set. After that, when starting to execute a new operation, the process execution unit 112 selects, for example, the information included in the second correspondence information 131b described with reference to FIG. (In the example shown in FIG. 23, information whose "item number" is "5") "status" is updated from "unprocessed" to "processing", and "operation start date and time" 2018/04/10 07:46:17 in the example shown in FIG.

一方、処理が存在しないと判定した場合(S43のYES)、処理実行部112は、S44の処理を行わない。 On the other hand, when it is determined that there is no process (YES in S43), the process execution unit 112 does not perform the process of S44.

続いて、負荷判定部114は、情報格納領域130に記憶された対応情報131を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定する(S45)。 Subsequently, the load determination unit 114 refers to the correspondence information 131 stored in the information storage area 130, and specifies the total value of the load of each process corresponding to each of the plurality of servers 1 (S45).

具体的に、負荷判定部114は、S14の処理で説明した場合と同様に、情報格納領域130に記憶された第3対応情報131cを参照し、各サーバ1に対応する情報の「CPU使用率」、「メモリ使用量」、「スレッド使用数」及び「負荷重度」に設定された情報(合計値)をそれぞれ特定するものであってよい。 Specifically, the load determination unit 114 refers to the third correspondence information 131c stored in the information storage area 130 and refers to the information corresponding to each server 1, "CPU usage rate ”, “memory usage”, “number of threads used”, and “load severity” (total value).

すなわち、サーバ1は、ロードバランサ2から送信されたリクエストを受け付けた場合のみでなく、定期的なタイミングにおいてもS14以降の処理と同じ処理を行う。 That is, the server 1 performs the same processing as the processing after S14 not only when receiving a request transmitted from the load balancer 2 but also at regular timings.

これにより、サーバ1は、ロードバランサ2からリクエストを受け付けていないタイミングであっても、自サーバ1が高負荷であると判定した場合に、自サーバ1が実行する処理として決定している処理の実行を他のサーバ1に依頼することが可能になる。 As a result, even when the server 1 does not receive a request from the load balancer 2, if the server 1 determines that the load on the server 1 is high, the processing determined to be executed by the server 1 is performed. Execution can be requested to another server 1.

そして、負荷判定部114は、S45の処理で特定した合計値に基づいて、各サーバ1間における合計値の差をそれぞれ算出する(S46)。 Then, the load determination unit 114 calculates the difference in total value between the servers 1 based on the total value specified in the process of S45 (S46).

その後、負荷判定部114は、図12に示すように、S46の処理で算出した差のそれぞれに基づいて、自サーバ1についての差に、所定値以上の値が含まれているか否かを判定する(S51)。 After that, as shown in FIG. 12, the load determination unit 114 determines whether or not the difference for its own server 1 includes a value equal to or greater than a predetermined value, based on each of the differences calculated in the process of S46. (S51).

そして、自サーバ1についての差に、所定値以上の値が含まれていないと判定した場合(S52のNO)、サーバ決定部115は、自サーバ1に対応付けられた処理の実行を他のサーバ1に依頼しないことを決定する(S53)。 Then, if it is determined that the difference for its own server 1 does not include a value equal to or greater than the predetermined value (NO in S52), the server determining unit 115 causes the execution of the process associated with its own server 1 to be executed by another server. It decides not to request the server 1 (S53).

すなわち、サーバ決定部115は、この場合、自サーバ1が高負荷状態ではないため、S42の処理で存在すると判定した処理の実行を現段階では他のサーバ1に依頼しないことの決定を行う。 That is, in this case, the server determining unit 115 determines not to request the other server 1 to execute the process determined to exist in the process of S42 because the server 1 is not in a high load state.

一方、自サーバ1についての差に、所定値以上の値が含まれていると判定した場合(S52のYES)、負荷判定部114は、S46の処理で算出した差のそれぞれに基づいて、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれているか否かを判定する(S54)。 On the other hand, if it is determined that the difference for its own server 1 includes a value equal to or greater than the predetermined value (YES in S52), the load determining unit 114 determines whether the difference calculated in S46 is It is determined whether or not the difference for one of the servers 1 in the above includes a value equal to or greater than a predetermined value (S54).

その結果、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれていないと判定した場合(S55のNO)、サーバ決定部115は、自サーバ1に対応付けられた処理(S42の処理で存在すると判定した処理)の実行を、S54の処理で判定を行った他のサーバ1に依頼する(S56)。 As a result, when it is determined that the difference for one of the other servers 1 does not include a value equal to or greater than the predetermined value (NO in S55), the server determination unit 115 The other server 1 determined in the process of S54 is requested to execute the process (the process determined to exist in the process of S42) (S56).

すなわち、サーバ決定部115は、この場合、自サーバ1が高負荷状態であるため、S42の処理で存在すると判定した処理の実行を、S54の処理で判定を行った他のサーバ1に依頼する。 That is, in this case, the server determining unit 115 requests the other server 1 determined in the process of S54 to execute the process determined to exist in the process of S42 because the server 1 is in a high load state. .

具体的に、サーバ決定部115は、この場合、例えば、S42の処理で存在すると判定した処理のうちの処理重度が最も大きい処理の実行を、S54の処理で判定を行った他のサーバ1に依頼する。 Specifically, in this case, the server determining unit 115, for example, causes the other server 1 determined in the process of S54 to execute the process with the highest processing severity among the processes determined to exist in the process of S42. request.

なお、S42の処理で存在すると判定した処理の実行を他のサーバ1に依頼したにもかかわらず、自サーバ1についての差に依然として所定値以上の値が含まれている場合、サーバ決定部115は、次の処理実行タイミングにおいて、S42の処理で存在すると判定した他の処理の実行を他のサーバ1に対して再度依頼することになる。そのため、サーバ1は、結果として、自サーバ1についての差に所定値以上の値が含まれていないと判定されるまで、他のサーバ1に対する処理の実行の依頼を繰り返す。 It should be noted that, even though the other server 1 has been requested to execute the process determined to exist in the process of S42, if the difference for the own server 1 still includes a value equal to or greater than the predetermined value, the server determination unit 115 will request another server 1 to execute another process determined to exist in the process of S42 at the next process execution timing. Therefore, the server 1 repeatedly requests the other servers 1 to execute the process until it is determined that the difference for the server 1 does not include a value equal to or greater than the predetermined value.

一方、他のサーバ1のうちの1台についての差に、所定値以上の値が含まれていると判定した場合(S55のYES)、負荷判定部114は、図13に示すように、S54の処理において他のサーバ1の全てについての判定を行ったか否かを判定する(S61)。 On the other hand, if it is determined that the difference for one of the other servers 1 includes a value equal to or greater than the predetermined value (YES in S55), the load determination unit 114 performs S54 as shown in FIG. (S61).

その結果、他のサーバ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 load determination unit 114 performs the processing after S54 again.

また、他のサーバ1の全てについての判定を行っている場合(S61のYES)、サーバ決定部115は、新たなサーバ1の追加を管理サーバ(図示しない)に指示する(S62)。そして、サーバ決定部115は、新たなサーバ1の追加が完了するまで待機する(S63のNO)。 Also, if all the other servers 1 have been determined (YES in S61), the server determination unit 115 instructs the management server (not shown) to add a new server 1 (S62). Then, the server determination unit 115 waits until addition of the new server 1 is completed (NO in S63).

そして、新たなサーバ1の追加が完了した場合(S63のYES)、サーバ決定部115は、自サーバ1に対応付けられた処理の実行を、S63の処理で追加が完了した新たなサーバ1に依頼する(S64)。 Then, when the addition of the new server 1 is completed (YES in S63), the server determination unit 115 causes the new server 1, which has been added in the process of S63, to execute the process associated with the own server 1. Request (S64).

具体的に、サーバ決定部115は、この場合、例えば、S42の処理で存在すると判定した処理のうちの処理重度が最も大きい処理の実行を、S63の処理で追加が完了した新たなサーバ1に依頼する。 Specifically, in this case, the server determination unit 115 causes the new server 1, which has been added in the process of S63, to execute the process with the highest processing severity among the processes determined to exist in the process of S42, for example. request.

これにより、各サーバ1は、自サーバ1の状態が高負荷であると判定した場合に、自サーバ1に対応付けられた処理の実行を他のサーバ1(新たに追加されたサーバ1)に依頼することが可能になる。そのため、事業者は、各サーバ1の処理負担を平準化させることが可能になる。 As a result, when each server 1 determines that the state of its own server 1 is high load, it causes another server 1 (the newly added server 1) to execute the process associated with its own server 1. can be requested. Therefore, the business can equalize the processing load of each server 1 .

続いて、S53の処理、または、S64の処理の後、サーバ1の異常判定部116は、図14に示すように、情報格納領域130に記憶されたサーバ稼働情報132を参照し、処理の実行を停止している他のサーバ1が存在するか否かを判定する(S71)。以下、サーバ稼働情報132の具体例について説明を行う。 Subsequently, after the process of S53 or the process of S64, the abnormality determination unit 116 of the server 1 refers to the server operation information 132 stored in the information storage area 130 as shown in FIG. is stopped (S71). A specific example of the server operation information 132 will be described below.

[サーバ稼働情報の具体例]
図24及び図25は、サーバ稼働情報132の具体例を説明する図である。
[Specific example of server operation information]
24 and 25 are diagrams for explaining specific examples of the server operation information 132. FIG.

図24等に示すサーバ稼働情報132は、サーバ稼働情報132に含まれる各情報を識別する「項番」と、各サーバ1の識別情報が設定される「サーバID」とを項目として有する。 The server operation information 132 shown in FIG. 24 and the like has items of “item number” for identifying each piece of information included in the server operation information 132 and “server ID” in which identification information of each server 1 is set.

具体的に、図24に示すサーバ稼働情報132において、「項番」が「1」から「5」である情報の「サーバID」には、それぞれ「1a」、「1b」、「1c」、「1d」及び「1e」が設定されている。すなわち、図24に示すサーバ稼働情報132は、サーバ1a、1b、1c、1d及び1eのそれぞれが処理の実行を継続していることを示している。 Specifically, in the server operation information 132 shown in FIG. 24, the "server ID" of the information whose "item number" is "1" to "5" includes "1a", "1b", "1c", "1d" and "1e" are set. That is, the server operation information 132 shown in FIG. 24 indicates that each of the servers 1a, 1b, 1c, 1d, and 1e continues executing the process.

なお、サーバ稼働情報132は、例えば、各サーバ1によってアクセスされるデータを格納するデータベース(図示しない)とセッションが接続しているサーバ1を示す情報であり、データベースによって更新される情報であってよい。そして、例えば、サーバ1aにおいて異常が発生し、サーバ1aとデータベースとの間のセッションが切断された場合、データベースは、図25の下線部分に示すように、図24で説明したサーバ稼働情報132に含まれる情報から、「サーバID」が「1a」である情報(「項番」が「1」である情報)を削除する。 The server operation information 132 is, for example, information indicating a database (not shown) storing data accessed by each server 1 and a server 1 to which a session is connected, and is information updated by the database. good. Then, for example, when an abnormality occurs in the server 1a and the session between the server 1a and the database is disconnected, the database stores the server operation information 132 described in FIG. Delete information whose “server ID” is “1a” (information whose “item number” is “1”) from the included information.

これにより、異常判定部116は、情報格納領域130に記憶されたサーバ稼働情報132を参照することで、処理の実行を停止しているサーバ1が存在するか否かの判定を行うことが可能になる。 As a result, by referring to the server operation information 132 stored in the information storage area 130, the abnormality determination unit 116 can determine whether or not there is a server 1 that has stopped executing processes. become.

図14に戻り、処理の実行を停止している他のサーバ1が存在すると判定した場合(S72のYES)、処理実行部112は、S71の処理で停止していると判定した他のサーバ1に対応付けられた処理の実行を引き継ぐ(S73)。 Returning to FIG. 14, when it is determined that there is another server 1 that has stopped executing the process (YES in S72), the process execution unit 112 determines that the other server 1 that has stopped in the process of S71 (S73).

一方、処理の実行を停止している他のサーバ1が存在しないと判定した場合(S72のNO)、処理実行部112は、S73の処理を行わない。 On the other hand, if it is determined that there is no other server 1 that has stopped executing the process (NO in S72), the process execution unit 112 does not perform the process of S73.

ここで、S71の処理で停止していると判定した他のサーバ1は、何らかの異常が発生したことによって処理を停止した可能性がある。そのため、処理実行部112は、例えば、図16で説明した第2対応情報131bを参照し、S71の処理で停止していると判定した他のサーバ1に対応付けられた各処理に含まれる各操作のうち、「ステータス」に「未処理」が設定された操作だけでなく、「ステータス」に「処理中」が設定された操作の実行についても引き継ぐ必要がある。 Here, there is a possibility that the other server 1 that has been determined to be stopped in the processing of S71 has stopped processing due to the occurrence of some kind of abnormality. Therefore, the process execution unit 112 refers to, for example, the second correspondence information 131b described with reference to FIG. Of the operations, it is necessary to take over not only the operations whose "status" is set to "unprocessed" but also the operations whose "status" is set to "in progress".

したがって、処理実行部112は、この場合、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作のうち、「ステータス」に「処理中」が設定された操作のロールバックを行う。その後、処理実行部112は、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作のうち、「ステータス」に「未処理」が設定された操作と、「ステータス」に「処理中」が設定された操作との実行を行う。 Therefore, in this case, the process execution unit 112 determines the role of the operation whose "status" is set to "processing" among the operations associated with the other server 1 determined to be stopped in the process of S71. do the back After that, the process execution unit 112 selects the operation whose "status" is set to "unprocessed" among the operations associated with the other server 1 determined to be stopped in the process of S71, Executes operations with "processing" set in

また、処理実行部112は、この場合、例えば、図26の下線部分に示すように、図15で説明した第1対応情報131aに含まれる情報のうち、自サーバ1が実行を引き継ぐ処理の情報(図26に示す例では「項番」が「1」である情報)の「サーバID」に、S71の処理で停止していると判定した他のサーバ1を示す情報と、自サーバ1を示す情報とを含む情報(図26に示す例では「1a/1b」)を設定する。 In this case, the processing execution unit 112, for example, as shown in the underlined portion of FIG. (In the example shown in FIG. 26, information whose "item number" is "1") "server ID", information indicating the other server 1 determined to be stopped in the processing of S71, and the own server 1 information (“1a/1b” in the example shown in FIG. 26) is set.

また、処理実行部112は、例えば、図27の下線部分に示すように、図16で説明した第2対応情報131bに含まれる情報のうち、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作であって、「ステータス」に「処理中」が設定された操作の情報(図27に示す例では「項番」が「3」及び「4」である情報)の「ステータス」を「未処理」を更新し、「操作開始日時」に「-」を設定する。 Further, the process execution unit 112, for example, as indicated by the underlined part in FIG. 27, among the information included in the second correspondence information 131b described in FIG. Information about an operation associated with the server 1 and for which "processing" is set in the "status" (information whose "item number" is "3" and "4" in the example shown in FIG. 27) 'Status' is updated to 'Unprocessed', and 'Operation start date and time' is set to '-'.

さらに、処理実行部112は、例えば、図27の下線部分に示すように、図16で説明した第2対応情報131bに含まれる情報のうち、S71の処理で停止していると判定した他のサーバ1に対応付けられた操作であって、「ステータス」に「処理中」または「未処理」が設定された操作の情報(図27に示す例では「項番」が「3」から「7」である情報)の「サーバID」に、自サーバ1を示す情報(図27に示す例では「1b」)を設定する。 Further, the process execution unit 112, for example, as indicated by the underlined part in FIG. 27, among the information included in the second correspondence information 131b described in FIG. Information about operations associated with the server 1 and having "processing" or "unprocessed" set in the "status" (in the example shown in FIG. 27, the "item number" ”) is set to information indicating the own server 1 (“1b” in the example shown in FIG. 27).

これにより、各サーバ1は、異常の発生等によって処理の実行を停止しているサーバ1が発生した場合であっても、利用者が送信したリクエストに対応する処理の実行を継続することが可能になり、利用者に対するサービスに影響が及ぶことを防止することが可能になる。 As a result, each server 1 can continue executing the process corresponding to the request sent by the user, even if the server 1 stops executing the process due to the occurrence of an abnormality or the like. It becomes possible to prevent the service to the user from being affected.

このように、本実施の形態における各サーバ1は、ロードバランサ2によって自サーバ1に割り当てられたリクエストを実行するための複数の処理を特定する。そして、各サーバ1は、特定した複数の処理ごとの負荷の情報と、自サーバ1との対応情報131を情報格納領域130に記憶する。 Thus, each server 1 in this embodiment specifies a plurality of processes for executing requests assigned to the server 1 by the load balancer 2 . Then, each server 1 stores, in the information storage area 130, the load information for each of the specified plurality of processes and the correspondence information 131 with its own server 1. FIG.

その後、各サーバ1は、対応情報131を記憶した情報格納領域130を参照し、複数のサーバ1のそれぞれに対応する各処理の負荷の合計値を特定し、自サーバ1に対応する合計値と他のサーバ1に対応する合計値との差のうちの少なくとも1つが所定値以上であるか否かを判定する。 After that, each server 1 refers to the information storage area 130 storing the correspondence information 131, identifies the total value of the processing load corresponding to each of the plurality of servers 1, and determines the total value corresponding to the own server 1. It is determined whether or not at least one of the differences from the total values corresponding to the other servers 1 is equal to or greater than a predetermined value.

その結果、自サーバ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 own server 1 and the total value corresponding to the other servers 1 is equal to or greater than the predetermined value, each server 1 is equal to or greater than the predetermined value. The server 1 that executes the process associated with the own server 1 is changed and the correspondence information 131 is updated so that the difference determined to be less than the predetermined value.

すなわち、本実施の形態における各サーバ1は、例えば、各サーバ1の処理負荷の状態を示す対応情報を随時更新する。そして、各サーバ1は、対応情報131を記憶した情報格納領域130を参照し、自サーバ1が高負荷であると判定した場合、ロードバランサ2から受け付けたリクエストに対応する処理を他のサーバ1に引き継ぐ。 That is, each server 1 in the present embodiment, for example, updates corresponding information indicating the state of the processing load of each server 1 as needed. Then, each server 1 refers to the information storage area 130 that stores the correspondence information 131, and if it determines that the load on its own server 1 is high, the processing corresponding to the request received from the load balancer 2 is performed by another server 1. take over to

これにより、各サーバ1は、各サーバ1の現在の状態を反映した対応情報131を参照することで、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であるか否かの判定を行うことが可能になる。そのため、各サーバ1は、自サーバ1の状態が他のサーバ1の状態と比較して高負荷であると判定した場合、自サーバ1に割り当てられたリクエストに対応する処理の実行を他のサーバ1(高負荷でないサーバ1)に依頼する旨の決定を行うことが可能になる。したがって、各サーバ1は、自サーバ1に割り当てられたリクエストに対応する処理の実行を、適切なタイミングにおいて他のサーバ1に依頼することが可能になり、各サーバ1の処理負担を平準化させることが可能になる。 As a result, each server 1 can refer to the correspondence information 131 reflecting the current state of each server 1 to determine whether the state of its own server 1 is higher than the states of other servers 1 or not. can be determined. Therefore, when each server 1 determines that the state of its own server 1 has a higher load than the states of other servers 1, it causes other servers 1 to execute the processing corresponding to the request assigned to its own server 1. 1 (server 1 that is not heavily loaded). Therefore, each server 1 can request other servers 1 to execute the processing corresponding to the request assigned to the server 1 at appropriate timing, thereby leveling the processing load of each server 1. becomes possible.

以上の実施の形態をまとめると、以下の付記のとおりである。 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 Appendix 1,
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 Appendix 1,
The determination process is performed at regular timing,
An information processing program characterized by:

(付記4)
付記1において、
前記更新する処理では、前記差のうちの少なくとも1つが前記所定値以上である場合、前記自サーバに対応付けられた処理のうちの少なくとも1つの実行を他のサーバに依頼する、
ことを特徴する情報処理プログラム。
(Appendix 4)
In Appendix 1,
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 Supplementary Note 1, 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 program that causes a computer to execute processing.

(付記6)
付記5において、
前記異常が発生している他のサーバが存在するか否かを判定する処理では、前記記憶部とのセッションが切断されている他のサーバが存在するか否かの判定を行い、
前記他のサーバが実行中であった処理と前記他のサーバが実行中であった処理の後に実行する処理とを実行する処理では、前記セッションが切断されている他のサーバが存在すると判定した場合、前記セッションが切断されていると判定した他のサーバに対応する処理を実行する、
ことを特徴する情報処理プログラム。
(Appendix 6)
In Appendix 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:

(付記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 Supplementary Note 7, further,
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: server 1b: server 1c: server 1d: server 2: load balancer 3: operation terminal

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において、
前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも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において、
前記自サーバに対応する前記合計値と他のサーバに対応する合計値との差のうちの少なくとも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つが前記所定値以上である場合、前記自サーバに対応付けられた処理のうちの少なくとも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:
請求項1において、さらに、
記異常が発生している他のサーバが存在すると判定した場合、前記対応情報を記憶した記憶部を参照し、記他のサーバが実行中であった処理の後に実行する処理実行する、
処理をコンピュータに実行させることを特徴する情報処理プログラム。
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.
請求項5において、
前記異常が発生している他のサーバが存在するか否かを判定する処理では、前記記憶部とのセッションが切断されている他のサーバが存在するか否かの判定を行い、
前記他のサーバが実行中であった処理と前記他のサーバが実行中であった処理の後に実行する処理とを実行する処理では、前記セッションが切断されている他のサーバが存在すると判定した場合、前記セッションが切断されていると判定した他のサーバに対応する処理を実行する、
ことを特徴する情報処理プログラム。
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:
JP2018083895A 2018-04-25 2018-04-25 Information processing program, information processing apparatus, and information processing method Active JP7125593B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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