Resource management method, system, device and medium
By introducing data processing units (DPUs) into multi-node servers, resource pooling and task queue management are implemented, which solves the problem of uneven distribution of computing resources, improves resource utilization and task processing efficiency, and adapts to high-load and high-throughput scenarios.
Patent Information
- Application Number
- CN202511006476.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-22
- Publication Date
- 2025-09-16
- Estimated Expiration
- 2045-07-22
AI Technical Summary
In a multi-node server architecture, uneven distribution of computing resources leads to low utilization of computing resources. Some tasks remain dormant or waiting for a long time, creating a contradictory situation of idle resources and backlog of tasks.
The data processing unit (DPU) is introduced to monitor the resource utilization of each node through resource pooling and task queue management, dynamically allocate tasks, optimize resource scheduling, and achieve efficient data transmission through communication protocols such as RDMA. The task queue buffer and running area are set up, tasks are allocated according to task priority, scheduling node selection is optimized, and retry and timeout mechanisms are established to ensure task status feedback.
It significantly improves the resource utilization and task processing efficiency of the server system, reduces resource waste, improves overall throughput and response speed, and adapts to high-load and high-throughput scenarios.
Smart Images

Figure CN120508406B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of server technology, and in particular to resource management methods, systems, devices, and media. Background Art
[0002] In a multi-node server architecture, each computing node runs in an independent mode, ensuring independent allocation and secure isolation of resources; however, this multi-node architecture design inevitably leads to the problem of low computing resource utilization.
[0003] Furthermore, due to the heavy computing tasks and high resource utilization, a single node often finds it difficult to efficiently process all tasks, resulting in some tasks being in a dormant or waiting state for a long time; at the same time, other computing nodes may be in a low-load or even idle state.
[0004] Therefore, there is an urgent need for a resource management method that can reasonably allocate resources to solve the above problems. Summary of the Invention
[0005] The present application provides a resource management method, system, device and medium to at least solve the problems in the related art.
[0006] This application provides a resource management method, including:
[0007] In response to receiving a task data packet to be scheduled transmitted by a busy node, adding the task data packet to be scheduled to a task queue, where the task data packet to be scheduled includes the task to be scheduled and the task context;
[0008] Allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool according to the task priority to obtain the calculation results and store the calculation results in the calculation result pool;
[0009] In response to receiving a state access request initiated by a target node for a target task to be scheduled, a matching access feedback operation is obtained and triggered according to a task state matching the target task to be scheduled.
[0010] This application also provides a resource management system, including:
[0011] The task receiving module is configured to add the task data packet to the task queue in response to receiving the task data packet transmitted by the busy node, wherein the task data packet includes the task to be scheduled and the task context;
[0012] The task scheduling module is used to assign the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool in order according to the task priority to obtain the calculation results and store the calculation results in the calculation result pool;
[0013] The task feedback module is used to, in response to receiving a status access request initiated by a target node for a target task to be scheduled, obtain and trigger a matching access feedback operation according to a task status matching the target task to be scheduled.
[0014] The present application also provides an electronic device, comprising: a memory for storing a computer program; and a processor for implementing the steps of any one of the above-mentioned resource management methods when executing the computer program.
[0015] The present application also provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of any one of the above-mentioned resource management methods are implemented.
[0016] The present application also provides a computer program product, including a computer program, which implements the steps of any of the above-mentioned resource management methods when executed by a processor.
[0017] This application uses data processing units as task scheduling centers to achieve precise partitioning and management of server hardware resources. After receiving scheduled tasks from busy nodes, the data processing units monitor and analyze server system loads and intelligently assign them to the most appropriate scheduling unit. This intelligent task scheduling mechanism optimizes resource utilization, reduces resource waste, and improves overall system throughput and responsiveness. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0019] Figure 1 A flow chart of a resource management method provided in an embodiment of the present application;
[0020] Figure 2 A schematic diagram of a resource management method provided in an embodiment of the present application;
[0021] Figure 3 A diagram of the architecture of a resource management system provided in an embodiment of the present application;
[0022] Figure 4 A diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0023] The following will be combined with the accompanying drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making any creative work are within the scope of protection of this application.
[0024] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.
[0025] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.
[0026] As disclosed in the background technology, there is a problem of uneven distribution of computing resources in a multi-node server architecture, which not only causes a waste of computing resources but also triggers the problem of task processing timeout, forming a contradictory situation where idle resources coexist with task backlogs.
[0027] Some solutions in the existing technology are based on load balancers to solve the above problems. A physical hardware is designed to receive business processing requests from client nodes on the load balancing hardware device, where the business processing requests include connection establishment requests and message processing requests. When the number of currently connected client nodes is less than the maximum number of connections allowed, a connection is established with the client node and the message processing request is processed. This balances the number of server-side connections and the number of client connections, thereby achieving server-side traffic load balancing. That is, the load balancer intelligently forwards the requests delivered to the server to a server in the back-end server cluster based on a preset complex balancing strategy, thereby ensuring that the number of requests processed by the server is relatively balanced, avoiding overloading of a single server, and thus improving the processing capacity and response speed of the entire server system. However, as a hardware device, the load balancer has the risk of single point failure. Once the device fails, the entire server system may become unavailable.
[0028] Some existing solutions utilize optimization algorithms to control resource scheduling, utilizing wasted CPU and memory resources in storage nodes. This allows computing power to run during idle periods, allowing for multiple uses. This not only solves storage issues but also allows for computing power, generating revenue, and reducing initial investment. However, since optimization algorithms themselves require a certain amount of CPU resources to execute, high CPU utilization can reduce the efficiency of resource scheduling algorithms. Furthermore, resource contention and lock waits during resource scheduling can lead to extended service response times and reliability issues.
[0029] There are also some solutions in the prior art for intelligent assisted decision-making. A service load quantification table is established based on the maximum number of concurrency supported by the server for lightweight tasks of various categories of model files, and a server resource scheduling method is constructed based on the table, which is encapsulated as a driver and a driver information library is established. Then, based on the driver information library, the execution process of various decision-making strategies is encapsulated as an intelligent assisted decision-making execution program, and server operation management and task scheduling management are performed according to the client's tasks. However, this solution is highly dependent on the accuracy of the service load quantification table and the decision-making ability of the intelligent assisted decision-making execution program. If the initial data is inaccurate or the model training is insufficient, it may lead to resource scheduling deviations, which in turn reduces scheduling efficiency. In the process of real-time scheduling and management of lightweight tasks of the client, performance bottlenecks will be faced in high-concurrency scenarios, especially when the number of tasks surges, the response speed and stability of the server system will also be affected.
[0030] Therefore, the embodiment of the present application provides a resource management method, which takes the data processing unit (DPU) as the core, through resource pooling and task queue management, under the premise of ensuring the independence of storage idleness of each computing node and the security isolation provided by the DPU firewall mechanism, tasks that busy nodes cannot process in time are dynamically allocated to other nodes, making full use of idle computing resources, and significantly improving the resource utilization and task processing efficiency of the overall server system. Specifically, it is applied to the data processing unit, such as Figure 1 As shown, it mainly includes the following contents:
[0031] S1. In response to receiving a data packet of a task to be scheduled transmitted by a busy node, add the data packet of the task to be scheduled to a task queue.
[0032] It should be noted that in a multi-node server architecture equipped with a data processing unit, each computing node runs in an independent mode, ensuring the independent allocation and secure isolation of computing resources. However, this server design inevitably leads to the problem of low computing resource utilization. Especially in industrial-level application scenarios, the computing task load is heavy and the resource occupancy rate is high. It is often difficult for a single node to efficiently process all tasks, resulting in some computing tasks being in a dormant or waiting state for a long time. At the same time, other computing nodes may be in a state of low load or idle core resources. This uneven resource allocation problem between nodes not only causes a waste of computing resources but also causes the problem of task processing timeout, forming a contradictory situation where idle resources and task backlogs coexist. In the embodiment of the present application, the idea of resource pooling is introduced in the multi-node server architecture, and the data processing unit is used to run a resource monitoring program to monitor the resource utilization of each node in the entire server cluster, and integrate the idle core resources of each node into a global resource pool, providing a basis for realizing dynamic resource allocation and reasonable scheduling.
[0033] It is understandable that the computing node itself responds to the detection of the preset scheduling condition, allocates a small amount of resources to package the tasks to be scheduled and the task context to generate a data packet of the task to be scheduled, and transmits the data packet to be scheduled to the data processing unit for subsequent task scheduling and allocation. The preset scheduling condition can be specifically set as the amount of queued tasks in the node's local task queue exceeds a first preset threshold and the total amount of tasks in the node's local task queue exceeds a second preset threshold, the queued tasks include waiting tasks and dormant tasks, and the first preset threshold is less than the second preset threshold. The specific values of the first preset threshold and the second preset threshold are determined by the computing resources and concurrent processing capabilities of the computing node, and are set by those skilled in the art according to actual scenarios. For example, in a general computing node scenario, the concurrent processing task volume of the computing node is 0 to 16. In this case, it is preferred to set the above-mentioned first preset threshold to 5 and the second preset threshold to 20. That is, the computing node will forward the task to the data processing unit only when the preset scheduling condition is triggered, ensuring that the computing node can operate independently when the load is low, and realizing resource optimization through dynamic task allocation when the load is high, while ensuring efficiency while minimizing resource waste.
[0034] Specifically, the data processing unit communicates with each computing node so that the computing node can transfer the data packet of the task to be scheduled to the data processing unit when it is busy. Preferably, in some implementation scenarios, the above-mentioned data processing unit and computing node interact with data based on the RDMA (Remote Direct Memory Access) protocol. RDMA is a communication protocol that allows a server to read data directly from or write data to the memory of another server without the intervention of the CPU. On this basis, ultra-low latency and high throughput data transmission can be achieved between the data processing unit and the computing node. Of course, in other implementation scenarios, InfiniBand (wireless bandwidth) protocol and RoCE (RDMA over Converged Ethernet, remote direct memory access based on converged Ethernet) and so on can also be selected. This application does not limit the choice of specific communication protocols.
[0035] Furthermore, in order to avoid the problem that multiple busy nodes simultaneously transmit data packets of to-be-scheduled tasks to the data processing unit, resulting in the data processing unit receiving a large number of data packets in a short period of time and being unable to process them in a timely manner, an embodiment of the present application further proposes that in response to detecting that the queue depth of the task queue exceeds a preset depth, a transmission rate adjustment instruction is generated and sent to the busy node to adjust the data transmission rate of the busy node according to the queue depth; the queue position of the to-be-scheduled task in the task queue is determined according to the task priority of the received to-be-scheduled task, and the task queue includes a buffer zone and an operation zone. High-priority tasks are placed in the operation zone, and low-priority tasks are placed in the buffer zone. Among them, the preset depth is set by those skilled in the art according to the actual task queue size, such as the median value or two-thirds value of the queue length, etc., and the present application does not limit the specific value. Through the above setting, while ensuring that the data processing unit can receive the complete to-be-scheduled task data packet, the abnormal problem caused by task queue data overflow is avoided, and by setting different partitions in the task queue to buffer tasks of different priorities, tasks are ensured, ensuring that high-priority tasks can preempt resources and avoiding low-priority tasks blocking critical requests.
[0036] In a specific implementation scenario, the above-mentioned data transmission rate adjustment can calculate the rate adjustment amount through a PID (Proportional-Integral-D Differential Controller). When the queue depth exceeds the preset depth, the negative rate adjustment amount output by the PID controller is transmitted to the busy node in the form of a transmission rate adjustment instruction to control the busy node to reduce the data transmission rate until the queue depth falls back to the normal depth range.
[0037] In other specific implementation scenarios, the above-mentioned data transmission rate adjustment can also pre-set the rate level in the computing node, including low rate, medium rate and high rate; after receiving the transmission rate adjustment instruction, the computing node first reduces the transmission rate to medium rate, and checks the queue status after running for a certain period of time, and re-evaluates whether it is necessary to further adjust the transmission rate based on the queue depth. If the queue depth falls back to within the normal depth range, the rate is adjusted back to high rate. If the queue depth still does not fall back to the normal range, the transmission rate is further reduced to low rate and the queue status is checked after running for a certain period of time, and re-evaluates whether it is necessary to maintain a low rate based on the queue depth. If the queue depth falls back to within the normal depth range, the rate is adjusted back to high rate or medium rate. If the queue depth still does not fall back to the normal range, the low rate is continued to be maintained. Among them, the values of low rate, medium rate and high rate are set by those skilled in the art according to the actual scenario, and this application does not limit this.
[0038] Furthermore, to address short-term, high-throughput scenarios, in some implementations, the task data packets can be encapsulated into fixed-format binary packets to reduce the total amount of data required for transmission. For larger task data packets, they can be fragmented and transmitted, splitting them into multiple data blocks and transmitting them via a sliding window protocol (similar to TCP) to ensure orderly transmission.
[0039] S2. Allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool in order according to the task priority to obtain the task results and store the task results in the calculation result pool.
[0040] Specifically, according to the foregoing, a buffer zone and an operating zone are provided in the task queue disclosed in the embodiment of the present application, and high-priority tasks to be scheduled are stored in the operating zone. When the data processing unit assigns corresponding scheduling nodes to the tasks to be scheduled in the task queue, it gives priority to assigning scheduling nodes to the tasks to be scheduled in the operating zone, specifically assigning them from high to low priority of each task to be scheduled; for tasks to be scheduled of the same priority, they are assigned according to the first-in-first-out principle.
[0041] After receiving the task to be scheduled assigned by the data processing unit, the scheduling node receives the context of the task to be scheduled and its processing logic, and adds the task to be scheduled to its own task queue for resource scheduling. After executing the task to be scheduled, the scheduling node feeds back its calculation results and task context to the data processing unit. The data processing unit stores the received calculation results and task context in the calculation result pool. Based on the design of calculation result pooling, when other computing nodes in the server system receive the same calculation task, they can obtain the corresponding calculation results through the calculation result pool, avoiding repeated calculations, reducing calculation redundancy, and thus achieving the task calculation efficiency of the server system; significantly improving resource utilization and providing a strong guarantee for the efficient operation of the system.
[0042] It is worth noting that in order to avoid conflicts between the computing tasks within the scheduling node and the tasks to be scheduled, the embodiment of the present application proposes to maintain two independent queues within each computing node: a local task queue and an assigned task queue, and the tasks to be scheduled are added to the assigned task queue. Each computing node gives priority to local tasks to ensure low latency for its own business. And according to the pressure of the local task queue and the assigned task queue, reasonable computing resources such as CPU resources and memory quotas are allocated to these two types of tasks.
[0043] In this embodiment, idle nodes continuously communicate their current resource utilization to the data processing unit, enabling the data processing unit to select an appropriate idle node to handle the scheduled task. A scheduling node is a compute node selected from the idle nodes by the data processing unit to handle the scheduled task. The scheduling node can be a randomly selected node from the idle nodes.
[0044] To improve the stability of the entire server system and enhance the efficiency of processing specific tasks, in some implementation scenarios, this application also optimizes the selection of scheduling nodes to ensure that the idle nodes assigned to each scheduled node can efficiently process the scheduled task, thereby improving the task computing efficiency of the entire server system. Specifically, this includes: screening idle nodes in the global resource pool to determine candidate nodes based on the task context of the scheduled task; determining the scheduling score of the candidate node based on the idle resource utilization; and selecting a scheduling node from the candidate nodes based on the scheduling score.
[0045] It is understandable that the context of a task is essentially the operating environment and relevant information required for the execution of the task, which determines whether the task can be executed correctly and efficiently on a computing node. Therefore, this application proposes to first perform a preliminary screening of idle nodes based on the task context to screen out candidate nodes that match the task requirements. Specifically, this is done by determining whether the idle nodes meet the resource and environmental dependencies required by the specific task to be scheduled. If so, they are determined as candidate nodes; otherwise, they are discarded. The specific judgment method is conventional technical means in this field and will not be elaborated in this application.
[0046] In the above-mentioned determination of the scheduling score of the candidate node based on the idle resource utilization in a specific implementation scenario, the idle resource utilization includes the CPU utilization, memory utilization, network bandwidth utilization and disk I / O utilization of the computing node. The above-mentioned CPU utilization and other indicators can be used as scoring indicators, and the corresponding weights can be set. For example, they can be set to 0.4, 0.3, 0.2 and 0.1 in sequence. Then, for each scoring indicator dimension, a linear decreasing function is used to assign points, that is, when the utilization rate is 0%, the score is full marks, and as the utilization rate increases, the score gradually decreases to 0 points. Finally, the scores corresponding to each scoring indicator dimension are weighted and summed to obtain the final scheduling score. It can be understood that the above is only a calculation rule for scheduling scores under a specific implementation scenario. In other implementation scenarios, the solution can be obtained through a training data model, and other scoring algorithms can also be used. This application does not limit this.
[0047] Among them, in a specific implementation scenario, the scheduling node among the candidate nodes is selected according to the scheduling score. The candidate node with the highest scheduling score can be selected as the scheduling node; or a standard score value can be set and a random selection can be made from the candidate nodes whose scheduling scores exceed the standard score value as the scheduling node.
[0048] It is worth noting that, under normal circumstances, the data processing unit only needs to perform the allocation step once to allocate the corresponding scheduling node for each task to be scheduled received, but there will still be a problem that there is no idle node to receive some tasks to be scheduled that have been recorded in the task queue; therefore, the present application also proposes to establish a retry and timeout mechanism to solve the above problem. Specifically, the data processing unit attempts to allocate the corresponding scheduling node to a task to be scheduled and records the initial timestamp. If the time difference between the current timestamp and the initial timestamp exceeds the preset time period, the allocation times out. At this time, the data processing unit determines that the node allocation for the task to be scheduled has failed, the number of retries is set to 1, and a retry operation is triggered. That is, the data processing unit continuously retries the tasks to be scheduled that cannot be allocated and records the number of retries; that is, the number of retries is increased by one for each failed retry. If the number of retries of a task to be scheduled exceeds the maximum number, the task to be scheduled is marked as an abnormal task and the abnormal handling process is triggered. Specifically, the original computing node that sent the task to be scheduled is queried, that is, the abnormal task returns to the original node and records the abnormal log to prompt insufficient cluster resources. The above retry mechanism improves the accuracy of abnormal task judgment and further realizes effective feedback on cluster resource shortage.
[0049] S3. In response to receiving a status access request initiated by the target node for the target task to be scheduled, obtaining and triggering a matching access feedback operation according to the task status matching the target task to be scheduled.
[0050] When a busy node completes its locally cached running and ready tasks (at which point the node changes from busy to idle), it adds the outsourced scheduled tasks to its ready queue. At this point, the busy node needs to communicate with the data processing unit to obtain the running status of the previously outsourced scheduled tasks. This application defines the busy node that initiates a status access request to the data processing unit as the target node. It should be noted that for a target scheduled task, the target node is the original node corresponding to the scheduled node; the target scheduling node is the node to which the data processing unit assigns the target scheduled task.
[0051] The above-mentioned task status includes a first state, a second state and a third state. The method for determining the above-mentioned task status specifically includes: querying whether the task queue contains the target task to be scheduled, and the specific above-mentioned state access request contains a task id, and the data processing unit searches the task queue with the task id as the retrieval primary key. In response to not detecting that the task queue contains a task to be scheduled that matches the target task to be scheduled, it is determined that the task status that matches the target task to be scheduled is the first state, that is, at this time the target task to be scheduled has been executed and calculated by the scheduling node. In response to detecting that the task queue contains the target task to be scheduled, at this time the target task to be scheduled has not been executed, it is necessary to obtain the status mark of the target task to be scheduled recorded in the task queue to further determine the type of access feedback operation to be performed subsequently, wherein the status mark is fed back by the target scheduling node that matches the target task to be scheduled.
[0052] It is understandable that after receiving the task to be scheduled assigned by the data processing unit, the scheduling node will add it to the task queue of the scheduling node itself and send the current status information to the data processing unit. The status information sent under normal circumstances will include task id, node id, status mark, resource usage, expected completion time, error code, etc.; wherein the status mark includes a first designated mark and a second designated mark; wherein the first designated mark specifically includes a running state mark and a ready mark; the second designated mark includes a waiting state mark and a sleeping state mark. In response to detecting that the status mark is the first designated mark, the data processing unit determines that the task state matching the target task to be scheduled is the second state, that is, the target scheduling task has been received by other nodes and connected to the task queue of the node to be executed or is about to be executed; in response to detecting that the status mark is the second designated mark or no state mark, the data processing unit determines that the task state matching the target task to be scheduled is the third state, that is, the task to be scheduled has not yet been assigned to the scheduling node or the task to be scheduled in the assigned scheduling node is waiting. In this application, after receiving the status access request initiated by the original node, the data processing unit promptly queries the status of the tasks to be scheduled that were outsourced by the node, and triggers the corresponding feedback operation based on the task status, returning the unexecuted tasks to the original node. For the tasks that have been executed and are about to be executed, only the calculation results are fed back, reducing unnecessary data interactions, and ensuring the execution efficiency of the tasks to be scheduled while ensuring the independence of each node.
[0053] Specifically, the access feedback operation of obtaining and triggering a match based on the task status that matches the target task to be scheduled includes:
[0054] In response to detecting that the task state matching the target task to be scheduled is in the first state, the target calculation result matching the target task to be scheduled is searched in the calculation result pool; and the calculation result is sent to the target node. That is, at this point, the target task to be scheduled has been calculated and added to the calculation result pool. At this point, the data processing unit only needs to search the calculation result pool for the target calculation result matching the task and feed it back to the target node.
[0055] In response to detecting that the task state matching the target to-be-scheduled task is in the second state, the data processing unit waits for the target calculation result to be fed back by the target scheduling node; adds the target calculation result to the calculation result pool and sends the target calculation result to the target node. At this time, the data processing unit generates a waiting notification based on the estimated completion time fed back by the scheduling node and sends it to the target node to notify the target node to wait; at the same time, the data processing unit waits for the target scheduling node matching the target to-be-scheduled node to feed back the target calculation result. After receiving the target calculation result fed back by the target scheduling node, the data processing unit feeds back the target calculation result to the target node and adds it to the calculation result pool.
[0056] In response to detecting that the task state matching the target to-be-scheduled task is the third state and that there is no state mark within the target to-be-scheduled task, the target to-be-scheduled task is deleted from the task queue and a task resume instruction is sent to the target node to notify the target node to run the target to-be-scheduled task. That is, at this point, the target to-be-scheduled task has not yet been scheduled, and the original target node reclaims the target to-be-scheduled task, which is then calculated by the original node.
[0057] In response to detecting that the task state matching the target task to be scheduled is the third state and the state mark within the target task to be scheduled is the second specified mark, the target task to be scheduled is deleted from the task queue and a task continuation instruction is sent to the target node to notify the target node to run the target task to be scheduled, and a task cancellation instruction is sent to the target scheduling node to notify the target scheduling node to cancel the running of the target task to be scheduled. That is, at this time, although the task to be scheduled is assigned to the scheduling node, the target task to be scheduled within the scheduling node has not yet been executed and is not ready for execution; the target node has the highest authority, and at this time the target node reclaims the target task to be scheduled, and calculates the target task to be scheduled by the target node; and generates a task cancellation instruction and sends it to the data processing unit, which notifies the target scheduling node to cancel the running of the target task to be scheduled.
[0058] This application uses the data processing unit as the task scheduling center to achieve fine division and management of server hardware resources; Figure 2As shown in the figure, after receiving scheduled tasks from busy nodes, the data processing unit monitors and analyzes the server system load and intelligently assigns the scheduled tasks to the most suitable scheduling unit. This intelligent task scheduling mechanism optimizes resource utilization, reduces resource waste, and improves the overall system throughput and response speed.
[0059] Furthermore, in the server system disclosed herein, the introduction of a data processing unit (DPU) allows it to take on I / O loads and data processing tasks previously handled by the CPU. The DPU integrates a high-speed network controller, a data processing accelerator, and a programmable logic unit (PLU). These features collectively give the DPU unique advantages in efficiently processing network packets, accelerating data preprocessing, and intelligent task scheduling. The built-in high-speed network controller supports multiple network protocols and high-speed interfaces, enabling it to process large volumes of data packets from multiple computing nodes with extremely low latency. This capability is particularly important for applications requiring high-speed data exchange and real-time response, such as financial transactions and cloud computing services. Furthermore, by offloading network processing tasks from the CPU using the DPU, not only is the CPU burden reduced, but the performance loss caused by CPU interruptions to process network data is also minimized. Furthermore, the DPU's programmability is another key advantage; through programming, it can perform complex data preprocessing tasks, such as data compression, encryption and decryption, and protocol conversion, which would otherwise require the CPU or additional hardware. Leveraging the DPU's preprocessing capabilities, data is processed into a more computationally amenable form before entering the CPU, thereby improving the speed and efficiency of subsequent processing. Furthermore, the DPU can be customized and optimized based on application needs to meet the performance requirements of specific scenarios. In summary, the introduction of the data processing unit allows the CPU to focus more on performing the computationally intensive tasks it excels at, thereby improving data processing performance, reducing system energy consumption and operating costs, and increasing overall resource utilization.
[0060] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.
[0061] Based on the method disclosed in the above embodiment, the embodiment of the present application further provides a resource management system, such as Figure 3 As shown, specifically including:
[0062] The task receiving module 310 is configured to add the task data packet to the task queue in response to receiving the task data packet transmitted by the busy node, where the task data packet includes the task to be scheduled and the task context;
[0063] The task scheduling module 320 is used to assign the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool in order according to the task priority to obtain the calculation results and store the calculation results in the calculation result pool;
[0064] The task feedback module 330 is configured to, in response to receiving a status access request initiated by a target node for a target task to be scheduled, obtain and trigger a matching access feedback operation according to a task status that matches the target task to be scheduled.
[0065] For the description of the features in the above-mentioned resource management system corresponding embodiment, please refer to the relevant description of the resource management method corresponding embodiment, and no further details will be given here.
[0066] An embodiment of the present application further provides an electronic device, including a memory and a processor, wherein the memory stores a computer program, and the processor is configured to run the computer program to perform the steps in any of the above resource management method embodiments:
[0067] In response to receiving a task data packet to be scheduled transmitted by a busy node, adding the task data packet to be scheduled to a task queue, where the task data packet to be scheduled includes the task to be scheduled and the task context;
[0068] Allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool according to the task priority to obtain the calculation results and store the calculation results in the calculation result pool;
[0069] In response to receiving a state access request initiated by a target node for a target task to be scheduled, a matching access feedback operation is obtained and triggered according to a task state matching the target task to be scheduled.
[0070] in, Figure 4 The electronic device architecture is shown as an example, and may include a processor 410, a video display adapter 411, a disk drive 412, an input / output interface 413, a network interface 414, and a memory 420. The processor 410, the video display adapter 411, the disk drive 412, the input / output interface 413, the network interface 414, and the memory 420 may be communicatively connected via a bus 430.
[0071] Among them, the processor 410 can be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in this application.
[0072] The memory 420 can be implemented in the form of ROM (Read Only Memory, programmable memory), RAM (Random Access Memory, random access memory), static storage device, dynamic storage device, etc. The memory 420 can store an operating system 421 for controlling the execution of the electronic device 400, and a basic input and output system (BIOS) 422 for controlling the low-level operations of the electronic device 400. In addition, a web browser 423, a data storage management system 424, and an icon font processing system 425, etc. can also be stored. The above-mentioned icon font processing system 425 can be an application program that specifically implements the operations of the aforementioned steps in the embodiment of the present application. In short, when the technical solution provided by the present application is implemented by software or firmware, the relevant program code is stored in the memory 420 and is called and executed by the processor 410.
[0073] The input / output interface 413 is used to connect to input / output modules to enable information input and output. The input / output modules can be configured as components within the device (not shown) or externally connected to the device to provide corresponding functions. Input devices may include a keyboard, mouse, touch screen, microphone, and various sensors, while output devices may include a display, speaker, vibrator, indicator light, and the like.
[0074] The network interface 414 is used to connect to a communication module (not shown) to enable communication between the device and other devices. The communication module can communicate via wired means (such as USB, network cable, etc.) or wireless means (such as mobile network, WiFi, Bluetooth, etc.).
[0075] The bus 430 comprises a pathway for transmitting information between the various components of the device, such as the processor 410 , the video display adapter 411 , the disk drive 412 , the input / output interface 413 , the network interface 414 , and the memory 420 .
[0076] In addition, the electronic device 400 can also obtain information on specific collection conditions from the virtual resource object collection condition information database for use in condition judgment.
[0077] It should be noted that although the above device only shows the processor 410, video display adapter 411, disk drive 412, input / output interface 413, network interface 414, memory 420, bus 430, etc., in the specific implementation process, the device may also include other components necessary for normal execution. In addition, those skilled in the art will understand that the above device may also include only the components necessary to implement the solution of the present application, and does not necessarily include all the components shown in the figure.
[0078] An embodiment of the present application further provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, wherein the computer program is configured to execute the steps of any of the above-mentioned resource management method embodiments when running:
[0079] In response to receiving a task data packet to be scheduled transmitted by a busy node, adding the task data packet to be scheduled to a task queue, where the task data packet to be scheduled includes the task to be scheduled and the task context;
[0080] Allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool according to the task priority to obtain the calculation results and store the calculation results in the calculation result pool;
[0081] In response to receiving a state access request initiated by a target node for a target task to be scheduled, a matching access feedback operation is obtained and triggered according to a task state matching the target task to be scheduled.
[0082] In an exemplary embodiment, the computer-readable storage medium may include, but is not limited to, various media that can store computer programs, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk, or an optical disk.
[0083] An embodiment of the present application further provides a computer program product, which includes a computer program. When the computer program is executed by a processor, the steps in any of the above resource management method embodiments are implemented:
[0084] In response to receiving a task data packet to be scheduled transmitted by a busy node, adding the task data packet to be scheduled to a task queue, where the task data packet to be scheduled includes the task to be scheduled and the task context;
[0085] Allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool according to the task priority to obtain the calculation results and store the calculation results in the calculation result pool;
[0086] In response to receiving a state access request initiated by a target node for a target task to be scheduled, a matching access feedback operation is obtained and triggered according to a task state matching the target task to be scheduled.
[0087] An embodiment of the present application further provides another computer program product, including a non-volatile computer-readable storage medium, wherein the non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps in any of the above-mentioned resource management method embodiments are implemented:
[0088] In response to receiving a task data packet to be scheduled transmitted by a busy node, adding the task data packet to be scheduled to a task queue, where the task data packet to be scheduled includes the task to be scheduled and the task context;
[0089] Allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool according to the task priority to obtain the calculation results and store the calculation results in the calculation result pool;
[0090] In response to receiving a state access request initiated by a target node for a target task to be scheduled, a matching access feedback operation is obtained and triggered according to a task state matching the target task to be scheduled.
[0091] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0092] The above is a detailed introduction to a resource management method provided by the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core ideas of the present application. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the present application.
Claims
1. A resource management method, characterized in that: Applied to a data processing unit, the method includes: In response to receiving a task data packet to be scheduled transmitted by a busy node, adding the task data packet to be scheduled to a task queue, wherein the task data packet to be scheduled includes the task to be scheduled and a task context; Allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool in order according to the task priority to obtain calculation results and store the calculation results in a calculation result pool; In response to receiving a state access request initiated by a target node for a target task to be scheduled, obtaining and triggering a matching access feedback operation according to a task state matching the target task to be scheduled; The step of adding the task data packet to be scheduled to the task queue in response to receiving the task data packet to be scheduled transmitted by the busy node includes: In response to detecting that the queue depth of the task queue exceeds a preset depth, generating a transmission rate adjustment instruction and sending the instruction to the busy node to adjust the data transmission rate of the busy node according to the queue depth; Determine the queue position of the task to be scheduled in the task queue according to the received task priority of the task to be scheduled, wherein the task queue includes a buffer area and a running area; The method further includes determining a scheduling node that matches the task to be scheduled in the global resource pool: Screening idle nodes in the global resource pool to determine candidate nodes according to the task context of the task to be scheduled; Determine the scheduling score of the candidate node according to the idle resource utilization; A scheduling node is selected from the candidate nodes according to the scheduling score.
2. The method according to claim 1, characterized in that The task status includes a first status, a second status, and a third status. Acquiring the task status that matches the target task to be scheduled includes: Check whether the task queue contains the target task to be scheduled; In response to detecting that the task queue does not contain a task to be scheduled that matches the target task to be scheduled, determining that the task state that matches the target task to be scheduled is a first state; In response to detecting that the target task to be scheduled is included in the task queue, obtaining a status mark of the target task to be scheduled recorded in the task queue, the status mark being fed back by a target scheduling node matching the target task to be scheduled; In response to detecting that the state mark is the first specified mark, determining that the task state matched by the target to-be-scheduled task is the second state; In response to detecting that the state mark is the second specified mark or the no-state mark, it is determined that the task state matched by the target to-be-scheduled task is a third state.
3. The method according to claim 2, characterized in that The step of obtaining, in response to receiving a status access request initiated by a target node for a target task to be scheduled, and triggering a matching access feedback operation according to a task status matching the target task to be scheduled includes: In response to detecting that the task state matching the target task to be scheduled is in the first state, querying the calculation result pool for a target calculation result matching the target task to be scheduled; Send the calculation result to the target node.
4. The method according to claim 2, characterized in that The step of obtaining, in response to receiving a status access request initiated by a target node for a target task to be scheduled, and triggering a matching access feedback operation according to a task status matching the target task to be scheduled includes: In response to detecting that the task state matching the target to-be-scheduled task is in the second state, waiting for the target calculation result fed back by the target scheduling node; Add the target calculation result to the calculation result pool and send the target calculation result to the target node.
5. The method according to claim 2, characterized in that The step of obtaining, in response to receiving a status access request initiated by a target node for a target task to be scheduled, and triggering a matching access feedback operation according to a task status matching the target task to be scheduled includes: In response to detecting that the task state matching the target task to be scheduled is the third state and there is no state mark in the target task to be scheduled, deleting the target task to be scheduled in the task queue and sending a task continue instruction to the target node to notify the target node to run the target task to be scheduled; In response to detecting that the task state matching the target task to be scheduled is the third state and the state mark within the target task to be scheduled is the second specified mark, deleting the target task to be scheduled in the task queue and sending the task continue instruction to the target node to notify the target node to run the target task to be scheduled, and sending a task cancel instruction to the target scheduling node to notify the target scheduling node to cancel the running of the target task to be scheduled.
6. A resource management system, characterized in that: The system comprises: A task receiving module is configured to add a task data packet to a task queue in response to receiving a task data packet to be scheduled transmitted by a busy node, wherein the task data packet to be scheduled includes the task to be scheduled and a task context; A task scheduling module is used to allocate the tasks to be scheduled in the task queue to the scheduling nodes in the global resource pool in order according to the task priority to obtain calculation results and store the calculation results in a calculation result pool; The task feedback module is configured to, in response to receiving a status access request initiated by a target node for a target task to be scheduled, obtain and trigger a matching access feedback operation according to a task status matching the target task to be scheduled; The task receiving module is further configured to, in response to detecting that the queue depth of the task queue exceeds a preset depth, generate a transmission rate adjustment instruction and send the instruction to the busy node to adjust the data transmission rate of the busy node according to the queue depth; The task receiving module is further configured to determine a queue position of the task to be scheduled in the task queue according to the received task priority of the task to be scheduled, wherein the task queue includes a buffer area and a running area; The task scheduling module is further configured to determine a scheduling node that matches the task to be scheduled in the global resource pool: Screening idle nodes in the global resource pool to determine candidate nodes according to the task context of the task to be scheduled; Determine the scheduling score of the candidate node according to the idle resource utilization; A scheduling node is selected from the candidate nodes according to the scheduling score.
7. An electronic device, characterized in that: include: Memory for storing computer programs; A processor, configured to implement the steps of the resource management method according to any one of claims 1 to 5 when executing a computer program.
8. A computer-readable storage medium, characterized in that A computer program is stored in a computer-readable storage medium, wherein when the computer program is executed by a processor, the steps of the resource management method according to any one of claims 1 to 5 are implemented.
Citation Information
Patent Citations
Intelligent scheduling management system for private cloud resources based on hyper-converged architecture
CN120011088A
Dynamic CPU scheduling method, system and device based on CPU busy state and medium
CN120276839A