Workload-aware container and virtual machine hybrid scheduling method and system

Dynamically select containers or virtual machines through workload-aware methods, realize joint management and resource scheduling between containers and virtual machines, solve the complexity of resource separation and scheduling in the existing technology, and improve resource utilization and failure recovery capabilities.

CN119883577AActive Publication Date: 2025-04-25NAT UNIV OF DEFENSE TECH
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
CN202510372908.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-03-27
Publication Date
2025-04-25
Estimated Expiration
2045-03-27

AI Technical Summary

Technical Problem

The existing hybrid scheduling technology of container and virtual machine has problems of resource separation and scheduling complexity, making it difficult to achieve efficient resource utilization and flexible resource scheduling.

Method used

Using a workload-aware method, we collect resource information of the resource pool and resource request information of the application, analyze workload characteristics, dynamically select containers or virtual machines as publishing types, generate allocated resource information and publishing node information, and realize joint management and resource scheduling between containers and virtual machines.

Benefits of technology

It improves the flexibility, resource utilization and fault recovery capabilities of the hybrid scheduling system of containers and virtual machines, simplifies operation and maintenance work, and realizes seamless cross-platform migration and dynamic load balancing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119883577A_ABST
    Figure CN119883577A_ABST
Patent Text Reader

Abstract

The invention discloses a workload-aware container and virtual machine hybrid scheduling method and system, and the method comprises the steps: collecting the resource information of a resource pool, and enabling the resource pool to be used for the unified management of the physical resources of a plurality of nodes; acquiring application resource request information of the application; the request type is judged according to the application information contained in the application resource request information of the application, and if the request type is that the application is requested to be published, the workload characteristics of the application are analyzed according to the application resource request information and the current resource information of the resource pool; issuing type information is dynamically selected as a container or a virtual machine according to working load characteristics of the application, and allocation resource information and issuing node information of the application are scheduled and generated; and issuing the application to a node corresponding to the issuing node information. The method aims at solving the problems of resource splitting and scheduling complexity in an existing scheme, and the flexibility, the resource utilization rate and the fault recovery capability of a container and virtual machine mixed scheduling system are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to virtualization technology in the computer field, and in particular to a workload-aware container and virtual machine hybrid scheduling method and system. Background Art

[0002] Container is a lightweight virtualization technology that can package applications and their dependent libraries, environments, etc. into an executable unit, thereby achieving cross-platform and cross-environment deployment and operation. Container technology can provide system administrators with great flexibility in the process of building instances on demand, and has become a widely recognized way to share server resources. Virtual machines are software technology that allows multiple virtual computers to be simulated on a physical computer. Each virtual machine can run its own operating system and applications, just like on an independent physical computer. Virtual machines achieve this goal by abstracting the computer's hardware resources (such as CPU, memory, and hard disk) through virtualization technology.

[0003] At present, the hybrid scheduling technology of containers and virtual machines is developing rapidly, but it still faces some core challenges and limitations. Hybrid scheduling refers to running containers and virtual machines in the same environment at the same time, and using the scheduling system to effectively manage resources and allocate tasks. The existing hybrid scheduling technologies mainly include the following: a. Independent but parallel scheduling framework. Most current hybrid scheduling implementations rely on multiple independent orchestration and management tools (such as Kubernetes for managing containers, OpenStack or vSphere for managing virtual machines). These tools usually operate independently and do not implement true joint scheduling, resulting in limited coordination and resource sharing capabilities between containers and virtual machines. The primary form of hybrid scheduling is usually to deploy containers and virtual machines separately on the same infrastructure, but they still have independent management and scheduling systems. This parallel operation method will increase the complexity of operation and maintenance, especially in multi-tenant and multi-environment, the management workload will increase rapidly.

[0004] b. Resource allocation based on static configuration. Existing scheduling methods mainly rely on static resource allocation. The scheduling system will allocate fixed resources for containers and virtual machines in advance, and cannot dynamically adjust resource usage according to the actual load. This static configuration may lead to insufficient or wasted resources in a certain period of time. Although some systems can be manually adjusted or reallocated through preset rules, this usually requires the intervention of operation and maintenance personnel and lacks automation and flexibility.

[0005] c. Limited dynamic scheduling and automatic expansion. Container management tools (such as Kubernetes) have strong elasticity and dynamic expansion capabilities, and can automatically adjust the number and allocation of containers according to load requirements. However, the elastic expansion of virtual machines is relatively slow and usually requires more resource management steps, resulting in less flexibility than containers when handling dynamically changing workloads. In a hybrid environment, when workloads need to migrate between containers and virtual machines, the limitations of existing scheduling systems will become more obvious, making it difficult to achieve real-time response and adaptive resource adjustments.

[0006] In summary, the existing hybrid scheduling technology for containers and virtual machines is still in its early stages, and it is difficult to achieve highly optimized resource scheduling and system performance in large-scale multi-tenant environments. Most of the current hybrid scheduling implementations rely on multiple independent orchestration and management tools, which usually operate independently and do not achieve true joint scheduling, resulting in limited coordination and resource sharing capabilities between containers and virtual machines. The primary form of hybrid scheduling is usually to deploy containers and virtual machines on the same infrastructure, but they still have independent management and scheduling systems. This parallel operation will increase the complexity of operation and maintenance, especially in multi-tenant and multi-environment, the management workload will increase rapidly. The existing hybrid scheduling technology for containers and virtual machines has the following main defects: 1) Resource utilization efficiency: The independent scheduling of containers and virtual machines makes it difficult for the system to optimize resource utilization globally. Containers are generally more suitable for short-term tasks and light workloads, while virtual machines are suitable for tasks that require long-term operation and applications with persistent storage. In the existing solutions, due to the fragmentation of resource pools, resources are often wasted. 2) Workload characteristic mismatch: In a hybrid scheduling system, some workloads may be more suitable for running in virtual machines or containers, but due to the lack of analytical capabilities of the scheduling system, workloads may be incorrectly assigned to containers or virtual machines, resulting in performance degradation. 3) Insufficient fault recovery capabilities: In a hybrid scheduling environment, containers and virtual machines often lack unified fault recovery capabilities, resulting in limited overall fault recovery capabilities of the system. In particular, when emergency situations need to be handled quickly, the system's response time may not be sufficient to meet business needs. In current systems, the lack of fault recovery capabilities will affect the reliability of the overall system. Summary of the invention

[0007] Technical problem to be solved by the present invention: In view of the above-mentioned problems in the prior art, a workload-aware container and virtual machine hybrid scheduling method and system are provided. The present invention aims to solve the problems of resource fragmentation and scheduling complexity in the existing solutions, and to improve the flexibility, resource utilization and fault recovery capability of the container and virtual machine hybrid scheduling system.

[0008] In order to solve the above technical problems, the technical solution adopted by the present invention is: A workload-aware container and virtual machine hybrid scheduling method includes the following steps: Collecting resource information of a resource pool, where the resource pool is used to uniformly manage physical resources of multiple nodes; Get application resource request information of the application; Determine the request type according to the application information contained in the application resource request information of the application. If the request type is a request to publish the application, jump to the next step. Analyze the workload characteristics of the application based on the application resource request information and the current resource information of the resource pool, dynamically select the publishing type information as container or virtual machine according to the workload characteristics of the application, and schedule and generate the allocated resource information and publishing node information of the application; According to the application information and its publishing type information, allocated resource information and publishing node information of the application, the application is published to the node corresponding to the publishing node information to complete the publishing operation of the application.

[0009] Optionally, the resource information of the resource pool refers to the current resource information of each node in the resource pool, and the resource information includes the idle resource information, container resource usage information and virtual machine resource usage information of the node, and the container resource usage information includes the CPU container resource value, the memory container resource value, the disk container resource value and the network container resource value; the virtual machine resource usage information includes the CPU virtual machine resource value, the memory virtual machine resource value, the disk virtual machine resource value and the network virtual machine resource value; the idle resource information includes the CPU idle resource value, the memory idle resource value, the disk idle resource value and the network idle resource value; the application resource request information includes application information, CPU request resource value, memory request resource value, disk request resource value and network request resource value information.

[0010] Optionally, analyzing the workload characteristics of the application based on the application resource request information and the current resource information of the resource pool, and dynamically selecting the publishing type information as a container or a virtual machine according to the workload characteristics of the application includes: The CPU container resource value, memory container resource value, disk container resource value, and network container resource value in the container resource usage information are averaged to obtain the average container usage; Calculate the average of the CPU virtual machine resource value, the memory virtual machine resource value, the disk virtual machine resource value, and the network virtual machine resource value in the virtual machine resource usage information to obtain the average virtual machine usage; Divide the average container usage by the average virtual machine usage to get the resource usage ratio value; Determine whether the resource usage ratio value is greater than a preset maximum threshold value, and obtain a sixth determination result; When the sixth judgment result is yes, determine that the virtual machine type is publishing type information; when the sixth judgment result is no, determine whether the resource usage ratio value is less than a preset minimum threshold value to obtain a seventh judgment result; When the result of the seventh judgment is yes, the container type is determined to be the publishing type information; when the result of the seventh judgment is no, the application load characteristic information is judged: when the application load characteristic information is compute intensive, the container type is determined to be the publishing type information; when the application load characteristic information is memory intensive, the virtual machine type is determined to be the publishing type information; when the application load characteristic information is disk IO intensive, the virtual machine type is determined to be the publishing type information; when the application load characteristic information is network IO intensive, the container type is determined to be the publishing type information.

[0011] Optionally, when the scheduling generates the allocated resource information and the publishing node information of the application, the scheduling generates the allocated resource information of the application includes: S411, obtaining a historical application running resource set, wherein the historical application running resource set includes N historical application running resource information sets and historical application IDs corresponding to the historical application running resource information sets; the historical application running resource information set includes a number of historical application running resource information; N is a positive integer; S412, initializing and setting the value of variable s to 1; S413, judging whether the historical application ID corresponding to the sth historical application operation resource information set in the historical application operation resource set is consistent with the application ID of the application, and obtaining a second judgment result; when the second judgment result is yes, determining the sth historical application operation resource information set as the historical application operation resource information set to be processed; when the second judgment result is no, judging whether the variable s is equal to N, and obtaining a third judgment result: when the third judgment result is yes, executing step S414; when the third judgment result is no, increasing the variable s by 1, and executing step S413; S414, judging whether the variable s is equal to N, and obtaining a fourth judgment result: when the fourth judgment result is no, executing S415; when the fourth judgment result is yes, executing step S416; S415, calculating and processing the historical application operation resource information set to be processed to obtain the resource allocation information of the application, including: S4151, performing data cleaning processing on the historical application operation resource information set to be processed to obtain the pre-processed historical application operation resource information set; S4152, using a resource prediction model, calculating and processing the pre-processed historical application operation resource information set to obtain the resource allocation information of the application; the function expression of the resource prediction model is: , , , , , in, For this application The first physical resource Resource allocation information, For this application The first physical resource Resource allocation information, , and Respectively The first physical resource a first smooth component, a second smooth component and a third smooth component, , and Respectively The first physical resource a first smooth component, a second smooth component and a third smooth component, For the The first physical resource The second smoothing component, , and are respectively the preset first smoothing coefficient, the second smoothing coefficient and the third smoothing coefficient, The number of historical application running resource information in the preprocessing historical application running resource information set, It is the type index of physical resources. The types of physical resources include CPU, memory, disk and network, and there are: , , , , in, and To pre-process the first and second historical application running resource information in the historical application running resource information set, For the The first smooth component of the first physical resource; end; S416, calculating and processing the application resource request information to obtain the resource allocation information of the application, including: S4161, judging whether the application priority information is a high priority, and obtaining a fifth judgment result; when the fifth judgment result is yes, executing S4162; when the fifth judgment result is no, determining that the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information are respectively the CPU pre-allocated value, the memory pre-allocated value, the disk pre-allocated value, and the network pre-allocated value, and executing S4163; S4162, using the first scheduling calculation model, calculating and processing the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information to obtain the CPU pre-allocated value, the memory pre-allocated value, the disk pre-allocated value, and the network pre-allocated value; wherein the function expression of the first scheduling calculation model is: , , , , in, , , and They are CPU pre-allocation value, memory pre-allocation value, disk pre-allocation value, and network pre-allocation value. , , and They are CPU request resource value, memory request resource value, disk request resource value, and network request resource value. , , and are respectively a preset first weight parameter, a second weight parameter, a third weight parameter and a fourth weight parameter, and are all greater than 1; S4163, judging the application load characteristic information: when the application load characteristic information is compute-intensive, multiplying the CPU pre-allocation value by the preset fifth weight parameter to obtain an updated CPU pre-allocation value, and determining the updated CPU pre-allocation value to be the CPU pre-allocation value; when the application load characteristic information is memory-intensive, multiplying the memory pre-allocation value by the preset sixth weight parameter to obtain an updated memory pre-allocation value, and determining the updated memory pre-allocation value to be the memory pre-allocation value; when the application load characteristic information is disk IO intensive, multiplying the disk pre-allocation value by the preset seventh weight parameter to obtain an updated disk pre-allocation value, and determining the updated disk pre-allocation value to be the disk pre-allocation value; when the application load characteristic information is network IO intensive, multiplying the network pre-allocation value by the preset eighth weight parameter to obtain an updated network pre-allocation value, and determining the updated network pre-allocation value to be the network pre-allocation value; S4164, merging the CPU pre-allocation value, the memory pre-allocation value, the disk pre-allocation value, and the network pre-allocation value to obtain the resource allocation information of the application.

[0012] Optionally, when the scheduling generates the allocation resource information and the publishing node information of the application, the scheduling generates the publishing node information of the application includes: Screening L idle resource information in the current resource information of the resource pool to obtain a preprocessing idle resource information set; the preprocessing idle resource information set includes a plurality of preprocessing idle resource information; the CPU idle resource value, the memory idle resource value, the disk idle resource value, and the network idle resource value in the preprocessing idle resource information are all greater than the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information; Judge the application load characteristic information: when the application load characteristic information is computationally intensive, determine the CPU idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; when the application load characteristic information is memory intensive, determine the memory idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; when the application load characteristic information is disk IO intensive, determine the disk idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; when the application load characteristic information is network IO intensive, determine the network idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; Sorting all pre-processed idle resource information in descending order of main resource values ​​in the pre-processed idle resource information to obtain a target idle resource information set; The node corresponding to the first pre-processed idle resource information in the target idle resource information set is determined as the publishing node information.

[0013] Optionally, the determining the request type according to the application information included in the application resource request information of the application includes: determining whether the application identification information in the application information of the application is consistent with preset application type information, to obtain a first determination result; When the first determination result is yes, determining that the request type is a request to publish the application; When the first determination result is no, determining that the request type is a request to perform a migration operation on the application; The request type is a request to perform a migration operation on the application, and further includes performing a migration operation on the application to implement a self-healing function of the failed application.

[0014] Optionally, performing a migration operation on the application to achieve a self-healing function of the failed application includes: Obtain migration type information of the application, where the migration type information of the application is a virtual machine or a container; A preprocessing idle resource information set is screened out according to the current resource information of the resource pool, wherein the preprocessing idle resource information set includes a plurality of preprocessing idle resource information, wherein a CPU idle resource value, a memory idle resource value, a disk idle resource value, and a network idle resource value in the preprocessing idle resource information are respectively greater than a CPU request resource value, a memory request resource value, a disk request resource value, and a network request resource value in the application resource request information; The pre-processed idle resource information set is calculated to obtain the migration node information, including: using the second scheduling calculation model to calculate the pre-processed idle resource information set to obtain the idle resource threshold set ; Idle resource threshold set Including several idle resource thresholds; the function expression of the second scheduling calculation model is: , In the above formula, Idle resource threshold set The i-th idle resource threshold in; , , and is the CPU idle resource value, memory idle resource value, disk idle resource value, and network idle resource value of the i-th preprocessing idle resource information in the preprocessing idle resource information set, and L is the number of elements in the preprocessing idle resource information set; All idle resource thresholds are sorted in descending order to obtain a target idle resource threshold set; Determine the node corresponding to the first target idle resource threshold in the target idle resource threshold set as the migration node information; According to the migration type information and application resource request information of the application, the application is migrated to the node corresponding to the migration node information.

[0015] In addition, the present invention also provides a workload-aware container and virtual machine hybrid scheduling system, including an interconnected microprocessor and a memory, wherein the microprocessor is programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method.

[0016] In addition, the present invention also provides a computer-readable storage medium, which stores a computer program or instruction, and the computer program or instruction is programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method through a processor.

[0017] In addition, the present invention also provides a computer program product, including a computer program or instructions, which are programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method through a processor.

[0018] Compared with the prior art, the present invention mainly has the following advantages: 1. The present invention provides a unified scheduling method for containers and virtual machines, which supports the simultaneous scheduling of containers and virtual machines. By abstracting the underlying resources, all physical resources (CPU, memory, disk, network) are managed and allocated in a unified manner, and the joint management of containers and virtual machines is achieved by adopting a unified scheduling system, which greatly simplifies the operation and maintenance work.

[0019] 2. The method of the present invention can analyze the characteristics of workloads (such as CPU intensive, memory intensive, network IO intensive, disk IO intensive), and dynamically select the best operating environment (container or virtual machine) according to the workload requirements, introduce a resource allocation mechanism, adjust resource utilization according to real-time load, and avoid the inefficiency of static configuration; it can automatically identify workload characteristics, select the optimal execution environment, and improve the overall performance of the system.

[0020] 3. The present invention can further integrate automated fault detection and self-healing functions. When an application fails, the system can automatically select a recovery strategy (such as migrating workloads), strengthen automatic fault detection and self-healing capabilities, and ensure business continuity; support seamless migration and dynamic load balancing across platforms, and achieve efficient scheduling and utilization of resources in a cloud environment. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] Figure 1 Schematic diagram of the basic flow of the method of the embodiment of the present invention.

[0022] Figure 2 Schematic diagram of the system module structure in an embodiment of the present invention.

[0023] Figure 3 The present invention is a complete flowchart of a method including application migration to realize a self-healing function of a faulty application. DETAILED DESCRIPTION

[0024] In order to enable those skilled in the art to better understand the technical solution of the present invention, the technical solution of the present invention will be further described in detail below in conjunction with the accompanying drawings in the embodiments of the present invention.

[0025] like Figure 1 As shown, the workload-aware container and virtual machine hybrid scheduling method of this embodiment includes the following steps: S1, collecting resource information of a resource pool, where the resource pool is used to uniformly manage physical resources of multiple nodes; S2, obtaining application resource request information of the application; S3, judging the request type according to the application information contained in the application resource request information of the application, and if the request type is a request to publish the application, jumping to the next step; S4, analyzing the workload characteristics of the application based on the application resource request information and the current resource information of the resource pool, dynamically selecting the publishing type information as a container or a virtual machine according to the workload characteristics of the application, and scheduling and generating the allocation resource information and publishing node information of the application; S5, according to the application information and its publishing type information, allocated resource information and publishing node information of the application, the application is published to the node corresponding to the publishing node information, and the publishing operation of the application is completed.

[0026] The method of this embodiment realizes efficient hybrid scheduling of containers and virtual machines through resource analysis, coordinated scheduling, dynamic resource allocation and other mechanisms at the scheduling level. This scheduling method can ensure efficient utilization of resources and meet the needs of different tasks to the greatest extent. Figure 2As shown, the scheduling system in this embodiment includes a unified resource pool module, a resource management module and an execution module. The unified resource pool module is used to pool physical resources uniformly, collect resource information in the unified resource pool, and send the resource information to the resource management module; after the resource management module obtains the resource information, it receives the application resource request information, and after analyzing the resource information and the application resource request information, determines the publishing type information and publishing node information required for the application resource request information, and sends the publishing type information and publishing node information to the execution module; after the execution module receives the publishing type information and publishing node information, it calls the API publishing interface according to the publishing type information to publish the application to the corresponding node. In addition, when an application fails, the resource management module receives the application information of the failed application, analyzes the migration type information of the failed application and the required migration node information, and sends the migration type information of the failed application and the required migration node information to the execution module. After the execution module receives the migration type information of the failed application and the required migration node information, it calls the API migration interface according to the migration type information of the failed application, migrates the failed application to the node corresponding to the migration node information, and realizes the failure recovery of the application, so as to provide flexible scheduling support in the case of failure.

[0027] When collecting resource information of the resource pool in step S1 of this embodiment, the resource information of the resource pool refers to the current resource information of each (L) node in the resource pool, and the resource information includes the idle resource information, container resource usage information and virtual machine resource usage information of the node, and the container resource usage information includes the CPU container resource value, the memory container resource value, the disk container resource value and the network container resource value; the virtual machine resource usage information includes the CPU virtual machine resource value, the memory virtual machine resource value, the disk virtual machine resource value and the network virtual machine resource value; the idle resource information includes the CPU idle resource value, the memory idle resource value, the disk idle resource value and the network idle resource value.

[0028] It should be noted that the resource information in the resource pool may be collected through tools such as Prometheus and Monasca, or through other collection tools, which is not specifically limited in the present invention.

[0029] It should be noted that a resource pool is a resource collection composed of multiple nodes, wherein each node in the resource pool can run both containers and virtual machines. Nodes include but are not limited to servers, desktops, notebooks, embedded devices, tablets, and virtual machines. Multiple nodes can be pooled through Kubernetes, OpenStack, or other resource management tools to obtain a unified resource pool, and the containers and virtual machines in the resource pool are uniformly managed. Specifically, the embodiments of the present invention do not limit this.

[0030] It should be noted that the container resource usage information is the resource information occupied by the containers running on all nodes in the resource pool; the virtual machine resource usage information is the resource information occupied by the virtual machines running on all nodes in the resource pool.

[0031] It should be noted that the L idle resource information represents the idle resource information of L nodes in the resource pool, and each node corresponds to one idle resource information. L is the total number of nodes in the resource pool.

[0032] When obtaining the application resource request information of the application in step S2 of this embodiment, the application resource request information includes application information, CPU request resource value, memory request resource value, disk request resource value and network request resource value, wherein the application information includes application identification information, application configuration information, application ID, application priority information, application operating environment information and application load characteristic information (including compute intensive, memory intensive, disk IO intensive, network IO intensive).

[0033] like Figure 3 As shown, in step S3 of this embodiment, judging the request type according to the application information included in the application resource request information of the application includes: judging whether the application identification information in the application information of the application is consistent with the preset application type information, and obtaining a first judgment result; When the first judgment result is yes, it is determined that the request type is a request to publish the application, that is, S4 is executed; When the first determination result is no, determining that the request type is a request to perform a migration operation on the application; The request type is to request to perform a migration operation on the application, and also includes performing a migration operation on the application to realize the self-healing function of the faulty application. It should be noted that when the application identification information is consistent with the preset application type information, it means that the application is a new application, and the application is subsequently released; when the application identification information is inconsistent with the preset application type information, it means that the application is a faulty application, and the application is subsequently migrated.

[0034] In this embodiment, step S4 includes: S41, performing a first analysis and processing on the resource information and the application resource request information to obtain allocation resource information; S42, performing a second analysis on the resource information and the application resource request information to obtain release type information; S43, perform a third analysis process on the resource information and the application resource request information to obtain a pre-processed idle resource information set and publishing node information. It should be noted that the execution order of the first analysis process, the second analysis process and the third analysis process can be adjusted as needed.

[0035] In this embodiment, step S41 is used to perform the first analysis process, that is, scheduling to generate the allocated resource information of the application. Specifically, in this embodiment, scheduling to generate the allocated resource information of the application includes: S411, obtaining a historical application running resource set, wherein the historical application running resource set includes N historical application running resource information sets and historical application IDs corresponding to the historical application running resource information sets; the historical application running resource information set includes a number of historical application running resource information; N is a positive integer; S412, initializing and setting the value of variable s to 1; S413, judging whether the historical application ID corresponding to the sth historical application operation resource information set in the historical application operation resource set is consistent with the application ID of the application, and obtaining a second judgment result; when the second judgment result is yes, determining the sth historical application operation resource information set as the historical application operation resource information set to be processed; when the second judgment result is no, judging whether the variable s is equal to N, and obtaining a third judgment result: when the third judgment result is yes, executing step S414; when the third judgment result is no, increasing the variable s by 1, and executing step S413; S414, judging whether the variable s is equal to N, and obtaining a fourth judgment result: when the fourth judgment result is no, executing S415; when the fourth judgment result is yes, executing step S416; It should be noted that when the fourth judgment result is no, it means that a historical application ID matching the application ID is found in the historical application running resource set; when the fourth judgment result is yes, it means that a historical application ID matching the application ID is not found in the historical application running resource set; S415, calculating and processing the historical application running resource information set to be processed to obtain resource allocation information of the application, including: S4151, performing data cleaning processing on the historical application running resource information set to be processed to obtain a pre-processed historical application running resource information set; it should be noted that the above data cleaning processing is performed using tools such as Talend, Informatica, Apache NiFi, etc., and other tools or algorithms may also be used, which are not limited in the embodiment of the present invention; S4152, using a resource prediction model, calculating and processing the preprocessed historical application operation resource information set to obtain resource allocation information of the application; the function expression of the resource prediction model is: , , , , , in, For this application The first physical resource Resource allocation information, For this application The first physical resource Resource allocation information, , and Respectively The first physical resource a first smooth component, a second smooth component and a third smooth component, , and Respectively The first physical resource a first smooth component, a second smooth component and a third smooth component, For the The first physical resource The second smoothing component, , and are respectively the preset first smoothing coefficient, the second smoothing coefficient and the third smoothing coefficient, The number of historical application running resource information in the preprocessing historical application running resource information set, It is the type index of physical resources. The types of physical resources include CPU, memory, disk and network, and there are: , , , , in, and To pre-process the first and second historical application running resource information in the historical application running resource information set, For the The first smooth component of the first physical resource, the type index of the physical resource is a positive integer, , when the value is 1, 2, 3 and 4, the CPU historical resource value, memory historical resource value, disk historical resource value and network historical resource value in the historical application running resource information in the preprocessing historical application running resource information set are calculated respectively; end; it should be noted that the final resource allocation information obtained is: ( ), in, They are the CPU pre-allocation value, memory pre-allocation value, disk pre-allocation value, and network pre-allocation value in the resource allocation information. The above method uses the resource prediction model to predict the current application based on the historical application running resource information, which can effectively predict the trend and periodic fluctuation of resource usage and optimize short-term and long-term resource allocation. This not only improves the performance of the system, but also increases the robustness to changes in resource demand, which can significantly improve resource utilization efficiency and reduce cost waste; S416, calculating and processing the application resource request information to obtain resource allocation information of the application, including: S4161, determine whether the application priority information is a high priority, and obtain a fifth judgment result; when the fifth judgment result is yes, execute S4162; when the fifth judgment result is no, determine that the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information are respectively the CPU pre-allocated value, the memory pre-allocated value, the disk pre-allocated value, and the network pre-allocated value, and execute S4163; it should be noted that the application priority information is a high priority or a low priority; S4162, using the first scheduling calculation model, the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information are calculated and processed to obtain the CPU pre-allocated value, the memory pre-allocated value, the disk pre-allocated value, and the network pre-allocated value; wherein the function expression of the first scheduling calculation model is: , , , , in, , , and They are CPU pre-allocation value, memory pre-allocation value, disk pre-allocation value, and network pre-allocation value. , , and They are CPU request resource value, memory request resource value, disk request resource value, and network request resource value. , , and are respectively a preset first weight parameter, a second weight parameter, a third weight parameter and a fourth weight parameter, and All are greater than 1; it should be noted that the first weight parameter, the second weight parameter, the third weight parameter and the fourth weight parameter can be set by the user or obtained based on historical data, which is not limited in this embodiment. As an optional implementation, in this embodiment, the first weight parameter, the second weight parameter, the third weight parameter and the fourth weight parameter Both are 1.2; S4163, judging the application load characteristic information: when the application load characteristic information is compute-intensive, multiplying the CPU pre-allocation value by the preset fifth weight parameter to obtain an updated CPU pre-allocation value, and determining the updated CPU pre-allocation value to be the CPU pre-allocation value; when the application load characteristic information is memory-intensive, multiplying the memory pre-allocation value by the preset sixth weight parameter to obtain an updated memory pre-allocation value, and determining the updated memory pre-allocation value to be the memory pre-allocation value; when the application load characteristic information is disk IO intensive, multiplying the disk pre-allocation value by the preset seventh weight parameter to obtain an updated disk pre-allocation value, and determining the updated disk pre-allocation value to be the disk pre-allocation value; when the application load characteristic information is network IO intensive, multiplying the network pre-allocation value by the preset eighth weight parameter to obtain an updated network pre-allocation value, and determining the updated network pre-allocation value to be the network pre-allocation value; it should be noted that the fifth weight parameter, the sixth weight parameter, the seventh weight parameter and the eighth weight parameter may be set by the user, or may be obtained based on historical data, and the embodiment of the present invention does not limit this. As an optional implementation, in this embodiment, the fifth weight parameter, the sixth weight parameter, the seventh weight parameter and the eighth weight parameter are all 1.05. It should be noted that the application load characteristic information is one of computationally intensive, memory intensive, disk IO intensive or network IO intensive, and the application load characteristic information is used to characterize which type of intensive application the application is; S4164, merge the CPU pre-allocation value, memory pre-allocation value, disk pre-allocation value, and network pre-allocation value to obtain the resource allocation information of the application. For example, when the CPU pre-allocation value is 1, the memory pre-allocation value is 2, the disk pre-allocation value is 3, and the network pre-allocation value is 4, the merged resource allocation information is (1,2,3,4). Through the above method, it is possible to effectively avoid performance degradation or increased latency due to resource competition, especially in a high-concurrency or resource-constrained environment, to ensure that high-priority tasks and tasks of different intensive types are always in the best execution state, while avoiding inefficient allocation of resources in the system.

[0036] S42, performing a second analysis on the resource information and the application resource request information to obtain release type information; The second analysis process of step S42 in this embodiment is used to analyze the workload characteristics of the application based on the application resource request information and the current resource information of the resource pool, and dynamically select the publishing type information as a container or a virtual machine based on the workload characteristics of the application. Specifically, in this embodiment, the workload characteristics of the application are analyzed based on the application resource request information and the current resource information of the resource pool, and the publishing type information is dynamically selected as a container or a virtual machine based on the workload characteristics of the application, including: S421, average the CPU container resource value, the memory container resource value, the disk container resource value, and the network container resource value in the container resource usage information to obtain an average container usage; S422, averaging the CPU virtual machine resource value, the memory virtual machine resource value, the disk virtual machine resource value, and the network virtual machine resource value in the virtual machine resource usage information to obtain an average virtual machine usage; S423, dividing the average container usage by the average virtual machine usage to obtain a resource usage ratio value; S424, determining whether the resource usage ratio is greater than a preset maximum threshold, and obtaining a sixth determination result; When the sixth judgment result is yes, determine that the virtual machine type is publishing type information; when the sixth judgment result is no, determine whether the resource usage ratio value is less than a preset minimum threshold value to obtain a seventh judgment result; When the seventh judgment result is yes, determine that the container type is publishing type information; when the seventh judgment result is no, jump to step S425; As an optional implementation, in this embodiment, the preset maximum threshold is 0.8, and the preset minimum threshold is 0.2; S425, determine the application load characteristic information: when the application load characteristic information is compute intensive, determine the container type as publishing type information; when the application load characteristic information is memory intensive, determine the virtual machine type as publishing type information; when the application load characteristic information is disk IO intensive, determine the virtual machine type as publishing type information; when the application load characteristic information is network IO intensive, determine the container type as publishing type information.

[0037] This embodiment analyzes the workload characteristics of the application based on the application resource request information and the current resource information of the resource pool. The method of dynamically selecting the publishing type information as a container or a virtual machine according to the workload characteristics of the application can effectively improve resource utilization and increase the robustness of the system by selecting different operating environments according to different application load characteristic information. By publishing compute-intensive and network-intensive applications using containers, the fast startup, low overhead and elastic expansion characteristics of the container can be fully utilized to achieve efficient computing and network interaction; by publishing memory-intensive and disk IO-intensive applications using virtual machines, the stable resource allocation and isolation of the virtual machine can be utilized to ensure that these tasks obtain the best performance in a stable resource environment. Through the method of this embodiment that dynamically selects the publishing type information as a container or a virtual machine according to the workload characteristics of the application, the system can reduce costs while maintaining high performance and ensure the reliability and security of key tasks.

[0038] In this embodiment, the third analysis process in step S43 can analyze the scheduling to generate the publishing node information of the application to obtain the pre-processed idle resource information set and the publishing node information. Specifically, in this embodiment, when the scheduling generates the allocated resource information and the publishing node information of the application, the scheduling generates the publishing node information of the application including: S431, screening L idle resource information in the current resource information of the resource pool to obtain a preprocessed idle resource information set; the preprocessed idle resource information set includes a plurality of preprocessed idle resource information; the CPU idle resource value, the memory idle resource value, the disk idle resource value, and the network idle resource value in the preprocessed idle resource information are all greater than the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information; S432, judging the application load characteristic information: When the application load characteristic information is computationally intensive, determining the CPU idle resource value of the preprocessing idle resource information to be the main resource value of the preprocessing idle resource information; When the application load characteristic information is memory intensive, determining the memory idle resource value of the preprocessing idle resource information to be the main resource value of the preprocessing idle resource information; When the application load characteristic information is disk IO intensive, determining the disk idle resource value of the preprocessing idle resource information to be the main resource value of the preprocessing idle resource information; When the application load characteristic information is network IO intensive, determining the network idle resource value of the preprocessing idle resource information to be the main resource value of the preprocessing idle resource information; S433, sorting all pre-processed idle resource information in descending order of the main resource values ​​in the pre-processed idle resource information to obtain a target idle resource information set; S434: Determine the node corresponding to the first pre-processed idle resource information in the target idle resource information set as the publishing node information.

[0039] The method of scheduling and generating the publishing node information of the application in this embodiment can maximize the use of the advantageous resources of the node, avoid resource waste and uneven load distribution, improve the overall resource utilization, and reduce the performance bottleneck caused by unreasonable resource allocation.

[0040] In this embodiment, step S5 is used to publish the application to the node corresponding to the publishing node information according to the application information and its publishing type information, allocated resource information and publishing node information of the application, and complete the publishing operation of the application. It should be noted that the application is published to the node corresponding to the publishing node information according to the allocated resource information, application configuration information and publishing type information, and is created by calling the API interface for creating the application. For example, when Kubernetes is used to uniformly manage containers and virtual machines, if the publishing type information of the application is a container type, the API interface for creating a container in Kubernetes is called using the allocated resource information and application configuration information to publish the application to the node corresponding to the publishing node information; if the publishing type information of the application is a virtual machine type, the API interface for creating a virtual machine in Kubernetes is called using the allocated resource information and application configuration information to publish the application to the node corresponding to the publishing node information. Specifically, the embodiment of the present invention does not make specific limitations.

[0041] See also Figure 3 In this embodiment, performing a migration operation on the application to realize the self-healing function of the failed application includes: S6, obtaining the migration type information of the application, the migration type information of the application is a virtual machine or a container; filtering out a preprocessing idle resource information set according to the current resource information of the resource pool, the preprocessing idle resource information set including a plurality of preprocessing idle resource information, the CPU idle resource value, the memory idle resource value, the disk idle resource value, and the network idle resource value in the preprocessing idle resource information are respectively greater than the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information; it should be noted that the migration type information is one of the virtual machine or container types, and when the application is a faulty application, the migration type information is obtained based on the information of the application currently running in the resource pool, and exemplarily, it can be monitored and obtained through Prometheus or other tools, and the embodiments of the present invention are not specifically limited; S7, calculating and processing the pre-processed idle resource information set to obtain migration node information, including: S71, using the second scheduling calculation model to calculate the pre-processed idle resource information set to obtain an idle resource threshold set ; Idle resource threshold set Including several idle resource thresholds; the function expression of the second scheduling calculation model is: , In the above formula, Idle resource threshold set The i-th idle resource threshold in ; , , and is the CPU idle resource value, memory idle resource value, disk idle resource value, and network idle resource value of the i-th preprocessing idle resource information in the preprocessing idle resource information set, and L is the number of elements in the preprocessing idle resource information set; S72, sorting all idle resource thresholds in descending order to obtain a target idle resource threshold set; S73, determining that the node corresponding to the first target idle resource threshold in the target idle resource threshold set is the migration node information; through the above method, the overall resource utilization of the node can be improved, the node resources can be prevented from being idle, and at the same time, sufficient resources can be ensured for the application to achieve its maximum performance, and at the same time, the downtime or performance bottleneck caused by the node overload can be reduced, so that the load of each node is more even, the service life of the hardware can be extended, and the "hot spot" nodes in the system can be reduced; S8, migrate the application to the node corresponding to the migration node information according to the migration type information and application resource request information of the application. It should be noted that, according to the migration type information and application resource request information, the application is migrated to the node corresponding to the migration node information, which is created by calling the API interface of the migration application. For example, when Kubernetes is used to uniformly manage containers and virtual machines, if the migration type information of the application is a container type, the application resource request information is used to call the API interface of the migration container in Kubernetes to migrate the application to the node corresponding to the migration node information; if the migration type information of the application is a virtual machine type, the application resource request information is used to call the API interface of the migration virtual machine in Kubernetes to migrate the application to the node corresponding to the migration node information. Specifically, it is not limited in the embodiments of the present invention.

[0042] In summary, the method of this embodiment provides a unified scheduling method that supports simultaneous scheduling of containers and virtual machines. By abstracting the underlying resources, all physical resources (CPU, memory, disk, network) are uniformly managed and allocated. The method of this embodiment can analyze the characteristics of the workload (such as CPU intensive, memory intensive, network IO intensive, disk IO intensive), and dynamically select the best operating environment (container or virtual machine) according to the needs of the workload. The method of this embodiment integrates automated fault detection and self-healing functions. When an application fails, the system can automatically select a recovery strategy (such as migrating the workload). The method of this embodiment can effectively solve the problems of resource waste, scheduling fragmentation, and insufficient performance optimization in the prior art. Its core improvement features include: using a unified scheduling system to realize the joint management of containers and virtual machines, greatly simplifying operation and maintenance work; introducing a resource allocation mechanism to adjust resource utilization according to real-time load to avoid the inefficiency of static configuration; automatically identifying workload characteristics, selecting the optimal execution environment, and improving the overall performance of the system; strengthening fault automatic detection and self-healing capabilities to ensure business continuity; supporting seamless migration and dynamic load balancing across platforms to achieve efficient scheduling and utilization of resources in a cloud environment.

[0043] In addition, this embodiment also provides a workload-aware container and virtual machine hybrid scheduling system, including an interconnected microprocessor and a memory, wherein the microprocessor is programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method.

[0044] In addition, this embodiment also provides a computer-readable storage medium, which stores a computer program or instruction, and the computer program or instruction is programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method through a processor.

[0045] In addition, this embodiment also provides a computer program product, including a computer program or instructions, which are programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method through a processor.

[0046] Those skilled in the art should understand that the technical solutions provided by the embodiments of the present invention may be in the form of methods, systems, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present invention may take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes. The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of processes and / or boxes in the flowchart and / or block diagram, may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that instructions executed by the processor of a computer or other programmable data processing device generate instructions for implementing the functions in the process. Figure 1 A process or multiple processes and / or boxes Figure 1 These computer program instructions can also be stored in a computer-readable memory that can guide a computer or other programmable data processing device to work in a specific way, so that the instructions stored in the computer-readable memory produce a product including an instruction device, which implements the functions specified in the process. Figure 1 A process or multiple processes and / or boxes Figure 1 These computer program instructions can also be loaded onto a computer or other programmable data processing device, so that a series of operation steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide for implementing the process in the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0047] The above is only a preferred embodiment of the present invention, and the protection scope of the present invention is not limited to the above embodiments. All technical solutions under the concept of the present invention belong to the protection scope of the present invention. It should be pointed out that for ordinary technicians in this technical field, some improvements and modifications without departing from the principle of the present invention should also be regarded as the protection scope of the present invention.

Claims

1. A workload-aware container and virtual machine hybrid scheduling method, characterized in that: The steps include: Collecting resource information of a resource pool, where the resource pool is used to uniformly manage physical resources of multiple nodes; Get application resource request information of the application; Determine the request type according to the application information contained in the application resource request information of the application. If the request type is a request to publish the application, jump to the next step. Analyze the workload characteristics of the application based on the application resource request information and the current resource information of the resource pool, dynamically select the publishing type information as container or virtual machine according to the workload characteristics of the application, and schedule and generate the allocated resource information and publishing node information of the application; According to the application information and its publishing type information, allocated resource information and publishing node information of the application, the application is published to the node corresponding to the publishing node information to complete the publishing operation of the application.

2. The workload-aware container and virtual machine hybrid scheduling method according to claim 1, characterized in that: The resource information of the resource pool refers to the current resource information of each node in the resource pool, and the resource information includes the idle resource information of the node, the container resource usage information and the virtual machine resource usage information, and the container resource usage information includes the CPU container resource value, the memory container resource value, the disk container resource value and the network container resource value; the virtual machine resource usage information includes the CPU virtual machine resource value, the memory virtual machine resource value, the disk virtual machine resource value and the network virtual machine resource value; the idle resource information includes the CPU idle resource value, the memory idle resource value, the disk idle resource value and the network idle resource value; the application resource request information includes the application information, the CPU request resource value, the memory request resource value, the disk request resource value and the network request resource value information.

3. The workload-aware container and virtual machine hybrid scheduling method according to claim 2, characterized in that: Analyzing the workload characteristics of the application based on the application resource request information and the current resource information of the resource pool, and dynamically selecting the publishing type information as a container or a virtual machine according to the workload characteristics of the application includes: The CPU container resource value, memory container resource value, disk container resource value, and network container resource value in the container resource usage information are averaged to obtain the average container usage; Calculate the average of the CPU virtual machine resource value, the memory virtual machine resource value, the disk virtual machine resource value, and the network virtual machine resource value in the virtual machine resource usage information to obtain the average virtual machine usage; Divide the average container usage by the average virtual machine usage to get the resource usage ratio value; Determine whether the resource usage ratio value is greater than a preset maximum threshold value, and obtain a sixth determination result; When the sixth judgment result is yes, determine that the virtual machine type is publishing type information; when the sixth judgment result is no, determine whether the resource usage ratio value is less than a preset minimum threshold value to obtain a seventh judgment result; When the result of the seventh judgment is yes, the container type is determined to be the publishing type information; when the result of the seventh judgment is no, the application load characteristic information is judged: when the application load characteristic information is compute intensive, the container type is determined to be the publishing type information; when the application load characteristic information is memory intensive, the virtual machine type is determined to be the publishing type information; when the application load characteristic information is disk IO intensive, the virtual machine type is determined to be the publishing type information; when the application load characteristic information is network IO intensive, the container type is determined to be the publishing type information.

4. The workload-aware container and virtual machine hybrid scheduling method according to claim 2, characterized in that: When the scheduling generates the allocated resource information and the publishing node information of the application, the scheduling generates the allocated resource information of the application including: S411, obtaining a historical application running resource set, wherein the historical application running resource set includes N historical application running resource information sets and historical application IDs corresponding to the historical application running resource information sets; the historical application running resource information set includes a number of historical application running resource information; N is a positive integer; S412, initializing and setting the value of variable s to 1; S413, judging whether the historical application ID corresponding to the sth historical application operation resource information set in the historical application operation resource set is consistent with the application ID of the application, and obtaining a second judgment result; when the second judgment result is yes, determining the sth historical application operation resource information set as the historical application operation resource information set to be processed; when the second judgment result is no, judging whether the variable s is equal to N, and obtaining a third judgment result: when the third judgment result is yes, executing step S414; when the third judgment result is no, increasing the variable s by 1, and executing step S413; S414, judging whether the variable s is equal to N, and obtaining a fourth judgment result: when the fourth judgment result is no, executing S415; when the fourth judgment result is yes, executing step S416; S415, calculating and processing the historical application operation resource information set to be processed to obtain the resource allocation information of the application, including: S4151, performing data cleaning processing on the historical application operation resource information set to be processed to obtain the pre-processed historical application operation resource information set; S4152, using a resource prediction model, calculating and processing the pre-processed historical application operation resource information set to obtain the resource allocation information of the application; the function expression of the resource prediction model is: , , , , , in, For this application The first physical resource Resource allocation information, For this application The first physical resource Resource allocation information, , and Respectively The first physical resource a first smooth component, a second smooth component and a third smooth component, , and Respectively The first physical resource a first smooth component, a second smooth component and a third smooth component, For the The first physical resource The second smoothing component, , and are respectively the preset first smoothing coefficient, the second smoothing coefficient and the third smoothing coefficient, The number of historical application running resource information in the preprocessing historical application running resource information set, It is the type index of physical resources. The types of physical resources include CPU, memory, disk and network, and there are: , , , , in, and To pre-process the first and second historical application running resource information in the historical application running resource information set, For the The first smooth component of the first physical resource; end; S416, calculating and processing the application resource request information to obtain the resource allocation information of the application, including: S4161, judging whether the application priority information is a high priority, and obtaining a fifth judgment result; when the fifth judgment result is yes, executing S4162; when the fifth judgment result is no, determining that the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information are respectively the CPU pre-allocated value, the memory pre-allocated value, the disk pre-allocated value, and the network pre-allocated value, and executing S4163; S4162, using the first scheduling calculation model, calculating and processing the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information to obtain the CPU pre-allocated value, the memory pre-allocated value, the disk pre-allocated value, and the network pre-allocated value; wherein the function expression of the first scheduling calculation model is: , , , , in, , , and They are CPU pre-allocation value, memory pre-allocation value, disk pre-allocation value, and network pre-allocation value. , , and They are CPU request resource value, memory request resource value, disk request resource value, and network request resource value. , , and are respectively a preset first weight parameter, a second weight parameter, a third weight parameter and a fourth weight parameter, and are all greater than 1; S4163, judging the application load characteristic information: when the application load characteristic information is compute-intensive, multiplying the CPU pre-allocation value by the preset fifth weight parameter to obtain an updated CPU pre-allocation value, and determining the updated CPU pre-allocation value to be the CPU pre-allocation value; when the application load characteristic information is memory-intensive, multiplying the memory pre-allocation value by the preset sixth weight parameter to obtain an updated memory pre-allocation value, and determining the updated memory pre-allocation value to be the memory pre-allocation value; when the application load characteristic information is disk IO intensive, multiplying the disk pre-allocation value by the preset seventh weight parameter to obtain an updated disk pre-allocation value, and determining the updated disk pre-allocation value to be the disk pre-allocation value; when the application load characteristic information is network IO intensive, multiplying the network pre-allocation value by the preset eighth weight parameter to obtain an updated network pre-allocation value, and determining the updated network pre-allocation value to be the network pre-allocation value; S4164, merging the CPU pre-allocation value, the memory pre-allocation value, the disk pre-allocation value, and the network pre-allocation value to obtain the resource allocation information of the application.

5. The workload-aware container and virtual machine hybrid scheduling method according to claim 2, characterized in that: When the scheduling generates the allocation resource information and the publishing node information of the application, the scheduling generates the publishing node information of the application including: Screening L idle resource information in the current resource information of the resource pool to obtain a preprocessing idle resource information set; the preprocessing idle resource information set includes a plurality of preprocessing idle resource information; the CPU idle resource value, the memory idle resource value, the disk idle resource value, and the network idle resource value in the preprocessing idle resource information are all greater than the CPU request resource value, the memory request resource value, the disk request resource value, and the network request resource value in the application resource request information; Judge the application load characteristic information: when the application load characteristic information is computationally intensive, determine the CPU idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; when the application load characteristic information is memory intensive, determine the memory idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; when the application load characteristic information is disk IO intensive, determine the disk idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; when the application load characteristic information is network IO intensive, determine the network idle resource value of the preprocessing idle resource information as the main resource value of the preprocessing idle resource information; Sorting all pre-processed idle resource information in descending order of the main resource values ​​in the pre-processed idle resource information to obtain a target idle resource information set; The node corresponding to the first pre-processed idle resource information in the target idle resource information set is determined as the publishing node information.

6. The workload-aware container and virtual machine hybrid scheduling method according to claim 2, characterized in that: The determining the request type according to the application information included in the application resource request information of the application includes: determining whether the application identification information in the application information of the application is consistent with the preset application type information, and obtaining a first determination result; When the first determination result is yes, determining that the request type is a request to publish the application; When the first determination result is no, determining that the request type is a request to perform a migration operation on the application; The request type is a request to perform a migration operation on the application, and further includes performing a migration operation on the application to implement a self-healing function of the failed application.

7. The workload-aware container and virtual machine hybrid scheduling method according to claim 6, characterized in that: The performing of the migration operation on the application to realize the self-healing function of the failed application includes: Obtain migration type information of the application, where the migration type information of the application is a virtual machine or a container; A preprocessing idle resource information set is screened out according to the current resource information of the resource pool, wherein the preprocessing idle resource information set includes a plurality of preprocessing idle resource information, wherein a CPU idle resource value, a memory idle resource value, a disk idle resource value, and a network idle resource value in the preprocessing idle resource information are respectively greater than a CPU request resource value, a memory request resource value, a disk request resource value, and a network request resource value in the application resource request information; The pre-processed idle resource information set is calculated to obtain the migration node information, including: using the second scheduling calculation model to calculate the pre-processed idle resource information set to obtain the idle resource threshold set ; Idle resource threshold set Including several idle resource thresholds; the function expression of the second scheduling calculation model is: , In the above formula, Idle resource threshold set The i-th idle resource threshold in ; , , and is the CPU idle resource value, memory idle resource value, disk idle resource value, and network idle resource value of the i-th preprocessing idle resource information in the preprocessing idle resource information set, and L is the number of elements in the preprocessing idle resource information set; All idle resource thresholds are sorted in descending order to obtain a target idle resource threshold set; Determine the node corresponding to the first target idle resource threshold in the target idle resource threshold set as the migration node information; According to the migration type information and application resource request information of the application, the application is migrated to the node corresponding to the migration node information.

8. A workload-aware container and virtual machine hybrid scheduling system, comprising an interconnected microprocessor and memory, characterized in that: The microprocessor is programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method described in any one of claims 1 to 7.

9. A computer-readable storage medium having a computer program or instruction stored therein, characterized in that: The computer program or instruction is programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method described in any one of claims 1 to 7 through a processor.

10. A computer program product comprising a computer program or instructions, characterized in that The computer program or instruction is programmed or configured to execute the workload-aware container and virtual machine hybrid scheduling method described in any one of claims 1 to 7 through a processor.

Citation Information

Patent Citations

  • Unified resource scheduling coordinator, method for creating virtual machine and / or container thereof and unified resource scheduling system

    CN109885377A

  • Virtual machine and container hybrid scheduling system, method, scheduler and device

    CN113849259A

  • Joint scheduling method, device and system

    CN115686732A

  • Computing resource scheduling method and device, equipment and storage medium

    CN116627644A

  • Intelligent resource scheduling and load balancing method based on Internet cloud service

    CN119088546A