Information processing device and information processing program

By integrating load balancing functionality within the information processing device, the high implementation costs are reduced by monitoring server load and switching processing requests, addressing the high cost issue of dedicated load balancers in distributed systems.

JP2025176800APending Publication Date: 2025-12-05FUJITSU FRONTECH SYSTEMS LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024083133
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-22
Publication Date
2025-12-05

AI Technical Summary

Technical Problem

Existing load balancing systems in distributed processing systems require high-speed processing and high availability under high load conditions, leading to high implementation costs due to the need for dedicated load balancing devices.

Method used

Implementing a processing function for load balancing within the information processing device, which monitors server load and switches processing requests to less loaded servers without the need for a dedicated load balancer, using software-based load balancing.

Benefits of technology

Achieves load balancing between servers at low implementation costs by eliminating the need for dedicated load balancing devices, enabling efficient load distribution through software-based solutions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025176800000001_ABST
    Figure 2025176800000001_ABST
Patent Text Reader

Abstract

To realize load distribution between servers at low introduction costs.SOLUTION: A processing unit 11 of an information processing device 10 monitors a processing load of a server device 21, in a state when transmitting a processing request to the server device 21 and being served from the server device 21, and switches a transmission destination of the processing request from the server device 21 to a server device 22, when determining that the processing load is in an increasing trend. In monitoring of the processing load of the server device 21, the processing unit 11, for example, repeatedly transmits a packet for measurement to the server device 21, and measures the response time from the server device 21 with respect to the transmitted packet for measurement. In this case, it is determined whether the processing load is in the increasing trend, on the basis of the response time measured multiple times.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing device and an information processing program. [Background technology]

[0002] Distributed processing systems using multiple servers have become widespread due to their advantages, such as high availability and scalability according to processing power needs. In a distributed processing system, processing is allocated among servers according to the load status of each server. For example, if there are multiple clients, the destination server for each client is allocated according to the load status of each server.

[0003] Regarding load balancing, a system has been proposed that includes a boundary communication device (router) that evaluates each of multiple communication paths provided between bases and determines the communication path. Also, a communication system has been proposed that includes a timer management device that, if a process executed by a server device is not completed within a predetermined time, transmits an identifier of the process to another server device and causes post-processing of the process to be executed. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-61047 [Patent Document 2] Japanese Patent Application Laid-Open No. 2014-182448 Summary of the Invention [Problem to be solved by the invention]

[0005] One method for achieving load balancing between servers in a distributed processing system is to place a dedicated load balancing device called a load balancer between each server and client. However, due to the characteristics of such a load balancing device, high speed processing and high availability under high load conditions are required, which leads to the problem of high implementation costs.

[0006] In one aspect, the present invention aims to provide an information processing device and an information processing program that can achieve load balancing between servers at low implementation costs. [Means for solving the problem]

[0007] One proposal provides an information processing device having the following processing unit: In this information processing device, the processing unit monitors the processing load of the first server device while transmitting a processing request to the first server device and receiving a service from the first server device, and when it determines that the processing load is on the rise, switches the destination of the processing request from the first server device to the second server device.

[0008] In addition, one proposal provides an information processing program that causes a computer to execute the same processing as the above-mentioned information processing device. [Effects of the Invention]

[0009] On the one hand, it allows load balancing between servers to be achieved at low implementation costs. [Brief explanation of the drawings]

[0010] [Figure 1] 1 illustrates a configuration example and a processing example of an information processing system according to a first embodiment; [Figure 2] FIG. 10 illustrates an example of a configuration of an information processing system according to a second embodiment. [Figure 3] FIG. 1 is a diagram illustrating a comparative example of an information processing system. [Figure 4] FIG. 2 illustrates an example of a hardware configuration of a client device. [Figure 5] FIG. 2 illustrates an example of the configuration of processing functions included in a client device. [Figure 6] FIG. 10 is a diagram illustrating a first example of a process for determining whether or not a connection destination needs to be switched. [Figure 7] 10 is a flowchart showing a first example of determination processing. [Figure 8] FIG. 10 is a sequence diagram illustrating an example of a process when a connection destination is switched. [Figure 9] FIG. 10 illustrates an example of a process for switching a connection destination. [Figure 10] FIG. 10 is a diagram illustrating a second example of a process for determining whether or not a connection destination needs to be switched. [Figure 11] FIG. 10 is a diagram illustrating a third example of a process for determining whether or not a connection destination needs to be switched. [Figure 12] 10 is a flowchart illustrating an example of a process for determining whether or not a connection destination needs to be switched and the switching destination. DETAILED DESCRIPTION OF THE INVENTION

[0011] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. [First embodiment] 1 is a diagram showing an example of the configuration and processing of an information processing system according to Embodiment 1. The information processing system shown in FIG.

[0012] The information processing device 10 is a device that operates as a client device corresponding to the server devices 21 and 22, and is able to use services provided by the server devices 21 and 22 by sending processing requests to the server devices 21 and 22. The information processing device 10 has a processing unit 11. The processing unit 11 is, for example, a processor.

[0013] The server devices 21 and 22 are information processing devices that provide services to the information processing device 10, which is a client device. The server devices 21 and 22 are capable of executing the same processing, and an active / active distributed processing system is constructed by these server devices 21 and 22. That is, a processing request from the information processing device 10 is assigned to one of the server devices 21 and 22, and the processing corresponding to the processing request is distributed among the server devices 21 and 22.

[0014] The information processing system may be provided with a plurality of information processing devices 10. The information processing system may also be provided with three or more server devices such as those described above. Incidentally, one method for distributing the processing load between the server devices 21 and 22 is to place a load balancer between the information processing device 10 and the server devices 21 and 22. When a plurality of information processing devices 10 are provided, the plurality of information processing devices 10 are connected to the server devices 21 and 22 via the load balancer. However, the load balancer is required to have high speed processing and high availability under high load conditions, which poses a problem of high implementation costs.

[0015] Therefore, in this embodiment, instead of providing a dedicated load balancing device, the information processing device 10 is provided with a processing function for load balancing. This makes it possible to reduce the introduction cost of such a processing function. The processing unit 11 of the information processing device 10 executes the following process for load balancing.

[0016] 1, it is assumed that the information processing device 10 receives a service from the server device 21 by the processing unit 11 transmitting a processing request to the server device 21. In this state, the processing unit 11 monitors the processing load of the server device 21 (step S1). Then, the processing unit 11 determines whether the processing load is on an increasing trend based on the monitoring result of the processing load (step S2).

[0017] The processing load monitoring process is executed, for example, as follows: The processing unit 11 repeatedly transmits measurement packets for measuring response time to the server device 21, and measures the response time from the server device 21 to the transmitted measurement packets. In this case, whether the processing load is on an increasing trend is determined, for example, based on the response time measured multiple times.

[0018] If the processing unit 11 determines that the processing load of the server device 21 is not on an increasing trend, it continues to monitor the processing load (step S1). On the other hand, if the processing unit 11 determines that the processing load of the server device 21 is on an increasing trend, it switches the communication destination from the server device 21 to the server device 22 (step S3). In this case, as shown in the lower part of FIG. 1, the destination of the processing request is switched from the server device 21 to the server device 22, and the information processing device 10 enters a state where it receives a service from the server device 22.

[0019] As described above, in the first embodiment, load balancing between the server devices 21 and 22 can be achieved by the processing of the information processing device 10, without the need for a dedicated load balancing device. This makes it possible to achieve load balancing between the server devices 21 and 22 at low installation costs. Furthermore, the above-described processing for load balancing can be implemented in the information processing device 10 by software, so that the processing function for load balancing can be implemented easily and at low cost.

[0020] Second Embodiment Fig. 2 is a diagram showing an example of the configuration of an information processing system according to the second embodiment. The information processing system shown in Fig. 2 includes client devices 100, 100a, and 100b and a server system 200. The client devices 100, 100a, and 100b and the server system 200 are connected via a network 300. The server system 200 also includes server devices 201 and 202 and a firewall 211. The server devices 201 and 202 are connected to the network 300 via the firewall 211.

[0021] The client devices 100, 100a, and 100b are information processing devices that receive services from the server devices 201 and 202, and are, for example, user terminals operated by users who use the services. The client devices 100, 100a, and 100b transmit processing request messages to one of the server devices 201 and 202 to request execution of processing related to the service, and receive response messages indicating the processing results. The client devices 100, 100a, and 100b are examples of the information processing device 10 shown in FIG. 1.

[0022] Firewall 211 monitors data received via network 300 and prevents unauthorized access to server devices 201 and 202. The server devices 201 and 202 are information processing devices that provide services to the client devices 100, 100a, and 100b. The server devices 201 and 202 are capable of executing the same processing by, for example, referencing the same database (DB) 221. The server devices 201 and 202 form an active / active distributed processing system in the server system 200. That is, processing request messages from the client devices 100, 100a, and 100b are distributed to one of the server devices 201 and 202, and the processing corresponding to the processing request message is distributed among the server devices 201 and 202. The server devices 201 and 202 are examples of the server devices 21 and 22 shown in FIG. 1.

[0023] The server system 200 may be, for example, a securities trading system. In this case, the client devices 100, 100a, and 100b transmit order message data as, for example, a processing request message. The server devices 201 and 202 are, for example, trading servers that receive the order message data and execute order matching processing. For example, the same stock is assigned to the server devices 201 and 202, and the order message data from the client devices 100, 100a, and 100b is distributed to one of the server devices 201 and 202. Alternatively, the server devices 201 and 202 may be gateway servers that receive the order message data from the client devices 100, 100a, and 100b and distribute it to the trading servers for each stock.

[0024] The number of client devices included in the information processing system is not limited to three as in the example of Fig. 2, but may be two or four or more. The number of server devices included in the server system 200 is not limited to two as in the example of Fig. 2, but may be three or more.

[0025] Incidentally, one method for distributing the processing load between the server devices 201 and 202 in the server system 200 is to arrange a load balancer as shown in the following FIG. Fig. 3 is a diagram showing a comparative example of an information processing system. Server system 200a shown in Fig. 3 is configured by adding load balancer 212 to server system 200 shown in Fig. 2. Load balancer 212 is placed between firewall 211 and server devices 201 and 202. Load balancer 212 distributes processing request messages from client devices 100, 100a, and 100b to one of server devices 201 and 202 depending on the processing load status of server devices 201 and 202.

[0026] However, such a load balancer 212 has the problem of high implementation costs because, due to the characteristics of the device, high speed processing and high availability are required under high load conditions. To address this problem, in this embodiment, instead of deploying the load balancer 212, which is a device dedicated to load distribution, a processing function for load distribution is implemented in the client devices 100, 100a, and 100b. This makes it possible to reduce the implementation costs of such a processing function.

[0027] Fig. 4 is a diagram showing an example of the hardware configuration of a client device. Client device 100 is realized, for example, as a computer as shown in Fig. 4. Client device 100 shown in Fig. 4 has a processor 101, a random access memory (RAM) 102, a hard disk drive (HDD) 103, a graphics processing unit (GPU) 104, an input interface (I / F) 105, a reader 106, and a communication interface (I / F) 107.

[0028] The processor 101 performs overall control of the entire client device 100. The processor 101 is, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), or a programmable logic device (PLD). The processor 101 may also be a combination of two or more elements of a CPU, an MPU, a DSP, an ASIC, or a PLD. The processor 101 is an example of the processing unit 11 shown in FIG. 1.

[0029] The RAM 102 is used as a main storage device of the client device 100. The RAM 102 temporarily stores at least a part of an OS (Operating System) program and application programs to be executed by the processor 101. The RAM 102 also stores various data necessary for processing by the processor 101.

[0030] The HDD 103 is used as an auxiliary storage device for the client device 100. The HDD 103 stores an OS program, application programs, and various data. Note that other types of nonvolatile storage devices, such as a solid state drive (SSD), can also be used as the auxiliary storage device.

[0031] A display device 104a is connected to the GPU 104. The GPU 104 displays an image on the display device 104a in accordance with an instruction from the processor 101. The display device 104a may be a liquid crystal display or an organic EL (ElectroLuminescence) display.

[0032] An input device 105a is connected to the input interface 105. The input interface 105 transmits a signal output from the input device 105a to the processor 101. The input device 105a includes a keyboard and a pointing device. The pointing device includes a mouse, a touch panel, a tablet, a touch pad, a trackball, and the like.

[0033] A portable recording medium 106a is detachably attached to the reading device 106. The reading device 106 reads data recorded on the portable recording medium 106a and transmits the data to the processor 101. The portable recording medium 106a may be an optical disk, a semiconductor memory, or the like.

[0034] The communication interface 107 transmits and receives data to and from other devices via the network 300 . The above hardware configuration can realize the processing functions of the client device 100. The hardware configurations of the client devices 100a and 100b and the server devices 201 and 202 may also be the same as that shown in FIG.

[0035] 5 is a diagram showing an example of the configuration of processing functions of the client device 100. The client device 100 includes a storage unit 110, a business processing unit 121, a connection destination control unit 122, and a monitoring processing unit 123.

[0036] The storage unit 110 is a storage area secured in a storage device provided in the client device 100, such as the RAM 102 or the HDD 103. The storage unit 110 stores connection destination information 111 and monitoring parameters 112.

[0037] The connection destination information 111 includes information about a server device to which the client device 100 is connected. For example, the connection destination information 111 includes the network address of each server device, information indicating a default server device assigned to the client device 100 in advance, and the like.

[0038] The monitoring parameters 112 include various parameters necessary for the monitoring process of the processing load of the server device by the monitoring processing unit 123. For example, the monitoring parameters 112 include information indicating the transmission interval of monitoring packets (alive / dead confirmation messages), various thresholds used in the monitoring process, and the like.

[0039] The processes of the business processing unit 121, the connection destination control unit 122, and the monitoring processing unit 123 are realized by, for example, the processor 101 executing a predetermined program. The business processing unit 121 executes a predetermined business process, in which the business processing unit 121 transmits a processing request message relating to a service to a server device and receives a response message indicating the processing result.

[0040] The connection destination control unit 122 notifies the business processing unit 121 of the destination of the processing request message based on the connection destination information 111. Furthermore, when the monitoring processing unit 123 requests switching of the connection destination, the connection destination control unit 122 causes the business processing unit 121 to change the destination of the processing request message.

[0041] The monitoring processing unit 123 periodically transmits a health check (communication check) message to the server device that is the destination of the processing request message, and measures the response time to the health check message. The monitoring processing unit 123 estimates and monitors the processing load of the server device by measuring the response time. The monitoring processing unit 123 determines whether the processing load of the server device is on an increasing trend based on the response time to the transmission of multiple health check messages within a certain period of time, and if it determines that the processing load is on an increasing trend, requests the connection destination control unit 122 to switch the connection destination.

[0042] The monitoring processor 123 executes, for example, a ping command to send an Internet Control Message Protocol (ICMP) packet including an alive check message (echo message).

[0043] The client devices 100a and 100b also include the storage unit 110, the business processing unit 121, the connection destination control unit 122, and the monitoring processing unit 123. 6 is a diagram showing a first example of a process for determining whether or not a connection destination needs to be switched. In the first example, if the number of times that the response time exceeds a predetermined threshold T1 in a certain period of time (hereinafter referred to as a "measurement period") is N1 or more, it is determined that the processing load on the server device is increasing and that a connection destination needs to be switched.

[0044] In the example of FIG. 6, the response time threshold T1 is set to 1.5 seconds. Also, it is assumed that a life-or-death check message is sent every minute, the length of the measurement period T2 is 10 minutes, and N1=5. In FIG. 6, the response time exceeds T1 (1.5 seconds) at 6:05, and the measurement period begins at this time. Then, at 6:10 during the measurement period, the number of times the response time exceeds T1 has reached N1 (5 times). Therefore, the connection destination server device is switched at 6:10.

[0045] According to the first determination process example, it is possible to reliably determine that the response time, which is an estimate of the processing load of the server device, is high on average and is on an increasing trend. In particular, it is possible to reduce the possibility of erroneously determining that the response time is on an increasing trend when the response time temporarily increases.

[0046] FIG. 7 is a flowchart illustrating a first example of the determination process. [Step S11] The monitoring processor 123 resets to 0 a counter (counter) for counting the number of times the response time has exceeded T1.

[0047] [Step S12] The monitoring processor 123 executes a ping command to send an alive check message to the currently connected server (the destination of the processing request message). At this time, the monitoring processor 123 starts counting the response time.

[0048] [Step S13] The monitoring processor 123 receives a response message from the server device in response to the alive check message. At this time, the monitoring processor 123 stops counting the response time and obtains the measured value of the response time.

[0049] [Step S14] The monitoring processor 123 determines whether the measured response time is less than T1 and whether the measurement period has not started. If this condition is met, the monitoring processor 123 enters a waiting state for a certain period of time (1 minute), and after the certain period of time, executes the processing of step S12. On the other hand, if the above condition is not met, the processing proceeds to step S15.

[0050] [Step S15] The monitoring processor 123 determines whether the measured response time is equal to or longer than T1 and the measurement period has not started. If this condition is met, the process proceeds to step S16; if not, the process proceeds to step S17.

[0051] [Step S16] The monitoring processor 123 starts the measurement period. At this time, counting of the elapsed time begins. After this, the process proceeds to step S18. [Step S17] In this case, the measurement period has started. The monitoring processor 123 determines whether the measured response time is equal to or greater than T1. If the response time is equal to or greater than T1, the process proceeds to step S18. If the response time is less than T1, the process proceeds to step S19.

[0052] [Step S18] The monitoring processor 123 increments the number counter by 1. After that, the process proceeds to step S19. [Step S19] The monitoring processor 123 determines whether the elapsed time from the start of the measurement period is equal to or less than T2. ​​If the elapsed time is equal to or less than T2, the process proceeds to step S21. If the elapsed time is greater than T2, the process proceeds to step S20.

[0053] [Step S20] In this case, the elapsed time from the start of the measurement period exceeds T2, so the monitoring processing unit 123 ends the measurement period. Then, the monitoring processing unit 123 waits for a certain period of time (1 minute), and after the certain period of time, it executes the process of step S11.

[0054] [Step S21] The monitoring processor 123 determines whether the count counter is equal to or greater than N1. If the count counter is equal to or greater than N1, the process proceeds to step S22. On the other hand, if the count counter is less than N1, the monitoring processor 123 waits for a certain period of time (1 minute), and after the certain period of time, it executes the process of step S12.

[0055] [Step S22] In this case, the count counter is equal to or greater than N during the measurement period, and it is determined that the response time, which is an estimate of the processing load of the server device, is on the rise. Therefore, the monitoring processor 123 requests the connection destination controller 122 to switch the destination server device. The connection destination controller 122 switches the destination of the processing request message from the current destination server device to another server device.

[0056] By having the client devices 100, 100a, and 100b perform the above processing, there is no need to deploy the load balancer 212, which is a dedicated device for load balancing. This makes it possible to achieve load balancing between the server devices 201 and 202 at low implementation costs.

[0057] FIG. 8 is a sequence diagram showing an example of a process when a connection destination is switched. 8, the connection destination from the client device 100 is the server device 201. In this state, the business processing unit 121 of the client device 100 transmits a processing request message to the server device 201. In addition, the monitoring processing unit 123 of the client device 100 transmits an alive check message for measuring the response time to the server device 201 at regular time intervals.

[0058] 8, at time TM1, the business processing unit 121 of the client device 100 transmits a processing request message to the server device 201. The server device 201 returns a response message to the processing request message. Then, at a later time TM2, the monitoring processing unit 123 of the client device 100 transmits an alive / dead confirmation message to the server device 201. The server device 201 returns a response message to the alive / dead confirmation message, and the response time is measured.

[0059] Furthermore, during the period until time TM5 when the next alive-or-dead confirmation message is transmitted, processing request messages are transmitted from the business processing unit 121 of the client device 100 to the server device 201 at times TM3 and TM4.

[0060] Then, at time TM6, it is assumed that a life-or-death check message is sent from monitoring processing unit 123 of client device 100 to server device 201, and the response time to this life-or-death check message becomes equal to or greater than T1, causing the connection destination to be switched from server device 201 to server device 202. Thereafter, at time TM7, business processing unit 121 of client device 100 sends a processing request message to server device 202. A response message to the processing request message is returned from server device 202. Also, at time TM8, monitoring processing unit 123 of client device 100 sends a life-or-death check message to server device 202. A response message to the life-or-death check message is returned from server device 202, and the response time is measured. From time TM8, monitoring processing unit 123 sends a life-or-death check message to server device 202 at regular time intervals to monitor the processing load of server device 202.

[0061] The connection destination is switched by the business processing unit 121, for example, on a transaction-by-transaction basis. At time TM7 in Fig. 8, the destination of the processing request message from the business processing unit 121 is switched to the server 212 upon the start of a new transaction.

[0062] 9 is a diagram showing an example of a connection destination switching process. In this embodiment, for example, a default connection destination server device is determined in advance for each client device. For example, as shown in the upper part of FIG. 9, the default connection destination for client devices 100 and 100a is determined to be server device 201, and the default connection destination for client device 100b is determined to be server device 202. In this way, by allocating the connection destinations from the client devices to server devices 201 and 202, the processing load of server devices 201 and 202 is distributed.

[0063] In the above state, client devices 100 and 100a monitor the processing load on server device 201 using the alive / dead check message, and client device 100b monitors the processing load on server device 202 using the alive / dead check message. Now, assume that client device 100a determines that the processing load on server device 201 (response time to the alive / dead check message) is on the rise. In this case, as shown in the lower part of FIG. 9 , the connection destination of client device 100a is switched from server device 201 to server device 202. This reduces the processing load on server device 201, and load balancing is achieved between server devices 201 and 202.

[0064] 10 is a diagram showing a second example of the determination process for determining whether or not a connection destination needs to be switched. In the first example of the determination process, whether or not the processing load on the server device is on an increasing trend is determined based on the result of comparing the response time to the life-or-death check message with a threshold T1. In contrast, in the second example of the determination process, whether or not the processing load on the server device is on an increasing trend is determined based on the difference between the current response time measurement value and the response time measurement value measured immediately before. More specifically, if the number of times that the rate of increase or amount of increase of the former measurement value relative to the latter measurement value exceeds a predetermined threshold is N2 or more times during a certain measurement period, it is determined that the processing load on the server device is on an increasing trend.

[0065] Figure 10 shows a graph in which the response time trends shown in Figure 6 are converted into response time increases. The length of the measurement period, T2, is set to 10 minutes, and N2=6. The threshold value, T3, used to compare the increase is set to 0 seconds. In other words, in the example of Figure 10, the number of times the response time increases is counted. When T3=0, it is desirable to set N2>T2 / 2 to ensure accurate determination of the increase.

[0066] In Figure 10, the response time increases at 6:02, the time the measurement period begins. Then, at 6:10 during the measurement period, the number of times the response time increases reaches N2 (6). Therefore, the connection destination is switched at 6:10.

[0067] According to this second determination process example, it is possible to reliably determine that the response time, which is an estimated value of the processing load of the server device, is on an increasing trend. In particular, it is possible to reduce the possibility of erroneously determining that the response time is on an increasing trend when the response time temporarily increases. Furthermore, by having the client devices 100, 100a, and 100b perform the above-described process, it is no longer necessary to deploy the load balancer 212, which is a device dedicated to load balancing. This makes it possible to achieve load balancing between the server devices 201 and 202 at low implementation costs.

[0068] 11 is a diagram showing a third example of the determination process regarding whether or not to switch the connection destination. In the second example of the determination process described above, the measurement period starts when the increase in response time exceeds T3 before the measurement period has started. In contrast, the measurement period may be set constantly for each measurement of the response time, rather than starting at the time when the increase in response time exceeds T3, and the need for switching may be determined based on the number of times the increase in response time exceeds T3 during the set measurement period.

[0069] Figure 11 shows a graph showing the transition of response time similar to Figure 6. Also, the length of the measurement period T2 is set to 6 minutes, N2=4, and the threshold T3 to be compared with the increase amount is set to 0 seconds. In other words, the number of times the response time increases is counted, similar to Figure 10.

[0070] 11, in measurement period P1 starting at 6:00, the number of times the response time increased was 3, which is less than N2. However, in the next measurement period P2 starting at 6:01, the number of times the response time increased was 4, which is greater than N2. Therefore, the connection destination server device is switched at 6:07, which is the end time of measurement period P2.

[0071] According to this third example of the determination process, it is possible to reliably determine that the response time, which is an estimated value of the processing load of the server device, is on an increasing trend. In particular, it is possible to reduce the possibility of erroneously determining that the response time is on an increasing trend when the response time temporarily increases. Furthermore, by having the client devices 100, 100a, and 100b perform the above-described process, it is no longer necessary to deploy the load balancer 212, which is a device dedicated to load balancing. This makes it possible to achieve load balancing between the server devices 201 and 202 at low implementation costs.

[0072] In the second and third examples of the determination process, the result of comparing a threshold value (e.g., T3) for the increase or rate of response time with a threshold value T4 for response time may be used in combination. Specifically, when the increase or rate of response time exceeds the threshold value N2 times or more within the measurement period, if the response time is equal to or greater than the threshold value T4, it may be determined that the response time is on the rise. In the example of FIG. 11, the threshold value T4 is set to 1.5 seconds. At 6:07, which is the end time of the measurement period P2, the response time is equal to or greater than T4. Therefore, the connection destination server device is switched at 6:07.

[0073] In the first determination process example described above, the measurement period starts when the response time becomes equal to or greater than T1 before the measurement period has started. However, even when the response time is compared with the threshold value in this way, as in the third process example, the measurement period may be set constantly for each measurement of the response time, rather than starting at the time when the response time becomes equal to or greater than T1, and the need for switching may be determined based on the number of times the response time becomes equal to or greater than T1 during the set measurement period.

[0074] Next, a case where three or more server devices are provided in the server system 200 will be described. In this case, for example, the monitoring processor 123 of the client devices 100, 100a, and 100b monitors the processing load not only of the currently connected server device but also of other server devices using alive / dead confirmation messages. Then, when the monitoring processor 123 determines that the processing load of the currently connected server device is on the rise, it selects the server device with the lowest processing load as the switching destination from among the other server devices. This ensures that the processing load can be distributed among the server devices.

[0075] FIG. 12 is a flowchart showing an example of a process for determining whether or not a connection destination needs to be switched and the switch destination. [Step S31] The monitoring processor 123 sends a health check message to all servers, including the currently connected server (the destination of the processing request message), and measures the response time required to receive a response message. The monitoring processor 123 records the measured response time for each server in the storage unit 110.

[0076] [Step S32] The monitoring processor 123 determines whether the destination server device satisfies the switching condition. This determination can be made using any of the first to third determination process examples described above. For example, if the number of times the response time from the server device is equal to or longer than T1 within a measurement period ending at the current time is equal to or greater than N1, it is determined that the destination server device should be switched. If the switching condition is not satisfied, the monitoring processor 123 waits for a certain period of time (1 minute), and executes the process of step S31 after the certain period of time. On the other hand, if the switching condition is satisfied, the process proceeds to step S33.

[0077] [Step S33] The monitoring processor 123 acquires the response time measurements for each of the other servers excluding the currently connected server from the storage unit 110. In this example, it is assumed that the response times acquired are those measured multiple times over the most recent fixed period, but it is also possible to acquire only the most recent measurement value, for example.

[0078] [Step S34] The monitoring processor 123 identifies the server with the lowest processing load from among the other servers based on the response time for each server acquired in step S33. For example, the server with the lowest average response time over the most recent fixed period is identified.

[0079] [Step S35] The monitoring processor 123 requests the connection destination controller 122 to switch the destination server device to the server device identified in step S34. The connection destination controller 122 switches the destination of the processing request message from the current destination server device to the identified server device.

[0080] The processing functions of the devices (e.g., information processing device 10, server devices 21 and 22, client devices 100, 100a and 100b, and server devices 201 and 202) shown in each of the above embodiments can be realized by a computer. In this case, a program describing the processing content of the functions that each device should have is provided, and the processing functions are realized on the computer by executing the program on the computer. The program describing the processing content can be recorded on a computer-readable recording medium. Examples of computer-readable recording media include magnetic storage devices, optical discs, and semiconductor memories. Examples of magnetic storage devices include hard disk drives (HDDs) and magnetic tapes. Examples of optical discs include CDs (Compact Discs), DVDs (Digital Versatile Discs), and Blu-ray Discs (BD, registered trademark).

[0081] When distributing a program, for example, the program is recorded on a portable recording medium such as a DVD or CD and sold. Alternatively, the program can be stored in a storage device of a server computer and transferred from the server computer to other computers via a network.

[0082] A computer that executes a program stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. The computer then reads the program from its own storage device and executes processing in accordance with the program. Note that the computer can also read the program directly from a portable recording medium and execute processing in accordance with that program. The computer can also execute processing in accordance with the program received each time a program is transferred from a server computer connected via a network. [Explanation of symbols]

[0083] 10. Information processing equipment 11 Processing section 21, 22 Server equipment S1~S3 steps

Claims

1. monitoring a processing load of the first server device while transmitting a processing request to the first server device and receiving a service from the first server device; a processing unit that switches a destination of the processing request from the first server device to a second server device when it is determined that the processing load is on an increasing trend; An information processing device having the above.

2. The monitoring of the processing load includes repeatedly transmitting a measurement packet to the first server device and measuring a response time from the first server device to the transmitted measurement packet; determining whether the processing load is on an increasing trend based on the response time measured multiple times; 2. The information processing device according to claim 1.

3. determining whether the processing load is increasing based on a result of comparing the response time measured multiple times with a first threshold value; 3. The information processing device according to claim 2.

4. determining that the processing load is on an increasing trend when the number of times that the response time is equal to or greater than the first threshold value within a certain period of time is equal to or greater than a second threshold value; 4. The information processing device according to claim 3.

5. determining whether the processing load is on an increasing trend based on the rate or amount of increase in the response time; 3. The information processing device according to claim 2.

6. When the number of times that the rate of increase or the amount of increase exceeds a third threshold value within a certain period of time becomes equal to or greater than a fourth threshold value, it is determined that the processing load is on an increasing trend.

6. The information processing device according to claim 5.

7. the monitoring of the processing load includes monitoring the processing load for each of a plurality of server devices including the first server device; when it is determined that the processing load of the first server device is on an increasing trend, selecting, based on the processing loads of the remaining server devices excluding the first server device among the plurality of server devices, a server device with the lowest processing load from the remaining server devices as the second server device to which switching will be made; 2. The information processing device according to claim 1.

8. On the computer, monitoring a processing load of the first server device while transmitting a processing request to the first server device and receiving a service from the first server device; when it is determined that the processing load is on an increasing trend, switching the destination of the processing request from the first server device to a second server device; An information processing program that executes processing.

Citation Information

Patent Citations

  • Communication apparatus, communicating system, conference system, and program

    JP2008061047A

  • Information processor, information processing system, information processing method and information processing program

    JP2014182448A