Methods, devices, nodes, and storage media for SLO assurance of multi-priority tasks

By setting water level thresholds and ousting low-priority tasks, the stability and resource utilization issues in the mixed deployment of multiple priority tasks are resolved. This ensures the Service Level Objective (SLO) of high-priority tasks and the resource allocation for low-priority tasks, thereby improving the overall stability of task operation.

CN114138428BActive Publication Date: 2026-03-13ALIBABA (CHINA) CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-18
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

In a hybrid deployment of multi-priority tasks, how can we ensure both the Service Level Objectives (SLOs) of high-priority and low-priority tasks and the stability of task operation?

Method used

By setting a first water level and a second water level, the resource utilization rate of the first task in the processing node is obtained, the amount of oversold resources is determined, and based on the amount of oversold resources and the amount of resources requested by the second task, some low-priority tasks are ousted to ensure that the resource satisfaction rate is lower than or equal to the second water level.

Benefits of technology

This achieves the goal of ensuring the SLO (Solution Time Limit) of high-priority tasks while preventing low-priority tasks from starving, thus improving the stability of task execution and resource utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114138428B_ABST
    Figure CN114138428B_ABST
Patent Text Reader

Abstract

This disclosure relates to a method, apparatus, node, and storage medium for ensuring Service Level Response (SLO) for multiple priority tasks. The method obtains a first watermark and the resource utilization rate of a first task in a processing node. If the SLO of the first task in the processing node is higher than that of a second task, the method determines the amount of oversold resources based on the first watermark and the resource utilization rate of the first task. Then, based on the amount of oversold resources and the amount of resources requested by the second task in the processing node, it determines the resource fulfillment rate for the second task. In response to a resource fulfillment rate falling below or equal to the second watermark, some second tasks in the processing node are evicted. This solution ensures that the overall resource utilization rate of the processing node is kept below the first watermark, guaranteeing the stability of task operation. Furthermore, it protects high-SLO tasks while preventing low-SLO tasks from starving due to insufficient resources.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of resource optimization technology, and in particular to a method, apparatus, node, and storage medium for ensuring SLO for multi-priority tasks. Background Technology

[0002] Related technologies can deploy services with multiple priorities of Service Level Objects (SLOs) on the underlying resources of the same processing node to improve resource utilization. However, how to ensure both the SLOs of high-priority and low-priority tasks and the stability of task execution in a hybrid deployment approach is a technical problem that needs to be solved. Summary of the Invention

[0003] To address or at least partially address the aforementioned technical problems, this disclosure provides a method, apparatus, node, and storage medium for ensuring SLO (Solution Logical Level) for multiple priority tasks.

[0004] The first aspect of this disclosure provides a method for ensuring SLO (Solution Time Limit) for multi-priority tasks, including:

[0005] Obtain the first water level and the resource utilization rate of the first task in the processing node, wherein the SLO of the first task in the processing node is higher than that of the second task.

[0006] Based on the first water level and the resource utilization rate of the first task, determine the amount of oversold resources;

[0007] Based on the quantity of oversold resources and the quantity of resources requested by the second task in the processing node, the resource satisfaction rate for the second task is determined.

[0008] In response to the resource satisfaction rate being lower than or equal to the second water level, a portion of the second tasks in the processing node are expelled.

[0009] A second aspect of this disclosure provides a SLO guarantee device for multiple priority tasks, including:

[0010] An acquisition module is used to acquire a first water level and the resource utilization rate of a first task in a processing node, wherein the SLO of the first task in the processing node is higher than that of the second task.

[0011] The first determining module is used to determine the amount of oversold resources based on the first water level and the resource utilization rate of the first task.

[0012] The second determining module is used to determine the resource satisfaction rate for the second task based on the quantity of the oversold resources and the quantity of resources requested by the second task in the processing node.

[0013] The eviction module is used to evict a portion of the second tasks in the processing node in response to the resource satisfaction rate being lower than or equal to the second water level.

[0014] A third aspect of this disclosure provides a processing node including a memory and a processor, wherein the memory stores a computer program that, when executed by the processor, can implement the method of the first aspect described above.

[0015] A fourth aspect of this disclosure provides a computer-readable storage medium storing a computer program that, when executed by a processor, can implement the method of the first aspect described above.

[0016] The technical solution provided in this disclosure has the following advantages compared with the prior art:

[0017] In this embodiment, by acquiring a first water level and the resource utilization rate of a first task in a processing node, the amount of oversold resources is determined based on the first water level and the resource utilization rate of the first task. Then, based on the amount of oversold resources and the amount of resources requested by a second task in the processing node, the resource satisfaction rate for the second task is determined. In response to the resource satisfaction rate being lower than or equal to the second water level, some second tasks in the processing node are evicted. Because a first water level and a second water level are set, after determining the amount of oversold resources based on the first water level and the resource utilization rate of the first task with higher priority (in this disclosure, the higher the SLO of the task, the higher the priority), the resource satisfaction rate for the second task with lower priority can be determined. When the resource satisfaction rate of the second task is lower than or equal to the second water level, the second task with lower priority can be evicted. On the one hand, this ensures that the overall resource utilization rate of the processing node is controlled below the first water level, guaranteeing the stability of task operation; on the other hand, by evicting some lower priority second tasks, the SLO of high-priority tasks can be guaranteed while preventing low-priority tasks from starving due to lack of resources. Attached Figure Description

[0018] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.

[0019] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0020] Figure 1 This is a schematic diagram of a SLO guarantee scenario for multi-priority tasks provided in an embodiment of this disclosure;

[0021] Figure 2 This is a flowchart of an SLO guarantee method for multi-priority tasks provided in an embodiment of this disclosure;

[0022] Figure 3 This is a schematic diagram of an overselling resource provided in an embodiment of this disclosure;

[0023] Figure 4 This is a flowchart of another SLO guarantee method for multi-priority tasks provided in this disclosure embodiment;

[0024] Figure 5 This is a schematic diagram of an overall system architecture provided in an embodiment of this disclosure.

[0025] Figure 6 This is a schematic diagram of the structure of a multi-priority task SLO guarantee device provided in an embodiment of this disclosure;

[0026] Figure 7 This is a schematic diagram of the structure of a processing node in an embodiment of this disclosure. Detailed Implementation

[0027] To better understand the above-mentioned objectives, features, and advantages of this disclosure, the solutions disclosed herein will be further described below. It should be noted that, unless otherwise specified, the embodiments and features described herein can be combined with each other.

[0028] Numerous specific details are set forth in the following description in order to provide a full understanding of this disclosure, but this disclosure may also be implemented in other ways different from those described herein; obviously, the embodiments in the specification are only some, and not all, of the embodiments of this disclosure.

[0029] To improve resource utilization, related technologies can deploy tasks of various priorities together on the underlying resources of the same processing node, where a higher SLO (Solution Time Limit) indicates a higher priority. For example, in cloud computing, a certain amount of server resources is typically allocated to high-priority tasks in each computing unit (such as a container). However, in practice, high-priority tasks usually utilize less resource than allocated, resulting in low resource utilization. To improve resource utilization, related technologies can deploy low-priority and high-priority tasks together, allowing low-priority tasks to utilize resources not fully used by high-priority tasks. This increases the deployment density of a single computing unit and improves resource utilization. However, excessively high resource utilization can also cause some unexpected global stability issues, such as high CPU utilization leading to latency-sensitive delays and jitter. Therefore, how to ensure both the SLOs of high-priority and low-priority tasks and the stability of task operation in a hybrid deployment approach is a technical problem that needs to be solved.

[0030] To address the technical problems in related technologies, this disclosure provides an SLO guarantee scheme for multi-priority tasks, exemplarily... Figure 1 This is a schematic diagram of a SLO guarantee scenario for multi-priority tasks provided in an embodiment of this disclosure, as shown below. Figure 1 As shown, the processing node can obtain the first water level and the resource utilization rate of the first task in the processing node. Based on the first water level and the resource utilization rate of the first task, the number of oversold resources is determined. Then, the processing node can determine the resource satisfaction rate for the second task based on the number of oversold resources and the number of resources requested by the second task in the processing node. In response to the resource satisfaction rate being lower than or equal to the second water level, some of the second tasks in the processing node are expelled. Because a first and second water level are set, after determining the amount of oversold resources based on the first water level and the resource utilization rate of the first task with higher priority, the resource satisfaction rate of the current oversold resources for the second task with lower priority can be determined. When the resource satisfaction rate of the second task is lower than or equal to the second water level, the second task with lower priority can be evicted. On the one hand, this ensures that the overall resource utilization rate of the processing node can be controlled at a safe water level, i.e., below the first water level, thus ensuring the stability of task operation. On the other hand, by evicting some low-priority tasks and retaining others, at least some low-priority tasks can be guaranteed to run while ensuring the SLO of high-priority tasks, thus avoiding the phenomenon of all low-priority tasks being starved due to lack of resources.

[0031] To better understand the inventive concept of the embodiments of this disclosure, the technical solutions of the embodiments of this disclosure will be described below in conjunction with exemplary embodiments.

[0032] Figure 2 This is a flowchart of a method for ensuring SLO (Solution Time Limit) for multi-priority tasks provided in an embodiment of this disclosure. Figure 2 As shown, the method provided in this embodiment includes the following steps:

[0033] Step 101: Obtain the first water level and the resource utilization rate of the first task in the processing node.

[0034] In this context, a processing node can be understood as a device that deploys multiple priority tasks or services to process various tasks. Within a processing node, the first task has a higher priority than the second task; that is, the processing node prioritizes processing the first task before processing the second task. In this embodiment, a task can be a computing unit that uses node resources, such as a program or application. The execution of a task requires the use of node resources. This embodiment does not limit the number of resources included in a processing node; for example, a processing node may include resources such as a Central Processing Unit (CPU), a Graphics Processing Unit (GPU), memory, network, and disk.

[0035] Task priorities can be determined based on factors such as task importance and latency characteristics. Task priorities can be represented using preset identifiers, the format of which is unrestricted, such as numbers or letters. Higher priority tasks indicate tasks with higher SLO (Solution Time Limit) requirements, such as latency-sensitive applications like e-commerce ordering and payment systems, which require timely computation and user feedback. Lower priority tasks indicate tasks with lower SLO requirements, which may include latency-insensitive tasks, such as big data tasks, which only need to be completed within a certain timeframe. In other words, in this embodiment, the SLO of the first task is higher than that of the second task.

[0036] The first water level can be a safety water level set for all resources of the processing node, used to control the overall resource utilization rate and prevent it from being exceeded. Resource utilization rate can be the percentage of resources actually used out of the total number of resources. The resource utilization rate of the first task can be the percentage of resources actually used by the first task out of the total number of resources.

[0037] In this embodiment of the disclosure, the processing node can obtain a pre-set first water level and obtain the resource utilization rate of the first task.

[0038] Step 102: Determine the amount of oversold resources based on the first water level and the resource utilization rate of the first task.

[0039] Oversold resources can be understood as the portion of resources allocated to the first task that are not utilized. For example, if the first task is allocated 100 processing cores and uses 80 of them, then the remaining 20 processing cores are the oversold resources.

[0040] In one feasible implementation, the processing node can classify the included resources, specifically according to task priority, and map resource requests from tasks with different priorities to the classified resources. For example, when task priorities include high priority and low priority, the resources can be divided into guaranteed resources (NormalResource) and the aforementioned oversold resources (OversoldResource). High-priority tasks are mapped to guaranteed resources, and low-priority tasks are mapped to oversold resources. Of course, more categories can be used; this disclosure uses the above two categories as examples for illustration.

[0041] For example, Figure 3 This is a schematic diagram of an overselling resource provided in an embodiment of this disclosure, such as... Figure 3 As shown, taking the CPU resources of the processing node as an example, the actual number of CPU cores in the hardware (which can also be normalized) can be determined as the guaranteed resources of the CPU; while the oversold resources of the CPU can be dynamically calculated based on the actual load of the processing node. When the resource utilization rate is low, the number of oversold resources is relatively high, and idle CPUs can be oversold and allocated to some low-priority tasks that are not sensitive to latency.

[0042] In this embodiment of the disclosure, after obtaining the first water level and the resource utilization rate of the first task, the processing node can calculate and determine the amount of oversold resources based on the first water level, the resource utilization rate of the first task, and the total resource quantity. In one feasible implementation, the amount of oversold resources can be equal to the total resource quantity multiplied by the product of the difference between the first water level and the resource utilization rate of the first task. Specifically, it can be calculated using the following formula: O = Z * (AU), where O represents the amount of oversold resources, Z represents the total resource quantity, A represents the first water level, and U represents the resource utilization rate of the first task.

[0043] For example, when the resource is CPU resource, the number of CPU over-sold resources is represented by CPU1, and the above formula is expressed as CPU1 = CPU2 * (CPU3 - CPU4), where CPU2 represents the total number of physical CPUs, CPU3 represents the first level of CPUs, and CPU4 represents the resource utilization rate of the first task of CPUs.

[0044] Step 103: Based on the number of oversold resources and the number of resources requested by the second task in the processing node, determine the resource satisfaction rate for the second task.

[0045] The resource quantity requested by the second task can be the amount of resources required to execute the second task. The resource fulfillment rate of the second task can be understood as the percentage of the resource quantity required by the second task that is satisfied by the aforementioned oversold resources.

[0046] In this embodiment of the disclosure, after the processing node determines the number of oversold resources, it can obtain the number of resources requested by the second task, and calculate the resource satisfaction rate of the second task based on the number of oversold resources and the number of resources requested by the second task. Specifically, the resource satisfaction rate of the second task can be equal to the result of dividing the number of oversold resources by the number of resources requested by the second task. This can be expressed by the formula S = O / D, where S represents the resource satisfaction rate of the second SLO, O represents the number of oversold resources, and D represents the number of resources requested by the second task.

[0047] Step 104: In response to a resource satisfaction rate that is lower than or equal to the second water level, expel a portion of the second tasks from the processing node.

[0048] The second water level can be understood as a lower water level set for the second task, that is, a water level set for low-priority tasks, used to judge the resource satisfaction rate.

[0049] In this embodiment of the disclosure, after the processing node determines the resource satisfaction rate for the second task, it can compare the resource satisfaction rate with the second water level. When the resource satisfaction rate is lower than or equal to the second water level, it indicates that the resources for the second task cannot be satisfied. Then, the processing node can perform an eviction operation on some of the second tasks. After the eviction, the number of resources requested by the second task is reduced, and the resource satisfaction rate of the remaining second tasks increases. The resource satisfaction rate of the remaining second tasks is continuously compared with the second water level until the resource satisfaction rate of the remaining second tasks is greater than the second water level.

[0050] In another embodiment of this disclosure, a portion of the second tasks in the processing node are evicted until the resource satisfaction rate of the remaining second tasks is greater than or equal to a third water level, which is higher than the second water level.

[0051] The third watermark can be a higher cutoff watermark set for the second task, exceeding the second watermark. After the processing node performs a cutoff operation on some of the second tasks, the number of resources requested by these tasks decreases, thereby increasing the resource satisfaction rate of the remaining second tasks. The resource satisfaction rate of the remaining second tasks is continuously compared with the third watermark until it is greater than or equal to the third watermark, at which point the cutoff operation stops. This scheme, by setting a higher cutoff watermark, prevents the resource satisfaction rate of the second tasks from quickly returning to the lower second watermark.

[0052] The SLO guarantee method for multiple priority tasks in this embodiment of the present disclosure obtains a first water level and the resource utilization rate of the first task in the processing node. Based on the first water level and the resource utilization rate of the first task, the amount of oversold resources is determined. Then, based on the amount of oversold resources and the amount of resources requested by the second task in the processing node, the resource satisfaction rate for the second task is determined. In response to the resource satisfaction rate being lower than or equal to the second water level, some second tasks in the processing node are evicted. Because a first water level and a second water level are set, after determining the amount of oversold resources based on the first water level and the resource utilization rate of the first task with higher priority, the resource satisfaction rate of the second task with lower priority can be determined. When the resource satisfaction rate of the second task is lower than or equal to the second water level, the second task with lower priority can be evicted. This not only ensures that the overall resource utilization rate is controllable, but also avoids the starvation phenomenon caused by low-priority tasks not receiving resources while ensuring the SLO of high-priority tasks, thus achieving better stability in task operation.

[0053] For example, Figure 4 This is a flowchart of another SLO guarantee method for multi-priority tasks provided in this disclosure embodiment, such as... Figure 4 As shown, in one feasible implementation, determining the amount of oversold resources based on the first water level and the resource utilization rate of the first task may include the following steps:

[0054] Step 401: Based on the first water level and the resource utilization rate of the first task, determine the first percentage of the oversold resources relative to the total resources of the processing node.

[0055] In this embodiment of the disclosure, after the processing node obtains the first water level and the resource utilization rate of the first task, it can determine the percentage of oversold resources relative to the total number of resources included in the processing node based on the first water level and the resource utilization rate of the first task, thus obtaining the first percentage. Specifically, the first percentage is equal to the difference between the first water level and the resource utilization rate of the first task.

[0056] Step 402: Reduce the first percentage by a preset percentage value to obtain the second percentage.

[0057] After determining the first percentage, the processing node can determine the second percentage as the difference between the first percentage and a preset percentage value. The preset percentage value can be set according to the actual situation.

[0058] Step 403: Determine the amount of oversold resources based on the second percentage and the total number of resources of the processing nodes.

[0059] After determining the second percentage, the processing node can multiply the second percentage by the total resource quantity to obtain the amount of oversold resources. Specifically, it can be calculated using the following formula: O = Z * E, where O represents the amount of oversold resources, Z represents the total resource quantity, and E represents the second percentage.

[0060] In this embodiment of the disclosure, in addition to determining the amount of oversold resources directly based on the first water level and the resource utilization rate of the first task, the amount of oversold resources can also be determined by subtracting a preset value from the first percentage of the total resources of the processing node after determining the first percentage of the oversold resources. The second percentage can then be multiplied by the total resources to obtain the oversold amount. This allows a portion of resources to be reserved for the first task, that is, a portion of resources to be reserved for low-priority tasks. This avoids the need to frequently suppress the resources of low-priority tasks, allowing them to receive some resources for processing. This effectively ensures that low-priority tasks do not starve due to being suppressed and thus do not become unavailable for processing.

[0061] In some embodiments, the SLO guarantee method for multiple priority tasks may further include: in response to a resource satisfaction rate higher than a second water level, controlling the amount of resources allocated to a second task based on the resource utilization rate of a first task, so that the total resource utilization rate of the processing node is lower than or equal to the first water level.

[0062] The total resource utilization rate can be either the overall utilization rate of all resources in the processing node or the percentage of the total resources utilized.

[0063] Specifically, once the processing node determines that the resource satisfaction rate for the second task is higher than the second watermark, it can refrain from evictment. Instead, it can control the amount of resources allocated to the second task based on the resource utilization rate of the first task, ensuring that the total resource utilization rate does not exceed the first watermark. In other words, when the resource utilization rate of the first SLO is low, the amount of resources allocated to the second task can be increased; conversely, when the resource utilization rate of the first task is high, the amount of resources allocated to the second task can be reduced. The specific adjustment to the amount of resources allocated to the second task can be determined based on the actual situation, as long as the total resource utilization rate does not exceed the first watermark.

[0064] In the above scheme, while ensuring the high-priority tasks, the amount of resources allocated to low-priority tasks can be suppressed, thereby controlling and maintaining the overall resource utilization rate, ensuring that the overall resource utilization rate does not exceed the safe water level, and improving the stability of task operation.

[0065] In some embodiments, after determining the amount of oversold resources based on the first water level and the resource utilization rate of the first task, the SLO guarantee method for multiple priority tasks may further include: reporting the information of oversold resources to the task scheduling device.

[0066] The task scheduling device can be a component within the overall machine architecture that allocates resources to computing units and selects suitable running nodes. Specifically, after determining the oversold resources and their quantity based on the resource utilization rate of the first water level and the first task, the quantity of oversold resources and other relevant information can be reported to the task scheduling device.

[0067] In this embodiment, the task scheduling device does not involve how to schedule tasks or allocate resources. Instead, in order to achieve better SLO guarantee requirements, the information on the oversold resources is reported to the task scheduling device. This is applicable to various task scheduling devices, so that a reasonable number of low-priority tasks can be scheduled in the future, thereby realizing load-based scheduling.

[0068] For example, Figure 5 This is a schematic diagram of an overall system architecture provided in an embodiment of this disclosure, such as... Figure 5 As shown, an exemplary system architecture including multiple processing nodes 501 is illustrated. The SLO guarantee method for multi-priority tasks provided in this embodiment can be derived from... Figure 5 One of the processing nodes, 501, is implemented.

[0069] like Figure 5 As shown, the overall architecture may include multiple processing nodes 501, a task scheduling device 502, and a management and configuration device 503. The central scheduling device 502 may include a scheduler and an SLO controller. The scheduler is the aforementioned task scheduling device, used to schedule and allocate resources for various tasks. For example, resources can be divided into two categories as shown in the diagram: guaranteed resources and oversold resources, corresponding to high-priority tasks and low-priority tasks in each processing node 501, respectively. The management and configuration device 503 can be used to set resource utilization thresholds or resource satisfaction thresholds, such as the first threshold for total resource utilization and the second threshold for the second task (i.e., low-priority task) as shown in the diagram.

[0070] The processing node 501 may include a single-machine scheduling device and tasks of different priorities. The single-machine scheduling device may include the utilization control device, resource reporting device, eviction device and resource calculation device shown in the figure. Tasks of different priorities may include high-priority tasks and low-priority tasks shown in the figure. High-priority tasks may be the tasks corresponding to the first task mentioned above, and low-priority tasks may be the second task mentioned above.

[0071] The resource calculation device in processing node 501 can calculate the amount of oversold resources based on the resource utilization rate of the first task and the first water level. Then, the resource reporting device can report the amount of oversold resources to the SLO controller in the central scheduling device 502. The scheduler, based on the amount of oversold resources and the amount of guaranteed resources, schedules high-priority tasks and low-priority tasks to the processing node. The utilization rate control device can control the resource utilization rate of low-priority tasks, that is, based on the resource utilization rate of the first task, control the amount of resources allocated to the second task, so that the total resource utilization rate of the processing node is less than or equal to... The first water level line; the expulsion device can set a water level line for resources for low-priority tasks, that is, a second water level line or a third water level line for the second task. The third water level line is higher than the second water level line. Then, based on the amount of oversold resources and the amount of resources requested by the second task in the processing node, the resource satisfaction rate for the second task can be determined. In response to the resource satisfaction rate being lower than or equal to the second water level line, some of the second tasks in the processing node are expelled until the resource satisfaction rate of the remaining second tasks is greater than the second water level line, or until the resource satisfaction rate of the remaining second tasks is greater than or equal to the third water level line.

[0072] This disclosure provides a resource guarantee strategy. Different guarantee strategies can be adopted for tasks with different priorities. For high-priority tasks, the resource allocation of low-priority tasks can be suppressed. This ensures that the SLO of high-priority tasks is guaranteed while the overall resource utilization does not exceed the safety threshold. This better ensures that the overall resource utilization of the machine is controllable after the mixed deployment of tasks with different priorities, thereby achieving better stability. For low-priority tasks, the focus is on performing eviction operations in real time based on the resource satisfaction rate of low-priority tasks. This can promptly detect when the resource satisfaction rate of low-priority tasks does not meet the conditions and perform eviction operations to achieve the purpose of rescheduling to other idle processing nodes. This effectively ensures that low-priority tasks do not starve due to suppression. Through the above two strategies in the mixed deployment method, both the SLO of high-priority and low-priority tasks are guaranteed, as well as the stability of task operation.

[0073] It should be noted that the embodiments in this application are only examples of the first and second tasks. If there are other tasks with lower priority than the first task, such as the third and fourth tasks, in other embodiments, these other tasks can also be suppressed and driven away using similar methods as described above, which will not be elaborated here.

[0074] Figure 6 This is a schematic diagram of a SLO guarantee device for multi-priority tasks provided in an embodiment of this disclosure. This SLO guarantee device can be understood as the aforementioned processing node or a portion of the functional modules within the aforementioned processing node. For example... Figure 6As shown, the processing apparatus 60 includes:

[0075] The acquisition module 61 is used to acquire the first water level line and the resource utilization rate of the first task in the processing node, wherein the SLO of the first task in the processing node is higher than that of the second task.

[0076] The first determining module 62 is used to determine the amount of oversold resources based on the first water level and the resource utilization rate of the first task.

[0077] The second determining module 63 is used to determine the resource satisfaction rate for the second task based on the quantity of the oversold resources and the quantity of resources requested by the second task in the processing node.

[0078] The expulsion module 64 is used to expel a portion of the second tasks in the processing node in response to the resource satisfaction rate being lower than or equal to the second water level.

[0079] In one implementation, the first determining module 62 is configured to:

[0080] Based on the first water level and the resource utilization rate of the first task, determine the first percentage of the oversold resources relative to the total resources of the processing node;

[0081] The first percentage is reduced by a preset percentage value to obtain the second percentage;

[0082] The amount of oversold resources is determined based on the second percentage and the total number of resources of the processing nodes.

[0083] In one embodiment, the expulsion module 64 is configured to:

[0084] Expel a portion of the second tasks from the processing node until the resource satisfaction rate of the remaining second tasks is greater than the second water level; or

[0085] Some of the second tasks in the processing node are ousted until the resource satisfaction rate of the remaining second tasks is greater than or equal to the third water level, which is higher than the second water level.

[0086] In one embodiment, the device further includes:

[0087] A resource control module is used to control the amount of resources allocated to the second task based on the resource utilization rate of the first task in response to the resource satisfaction rate being higher than the second water level, so that the total resource utilization rate of the processing node is lower than or equal to the first water level.

[0088] In one embodiment, the device further includes an information reporting module, used for:

[0089] After determining the amount of oversold resources based on the first water level and the resource utilization rate of the first task, the information on the oversold resources is reported to the task scheduling device.

[0090] The apparatus provided in this embodiment is capable of performing the above-described... Figures 1-5 The methods in any of the embodiments are similar in execution and beneficial effects, and will not be described again here.

[0091] This disclosure also provides a processing node, which includes a processor and a memory, wherein the memory stores a computer program, and when the computer program is executed by the processor, it can perform the above-described functions. Figures 1-5 The method of any of the embodiments.

[0092] Example, Figure 7 This is a schematic diagram of the structure of a processing node according to an embodiment of this disclosure. See below for details. Figure 7 The diagram illustrates a suitable structural schematic for implementing the processing node 700 in the embodiments of this disclosure. The processing node 700 in the embodiments of this disclosure may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 7 The processing node shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.

[0093] like Figure 7 As shown, the processing node 700 may include a processing device (e.g., a central processing unit, a graphics processing unit, etc.) 701, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 702 or a program loaded from a storage device 708 into a random access memory (RAM) 703. The RAM 703 also stores various programs and data required for the operation of the processing node 700. The processing device 701, ROM 702, and RAM 703 are interconnected via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.

[0094] Typically, the following devices can be connected to I / O interface 705: input devices 706 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 707 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 708 including, for example, magnetic tapes, hard disks, etc.; and communication devices 709. Communication device 709 allows processing node 700 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 7 A processing node 700 with various devices is shown, but it should be understood that it is not required to implement or have all of the devices shown. More or fewer devices may be implemented or have alternatively.

[0095] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication device 709, or installed from storage device 708, or installed from ROM 702. When the computer program is executed by processing device 701, it performs the functions defined in the methods of embodiments of this disclosure.

[0096] It should be noted that the computer-readable medium described in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in connection with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0097] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.

[0098] The aforementioned computer-readable medium may be included in the aforementioned processing node; or it may exist independently and not be assembled into the processing node.

[0099] The aforementioned computer-readable medium carries one or more programs that, when executed by the processing node, cause the processing node to: acquire a first water level and the resource utilization rate of a first task in the processing node, wherein the SLO of the first task is higher than that of a second task; determine the amount of oversold resources based on the first water level and the resource utilization rate of the first task; determine the resource satisfaction rate for the second task based on the amount of oversold resources and the amount of resources requested by the second task in the processing node; and, in response to the resource satisfaction rate being lower than or equal to a second water level, evict a portion of the second tasks in the processing node.

[0100] Computer program code for performing the operations of this disclosure can be written in one or more programming languages ​​or a combination thereof, including but not limited to object-oriented programming languages ​​such as Java, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0101] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0102] The units described in the embodiments of this disclosure can be implemented in software or hardware. The names of the units are not, in some cases, intended to limit the specific unit.

[0103] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0104] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0105] This disclosure also provides a computer-readable storage medium storing a computer program that, when executed by a processor, can perform the above-described functions. Figures 1-5 The methods in any of the embodiments are similar in execution and beneficial effects, and will not be described again here.

[0106] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0107] The above description is merely a specific embodiment of this disclosure, enabling those skilled in the art to understand or implement it. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this disclosure. Therefore, this disclosure is not to be limited to the embodiments described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A method for ensuring SLO (Solution Time Limit) for multi-priority tasks, characterized in that, include: Obtain the first water level and the resource utilization rate of the first task in the processing node, wherein the service level target (SLO) of the first task in the processing node is higher than that of the second task. Based on the first water level and the resource utilization rate of the first task, determine the amount of oversold resources; Based on the quantity of oversold resources and the quantity of resources requested by the second task in the processing node, the resource satisfaction rate for the second task is determined. In response to the resource satisfaction rate being lower than or equal to the second water level, some of the second tasks in the processing node are expelled until the resource satisfaction rate of the remaining second tasks is greater than the second water level or greater than or equal to the third water level; the third water level is higher than the second water level.

2. The method according to claim 1, characterized in that, The determination of the amount of oversold resources based on the resource utilization rate of the first water level and the first task includes: Based on the first water level and the resource utilization rate of the first task, determine the first percentage of the oversold resources relative to the total resources of the processing node; The first percentage is reduced by a preset percentage value to obtain the second percentage; The amount of oversold resources is determined based on the second percentage and the total number of resources of the processing nodes.

3. The method according to claim 1, characterized in that, The method further includes: In response to the resource satisfaction rate being higher than the second water level, the amount of resources allocated to the second task is controlled according to the resource utilization rate of the first task, so that the total resource utilization rate of the processing node is lower than or equal to the first water level.

4. The method according to claim 1, characterized in that, After determining the amount of oversold resources based on the first water level and the resource utilization rate of the first task, the method further includes: The information about the oversold resources is reported to the task scheduling device.

5. A SLO guarantee device for multi-priority tasks, characterized in that, include: An acquisition module is used to acquire a first water level and the resource utilization rate of a first task in a processing node, wherein the SLO of the first task in the processing node is higher than that of the second task. The first determining module is used to determine the amount of oversold resources based on the first water level and the resource utilization rate of the first task. The second determining module is used to determine the resource satisfaction rate for the second task based on the quantity of the oversold resources and the quantity of resources requested by the second task in the processing node. The eviction module is used to evict a portion of the second tasks in the processing node in response to the resource satisfaction rate being lower than or equal to the second water level, until the resource satisfaction rate of the remaining second tasks is greater than the second water level or greater than or equal to the third water level; the third water level is higher than the second water level.

6. The apparatus according to claim 5, characterized in that, The device further includes: A resource control module is used to control the amount of resources allocated to the second task based on the resource utilization rate of the first task in response to the resource satisfaction rate being higher than the second water level, so that the total resource utilization rate of the processing node is lower than or equal to the first water level.

7. A processing node, characterized in that, include: A memory and a processor, wherein the memory stores a computer program that, when executed by the processor, implements the method as described in any one of claims 1-4.

8. A computer-readable storage medium, characterized in that, The storage medium stores a computer program that, when executed by a processor, implements the method as described in any one of claims 1-4.

Citation Information

Patent Citations

  • Distributed system, and scheduling method and apparatus thereof

    CN107066332A

  • Large resource scheduling method, system and device and readable storage medium

    CN110750350A