A communication and resource-aware microservice scheduling system for cloud-native applications
By introducing communication-aware scheduling and global resource balancing modules into the edge computing environment, the deployment of microservices is optimized, the problem of uneven resource allocation is solved, communication overhead is reduced and response speed is improved, and the service quality requirements of users are met.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-29
- Publication Date
- 2026-04-03
AI Technical Summary
Existing microservice scheduling algorithms fail to effectively consider the communication volume and resource requirements between microservices in edge computing environments, resulting in uneven resource allocation, increased communication overhead and performance degradation, and an inability to guarantee the quality of service for users.
By employing a communication-aware scheduling module and a global resource balancing module, the system monitors the communication volume between microservices and the resource consumption of edge servers. It uses optimization algorithms to deploy microservices with frequent communication on the same server and makes optimal scheduling decisions based on the amount of resource requests.
It effectively reduces communication overhead between microservices, improves response speed, balances resource allocation on edge servers, and meets the service quality requirements of cloud-native application users.
Smart Images

Figure CN117896293B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of edge server resource allocation, and more particularly to a communication and resource-aware microservice scheduling system for cloud-native applications. Background Technology
[0002] Microservices is a software architecture style based on small, independent, and composable services. It breaks down a large application into a set of smaller, more manageable services, each of which can be developed, tested, and deployed independently, thus providing greater flexibility and maintainability.
[0003] However, when a cloud-native application is decoupled into numerous microservices and deployed in edge computing, cloud computing, and IoT scenarios, efficient deployment and management of these microservices remains a challenging problem. Kubernetes, as the most popular container orchestration platform, provides automated deployment, scaling, and management mechanisms for microservice architectures. However, Kubernetes' default scheduling algorithm is primarily based on resource matching, failing to consider that some applications may be sensitive to network latency between specific nodes or components; furthermore, it does not consider the actual load of nodes, resulting in uneven allocation of containers and resources, leading to performance degradation and resource waste. Nautilus, as a state-of-the-art microservice-based runtime system, models the mapping problem between microservices and nodes as a minimum K-cut problem, aiming to place complex microservices on a single node, thereby significantly reducing microservice response time. However, Nautilus's scheduling decisions also lead to unreasonable resource allocation, causing the hardware resources of the node to be rapidly depleted, generating a large amount of resource fragmentation and wasting the resources of other nodes in the cluster. The solutions mentioned above ignore the dependencies between microservices, distributing them across different servers. This causes some microservices to bear high cross-node communication overhead during communication, and fails to ensure the reasonable allocation of resources within nodes during the scheduling of microservices. This results in excessive consumption of single resources within nodes, and the quality of service for users cannot be effectively guaranteed. Summary of the Invention
[0004] To address the issue of unbalanced resource allocation on edge servers, this invention provides a communication and resource-aware microservice scheduling system for cloud-native applications, which mainly includes a communication-aware scheduling module and a global resource balancing module, with the communication-aware scheduling module connected to the global resource balancing module.
[0005] The communication-aware scheduling module is used to monitor the communication volume between microservices and deploy microservices with frequent communication on the same server through the communication-aware scheduling optimization algorithm as an initial scheduling decision.
[0006] The global resource balancing module is used to collect the resource request volume of the microservices to be scheduled and the resource usage of the edge servers in real time. It scores the edge servers through a global resource balancing optimization algorithm and further optimizes the preliminary scheduling decision to deploy the microservices to be scheduled on the edge target servers.
[0007] Furthermore, the working process of the communication-aware scheduling module is as follows:
[0008] Based on the microservice topology diagram of the cloud-native application, collect the number of bytes transmitted during the request and response process between microservices, and calculate the communication volume between microservices based on this.
[0009] When the communication-aware scheduling module receives a scheduling request from the cloud server, it uses the communication-aware scheduling optimization algorithm to score the edge server and makes a preliminary scheduling decision based on the resource usage of the edge server.
[0010] Furthermore, the communication-aware scheduling optimization algorithm is as follows:
[0011] First, obtain the microservice ComMic that communicates with the microservice m to be scheduled, and then obtain the microservice ExistMic that has been deployed on the edge server n. ComMic and ExistMic are sets of microservices, representing all microservices that communicate with m and all microservices that already exist on the edge server n, respectively.
[0012] Then, each microservice belonging to the cloud-native application has an independent application tag and namespace. Based on the application tag and namespace, it is determined whether each microservice in ComMic is successfully matched with each microservice in ExistMic, and the communication volume between each successfully matched pair of microservices is queried.
[0013] Finally, by summing up the communication volume of all successfully matched microservice combinations, the score of edge server n can be obtained. This score is then normalized, and the edge server with the highest score is selected as the result of this scheduling.
[0014] Furthermore, the method for calculating the communication volume between microservices is as follows: for the topology between microservices, an undirected graph is used. It means that among them Represents a collection of microservices. This represents communication between microservices; for microservices exist At any given moment, the volume of communication (ComVol) i,j The calculation formula is as follows:
[0015]
[0016] in, This represents the number of bytes transferred during the request process from microservice i to microservice j. ComVol represents the number of bytes transferred during the response process from microservice j to microservice i. i,j This indicates that for microservices i and j during their runtime... traffic within.
[0017] Furthermore, the global resource balancing optimization algorithm is as follows:
[0018] First, the global resource balancing module obtains the resource request volume of the microservices to be scheduled and obtains the changes in available resources of the edge servers in real time.
[0019] Then, the resource utilization rate is used to determine whether the resource balance of the edge server is within an acceptable range, and the edge server is scored accordingly.
[0020] Finally, for each microservice to be scheduled, the absolute value of the difference between the microservice's CPU request value as a percentage of the total available CPUs on the edge server and the microservice's memory request value as a percentage of the total available memory on the edge server is calculated based on its resource request volume. If this value is greater than the maximum tolerance for resource gap, the final score of the edge server needs to be further optimized in conjunction with the score of the communication-aware scheduling module to make the final scheduling decision. If this value does not exceed the maximum tolerance for resource gap, that is, the current resource utilization of the edge server is relatively balanced, the scheduling decision of the microservice is based on the score of the communication-aware scheduling module, that is, the scheduling result of the communication-aware scheduling module is used as the final scheduling decision.
[0021] Furthermore, the formula for determining when the resource gap between edge servers exceeds the maximum tolerance is as follows:
[0022]
[0023] Where AvaCPU and AvaMem represent the available CPU and memory capacity of the edge server, respectively, TotalCPU and TotalMem represent the total CPU and memory of the edge server, respectively, and θ represents the maximum tolerance for resource gap.
[0024] Furthermore, when the resource disparity within the edge servers exceeds the maximum tolerance, the optimization method for the global resource balancing module's score on the communication-aware scheduling module is as follows:
[0025] First, the global resource balancing module calculates the edge server's score based on its resource usage. Then, it optimizes the edge server's score by combining the introduced communication and resource weighting coefficients with the scoring results from the communication-aware scheduling module. This optimized score serves as the basis for the final scheduling decision. The communication and resource weighting coefficients need to be set based on the resource requirements of the microservices and the total resources of the edge servers. A reasonable setting of this parameter can effectively reduce the response latency between microservices.
[0026] Furthermore, the scoring formula for edge servers by the global resource balancing module is as follows:
[0027] Score Res =(1-|MicCpu-MicMem|)×10 (3)
[0028] Where MicCPU and MicMem represent the percentage of CPU and memory requests made by a microservice within the total CPU and memory usage of the edge server, respectively, and Score... Res This indicates the score given to the edge server by the global resource balancing module.
[0029] Furthermore, the optimization formula for the global resource balancing module's score on the communication-aware scheduling module is as follows:
[0030] Score = γ × Score Com +(1-γ)×Score Res (4)
[0031] Where γ represents the weighting coefficient between communication and resources, Score com The score represents the rating result of the communication-aware scheduling module, and the score represents the final score of the edge server. Res This indicates the score given to the edge server by the global resource balancing module.
[0032] The beneficial effects of the technical solution provided by this invention are as follows: This invention can deploy frequently communicating microservices on the same edge server based on the communication volume between microservices; for microservices to be scheduled, it can make optimal scheduling decisions based on resource request volume and edge server resource occupancy. This invention can fully consider the resource requirements of microservice operation, effectively reduce communication overhead between microservices, improve the response speed of microservices, balance the resource allocation of edge servers, and meet the QoS requirements of cloud-native application users. Attached Figure Description
[0033] The present invention will be further described below with reference to the accompanying drawings and embodiments. In the accompanying drawings:
[0034] Figure 1This is a microservice topology diagram in an embodiment of the present invention.
[0035] Figure 2 This is a communication and resource-aware microservice scheduling structure diagram for cloud-native applications in this embodiment of the invention. Detailed Implementation
[0036] To provide a clearer understanding of the technical features, objectives, and effects of the present invention, specific embodiments of the present invention will now be described in detail with reference to the accompanying drawings.
[0037] This invention provides a communication and resource-aware microservice scheduling system for cloud-native applications. It effectively addresses the problem of unbalanced resource allocation on edge servers while reducing communication latency between microservices, thereby achieving efficient orchestration of microservices on the edge cloud. The system comprises two parts: a communication-aware scheduling module and a global resource balancing module. The communication-aware scheduling module monitors the communication volume between microservices and uses a communication-aware scheduling optimization algorithm to deploy frequently communicating microservices onto the same server as an initial scheduling decision. The global resource balancing module collects the resource request volume of the microservices to be scheduled and the resource occupancy of the edge servers in real time. It then uses a global resource balancing optimization algorithm to score the edge servers and further optimizes the initial scheduling decision, deploying the microservices to be scheduled onto appropriate edge target servers. Here, "appropriate" means that after algorithmic scheduling, the communication between microservices and the resource occupancy on the edge servers are both optimal (i.e., minimal communication overhead between microservices and balanced resource occupancy across edge servers), meeting the user's quality of service requirements.
[0038] Preferably, the function of the communication-aware scheduling module is to minimize the communication overhead of microservices on the edge server and improve the response speed of microservices. First, based on the microservice topology diagram of the cloud-native application, such as... Figure 1 As shown, the microservice topology comprises 6 microservices and 3 edge servers. It collects the number of bytes transmitted during request and response processes between microservices and calculates the communication volume between them. When the communication-aware scheduling module receives a scheduling request from the cloud server, it uses a communication-aware scheduling optimization algorithm to score the edge servers and makes preliminary scheduling decisions based on their resource usage.
[0039] Preferably, the method for calculating communication traffic between microservices is as follows: for the topology between microservices, an undirected graph is used. It means that among them Represents a collection of microservices. This represents communication between microservices. For microservices... exist At any given moment, the number of bytes transferred during the request process from microservice i to microservice j is [not specified]. This indicates the number of bytes transferred during the response process from microservice j to microservice i. This indicates that for microservices i and j during their runtime cycles... Internal traffic uses ComVol i,j This indicates that the communication volume ComVol i,j The calculation formula is as follows:
[0040]
[0041] Preferably, the communication-aware scheduling optimization algorithm is as follows: First, obtain the microservice ComMic that communicates with the microservice m to be scheduled. Then, obtain the microservice ExistMic that has been deployed on the edge server n. ComMic and ExistMic are sets of microservices, representing all microservices communicating with m and all microservices already existing on the edge server n, respectively. Each microservice belonging to a cloud-native application has an independent application tag and namespace. Based on the application tag and namespace, determine whether each microservice in ComMic successfully matches each microservice in ExistMic, and query the communication volume between each successfully matched pair of microservices. By accumulating the communication volume of all successfully matched microservice combinations, the score of the edge server n can be obtained. The score distribution is from 0 to 10. To ensure the consistency of the algorithm results in the architecture, the score is normalized, and the edge server with the highest score is selected as the scheduling result. The pseudocode of this communication-aware scheduling optimization algorithm is shown below:
[0042]
[0043]
[0044] Preferably, the resource request amount of a microservice is the amount of CPU and memory that the microservice needs to use.
[0045] Preferably, the resource usage of the edge server is the ratio of the remaining CPU to the total CPU and the ratio of the remaining memory to the total memory on the edge server.
[0046] Preferably, the global resource balancing module functions to balance resource consumption within edge servers while minimizing communication overhead between microservices, thus preventing excessive load or resource waste on edge servers. When the communication-aware scheduling module makes an initial scheduling decision, if the resource disparity between the selected edge servers exceeds the maximum tolerance, the scoring results from the communication-aware scheduling module need further optimization, and a final scheduling decision is made to deploy the microservice to be scheduled on an appropriate edge target server. The global resource balancing module receives the scoring results from the communication-aware scheduling module and monitors the resource occupancy of all edge servers in real time, making optimal scheduling decisions for microservice deployment using a global resource balancing optimization algorithm.
[0047] Preferably, the maximum tolerance for resource disparity is the maximum acceptable level of imbalance between CPU and memory usage on the edge server. This value needs to be set reasonably based on the actual resource requirements of the microservice operation and the load of the edge server. If this value is set too high, the edge server resources will not be fully utilized; if this value is set too low, the edge server load will be too high, affecting the normal operation of the microservice.
[0048] Preferably, the method for determining when the resource gap between edge servers exceeds the maximum tolerance is as follows: The available capacity of CPU and memory on the edge server is represented by AvaCPU and AvaMem, respectively; the total amount of CPU and memory on the edge server is represented by TotalCPU and TotalMem, respectively; the maximum tolerance for resource gap is represented by θ; and the constraint equation for when the resource gap between edge servers exceeds the maximum tolerance is as follows:
[0049]
[0050] Preferably, when the resource disparity within the edge servers exceeds the maximum tolerance, the optimization method for the global resource balancing module's score based on the communication-aware scheduling module's evaluation result is as follows: To better balance the impact of inter-service communication volume and edge server resources on the global resource balancing optimization algorithm, a communication and resource weighting coefficient is introduced to calculate the optimized edge server score. The communication and resource weighting coefficient needs to be set based on the resource requirements of the microservices and the total resources of the edge servers. A reasonable setting of this parameter can effectively reduce the response latency between microservices. First, the global resource balancing module calculates the edge server score based on the resource occupancy on the edge servers. Then, it combines the communication and resource weighting coefficients with the evaluation result from the communication-aware scheduling module to optimize the edge server score, which serves as the basis for the final scheduling decision.
[0051] Preferably, the global resource balancing module scores edge servers as follows: The percentage of CPU and memory requests made by microservices relative to the total CPU and memory usage on the edge servers is represented by MicCPU and MicMem, respectively. The score given by the global resource balancing module to the edge servers is represented by a Score. Res Score Res The calculation formula is as follows:
[0052] Score Res =(1-|MicCpu-MicMem|)×10 (3)
[0053] Preferably, the optimization method for the global resource balancing module's scoring result of the communication-aware scheduling module is as follows: γ is used to represent the weight coefficients of communication and resources, and Score is used to represent the scoring result of the communication-aware scheduling module. com This indicates that the final score for the edge server will be represented by a Score, calculated using the following formula:
[0054] Score = γ × Score Com +(1-γ)×Score Res (4)
[0055] The specific content of the global resource balancing optimization algorithm is as follows: First, the communication-aware scheduling module needs to consider the resource request volume between microservices when making initial scheduling decisions. The global resource balancing module also needs to use this value when further optimizing the scheduling decision of the communication-aware scheduling module. Therefore, the global resource balancing module obtains the resource request volume of the microservice to be scheduled and obtains the changes in the available resources of the edge server in real time. It judges whether the resource balance of the edge server is within an acceptable range by the resource utilization rate and scores the edge server accordingly. For each microservice to be scheduled, the absolute value of the difference between the microservice's CPU request value as a percentage of the total available CPU on the edge server and the microservice's memory request value as a percentage of the total available memory on the edge server is calculated based on its resource request volume. If this value is greater than the maximum tolerance for resource gap, the final score of the edge server needs to be further optimized in conjunction with the score of the communication-aware scheduling module to make the final scheduling decision; if this value does not exceed the maximum tolerance for resource gap, that is, the current resource utilization of the edge server is relatively balanced, the scheduling decision of the microservice is based on the score of the communication-aware scheduling module, that is, the scheduling result of the communication-aware scheduling module is used as the final scheduling decision. The pseudocode of the global resource balancing optimization algorithm is shown below:
[0056]
[0057]
[0058] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0059] like Figure 2 As shown, this invention discloses a communication and resource-aware microservice scheduling system for cloud-native applications. This invention is implemented based on Kubernetes v1.17; specifically, it achieves the desired scheduling functionality by adding the implemented scheduling plugins at scalable points in the scheduling cycle on top of the Kubernetes scheduling framework.
[0060] This invention comprises two parts: a communication-aware scheduling module and a global resource balancing module. The communication-aware scheduling module monitors the communication volume between microservices and uses a communication-aware scheduling optimization algorithm to deploy frequently communicating microservices on the same server as a preliminary scheduling decision. The global resource balancing module collects the resource request volume of the microservices to be scheduled and the resource occupancy of the edge servers in real time. It scores the edge servers using a global resource balancing optimization algorithm and further optimizes the above preliminary scheduling decision to deploy the microservices to be scheduled on appropriate edge target servers.
[0061] The communication-aware scheduling module comprises two parts: a communication volume monitoring module and a communication-aware scheduling optimization algorithm module. The communication volume monitoring module is responsible for collecting the number of bytes in the request and response process between microservices; the communication-aware scheduling optimization algorithm module is responsible for making preliminary scheduling decisions based on the communication volume between microservices.
[0062] The aforementioned traffic monitoring module adds concurrent threads at the Post-filter scalability point in Kubernetes to obtain the number of bytes in the request and response process of microservices, namely request.bytes and response.bytes of each microservice. It also obtains the resource availability of edge servers, namely cpu.available and memory.available of the edge servers, and stores them in CycleState.
[0063] The communication-aware scheduling optimization algorithm module implements the communication-aware scheduling optimization algorithm function on the Score scalable node in Kubernetes. It obtains the number of bytes in the request and response process of the microservice from CycleState as the input of the function, and the score of the edge server by the communication-aware scheduling optimization algorithm is used as the output of the function. The score of the edge server is then normalized by the NormalizeScore scalable node in Kubernetes. Finally, a preliminary scheduling decision is made based on the resource availability of the edge server.
[0064] The global resource balancing module comprises two parts: a server resource monitoring module and a global resource balancing optimization algorithm module. The server resource monitoring module is responsible for collecting the resource request volume of microservices and the resource availability of edge servers. The global resource balancing optimization algorithm module is responsible for further optimizing the scheduling decision of the communication-aware scheduling module based on the resource occupancy of edge servers, and scheduling microservices to appropriate edge servers.
[0065] The server resource monitoring module adds concurrent threads at the Post-filter scalability point in Kubernetes to obtain the resource request volume of microservices (i.e., resources.requests.cpu and resources.requests.memory for each microservice) and the resource availability of edge servers (i.e., cpu.available and memory.available for each edge server), and stores this information in CycleState. Since the CPU and memory sizes of the edge servers are known, the resource usage of the edge servers can be obtained.
[0066] The global resource balancing optimization algorithm module implements the algorithm function on the Score scalable node in Kubernetes. It takes the resource request volume of microservices and the resource availability of edge servers from CycleState, as well as the scoring results of the edge servers from the communication-aware scheduling module, as inputs to the function. The optimized scoring results are outputs, and finally, the microservices are scheduled to appropriate edge servers based on the optimized scoring results. The parameter communication and resource weighting coefficients and the maximum tolerance for resource gaps in the global resource balancing optimization algorithm are set according to the performance requirements of cloud-native applications and the resource conditions of the deployment environment.
[0067] This invention presents a real-world edge cloud experimental platform and tests it using the open-source microservice-based teacher typesetting system Staffjoy, comparing it with Kubernetes' default scheduling strategy and the state-of-the-art microservice deployment framework Nautilus. The edge cloud experimental platform consists of one cloud server host (configured as an Intel Core i9-12900@3.20GHz, 6 cores, 8GB RAM) and three edge server hosts (configured as follows: Intel Core i5-6500@3.20GHz, 4 cores, 8GB RAM; Intel Core i9-12900@3.20GHz, 4 cores, 8GB RAM; Intel Core i7-4700@3.20GHz, 4 cores, 8GB RAM). The teacher typesetting system Staffjoy used in this invention comprises nine microservices: bot, email, www, app, myaccount, whoami, company, account, and faraday. In this invention example, the weight coefficients of communication and resources in the global resource balancing optimization algorithm are set to 0.52, and the maximum tolerance for resource gaps is set to 0.1.
[0068] Compared with the default scheduling strategy of Kubernetes and Nautilus, the communication and resource-aware microservice scheduling system for cloud-native applications adopted in this invention reduces communication latency by 17.32% and 29.61% respectively; and reduces resource consumption difference by 2.54% and 39.39% under low load, and by 48.29% and 3.26 times under high load.
[0069] The beneficial effects of this invention are: it can deploy frequently communicating microservices on the same edge server based on the communication volume between microservices; for microservices to be scheduled, it can make optimal scheduling decisions based on resource request volume and edge server resource occupancy. This invention fully considers the resource requirements of microservice operation, effectively reduces communication overhead between microservices, improves microservice response speed, balances resource allocation on edge servers, and meets the QoS requirements of cloud-native application users.
[0070] The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the protection scope of the present invention.
Claims
1. A communication and resource-aware microservice scheduling system for cloud-native applications, characterized in that: include: The communication-aware scheduling module and the global resource balancing module are connected together. The communication-aware scheduling module is used to monitor the communication volume between microservices and deploy microservices with frequent communication on the same server through the communication-aware scheduling optimization algorithm as an initial scheduling decision. The global resource balancing module is used to collect the resource request volume of the microservices to be scheduled and the resource usage of the edge servers in real time. It scores the edge servers through the global resource balancing optimization algorithm and further optimizes the preliminary scheduling decision to deploy the microservices to be scheduled on the edge target servers. The global resource balancing and optimization algorithm is as follows: First, the global resource balancing module obtains the resource request volume of the microservices to be scheduled and obtains the changes in available resources of the edge servers in real time. Then, the resource utilization rate is used to determine whether the resource balance of the edge server is within an acceptable range, and the edge server is scored accordingly. Finally, for each microservice to be scheduled, the absolute value of the difference between the microservice's CPU request value as a percentage of the total available CPUs on the edge server and the microservice's memory request value as a percentage of the total available memory on the edge server is calculated based on its resource request volume. If this value is greater than the maximum tolerance for resource gap, the final score of the edge server needs to be further optimized in conjunction with the score of the communication-aware scheduling module to make the final scheduling decision. If this value does not exceed the maximum tolerance for resource gap, that is, the current resource utilization of the edge server is relatively balanced, the scheduling decision of the microservice is based on the score of the communication-aware scheduling module, that is, the scheduling result of the communication-aware scheduling module is used as the final scheduling decision.
2. The communication and resource-aware microservice scheduling system for cloud-native applications as described in claim 1, characterized in that: The working process of the communication-aware scheduling module is as follows: Based on the microservice topology diagram of the cloud-native application, collect the number of bytes transmitted during the request and response process between microservices, and calculate the communication volume between microservices based on this. When the communication-aware scheduling module receives a scheduling request from the cloud server, it uses the communication-aware scheduling optimization algorithm to score the edge server and makes a preliminary scheduling decision based on the resource usage of the edge server.
3. A communication and resource-aware microservice scheduling system for cloud-native applications as described in claim 1 or 2, characterized in that: The communication-aware scheduling optimization algorithm is as follows: First, obtain the microservice ComMic that communicates with the microservice m to be scheduled, and then obtain the microservice ExistMic that has been deployed on the edge server n. ComMic and ExistMic are sets of microservices, representing all microservices that communicate with m and all microservices that already exist on the edge server n, respectively. Then, each microservice belonging to the cloud-native application has an independent application tag and namespace. Based on the application tag and namespace, it is determined whether each microservice in ComMic is successfully matched with each microservice in ExistMic, and the communication volume between each successfully matched pair of microservices is queried. Finally, by summing up the communication volume of all successfully matched microservice combinations, the score of edge server n can be obtained. This score is then normalized, and the edge server with the highest score is selected as the result of this scheduling.
4. A communication and resource-aware microservice scheduling system for cloud-native applications as described in claim 1, characterized in that: The method for calculating communication traffic between microservices is as follows: For the topology between microservices, an undirected graph is used. =( , ) indicates that among them Represents a collection of microservices. This represents communication between microservices; for microservices , ∈ ,exist ∈ Time, communication volume The calculation formula is as follows: (1) in, microservices To microservices Number of bytes transferred during the request process microservices To microservices The number of bytes transmitted during the response process. This indicates that for microservices and microservices During the running cycle traffic within.
5. A communication and resource-aware microservice scheduling system for cloud-native applications as described in claim 1, characterized in that: The formula for determining whether the resource gap between edge servers exceeds the maximum tolerance is: (2) Where AvaCPU and AvaMem represent the available CPU and memory capacity of the edge server, respectively, and TotalCPU and TotalMem represent the total CPU and memory of the edge server, respectively. This indicates the maximum tolerance level for resource disparities.
6. The communication and resource-aware microservice scheduling system for cloud-native applications as described in claim 1, characterized in that: When the resource disparity within the edge servers exceeds the maximum tolerance, the optimization method for the global resource balancing module's score on the communication-aware scheduling module is as follows: First, the global resource balancing module calculates the edge server's score based on the resource usage on the edge server. Then, it optimizes the edge server's score by combining the introduced communication and resource weighting coefficients with the scoring results of the communication-aware scheduling module, which serves as the basis for the final scheduling decision. The communication and resource weighting coefficients need to be set according to the resource requirements of the microservices and the total resources of the edge servers.
7. A communication and resource-aware microservice scheduling system for cloud-native applications as described in claim 1, characterized in that: The scoring formula for edge servers by the global resource balancing module is as follows: (3) Wherein, MicCPU and MicMem represent the percentage of CPU and memory requests made by a microservice within the total CPU and memory usage of the edge server, respectively. This indicates the score given to the edge server by the global resource balancing module.
8. A communication and resource-aware microservice scheduling system for cloud-native applications as described in claim 1, characterized in that: The optimization formula for the global resource balancing module's score on the communication-aware scheduling module is as follows: (4) in, The weighting coefficients represent the relationship between communication and resources. This indicates the scoring result of the communication-aware scheduling module. This represents the final score of the edge server. This indicates the score given to the edge server by the global resource balancing module.
Citation Information
Patent Citations
Distributed deployment method and system of application system
CN115994030A