Resource scheduling method, engine cluster, medium and program product
By acquiring and parsing NUMA information, the container orchestration engine cluster resources are dynamically scheduled, and worker nodes are bound to application nodes of different priorities. This solves the problem of limited resource scheduling and enables adaptive adjustment and efficient utilization of resources.
Patent Information
- Application Number
- CN202511670798.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-14
- Publication Date
- 2026-02-13
AI Technical Summary
Existing container orchestration engines cannot adaptively adjust cluster resource scheduling according to actual business scenarios, resulting in resource idleness and waste.
By obtaining the NUMA information of the target worker node, parsing the NUMA resource and usage data, binding corresponding worker nodes to application nodes to be allocated with different priorities, dynamically scheduling resources, and taking into account NUMA information and application node priorities.
It enables dynamic scheduling of container orchestration engine cluster resources, meeting the actual needs of business scenarios and improving resource utilization.
Smart Images

Figure CN121523800A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of cloud computing, and can be applied to the technical field of finance in particular, and more particularly to a resource scheduling method, an engine cluster, a medium and a program product. BACKGROUND
[0002] NUMA (Non Uniform Memory Access Architecture) is a computing platform architecture that allows different CPUs (Central Processing Unit) to access different memory regions at different speeds. The NUMA architecture allows CPUs with multiple memory controllers to use any available memory across CPU complexes, regardless of where the memory is located, at the expense of performance to improve flexibility. CPUs that process workloads using memory outside the NUMA region are slower than those that process workloads in a single NUMA region. In addition, for input / output-limited workloads, network interfaces on remote NUMA regions will slow down the speed of information reaching the application.
[0003] The current container orchestration engine cluster provides a scheduling strategy based on the NUMA structure: by statically binding the threads of the basic scheduling unit in the container orchestration engine to a certain number of CPU cores in the same NUMA, the binding of the application node and the worker node is completed. For high-performance scenarios, the threads of the basic scheduling unit in the container orchestration engine are limited to a certain number of CPU cores in the same NUMA, which ensures that the resources in extreme scenarios are not affected, but most of the time, there is a situation of idle and waste of resources, that is, for ordinary business scenarios, more importantly, the reasonable use of resources, the static binding method is obviously not suitable for ordinary business scenarios. SUMMARY
[0004] The present application provides a resource scheduling method, an engine cluster, a medium and a program product to solve the problem that the existing container orchestration engine cluster resource scheduling is limited and cannot be adaptively adjusted according to the actual business scenario.
[0005] According to an aspect of the present application, a resource scheduling method is provided, comprising:
[0006] obtaining the NUMA information of the target worker node;
[0007] parsing the NUMA information of the target worker node to obtain the NUMA resources and resource usage data of the target worker node;
[0008] According to the NUMA resources and resource usage data of the target worker node, different priority application nodes to be allocated are bound to the corresponding worker nodes.
[0009] According to another aspect of the present application, there is provided a resource scheduling apparatus, comprising:
[0010] an information obtaining module configured to obtain NUMA information of a target worker node;
[0011] an information analyzing module configured to analyze the NUMA information of the target worker node to obtain NUMA resources and resource usage data of the target worker node;
[0012] a node binding module configured to bind corresponding worker nodes to different priority application nodes to be allocated according to the NUMA resources and resource usage data of the target worker node.
[0013] According to another aspect of the present application, there is provided a container orchestration engine cluster, wherein the container orchestration engine cluster comprises a resource scheduling component capable of performing the resource scheduling method according to any of the embodiments of the present application.
[0014] According to another aspect of the present application, there is provided a computer readable storage medium storing computer instructions for implementing the resource scheduling method according to any of the embodiments of the present application.
[0015] According to another aspect of the present application, there is provided a computer program product comprising a computer program for implementing the resource scheduling method according to any of the embodiments of the present application.
[0016] The technical solution of the embodiments of the present application comprises the following steps: obtaining NUMA information of a target worker node, analyzing the NUMA information of the target worker node to obtain NUMA resources and resource usage data of the target worker node, and binding corresponding worker nodes to different priority application nodes to be allocated according to the NUMA resources and resource usage data of the target worker node. In this solution, when determining the worker nodes to be bound to the application nodes to be allocated, the NUMA information of the target worker node is considered, but the deployment of the task on the same NUMA is not limited, and the priority of the application nodes to be allocated is considered, so that the dynamic resource allocation is performed according to the actual application scenario. The solution solves the problem that the resource scheduling of the existing container orchestration engine cluster is limited and cannot be adaptively adjusted according to the actual business scenario. Based on the automatically sensed NUMA information, the resource dynamic scheduling of the container orchestration engine cluster is realized, and the actual needs of the business scenario are met.
[0017] It should be understood that the content described in this section is not intended to identify key or important features of the embodiments of the present application, nor is it used to limit the scope of the present application. Other features of the present application will become apparent from the following description. BRIEF DESCRIPTION OF DRAWINGS
[0018] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings needed in the embodiments description. Obviously, the drawings in the following description only show some embodiments of the present application, and for those skilled in the art, other drawings can also be obtained from these drawings without any creative effort.
[0019] Figure 1 A flow chart of a resource scheduling method provided for the first embodiment of the present application;
[0020] Figure 2 A flow chart of a resource scheduling method provided for the second embodiment of the present application;
[0021] Figure 3 A structural schematic diagram of a resource scheduling device provided for the third embodiment of the present application;
[0022] Figure 4 A schematic diagram of a bare metal cluster resource scheduling provided for the fourth embodiment of the present application. DETAILED DESCRIPTION
[0023] In order to make the person skilled in the art better understand the present application, the following will combine the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without any creative effort should be within the scope of the present application.
[0024] It should be noted that the terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and do not necessarily mean a specific order or sequence. It should be understood that the data thus used can be interchanged under appropriate circumstances, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "include" and "have" and any variations thereof are intended to cover non-exclusive inclusion, for example, a process, method, system, product or device including a series of steps or units does not necessarily have to be limited to those steps or units clearly listed, but can include other steps or units not clearly listed or inherent to these processes, methods, products or devices.
[0025] Embodiment one
[0026] Figure 1A flowchart of a resource scheduling method provided for the first embodiment of the present application. The embodiment can be applied to the dynamic scheduling of container orchestration engine resources. The method can be executed by a resource scheduling device, which can be implemented in the form of hardware and / or software. The resource scheduling device can be configured in a container orchestration engine cluster. As shown in Figure 1 the method includes the following steps.
[0027] Step 110: Obtain NUMA information of a target worker node.
[0028] The target worker node can be a worker node managed by the current container orchestration engine cluster. The worker node is a machine for performing computing tasks or data processing. The NUMA information can be used to describe the hardware information of the worker node and the NUMA resource-related information. The NUMA information can include, but is not limited to, the topology of the worker node, and the idle and occupied states of the containers deployed on the worker node.
[0029] In the embodiment of the present application, before the current container orchestration engine cluster performs resource scheduling, the NUMA information of the target worker node managed by the current container orchestration engine cluster can be obtained.
[0030] Step 120: Analyze the NUMA information of the target worker node to obtain the NUMA resources and resource usage data of the target worker node.
[0031] The NUMA resources can include, but are not limited to, memory resources, CPU resources, and input / output interface resources. The resource usage data can be used to describe the resource utilization rate.
[0032] In the embodiment of the present application, the NUMA information of each target worker node can be analyzed to query the NUMA resources and resource usage data of each target worker node.
[0033] Step 130: Bind corresponding worker nodes to different priority application nodes to be allocated according to the NUMA resources and resource usage data of the target worker nodes.
[0034] The application node to be allocated can be a business node that needs to be allocated corresponding computing resources.
[0035] In the embodiment of the present application, each node in the application node to be allocated has a corresponding resource allocation priority. According to the NUMA resources and resource usage data of the target worker nodes, the application node to be allocated is sequentially adapted to the worker nodes according to the corresponding priority of the application node to be allocated.
[0036] For example, for the application node to be allocated with the highest priority, the target working node of the used container in one NUMA is selected for binding, for the application node to be allocated with the second highest priority, the target working node of the used container in one NUMA is selected first, and if there is no target working node meeting the condition, multiple working nodes can be selected for binding, and for the application node to be allocated with the lowest priority, whether the used container of the application node to be allocated is in one NUMA is not considered when the target working node is selected for binding.
[0037] Optionally, the resource allocation priority corresponding to the node in the application node to be allocated can be determined based on the computing performance requirement of the node, that is, the higher the computing performance requirement of the node, the higher the resource allocation priority of the node.
[0038] Optionally, the corresponding working node is bound for the application node to be allocated, and specifically, the specific thread / process corresponding to the application node to be allocated with different priorities is bound with the CPU core on the target working node through a virtual machine on the target working node.
[0039] In an optional embodiment of the application, after the corresponding working node is bound for the application node to be allocated with different priorities according to the NUMA resource and resource usage data of the target working node, the method can further include: when the target working node fails to bind with the application node to be allocated, updating the NUMA information of the target working node based on the NUMA resource current perception data of the target working node agent, and returning to perform the operation of analyzing the NUMA information of the target working node to obtain the NUMA resource and resource usage data of the target working node until all the application nodes to be allocated successfully bind with the corresponding working nodes.
[0040] The target working node agent can be a virtual machine of the target working node. The NUMA resource current perception data can be the NUMA resource related data currently perceived by the target working node through a tool container for perceiving the NUMA resource. The tool container for perceiving the NUMA resource can be a tool pre-configured on the working node for perceiving the NUMA resource.
[0041] In the embodiment of the application, a NUMA resource-aware tool container can be arranged at each target worker node to report the NUMA resource-aware data on the corresponding worker node to the worker node agent through the NUMA resource-aware tool container. When the binding of at least one target worker node and the to-be-assigned application node fails, the NUMA resource current-aware data collected by the target worker node agent can be acquired, the NUMA information of the target worker node stored is refreshed by using the NUMA resource current-aware data of the target worker node agent, and then the operation of analyzing the NUMA information of the target worker node is performed to obtain the NUMA resource and the resource usage data of the target worker node, until all the to-be-assigned application nodes are successfully bound to the corresponding worker nodes, that is, the latest NUMA resource after the node binding fails can be sensed in time, and the resource allocation is performed again for the to-be-assigned application node for which the binding fails, so that the optimal resource allocation is performed for the to-be-assigned application node without manual intervention.
[0042] Optionally, after the target worker node is successfully bound to all the to-be-assigned application nodes, the NUMA resource current-aware data collected by the target worker node agent can be acquired, and the NUMA information of the target worker node stored is refreshed by using the NUMA resource current-aware data of the target worker node agent, so as to prepare for the next round of resource allocation.
[0043] The technical scheme of the embodiment of the application is that the NUMA information of the target worker node is acquired to analyze the NUMA information of the target worker node, obtain the NUMA resource and the resource usage data of the target worker node, and then bind the corresponding worker node to the to-be-assigned application node according to the NUMA resource and the resource usage data of the target worker node. In the scheme, the NUMA information of the target worker node is considered when the worker node to be bound to the to-be-assigned application node is determined, but it is not limited to deploying the task in the same NUMA, and the priority of the to-be-assigned application node is considered, so that the dynamic resource allocation is performed according to the actual application scenario. The problem that the existing container orchestration engine cluster resource scheduling is limited and cannot be adaptively adjusted according to the actual business scenario is solved. The resource dynamic scheduling of the container orchestration engine cluster can be realized based on the automatically sensed NUMA information, and the actual needs of the business scenario are met.
[0044] Embodiment two
[0045] Figure 2A flowchart of a resource scheduling method provided for the second embodiment of the application is shown in the figure, which is based on the above-mentioned embodiment and gives a specific optional implementation of binding corresponding work nodes for different priority application nodes to be allocated according to the NUMA resources of the target work nodes and the resource usage data, including: determining the affinity demand score of the application node to be allocated based on the affinity demand priority; and binding corresponding work nodes for different priority application nodes to be allocated according to the affinity demand score of the application node to be allocated, the NUMA resources of the target work nodes and the resource usage data. As shown in the figure, the method includes: Figure 2
[0046] Step 210: Obtain the NUMA information of the target work node.
[0047] In an optional embodiment of the application, obtaining the NUMA information of the target work node can include: obtaining an application node allocation instruction of the application node to be allocated; triggering a read operation on the distributed key-value storage database of the current container orchestration engine cluster based on the application node allocation instruction to obtain the NUMA information of the target work node.
[0048] The application node allocation instruction can be an instruction for allocating computing resources for the application node issued by the cloud computing service platform to the container orchestration engine cluster.
[0049] In the embodiment of the application, the cloud computing service platform can send an application node allocation instruction to at least one container orchestration engine cluster, and after the current container orchestration engine cluster receives the application node allocation instruction of the application node to be allocated, it can trigger a read operation on the distributed key-value storage database of the current container orchestration engine cluster based on the application node allocation instruction, and then read the NUMA information of the target work node managed by the current container orchestration engine cluster from the distributed key-value storage database, thereby breaking the disadvantage that the original container orchestration engine cluster cannot read the NUMA information of the managed work node.
[0050] In an optional embodiment of the application, before obtaining the NUMA information of the target work node, it can also include: receiving a NUMA information write request of the target work node agent to the distributed key-value storage database of the current container orchestration engine cluster; and writing the NUMA information of the target work node to the distributed key-value storage database of the current container orchestration engine cluster through the cluster management interface server according to the NUMA information write request.
[0051] The NUMA information write request can be a request for writing the NUMA information to the distributed key-value storage database. The cluster management interface server can be an interface server for reading and writing operations on the distributed key-value storage database from the outside.
[0052] In the embodiment of the present application, after the target worker node agent collects the NUMA information, the target worker node agent immediately sends a NUMA information writing request to the corresponding container orchestration engine cluster. After the current container orchestration engine cluster receives the NUMA information writing request of the distributed key-value storage database from the managed target worker node agent, the current container orchestration engine cluster allocates a write space of the distributed key-value storage database for the NUMA information of the target worker node and performs data writing, thereby providing a data basis for the current container orchestration engine cluster to obtain the NUMA information of the target worker node.
[0053] In step 220, the NUMA information of the target worker node is parsed to obtain the NUMA resources and resource usage data of the target worker node.
[0054] In step 230, the affinity demand score of the to-be-assigned application node is determined based on the affinity demand priority.
[0055] The affinity demand priority can be a pre-configured affinity demand level. The affinity demand score can be used to describe the degree of the affinity demand of the to-be-assigned application node.
[0056] In the embodiment of the present application, the affinity demand priority and the scores corresponding to different affinity demand priorities can be pre-configured. Then, based on the time length requirement of the to-be-assigned application node for being bound to a specific CPU core, the affinity demand priority of the to-be-assigned application node is determined. Then, the score corresponding to the affinity demand priority of the to-be-assigned application node is taken as the affinity demand score.
[0057] In step 240, the corresponding worker node is bound to the to-be-assigned application node of different priority according to the affinity demand score of the to-be-assigned application node, the NUMA resources of the target worker node, and the resource usage data.
[0058] In the embodiment of the present application, based on the affinity demand score of the to-be-assigned application node, it can be determined whether the to-be-assigned application node needs the assigned container to be in one NUMA, i.e., the assigned container requirement of the to-be-assigned application node. Then, the NUMA resources and resource usage data of the target worker node are parsed to determine the target worker node that meets the assigned container requirement of the to-be-assigned application node, and the target worker node is bound to the to-be-assigned application node, i.e., starting from the affinity demand of the to-be-assigned application node and the NUMA information of the worker node, a worker node that is more suitable for the actual scene requirement is automatically selected for the to-be-assigned application node.
[0059] In an optional embodiment of the present application, the binding of the application nodes to be allocated to the corresponding work nodes according to the affinity requirement score of the application nodes to be allocated, the NUMA resources of the target work nodes and the resource usage data can comprise: when it is determined according to the affinity requirement score of the application nodes to be allocated that the application nodes to be allocated are of a first priority level, a single-NUMA target work node is determined according to the NUMA resources of the target work nodes and the resource usage data, and the application nodes to be allocated are bound to the single-NUMA target work node; when it is determined according to the affinity requirement score of the application nodes to be allocated that the application nodes to be allocated are of a second priority level, and no single-NUMA target work node is determined according to the NUMA resources of the target work nodes and the resource usage data, the application nodes to be allocated are bound to a non-single-NUMA target work node.
[0060] wherein the first priority level is higher than the second priority level. The single-NUMA target work node can be a work node of a container required by the application nodes to be allocated in one NUMA. The non-single-NUMA target work node can be a target work node in which the container required by the application nodes to be allocated is not in one NUMA.
[0061] In the embodiment of the present application, the priority of the application nodes to be allocated in resource allocation can be determined according to the affinity requirement score of the application nodes to be allocated. If the application nodes to be allocated are of a first priority level, it indicates that the priority of the affinity requirement is the highest level, a single-NUMA target work node is determined according to the NUMA resources of the target work nodes and the resource usage data, and the application nodes to be allocated are bound to the single-NUMA target work node. If the application nodes to be allocated are of a second priority level, it indicates that the priority of the affinity requirement is the second highest level, and then whether there is a single-NUMA target work node is determined according to the NUMA resources of the target work nodes and the resource usage data. If there is no single-NUMA target work node, the application nodes to be allocated are bound to a non-single-NUMA target work node. When the application nodes to be allocated of higher priority are bound to the work nodes, whether the required container is in one NUMA is considered first, so that the bound work nodes are flexibly selected based on the requirement of the application nodes to be allocated for computing performance.
[0062] In an optional embodiment of the present application, before the application nodes to be allocated are bound to the non-single-NUMA target work node, the memory access cost of the application nodes to be allocated can be determined, and the non-single-NUMA target work node can be determined according to the memory access cost of the application nodes to be allocated, the NUMA resources of the target work nodes and the resource usage data.
[0063] wherein the memory access cost can be a cost (such as delay time, energy consumption and limited bandwidth) of reading or writing data from a storage device.
[0064] In the embodiment of the application, the memory access cost of the to-be-assigned application node can be obtained, and then the target worker node satisfying the memory access cost of the to-be-assigned application node is determined based on the NUMA resource and the resource usage data of the target worker node, that is, the non-single NUMA target worker node is obtained. The target worker node is assigned in the order from low to high of the memory access cost of the to-be-assigned application node, and the NUMA affinity effect is realized.
[0065] The technical scheme of the embodiment of the application obtains the NUMA information of the target worker node, analyzes the NUMA information of the target worker node to obtain the NUMA resource and the resource usage data of the target worker node, then determines the affinity demand score of the to-be-assigned application node based on the affinity demand priority, and binds the corresponding worker node for the to-be-assigned application node of different priorities according to the affinity demand score of the to-be-assigned application node, the NUMA resource and the resource usage data of the target worker node. In the present scheme, when the worker node bound to the to-be-assigned application node is determined, the NUMA information of the target worker node is considered, but it is not limited to deploying the task in the same NUMA, and the priority of the to-be-assigned application node is also considered, so as to dynamically allocate resources according to the actual application scenario. The present scheme solves the problem that the existing container orchestration engine cluster resource scheduling is limited and cannot be adaptively adjusted according to the actual business scenario. Based on the automatically perceived NUMA information, the resource dynamic scheduling of the container orchestration engine cluster is realized, and the actual demand of the business scenario is met.
[0066] Embodiment three
[0067] Figure 3 A structural schematic diagram of a resource scheduling device provided in the third embodiment of the application is shown in FIG. 3. Figure 3 As shown in the figure, the device comprises:
[0068] The information acquisition module 310 is configured to acquire the NUMA information of the target worker node.
[0069] The information analysis module 320 is configured to analyze the NUMA information of the target worker node to obtain the NUMA resource and the resource usage data of the target worker node.
[0070] The node binding module 330 is configured to bind the corresponding worker node for the to-be-assigned application node of different priorities according to the NUMA resource and the resource usage data of the target worker node.
[0071] The technical scheme of the embodiment of the application obtains the NUMA information of the target work node, analyzes the NUMA information of the target work node, obtains the NUMA resource and resource usage data of the target work node, and then binds corresponding work nodes for different priority application nodes to be allocated according to the NUMA resource and resource usage data of the target work node. In the scheme, when the work nodes to be bound to the application nodes to be allocated are determined, the NUMA information of the target work node is considered, but it is not limited to deploying the same NUMA to complete the task, and the priority of the application nodes to be allocated is considered, so that dynamic resource allocation is performed according to the actual application scenario. The problem that the existing container orchestration engine cluster resource scheduling is limited and cannot be adaptively adjusted according to the actual business scenario is solved. Based on the automatically perceived NUMA information, the resource dynamic scheduling of the container orchestration engine cluster is realized, and the actual needs of the business scenario are met.
[0072] Optionally, the information obtaining module 310 is configured to obtain an application node allocation instruction of the application node to be allocated; based on the application node allocation instruction, trigger a read operation on the distributed key-value storage database of the current container orchestration engine cluster to obtain the NUMA information of the target work node.
[0073] Optionally, the resource scheduling apparatus further comprises a data writing module configured to receive a NUMA information writing request of the target work node agent to the distributed key-value storage database; and based on the NUMA information writing request, write the NUMA information of the target work node to the distributed key-value storage database of the current container orchestration engine cluster through the cluster management interface server.
[0074] Optionally, the node binding module 330 comprises an affinity score determining unit and a node binding unit. The affinity score determining unit is configured to determine the affinity demand score of the application node to be allocated based on the affinity demand priority. The node binding unit is configured to bind corresponding work nodes for different priority application nodes to be allocated according to the affinity demand score of the application node to be allocated, the NUMA resource and resource usage data of the target work node.
[0075] Optionally, the node binding unit is configured to, when the affinity requirement score of the application node to be allocated indicates that the application node to be allocated is of a first priority level, determine a single-NUMA target worker node according to the NUMA resource and resource usage data of the target worker node, and bind the application node to be allocated to the single-NUMA target worker node; when the affinity requirement score of the application node to be allocated indicates that the application node to be allocated is of a second priority level, and no single-NUMA target worker node is determined according to the NUMA resource and resource usage data of the target worker node, bind the application node to be allocated to a non-single-NUMA target worker node.
[0076] Optionally, the resource scheduling apparatus further comprises a data updating module configured to, when the binding of the target worker node to the application node to be allocated fails, update the NUMA information of the target worker node based on the current perception data of the NUMA resource of the target worker node agent, and return to perform the operation of analyzing the NUMA information of the target worker node to obtain the NUMA resource and resource usage data of the target worker node until all the application nodes to be allocated are successfully bound to corresponding worker nodes.
[0077] Optionally, the node binding unit is configured to determine the memory access cost of the application node to be allocated, and determine the non-single-NUMA target worker node according to the memory access cost of the application node to be allocated, the NUMA resource and resource usage data of the target worker node.
[0078] The resource scheduling apparatus provided by the embodiment of the application can perform the resource scheduling method provided by any embodiment of the application, and has the corresponding function modules and beneficial effects of performing the method.
[0079] Embodiment Four
[0080] The embodiment four of the application provides an optional embodiment of bare metal cluster resource scheduling, and the specific implementation manner can be referred to the following embodiments. Wherein, the same or corresponding technical terms as the above embodiments are not described herein.
[0081] Figure 4 A schematic diagram of the bare metal cluster resource scheduling provided by the embodiment four of the application is shown in FIG. 4. Figure 4As shown, the cloud computing service platform issues an instruction to the bare metal cluster management surface for allocating computing resources to an application node, and the bare metal cluster management surface finds a suitable worker node for the to-be-allocated application node through the improved resource scheduling component, and performs binding of the process corresponding to the to-be-allocated application node and the CPU core through the worker node agent of the worker node. The resource scheduling component can obtain the NUMA information collected by the worker node agent through the cluster management and control surface interface server in the bare metal cluster management surface. The worker node agent obtains the NUMA information through the NUMA resource-aware tool container, also obtains its own resource information based on the CPU management component and the topology management component, and writes the NUMA information into the distributed key-value storage database of the bare metal cluster through the cluster management and control surface interface server, so that the resource scheduling component can allocate a suitable worker node for the to-be-allocated application node based on the NUMA information. Among them, the bare metal cluster carries the container orchestration engine cluster and the traditional monolithic application / database.
[0082] The NUMA resource-aware tool container obtains the quasi-real-time usage of the hardware information and system resources of the worker node, and supplements the above information to the related information of the worker node agent through the cluster management and control surface interface server, and saves it into the distributed key-value storage database of the bare metal cluster for the resource scheduling component to obtain. The resource scheduling component solves the problem that the default scheduler of the container orchestration engine cluster does not perceive the underlying NUMA topology information, and directly allocates according to the total resource availability of the worker node, which may cause the application node to be unable to start after being rejected by the worker node due to not meeting the NUMA strategy in a resource shortage situation. Through the non-invasive and hot-pluggable plug-in to expand the scheduling component function of the original container orchestration engine, the application node is bound to a reasonable worker node by analyzing the NUMA resource and usage information of each worker node.
[0083] For example, the basic scheduling unit running on the worker node agent, i.e., the host machine, obtains the NUMA topology structure information by querying the description of the server configuration in the operating system, and reports it to the resource scheduling component of the bare metal cluster. Based on the NUMA topology structure information, the resource scheduling component determines whether different strategy worker nodes are affinity, and prevents the to-be-allocated application node from being scheduled to a host machine that cannot meet the specific work load, so that the worker node agent will complete the static binding of threads and CPUs through isolation when facing high-performance containers that require static binding of cores, and limit other containers within the same NUMA. When facing ordinary containers, the system kernel interface is called to allocate CPU resources for container threads based on the NUMA topology structure, and the CPU resources are allocated from low to high based on the memory access cost, thereby achieving the NUMA affinity effect.
[0084] The application remedies the problem of low resource utilization and inability to scale up the single NUMA affinity policy of container orchestration engines, enabling low-cost cluster scheduling algorithms and resource allocation optimization methods that can address NUMA affinity usage in different scenarios.
[0085] Host topology awareness refers to the relative positions of CPUs, memory, and computer expansion bus devices in the host machine relative to each other, co-located resources are considered to be in the same NUMA region, for high-performance applications, the cluster needs to handle the basic scheduling unit workload in a single NUMA region. NUMA-aware scheduling arranges the requested cluster computing resources (CPU, memory, device) in the same NUMA region to effectively handle latency-sensitive or high-performance workloads.
[0086] Among them, the host refers to the actual physical server or virtual machine running the containerized environment. In the context of container technology, the host is a machine that has installed a container runtime and possibly a container orchestration engine, responsible for managing and running one or more container instances. The host provides the underlying operating system, hardware resources (CPU, memory, storage, etc.), and network environment required for container running. Containers are created and managed on the host, sharing part of the host's operating system kernel, but isolated from each other and other processes on the host. This isolation allows containers to run in a lightweight manner, more efficiently utilizing resources compared to traditional virtual machine technology.
[0087] The bare metal cluster can be various forms of digital computers, such as laptops, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers.
[0088] The bare metal cluster includes at least one processor, and a memory, such as a read-only memory, a random access memory, etc., in communication with the at least one processor, wherein the memory stores computer programs executable by the at least one processor, and the processor can perform various appropriate actions and processes according to the computer programs stored in the read-only memory or loaded from the storage unit into the random access memory. In the random access memory, various programs and data required for computing cluster operations can also be stored.
[0089] The processor can be various general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the processor include, but are not limited to, central processing units, graphics processing units, various specialized artificial intelligence computing chips, various processors running machine learning model algorithms, digital signal processors, and any appropriate processor, controller, microcontroller, etc. The processor performs various methods and processes described above, such as the resource scheduling method.
[0090] In some embodiments, the resource scheduling method can be implemented as a computer program tangibly embodied in a computer readable storage medium, e.g., a storage device. In some embodiments, parts or all of the computer program can be loaded and / or installed onto the computing cluster via a read-only memory and / or a communication unit. When the computer program is loaded and / or installed onto the computing cluster, one or more steps of the resource scheduling method described above can be executed by the processor. Alternatively, in other embodiments, the processor can be configured to perform the resource scheduling method by way of other means, e.g., by way of firmware.
[0091] Computer programs used to implement the methods of the application can be written in any combination of one or more programming languages. These computer programs can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, such that the computer program
[0092] In the context of the present application, a computer readable storage medium can be any tangible medium that can contain, or store computer programs for use by or in connection with an instruction execution system, apparatus, or device. The computer readable storage medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. Alternatively, the computer readable storage medium can be a machine readable signal medium. More specific examples of the machine readable storage medium will include one or more lines of a program of instructions in a transitory signal form, a portable computer diskette, a hard disk, a RAM, a ROM, an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0093] It should be understood that various forms of flow shown above can be used, with steps reordered, added, or removed. For example, the steps recited in the present application can be performed in parallel, in series, or in a different order, without limitation herein, so long as the desired results of the technical solutions of the present application are achieved.
[0094] The above detailed description does not limit the scope of the application. Various modifications, combinations, sub-combinations and alternatives can be made to the detailed description. Any modification, equivalent replacement and improvement etc. made within the spirit and principle of the application shall be included in the scope of the application.
Claims
1. A resource scheduling method, characterized in that, include: Obtain the Non-Unified Memory Access (NUMA) information of the target worker node; Parse the NUMA information of the target worker node to obtain the NUMA resources and resource usage data of the target worker node; Based on the NUMA resources and resource usage data of the target worker node, bind the corresponding worker node to the application nodes to be allocated with different priorities.
2. The method according to claim 1, characterized in that, Obtain the NUMA information of the target worker node, including: Obtain the application node allocation instruction for the application node to be allocated; Based on the application node allocation instruction, a read operation is triggered on the distributed key-value storage database of the current container orchestration engine cluster to obtain the NUMA information of the target worker node.
3. The method according to claim 1, characterized in that, Before obtaining the NUMA information of the target worker node, the following steps are also included: Receive the target worker node agent's request to write NUMA information to the distributed key-value store database of the current container orchestration engine cluster; Based on the NUMA information write request, the NUMA information of the target worker node is written to the distributed key-value storage database of the current container orchestration engine cluster through the cluster management plane interface server.
4. The method according to claim 1, characterized in that, Based on the NUMA resources and resource usage data of the target worker node, bind corresponding worker nodes to application nodes to be allocated with different priorities, including: Based on affinity requirement priority, the affinity requirement score of the application node to be assigned is determined; Based on the affinity requirement score of the application nodes to be assigned, the NUMA resources of the target worker node, and the resource usage data, corresponding worker nodes are bound to application nodes with different priorities.
5. The method according to claim 4, characterized in that, Based on the affinity requirement score of the application nodes to be assigned, the NUMA resources of the target worker node, and the resource usage data, corresponding worker nodes are bound to application nodes of different priorities, including: When the application node to be assigned is determined to be of the first priority level based on the affinity requirement score of the application node to be assigned, a single NUMA target worker node is determined based on the NUMA resources and resource usage data of the target worker node, and the application node to be assigned is bound to the single NUMA target worker node. Based on the affinity requirement score of the application node to be assigned, the application node to be assigned is determined to be of the second priority level. And when it is determined that there is no single NUMA target worker node based on the NUMA resources and resource usage data of the target worker node, the application node to be assigned is bound to the non-single NUMA target worker node.
6. The method according to claim 1, characterized in that, After binding corresponding worker nodes to application nodes of different priorities based on the NUMA resources and resource usage data of the target worker node, the process also includes: When the binding of the target worker node with the application node to be assigned fails, the NUMA information of the target worker node is updated based on the current awareness data of the NUMA resources proxied by the target worker node, and the operation of parsing the NUMA information of the target worker node to obtain the NUMA resources and resource usage data of the target worker node is returned until all application nodes to be assigned are successfully bound to the corresponding worker node.
7. The method according to claim 5, characterized in that, Before binding the application node to be assigned to a non-single NUMA target worker node, the process also includes: Determine the memory access cost of the application node to be allocated; The non-single NUMA target worker node is determined based on the memory access cost of the application node to be allocated, the NUMA resources of the target worker node, and the resource usage data.
8. A container orchestration engine cluster, characterized in that, The container orchestration engine cluster includes a resource scheduling component, which is capable of executing the resource scheduling method according to any one of claims 1-7.
9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for implementing the resource scheduling method according to any one of claims 1-7.
10. A computer program product, characterized in that, The computer program product includes a computer program that implements the resource scheduling method according to any one of claims 1-7.