Information processing device and program

By using a control unit to monitor and balance the load across edge servers by forwarding requests from overloaded microservices to less loaded ones, the system effectively reduces edge server load, preventing overload and maintaining performance.

JP2025050112AActive Publication Date: 2025-04-04TOYOTA JIDOSHA KK
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023158727
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-09-22
Publication Date
2025-04-04
Estimated Expiration
2043-09-22

AI Technical Summary

Technical Problem

As edge servers provide computing resources to mobile devices, especially with the increasing adoption of machine learning, there is a growing need to reduce the load on edge servers running microservices to prevent overload and maintain performance.

Method used

The proposed solution involves an information processing device with a control unit that acquires the load on microservices operating on multiple edge servers and decides to forward a predetermined percentage of requests from a loaded microservice to another microservice on a different edge server, thereby balancing the load.

Benefits of technology

This approach effectively reduces the load on edge servers, preventing overload conditions and ensuring that microservices operate within acceptable performance thresholds, thereby maintaining system stability and responsiveness.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025050112000001_ABST
    Figure 2025050112000001_ABST
Patent Text Reader

Abstract

To provide an information processing device and program for reducing load of an edge server on which micro service is operated.SOLUTION: In an information processing device for carrying out dispersion of load between a plurality of edge servers, load on one or more micro services which are operated on the plurality of edge servers is acquired, and a specific rate of requests among one or more request issued to a first micro service operated on a first server and on which load equal to or more than a specific amount is applied is transferred to a second micro service operated on one or more of second servers.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to edge computing. [Background technology]

[0002] In an information processing system that performs processing using multiple edge servers, there is a technique for distributing load among the edge servers. For example, Patent Document 1 discloses an apparatus for predictively deploying microservices in a network including multiple edge servers. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent Publication No. 2022-077504 Summary of the Invention [Problem to be solved by the invention]

[0004] As new technologies such as machine learning become more widespread, the importance of edge servers that provide computing resources to mobile devices is expected to increase.

[0005] The present disclosure aims to reduce the load on edge servers on which microservices are running. [Means for solving the problem]

[0006] One aspect of the present disclosure is to The information processing device has a control unit that executes the following: obtaining the load on one or more microservices running on each of a plurality of edge servers; and determining to transfer a predetermined percentage of one or more requests issued to a first microservice running on a first edge server and having a load equal to or greater than a predetermined amount, to a second microservice running on one or more second edge servers.

[0007] One aspect of the present disclosure is to The program causes a computer to obtain the load on one or more microservices running on each of a plurality of edge servers, and to determine to forward a predetermined percentage of one or more requests issued to a first microservice running on a first edge server and having a load equal to or greater than a predetermined amount, to a second microservice running on one or more second edge servers.

[0008] Further, other aspects include a method executed by the above-mentioned device, and a computer-readable storage medium non-transitoryly storing the above-mentioned program. Effect of the Invention

[0009] According to the present disclosure, it is possible to reduce the load on an edge server on which a microservice is running. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a schematic diagram of an edge computing system according to an embodiment. [Diagram 2] FIG. 1 is a configuration diagram of a load balancing controller and an edge server. [Diagram 3] An overview of the microservices running on edge servers. [Figure 4] Diagram to explain forwarding requests between microservices. [Diagram 5] FIG. 13 is a diagram for explaining a process for determining a bottleneck. [Figure 6] 13 is a flowchart of a process executed by a load balancing controller. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] One architecture that can reduce latency and traffic is the edge computing system, which places edge servers between terminals and the cloud and has the edge servers process requests from the terminals. For example, when the terminals are mounted on vehicles (connected cars), the amount of access from the vehicles to each edge server varies in conjunction with traffic volume, which can cause the load to be unevenly distributed among some edge servers. If the load is unevenly distributed among some edge servers, there is a risk that the edge servers will not be able to perform as expected.

[0012] To address this issue, a system has been devised that transfers requests from terminals between edge servers based on the amount of requests issued to each edge server and the resources that each edge server can provide, so as to prevent the load from being concentrated on a few edge servers.

[0013] In recent years, the use of microservices architecture in edge servers is on the rise. Microservices architecture is an architecture that processes requests in a distributed manner using multiple microservices. In microservices architecture, for example, multiple microservices work together to provide one application on one edge server.

[0014] In such an architecture, because resources are allocated on a microservice-by-microservice basis, it may not be possible to accurately determine whether an overload state has occurred even by referring to the total number of requests arriving at the edge server from terminals or the remaining hardware resources of the edge server. For example, even if a load is concentrated on a specific microservice and processing via that microservice is delayed, this cannot be detected. To solve this problem, it is necessary to determine the load status for each microservice running on the edge server.

[0015] An information processing device according to a first aspect of the present disclosure includes: The system includes a control unit that executes: obtaining the load on one or more microservices running on each of a plurality of edge servers; and determining to forward a predetermined percentage of one or more requests issued to a first microservice running on a first edge server and having a load equal to or greater than a predetermined amount, to a second microservice running on one or more second edge servers.

[0016] The information processing device according to the present disclosure is a control device for distributing load among a plurality of edge servers. The control unit is configured to be able to individually monitor the loads of a plurality of microservices operating in each of the plurality of edge servers. The load of each microservice can be obtained, for example, by measuring the round trip time for a request. The control unit transfers a predetermined percentage of one or more requests issued to a microservice (also referred to as a first microservice) that is determined to be under a load equal to or greater than a predetermined amount to a second microservice. The second microservice may be, for example, a microservice that is running on another edge server and has ample resources.

[0017] The control unit may detect the presence of the first microservice when a value related to the performance of the application becomes worse than a predetermined value as a trigger. For example, when the throughput of the first application falls below a predetermined value, the control unit may measure the time required for processing each of one or more microservices. For example, the control unit may identify a microservice whose time exceeds a predetermined value as the first microservice (one that is under a load of a predetermined amount or more).

[0018] Note that the control unit may determine the predetermined ratio by taking into consideration the load on the second microservice when transferring a request. For example, the control unit can determine the predetermined ratio so that both the load on the first microservice and the load on the second microservice are below a predetermined value.

[0019] In addition, after starting the transfer of requests, the control unit may change the predetermined ratio according to the load situation, or may stop the transfer of requests depending on the situation. For example, if the load on the second microservice exceeds a predetermined value after the transfer starts, the transfer may be stopped.

[0020] Specific embodiments of the present disclosure will be described below with reference to the drawings. Unless otherwise specified, the hardware configuration, module configuration, functional configuration, and the like described in each embodiment are not intended to limit the technical scope of the disclosure to only those.

[0021] First Embodiment An outline of an edge computing system according to a first embodiment will be described with reference to Fig. 1. The edge computing system according to this embodiment includes multiple edge servers 2 and a load balancing controller 1. In the edge computing system according to this embodiment, each of multiple vehicles A is connected to one of the multiple edge servers 2 via wireless communication.

[0022] Vehicle A is an automobile equipped with a terminal capable of wireless communication with edge servers 2. Vehicle A (vehicle-mounted terminal) can provide a predetermined service to a passenger by communicating with any of the multiple edge servers 2.

[0023] The edge servers 2 are arranged in different areas so that requests from terminals can be processed at locations closer to the terminals than the cloud. The edge server 2 receives a request transmitted from, for example, vehicle A, performs a predetermined process, and returns the result to vehicle A. Although omitted in FIG. 1 for simplicity, relay devices such as base stations, access points, or routers may be present between the edge server 2 and vehicle A. The request from vehicle A reaches the edge server 2 via these relay devices.

[0024] The load balancing controller 1 is a device that manages multiple edge servers 2. In this embodiment, the load balancing controller 1 monitors the load of each edge server 2, and when the load is biased toward a specific edge server 2, in order to distribute the load, the load balancing controller 1 causes the edge server 2 to transfer a request transmitted from vehicle A to another edge server 2. Note that in this embodiment, the number of requests issued to an application in the edge server 2 per unit time is illustrated as an example of the load.

[0025] The load balancing controller 1 and each edge server 2 are configured to be able to communicate with each other via a network. The network may be, for example, a public line network such as the Internet, or a backbone network such as an optical line network.

[0026] In this embodiment, multiple edge servers 2 are geographically distributed. Each edge server 2 may be defined to be responsible for a geographical area or a communication area. For example, the edge server 2 may be linked to a relay device such as a base station and a router, and in this case, the edge server 2 may be responsible for an area covered by the linked relay device. The edge server 2 accepts and processes a request from a vehicle A present in the area it is responsible for.

[0027] A plurality of microservices are running on the edge server 2, and the plurality of microservices work together to provide a service of a specific application. Although a plurality of applications may be operable on the edge server 2, in this embodiment, for the sake of simplicity of explanation, it is assumed that one application runs on the edge server 2. In this embodiment, it is assumed that the same application runs on multiple edge servers 2, and that microservices with the same configuration run on multiple edge servers 2 to provide the application.

[0028] Requests input to an application are distributed to each microservice, and processing progresses as multiple microservices send and receive requests.

[0029] Furthermore, the edge server 2 is configured to be able to notify the load balancing controller 1 of information related to the load imposed on the microservices in operation. The notification of the information related to the load may be triggered by the edge server 2 or the load balancing controller 1. The load balancing controller 1 detects that there is an overloaded microservice in any of the edge servers 2 based on the information received from each edge server 2. An overloaded state refers to a state in which each microservice receives more requests per unit time than it can process.

[0030] When the load balancing controller 1 detects the presence of an overloaded microservice, in order to reduce the load on the microservice, it transfers a predetermined percentage of requests issued per unit time to the microservice to other microservices executed on other edge servers 2. The predetermined percentage is appropriately determined according to the load states of the microservices at the transfer source and transfer destination.

[0031] For example, when the number of requests issued to an overloaded microservice is greater, the load balancing controller 1 distributes more requests to microservices running on other edge servers 2. When the microservice to which the requests are forwarded has few surplus resources, the forwarding ratio is set lower than when the resources are abundant. This makes it possible to prevent other microservices to which requests from an overloaded microservice are forwarded from becoming overloaded due to the forwarding of those requests, thereby enabling efficient load balancing.

[0032] [Device configuration] Next, the configuration of each device constituting the system will be described. Fig. 2 is a diagram showing an example of the configuration of the load distribution controller 1 and edge server 2 according to this embodiment.

[0033] First, the load balancing controller 1 will be described. The load balancing controller 1 controls the processor (CPU, GPU, etc.), the main memory device (RAM, ROM, etc.), the auxiliary memory device (EPROM, hard disk drive, removable media, etc.), and the The auxiliary storage device can be configured as a computer having a memory (such as a memory controller, a storage device, etc.). An operating system (OS), various programs, various tables, etc. are stored in the auxiliary storage device, and by executing the programs stored therein, various functions (software modules) that match a predetermined purpose, as described below, can be realized. However, some or all of the functions may be realized as hardware modules using hardware circuits such as ASICs, FPGAs, etc.

[0034] The load balancing controller 1 includes a control unit 11, a storage unit 12, and a communication unit 13.

[0035] The control unit 11 is a calculation unit that executes a predetermined program to realize various functions of the load balancing controller 1. The control unit 11 can be realized by a hardware processor such as a CPU. The control unit 11 may also be configured to include a RAM, a ROM (Read Only Memory), a cache memory, and the like.

[0036] The control unit 11 is configured to have two software modules: a monitoring unit 111 and a traffic control unit 112. Each software module may be realized by causing the control unit 11 (e.g., a CPU) to execute a program stored in the storage unit 12, which will be described later.

[0037] The monitoring unit 111 monitors the load on the managed edge servers 2. In this embodiment, the monitoring unit 111 periodically communicates with each edge server 2 to obtain information on the load on the microservices in operation, and determines whether or not any of the microservices in operation on each edge server 2 is in an overloaded state based on the data.

[0038] When the traffic control unit 112 determines by the above-mentioned process that there is a microservice that is in an overloaded state, it decides to transfer requests for that microservice to another microservice running on another edge server 2. The traffic control unit 112 also generates a command for performing the transfer (hereinafter, a transfer command) and transmits it to the target edge server 2. The transfer command is a command for transferring a request issued to a microservice running on a specific edge server 2 to another microservice running on another edge server 2. The edge server 2 that receives the transfer command transfers the request for the target microservice to the other edge server 2. A specific method will be described later.

[0039] The storage unit 12 is a means for storing information, and is configured with storage media such as RAM, a magnetic disk, a flash memory, etc. The storage unit 12 stores programs executed by the control unit 11, data used by the programs, etc. The storage unit 12 also stores a configuration database 12A, which is information indicating the configuration of the edge servers 2 under its management. The configuration database 12A includes, for example, information regarding the network configuration, hardware configuration, and software configuration of each edge server 2, and applications running on each edge server 2.

[0040] The communication unit 13 is a communication module that communicates with a predetermined network. The communication unit 13 is, for example, a network interface card (NIC), an optical line interface, etc. The communication unit 13 is, for example, connected to an access network such as a local area network (LAN) or an optical line network via a wire, and connects the load balancing controller 1 to the network through the access network.

[0041] Next, the configuration of the edge server 2 will be described. The edge server 2, like the load balancing controller 1, can be configured as a computer having a processor (CPU, GPU, etc.), a main storage device (RAM, ROM, etc.), and an auxiliary storage device (EPROM, hard disk drive, removable media, etc.). Like the load balancing controller 1, some or all of the functions of the edge server 2 may be realized as a hardware module by a hardware circuit such as an ASIC or FPGA.

[0042] The edge server 2 includes a control unit 21, a storage unit 22, and a communication unit .

[0043] The control unit 21 is a computing unit that executes a predetermined program to realize various functions of the edge server 2. The control unit 21 can be realized by a hardware processor such as a CPU. The control unit 21 may also be configured to include a RAM, a ROM (Read Only Memory), a cache memory, and the like.

[0044] The control unit 21 is configured to have three software modules: a load notification unit 211, a gateway 212, and an application execution unit. Each software module may be realized by the control unit 21 (e.g., a CPU) executing a program stored in the storage unit 12 described later.

[0045] The load notification unit 211 transmits information regarding the performance of an application running on the edge server 2 or the load of a microservice to the load balancing controller 1. The load notifying unit 211 may measure a value relating to the performance of a predetermined application based on an inquiry from the load balancing controller 1, and notify the load balancing controller 1. An example of the value relating to the performance of an application is processing throughput. Furthermore, the load notifying unit 211 may measure a value related to the load of a microservice based on an inquiry from the load balancing controller 1, and notify the load balancing controller 1. Examples of information related to the load of a microservice include the number of requests received by the target microservice per unit time, the time required for processing, and the like.

[0046] The gateway 212 receives requests from terminals included in the edge computing system. The request is a request issued to an application executed in the edge server 2. In this embodiment, the terminal that transmits the request is typically an in-vehicle terminal mounted on a vehicle within the area covered by the edge server 2. The target terminal may be a terminal connected to a relay device such as a base station or a router installed within the area covered by the edge server 2. The gateway 212 outputs the request received from the terminal to the application execution unit 213.

[0047] The application execution unit 213 executes a predetermined application in response to a request. In response to a request from a terminal, the predetermined application performs processing and returns the result, thereby providing a predetermined service to the terminal. In the application execution unit 213, a plurality of microservices are executed, and a predetermined application is implemented by the plurality of microservices. The application execution unit 213 may be configured to execute a plurality of microservices by, for example, container orchestration software such as Kubernetes.

[0048] FIG. 3 is a diagram showing an overview of an application executed by the application execution unit 213. As shown in the figure, a request received by the gateway 212 is input to a microservice that constitutes the target application. In addition, between the microservices By passing the processing result and the request, the final calculation result is obtained. In the illustrated example, the request received by the gateway 212 reaches the microservice 2132 via two routes, and the microservice 2132 issues requests to the microservices 2133 and 2134, respectively. The processing results by the microservices 2133 and 2134 are transmitted to the terminal via the gateway 212.

[0049] 3, the application execution unit 213 not only transmits and receives requests between multiple microservices via a predetermined route, but also changes the destination of the request so as to avoid an overloaded microservice based on a transfer command received from the load balancing controller 1. Specifically, when the application execution unit 213 receives a transfer command from the load balancing controller 1, it transfers a request issued to a target microservice to another edge server 2 based on the contents of the received transfer command.

[0050] [Load balancing method] Next, a specific example of a method in which the load balancing controller 1 detects an overload state in a plurality of edge servers 2 included in the system and transfers requests between the edge servers to balance the load will be described.

[0051] FIG. 4 is a diagram explaining a method of load balancing between edge servers. In this example, the edge server from which a request is transferred is called edge server 2A, and the edge server to which the request is transferred is called edge server 2B. The same application is executed in both edge server 2A and edge server 2B. In addition, microservices with the same configuration are executed in both edge server 2A and edge server 2B. Edge server 2A and edge server 2B may be located in geographically separated locations.

[0052] Here, it is assumed that one of the microservices (here, microservice 2132) executed in the edge server 2A falls into an overload state. The overload state occurs, for example, when the number of terminals simultaneously connected to the edge server 2A increases excessively. When the microservice 2132 falls into an overload state, the microservice becomes a bottleneck, affecting subsequent processing. For example, in this example, the processing of the microservices 2133 and 2134 may be delayed. As a result, the performance of the application provided by the edge server 2A may be significantly degraded.

[0053] In this embodiment, the load balancing controller 1 monitors the performance of applications running on each edge server 2 . For example, the load balancing controller 1 stores values ​​(e.g., throughput, etc.) relating to the normal performance of applications running on each edge server 2, and detects when a performance degradation occurs in an application that is running.

[0054] An example of a specific method will be described. FIG. 5 is a diagram showing the relationship between requests handed over between multiple microservices and response times. Here, it is assumed that there are four microservices, a0 to a3. The response time can also be called the round-trip time. For example, the response time of microservice a0 is the time from when a request is input to microservice a0 until the request reaches microservice a3 and a response is returned.

[0055] Under normal circumstances, the terminal issues a request to the microservice a0 and receives a response. Let slat[a0] be the response time from when microservice a0 makes a request to microservice a1 until a response is received. Similarly, let slat[a1] be the response time from when microservice a0 makes a request to microservice a1 until a response is received. Here, by subtracting slat[a0] from slat[a1], we can obtain the processing time d_slat[a0] of microservice a0 itself. The same applies to other microservices. The load balancing controller 1 stores the processing time (the processing time required under normal conditions) calculated by this method for each microservice.

[0056] The load balancing controller 1 also makes the edge server 2 (load notification unit 211) measure the processing time of each microservice when a load is applied in a similar manner. By comparing these, it is possible to identify a microservice whose processing time has increased by a predetermined value or more compared to normal times.

[0057] Returning to Fig. 4, the explanation will be continued. Here, it is assumed that the load balancing controller 1 (monitoring unit 111) has determined that the microservice 2132 is in an overloaded state. In order to reduce the load on the microservice 2132, it is necessary to reduce the number of requests sent from the microservice 2131 to the microservice 2132, or the number of requests sent from the gateway 212 to the microservice 2132. Therefore, the load balancing controller 1 (traffic control unit 112) transmits a transfer command to the application execution unit 213 of the edge server 2A, thereby causing some of the requests addressed to the microservice 2132 to be transferred to another edge server (edge ​​server 2B in this example).

[0058] Load balancing is achieved by directing a certain percentage of the requests addressed to the target microservice to another edge server 2 (in this example, the microservice 2132 running on edge server 2B).

[0059] For example, the traffic control unit 112 of the load balancing controller 1 determines to transfer N% of requests sent from the microservice 2131 to the microservice 2132 executed in the edge server 2B. Also, it determines to transfer M% of requests sent from the gateway 212 to the microservice 2132 to the microservice 2132 executed in the edge server 2B. This ratio (hereinafter, the transfer ratio) is appropriately determined within a range that satisfies the following conditions.

[0060] (Condition A) The load on the source microservice decreases to a certain value or less. For example, the number of requests per unit time input to the source microservice decreases to a predetermined value or less. (Condition B) The load on the destination microservice does not exceed a specified value. For example, the number of requests per unit time accepted by the destination microservice must not exceed a specified value.

[0061] For example, the load balancing controller 1 stores a threshold value (e.g., a threshold value for the number of requests per unit time) for determining that a microservice is overloaded, and determines a transfer ratio so that the load on the target microservice falls below the threshold value. For example, if the overload threshold value for a given microservice is 50 requests per second and the microservice receives 75 requests per second, the load balancing controller 1 determines to transfer 25 requests per second to another edge server.

[0062] The load balancing controller 1 is configured to be able to monitor the load of the microservice at the transfer destination, and determines the transfer ratio taking into consideration the load of the microservice at the transfer destination. For example, the load balancing controller 1 determines the transfer ratio when the load of the microservice at the transfer destination exceeds a threshold. If there is a risk that the destination microservice will be overloaded due to the request transfer, another edge server 2 can be added as a candidate for the destination.

[0063] The traffic control unit 112 of the load balancing controller 1 generates a transfer command based on the above-mentioned determined content, and transmits it to the target edge server 2. The transfer command includes, for example, the following items. -Identifier of the source edge server The origin of the request within the source edge server (the entity sending the request to the overloaded microservice) The destination of the request within the originating edge server (i.e. the overloaded microservice) - Identifier of the destination edge server Destination microservice identifier The percentage at which to forward requests (for example, a percentage between 0 and 100)

[0064] The edge server 2 (application execution unit 213) that has received the transfer command transfers the requests according to the contents of the transfer command. For example, assume that 50 requests per second are transmitted from the microservice 2131 to the microservice 2132 in the edge server 2A, and a transfer rate of 50% is specified. The application execution unit 213 of the edge server 2A transfers 25 of the 50 requests per second to the microservice 2132 running on the edge server 2B based on the transfer command. Also assume that 30 requests per second are transmitted from the gateway 212 to the microservice 2132, and a transfer rate of 16.7% is specified. The application execution unit 213 of the edge server 2A transfers 5 of the 30 requests per second from the gateway 212 to the microservice 2132 running on the edge server 2B based on the transfer command.

[0065] Through the above-described processing, the load balancing controller 1 can detect an overload state in the edge servers 2 included in the system and perform load balancing.

[0066] [flowchart] Next, a detailed description will be given of the processing executed by the load balancing controller 1. Fig. 6(A) is a flowchart of the processing executed by the load balancing controller 1. The processing shown in the figure is periodically executed for each of the multiple edge servers while the load balancing controller 1 is monitoring the edge servers.

[0067] First, in step S11, the monitoring unit 111 determines that, among the applications provided by the edge servers 2 included in the system, there is an application whose performance has deteriorated below a predetermined value. In this step, the load balancing controller 1 identifies multiple applications to be evaluated using the list of edge servers 2 and applications recorded in the configuration database 12A. In addition, for each of the multiple applications to be evaluated, a value for evaluating performance (hereinafter, performance evaluation value) is obtained via the load notification unit 211 of the edge server 2. The performance evaluation value may be, for example, throughput. If there is an application whose performance evaluation value is below a predetermined performance requirement value, it can be assumed that one of the microservices that make up the application has a problem (is in an overloaded state).

[0068] In step S11, if it is determined that there is an application whose performance is degraded, If so (step S12-Yes), the process proceeds to step S 13. If it is determined in step S11 that there is no application whose performance has deteriorated (step S12-No), the process ends.

[0069] In step S13, the microservice that is causing the performance degradation of the application (i.e., the bottleneck) is identified. In this step, for example, as described with reference to Fig. 5, the monitoring unit 111 acquires the measured response time for each microservice via the load notification unit 211 of the edge server 2, and identifies the bottleneck microservice using this and the response time under normal conditions. In the example of Figure 5, d_slat represents the processing time in each microservice. For example, the difference between d_slat in normal times and the current d_slat can be calculated for each microservice, and a microservice whose difference exceeds a certain value can be considered to be a bottleneck.

[0070] Next, in step S14, the traffic control unit 112 executes a process for eliminating the identified bottleneck. Fig. 6(B) is a flowchart showing the process of step S14 in detail. At the start of the illustrated flowchart, the target edge server 2 and the microservice that is in an overloaded state have been identified. In the following description, the target edge server is also referred to as a source edge server, and the edge server to which the request is transferred is also referred to as a destination edge server.

[0071] First, in step S141, it is determined whether the target microservice is currently receiving a request from another edge server. If the determination in this step is positive, the process proceeds to step S142. If the determination in this step is negative, the process proceeds to step S144.

[0072] In step S142, the transfer of requests from other edge servers is stopped. For example, it is possible that the target microservice is overloaded due to the transfer of requests from other edge servers, and the overload is relieved by stopping the transfer.

[0073] In step S143, it is determined whether the overload state of the target microservice has been resolved by the other edge server stopping the request transfer. In this step, it may be determined whether the overload state has been resolved based on the result of acquiring a measured response time for the target microservice and comparing it with the normal response time. If it is determined that the overload state has been resolved, the process ends. If the overload state is not resolved, the process proceeds to step S144.

[0074] In step S144, candidates for destination edge servers to which the request is to be transferred are obtained. In this step, the delay time caused by transferring the request between edge servers is calculated, and it is determined whether the performance requirement value can still be satisfied even if the delay time is added. Edge servers that are determined to be able to satisfy the performance requirement value even if the request is transferred are added to a list as candidates for destination edge servers. Note that edge servers whose corresponding microservices are already in an overloaded state are not included in this step.

[0075] The processes in steps S145 to S148 are repeatedly executed for each of the candidates for the destination edge server generated in step S144. In step S145, it is determined whether or not there are sufficient surplus resources to accept the request for the microservice running on the target destination edge server. If the microservice is capable of accepting all the required number of request transfers to relieve the overload state of the target microservice, this step is judged as positive.

[0076] If the determination in step S145 is positive, the process proceeds to step S146, in which a transfer command is generated to transfer to the destination edge server a number of requests that can eliminate the overload, and the transfer command is sent to the source edge server.

[0077] If the determination in step S145 is negative, the process proceeds to step S147. If the determination in step S145 is positive, it means that the destination edge server does not have the resources to accept all the load. In this case, a transfer command is generated to transfer to the destination edge server a number of requests that can partially relieve the overload (i.e., can be accepted), and the transfer command is sent to the source edge server.

[0078] In step S148, it is determined whether the overload of the target microservice has been resolved. If the overload of the target microservice has been resolved, the process ends. If the overload of the target microservice has not been resolved, the process returns to step S145, and the same process is repeated for the next candidate for the transfer destination edge server.

[0079] As described above, the process in FIG. 6 is executed periodically. That is, even after the transfer of requests has started, the predetermined ratio may be changed according to fluctuations in the load situation. Furthermore, the microservice to which the requests are transferred may be changed according to fluctuations in the load situation. For example, if the microservice to which the requests are transferred becomes overloaded after the transfer of requests has started, the transfer of requests to that microservice may be stopped, or the microservice to which the requests are transferred may be changed.

[0080] As described above, in the edge computing system according to the first embodiment, among the microservices running on each of a plurality of edge servers, a microservice that is under a load equal to or greater than a predetermined amount is identified. In addition, a predetermined percentage of requests issued to the microservice is transferred to a microservice running on another edge server. This makes it possible to detect an overload state on a microservice-by-microservice basis and distribute the load.

[0081] (Modification) The above-described embodiment is merely an example, and the present disclosure can be modified and implemented as appropriate without departing from the spirit and scope of the present disclosure. For example, the processes and means described in this disclosure can be freely combined and implemented as long as no technical contradiction occurs.

[0082] Furthermore, a process described as being performed by one device may be shared and executed by multiple devices. Alternatively, a process described as being performed by different devices may be executed by one device. In a computer system, the hardware configuration (server configuration) by which each function is realized can be flexibly changed.

[0083] For example, in the embodiment described above, the load balancing controller 1 detects that the performance of an application running on an edge server has decreased, but the process may also be triggered from the edge server 2 to the load balancing controller 1.

[0084] In addition, in the description of the embodiment, an example of measuring the processing time of each microservice was given as a method for identifying an overloaded microservice. However, the overloaded microservice may be identified by other methods. For example, if it is possible to obtain the number of requests that each microservice is receiving per unit time, this may be used.

[0085] The present disclosure can also be realized by supplying a computer program implementing the functions described in the above embodiments to a computer, and having one or more processors of the computer read and execute the program. Such a computer program may be provided to the computer by a non-transitory computer-readable storage medium connectable to the system bus of the computer, or may be provided to the computer via a network. Non-transitory computer-readable storage media include, for example, any type of disk, such as a magnetic disk (floppy disk, hard disk drive (HDD), etc.), an optical disk (CD-ROM, DVD disk, Blu-ray disk, etc.), a read-only memory (ROM), a random access memory (RAM), an EPROM, an EEPROM, a magnetic card, a flash memory, an optical card, and any type of medium suitable for storing electronic instructions. [Explanation of symbols]

[0086] 1. Load balancing controller 2. Edge Server 11,21 Control section 12,22...Storage section 13,23 Communications Department

Claims

1. Obtaining a load on one or more microservices running on each of a plurality of edge servers; determining to transfer a predetermined percentage of one or more requests issued to a first microservice running on a first edge server and having a load equal to or greater than a predetermined amount to a second microservice running on one or more second edge servers; An information processing device comprising a control unit that executes the above.

2. The one or more microservices are responsible for processing a first application running on the first edge server; When a value related to the performance of the first application becomes worse than a predetermined value, the control unit measures a processing time of each of the one or more microservices, and identifies a microservice whose processing time exceeds the predetermined value as the first microservice. The information processing device according to claim 1 .

3. The control unit determines the predetermined ratio such that both a load on the first microservice and a load on the second microservice are below the predetermined amount.

3. The information processing device according to claim 1 or 2.

4. The control unit stops the transfer when a load on the second microservice exceeds the predetermined amount after starting the transfer.

3. The information processing device according to claim 1 or 2.

5. Obtaining a load on one or more microservices running on each of a plurality of edge servers; determining to transfer a predetermined percentage of one or more requests issued to a first microservice running on a first edge server and having a load equal to or greater than a predetermined amount to a second microservice running on one or more second edge servers; A program that causes a computer to execute the following.

Citation Information

Patent Citations

  • Computer-implemented method, computer system, and computer program, for predictively deploying microservices on edge devices in network

    JP2022077504A