Resource scheduling method, device, system and equipment of cloud service and medium
Patent Information
- Application Number
- CN202610050021.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-01-14
- Publication Date
- 2026-10-27
- Estimated Expiration
- 2046-01-14
AI Technical Summary
但是,此类资源调度方法难以满足单个用户自身的资源调度需求
Smart Images

Figure CN121691208B_ABST
Abstract
Description
Technical Field
[0001] One or more embodiments of this disclosure relate to a resource scheduling method for cloud services, a resource scheduling apparatus for cloud services, a resource scheduling system for cloud services, an electronic device, and a computer-readable storage medium. Background Technology
[0002] In cloud services, multiple users (e.g., cloud service tenants) share resources provided by hardware devices. To maximize overall resource utilization, current resource scheduling methods allocate resources among users at the user level. However, such methods struggle to meet the resource scheduling needs of individual users. Summary of the Invention
[0003] This summary section is provided to briefly introduce the concepts, which will be described in detail in the detailed description section below. This summary section is not intended to identify key or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.
[0004] At least one embodiment of this disclosure provides a resource scheduling method for cloud services, applied to a control device, comprising: acquiring scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of transmitted service data and the traffic of discarded service data of the queue; determining at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information; generating a scheduling instruction based on the at least one maximum available bandwidth and sending the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth, and the scheduling instruction is used to instruct the network device to update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth.
[0005] At least another embodiment of this disclosure provides a resource scheduling method in a cloud service, applied to a network device, comprising: sending scheduling request information corresponding to a user to a control device, wherein the user is one of multiple users using the cloud service, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of transmitted service data and the traffic of discarded service data of the queue, the control device is used to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, and to generate a scheduling instruction based on the at least one maximum available bandwidth, the scheduling instruction including the at least one maximum available bandwidth; and in response to obtaining the scheduling instruction sent by the control device, updating the rate limiting parameters of the at least one queue corresponding to the at least one maximum available bandwidth.
[0006] At least one further embodiment of this disclosure provides a resource scheduling apparatus for cloud services, applied to a control device, comprising: an acquisition module configured to: acquire scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, and the required bandwidth of each queue is determined based on the traffic of transmitted service data and the traffic of discarded service data of the queue; a determination module configured to: determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information; and a scheduling module configured to: generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth, and the scheduling instruction is used to instruct the network device to update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth.
[0007] At least one further embodiment of this disclosure provides a resource scheduling device in a cloud service, applied to a network device, comprising: a sending module configured to: send scheduling request information corresponding to a user to a control device, wherein the user is one of multiple users using the cloud service, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of transmitted service data and the traffic of discarded service data of the queue, the control device is used to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, and to generate a scheduling instruction based on the at least one maximum available bandwidth, the scheduling instruction including the at least one maximum available bandwidth; and an adjustment module configured to: update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth in response to obtaining the scheduling instruction sent by the control device.
[0008] At least another embodiment of this disclosure provides a resource scheduling system in a cloud service, including a control device and a network device. The network device is used to send scheduling request information corresponding to a user to the control device, wherein the user is one of multiple users using the cloud service, and the scheduling request information includes the required bandwidth of multiple queues. The required bandwidth of each queue is determined based on the traffic of transmitted service data and the traffic of discarded service data in the queue. The multiple queues are used to transmit the user's service data. The control device is used to acquire the scheduling request information corresponding to the user, determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, generate a scheduling instruction based on the at least one maximum available bandwidth, and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth. The network device is further used to update the rate limiting parameters of the at least one queue corresponding to the at least one maximum available bandwidth in response to acquiring the scheduling instruction.
[0009] At least one further embodiment of this disclosure provides an electronic device, including: a processing device; and a storage device including one or more computer program instructions; wherein the one or more computer program instructions are executed by the processing device to perform a resource scheduling method in a cloud service provided in at least one embodiment of this disclosure.
[0010] At least one further embodiment of this disclosure provides a computer-readable storage medium for non-transitory storage of computer-readable instructions, wherein the computer-readable instructions, when executed by a processor, implement the resource scheduling method in a cloud service provided in at least one embodiment of this disclosure.
[0011] At least one embodiment of this disclosure provides a computer program product, including a computer program that, when executed by a processor, implements a resource scheduling method in a cloud service provided by at least one embodiment of this disclosure. Attached Figure Description
[0012] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale.
[0013] Figure 1 This illustration schematically shows an architecture diagram of a resource scheduling system for cloud services provided in at least one embodiment of the present disclosure;
[0014] Figures 2A-2C The illustration shows a flowchart of a resource scheduling method for cloud services provided in at least one embodiment of the present disclosure;
[0015] Figure 3 This illustration schematically shows a flowchart of a network device processing service data according to at least one embodiment of the present disclosure;
[0016] Figure 4 The illustration shows a flowchart of another cloud service resource scheduling method provided in at least one embodiment of the present disclosure;
[0017] Figure 5 The illustration shows a flowchart of a resource scheduling method for cloud services provided in at least one embodiment of the present disclosure;
[0018] Figure 6 This schematic diagram illustrates the structure of a resource scheduling device for cloud services applied to control equipment, provided in at least one embodiment of the present disclosure.
[0019] Figure 7 This schematic diagram illustrates the structure of a resource scheduling device for cloud services applied to network devices, provided in at least one embodiment of this disclosure.
[0020] Figure 8 This schematically illustrates the structure of a resource scheduling system for a cloud service provided in at least one embodiment of the present disclosure; and
[0021] Figure 9 A schematic diagram of the structure of an electronic device suitable for implementing embodiments of the present disclosure is shown. Detailed Implementation
[0022] One or more embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0023] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.
[0024] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.
[0025] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.
[0026] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0027] The names of the messages or information exchanged between the various devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of these messages or information.
[0028] It is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition, use, storage or deletion of the data) shall comply with the requirements of relevant laws, regulations and related provisions.
[0029] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, relevant users should be informed of the type, scope of use, and usage scenarios of the information involved in this disclosure through appropriate means in accordance with relevant laws and regulations, and authorization should be obtained from the relevant users. Among them, relevant users may include any type of rights holder, such as individuals, enterprises, and groups.
[0030] For example, in response to receiving an active request from a user, a prompt message is sent to the relevant user to clearly indicate that the operation requested by the user will require obtaining and using the user's information. This allows the relevant user to choose whether to provide information to the software or hardware such as the electronic device, application, server, or storage medium that performs the operation of any embodiment of the present disclosure based on the prompt message.
[0031] As an optional but non-restrictive implementation, in response to a user's active request, a prompt message can be sent to the user, such as a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide information to the electronic device.
[0032] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0033] In the field of resource scheduling for network services, the scheduling technology of Hierarchical Quality of Service (HQoS) and the scheduling rule of Work-Conserving scheduling are frequently involved.
[0034] HQoS is a fine-grained traffic management technology for multi-user, multi-service scenarios. HQoS primarily utilizes multi-level queues and multi-layered scheduling structures to provide different quality of service (QoS) guarantees for different types of service data flows or users. HQoS can be applied in operator core networks, access networks, data centers, and enterprise-level network equipment to achieve fine-grained control over bandwidth, latency, packet loss rate, and other aspects. HQoS is typically implemented based on hardware devices such as switches, requiring these devices to have HQoS capabilities.
[0035] The core objective of work-conserving scheduling is to maximize resource utilization. In other words, given a task to be processed and available idle service resources, the idle resources should be used immediately to process the task. For example, scheduling algorithms such as Strict Priority (SP), Round Robin (RR), Weighted Round Robin (WRR), and Deficit Weighted Round Robin (DWRR) follow the work-conserving scheduling rule.
[0036] In network services, HQoS scheduling technology can be used to build a hierarchical framework for differentiated management, and the underlying execution logic for efficient resource utilization can be realized based on the scheduling rules of power conservation scheduling, thereby improving service quality and resource utilization efficiency.
[0037] However, in cloud service scenarios, there is a problem that resource scheduling cannot meet the user's own resource scheduling needs.
[0038] On the one hand, in cloud services, multiple users share the resources provided by hardware devices. Resource scheduling methods in cloud services typically use users as the smallest unit of scheduling, dynamically adjusting resources among users. However, it is difficult to perform fine-grained scheduling of resources for a single user, making it impossible to implement HQoS scheduling for individual users. This leads to Service-Level Agreement (SLA) breaches and low bandwidth utilization, making it difficult to meet the resource scheduling needs of individual users. Furthermore, network chips supporting HQoS capabilities are expensive, and hardware devices such as switches and gateways in cloud networks are rarely configured with network chips supporting HQoS capabilities. The hardware devices themselves may also lack the ability to provide HQoS capabilities.
[0039] On the other hand, in cloud services, flow classification strategies can be adopted for users to achieve static Quality of Service (QoS) scheduling. For example, user business data traffic can be diverted to different queues, with different queues using different Differentiated Services Code Points (DSCPs). Based on the DSCP, fixed rate limiting parameters are applied for rate limiting. However, this method of controlling traffic using fixed rate limiting parameters lacks fine-grained bandwidth management, resulting in rigid resource allocation. It cannot adapt to the agile resource demands of cloud service scenarios, lacks bandwidth reuse, and is prone to situations where some queues have idle resources while others have insufficient resources. This leads to resource waste and low resource utilization, resulting in insufficient multi-tenant SLA differentiation guarantees and difficulty in meeting user transmission needs.
[0040] Furthermore, without a flow classification strategy, it's difficult to meet the transmission needs of different types of user business data. For example, burst traffic interference can easily occur, where lower-priority business data preempts the transmission resources of higher-priority business data, leading to packet loss of the higher-priority data. Another example is when simultaneously transmitting low-latency business data and jitter-tolerant business data. These two types of business data indiscriminately preempt transmission resources, but due to the conflicting business sensitivities (the conflict between low-latency requirements and jitter tolerance), neither type of business data can ultimately be transmitted efficiently, failing to meet transmission requirements.
[0041] To at least partially solve the aforementioned technical problem, at least one embodiment of this disclosure provides a resource scheduling method for cloud services, applied to a control device. The method includes: acquiring scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using the cloud service; the network device transmits the user's service data through multiple queues; the scheduling request information includes the required bandwidth of the multiple queues, and the required bandwidth of each queue is determined based on the traffic of transmitted service data and the traffic of discarded service data in the queue; determining at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information; generating a scheduling instruction based on the at least one maximum available bandwidth and sending the scheduling instruction to the network device, wherein the scheduling instruction includes at least one maximum available bandwidth and is used to instruct the network device to update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth.
[0042] In a cloud service resource scheduling method provided in at least one embodiment of this disclosure, a control device obtains the required bandwidth of each queue providing services to users through a network device. The required bandwidth of each queue reflects the bandwidth resources needed for the queue to transmit user service data. Based on the user's total bandwidth and the required bandwidth of each queue, the control device determines the maximum available bandwidth of at least one queue, dynamically adjusting the bandwidth resources allocated to the queues according to the actual needs of transmitting user service data. This improves the utilization rate of the user's total bandwidth and reduces idle bandwidth. In this way, in a cloud service scenario, bandwidth resources can be adjusted at the level of a single user's queue to meet the user's own traffic control needs.
[0043] Based on the cloud service resource scheduling method provided in at least one embodiment of this disclosure, at least one embodiment of this disclosure also provides a cloud service resource scheduling device, system, electronic device, computer-readable storage medium, and computer program product.
[0044] The present disclosure and some examples thereof will now be described in detail with reference to the accompanying drawings.
[0045] Figure 1 This illustration schematically depicts the architecture of a cloud service resource scheduling system according to at least one embodiment of the present disclosure. The cloud service resource scheduling system 100 includes a control device 101 and a network device 102. The control device 101 and the network device 102 are directly or indirectly connected via a wired or wireless network. The control device 101 is used to control at least one network device 102. Figure 1Only one network device 102 is shown in the diagram. Network device 102 is used to provide cloud services. For example, control device 101 can be a physical device or virtual device with network device control capabilities, such as a controller or control component. Network device 102 can be a physical device or virtual device, such as a switch or gateway, used to provide cloud services and transmit user service data. Multiple queues for transmitting user service data are deployed on network device 102. The multiple queues are a queue system built to achieve differentiated services. The multiple queues can be multiple logical scheduling queues.
[0046] Network device 102 sends scheduling request information corresponding to users using cloud services to control device 101. For example, the scheduling request information is the scheduling request information corresponding to the first adjustment period. The scheduling request information includes the required bandwidth of multiple queues. The required bandwidth of each queue is determined based on the traffic of service data transmitted and the traffic of service data dropped within a certain period of time. For example, the certain period of time is the duration of an adjustment period (e.g., the first adjustment period).
[0047] Control device 101 acquires scheduling demand information. Based on the user's total bandwidth and the scheduling demand information, control device 101 determines at least one maximum available bandwidth corresponding to at least one queue. Control device 101 generates scheduling instructions based on the at least one maximum available bandwidth and sends the scheduling instructions to network device 102. The scheduling instructions include at least one maximum available bandwidth.
[0048] In response to receiving a scheduling instruction, network device 102 updates the rate limiting parameters of the corresponding queues based on the at least one maximum available bandwidth corresponding to each queue included in the scheduling instruction. For example, the at least one maximum available bandwidth is the at least one maximum available bandwidth corresponding to the second adjustment period, and thus the at least one maximum available bandwidth corresponding to each queue included in the scheduling instruction is used to update the rate limiting parameters of the queues within the second adjustment period. The second adjustment period is later than the first adjustment period. For example, the second adjustment period can be the next adjustment period immediately following the first adjustment period; however, this disclosure is not limited to this, and there can also be a certain time interval between the first and second adjustment periods.
[0049] This allows for dynamic adjustment of bandwidth resources allocated to a user's queue within the cloud service, based on the actual needs of the queue for transmitting user business data. This reduces idle bandwidth, improves bandwidth utilization, and meets the user's own traffic control requirements.
[0050] The following will combine Figures 2A to 5 The present disclosure provides a detailed description of a resource scheduling method for cloud services applied to control devices and a resource scheduling method for cloud services applied to network devices, based on at least one embodiment.
[0051] Figure 2A The illustration shows a flowchart of a cloud service resource scheduling method provided in at least one embodiment of the present disclosure. Figure 2B The illustration shows a flowchart of a cloud service resource scheduling method provided in at least one embodiment of the present disclosure. Figure 2C The illustration shows a flowchart of a cloud service resource scheduling method provided in at least one embodiment of the present disclosure.
[0052] like Figure 2A As shown, in some embodiments, the cloud service resource scheduling method is applied to a control device and includes steps S202 to S204. Figure 2B As shown, in some embodiments, the cloud service resource scheduling method is applied to network devices and includes steps S201 and S205. Figure 2C As shown, in some embodiments, the cloud service resource scheduling method is applied to a resource scheduling system including control devices and network devices, and includes steps S201 to S205.
[0053] like Figure 2B and Figure 2C As shown, in step S201, the network device sends scheduling request information corresponding to the user to the control device.
[0054] Network devices are devices used in cloud services to forward user business data. For example, a network device is... Figure 1 Network device 102 in the example. For instance, the scheduling requirement information is the scheduling requirement information corresponding to the first adjustment period.
[0055] The network device is configured with multiple queues. These queues can be used to transmit service data for one user among multiple users using the cloud service. The multiple queues are divided based on the network device's hardware resources (e.g., cache resources, number of hardware queues, forwarding chip capabilities) and software configurations (e.g., traffic classification rules, scheduling algorithms). Hardware resources constrain the queue division method. Software configuration determines the functionality of the queues. As an example, the multiple queues are logical scheduling queues. These logical scheduling queues are decoupled from the hardware. In the cloud service resource scheduling method provided in this disclosure, resource scheduling is performed on logical scheduling queues that are decoupled from the hardware. This reduces the hardware capability requirements of the network device applying the resource scheduling method and improves the versatility of the cloud service resource scheduling method.
[0056] When transmitting user service data, network devices perform stream classification processing on the service data to determine the service data that needs to be transmitted in the queue.
[0057] Network devices can perform flow classification on service data based on the five-tuple or other data characteristics of the service data, and obtain the classification result. The five-tuple includes the source Internet Protocol address, the destination Internet Protocol address, the source port number, the destination port number, and the transport layer protocol. Other data characteristics include user identifiers, terminal identifiers, time characteristics of the service data, application protocol type, network layer extended characteristics (such as characteristics related to Internet Protocol addresses), and transport layer extended characteristics (such as port-related characteristics), etc., which can be used for flow classification.
[0058] The classification results include at least one type of business data derived from the user's business data. A queue transmits business data of the corresponding type. Based on the queue's rate-limiting parameters, it is determined which types of business data the queue can transmit and which need to be discarded due to insufficient resources.
[0059] The parameter type of the queue's rate limiting parameters can be determined based on the rate limiting algorithm. The value of the queue's rate limiting parameters can be determined based on the queue's current bandwidth resources. For example, the bandwidth resource is the maximum available bandwidth. The value of the queue's rate limiting parameters is determined based on the queue's current maximum available bandwidth.
[0060] For example, taking the Token Bucket Algorithm as the rate-limiting algorithm, the rate-limiting parameters for a queue include Peak Information Rate (PIR), Committed Information Rate (CIR), Peak Burst Size (PBS), and Committed Burst Size (CBS). CIR is the minimum bandwidth guaranteed by the queue. PIR is the maximum bandwidth allowed for bursts by the queue. CBS is the maximum amount of data allowed for short bursts based on CIR, corresponding to the capacity of the committed token bucket. PBS is the maximum amount of data allowed for short bursts based on PIR, corresponding to the capacity of the peak token bucket. PIR, CIR, PBS, and CBS are determined using the maximum available bandwidth. For example, PIR is the maximum available bandwidth. CIR = k × PIR. The value of k ranges from greater than 0 to less than 1. The value of k can be determined based on the queue's priority; higher-priority queues have higher values of k, and lower-priority queues have lower values of k. CBS is determined based on CIR, the service burst coefficient, and the burst duration. PBS is determined based on PIR, CIR, and burst duration. PBS is greater than or equal to CBS.
[0061] As an example, see Figure 3As shown in the figure, this schematically illustrates a flow diagram of a network device processing service data according to at least one embodiment of the present disclosure. The network device is configured with three queues of different priorities, each used to transmit service data of the corresponding priority. After acquiring the data packets of service data, the network device performs flow classification. Specifically, priority matching is performed based on the DSCP of the data packets to determine the traffic of gold-level, silver-level, and bronze-level service data, respectively. The priority order of gold, silver, and bronze levels is from high to low.
[0062] Each tier has a corresponding meter. The meter can set a flag for the traffic of business data based on the queue's rate limit parameters, so that the traffic of business data can be subjected to the flagged operation.
[0063] The meter uses a dual-token bucket (PIR bucket and CIR bucket) flow control model for rate limiting. Rate limiting parameters include CIR, CBS, PIR, and PBS.
[0064] Taking the traffic of gold-level service data as an example, the gold-level meter determines whether the size of the data volume (B) of the transmitted gold-level service data exceeds the number of available tokens (Tp) in the PIR bucket. If the data volume exceeds the number of available tokens in the PIR bucket, it is dropped (i.e., ...). Figure 3 Traffic marked in red in the middle). If the data volume is less than the number of available tokens in the PIR bucket, then check if the data volume is greater than the number of available tokens (Tc) in the CIR bucket. If the data volume is less than or equal to the number of available tokens in the CIR bucket, then consume B tokens from the CIR bucket and B tokens from the PIR bucket to allow forwarding (i.e., Figure 3 Traffic marked in green (in the CIR bucket). If the data volume exceeds the number of available tokens in the CIR bucket, B tokens from the PIR bucket are consumed, allowing forwarding, but the forwarding priority is lower than that of traffic traffic marked in green (i.e., traffic from the green-labeled business data). Figure 3 (Flow rate marked in yellow).
[0065] The processing methods for silver-level and bronze-level business data traffic are similar to those for gold-level business data traffic, and will not be elaborated upon here.
[0066] The network device obtains the required bandwidth for multiple queues corresponding to the first adjustment period based on the transmission status of service data in multiple queues within the first adjustment period. The required bandwidth of a queue is determined based on the traffic of service data already transmitted and the traffic of discarded service data. For example, the required bandwidth of a queue is the sum of the bandwidth occupied by transmitting transmitted service data and the bandwidth required to transmit discarded service data. The bandwidth occupied by transmitting transmitted service data can be the ratio of the traffic of transmitted service data to the transmission duration. The bandwidth required to transmit discarded service data can be the ratio of the traffic of discarded service data to the statistical duration of the required bandwidth. For example, if queue A occupies 20 gigabytes (GB) of bandwidth for transmitting transmitted service data and requires 5 GB of bandwidth for transmitting discarded service data, then the required bandwidth of queue A is 25 GB (i.e., the sum of 20 GB and 5 GB). This disclosure does not limit the triggering method for the network device to generate scheduling requirement information. As an example, the network device can automatically generate scheduling requirement information corresponding to the first adjustment period according to a preset first adjustment period. As another example, in response to an information acquisition command sent by a control device, the network device generates scheduling requirement information corresponding to the first full period.
[0067] The network device sends scheduling request information, including multiple queues of bandwidth requirements, to the control device. The control device is connected to the network device and is used to control the network device. As an example, the control device is... Figure 1 Control device 101 in the middle.
[0068] The scheduling request information is used to trigger the control device to perform resource scheduling for the user's queue. This disclosure does not limit the timing at which the network device sends the scheduling request information to the control device to trigger resource scheduling.
[0069] As an example, network devices can periodically send scheduling request information to control devices at pre-set times to achieve timed resource scheduling. The scheduling request information is collected within a time period prior to the set time. For instance, scheduling request information is generated based on the data transmission status of queues within one second prior to the set time. Taking a set time of 13:00:00 daily as an example, scheduling request information is generated based on the data transmission status of multiple queues within the second from 12:59:59 to 13:00:00.
[0070] As another example, an adjustment period is pre-set. For instance, the duration of the adjustment period can be 1 second or 100 milliseconds. The duration of the adjustment period can be flexibly adjusted according to the system performance and adjustment accuracy requirements. The network device generates and sends scheduling request information corresponding to the first adjustment period to the control device, triggering the control device to generate and send scheduling instructions for the second adjustment period to the network device, thereby adjusting the rate limiting parameters of the queue in the second adjustment period. The second adjustment period is later than the first adjustment period. For example, the second adjustment period is the next adjacent adjustment period after the first adjustment period. In this way, the rate limiting parameters of the queue in the current adjustment period can be adjusted according to the scheduling request information corresponding to the previous adjustment period, realizing real-time dynamic adjustment of the rate limiting parameters based on the needs of transmitted service data to meet bandwidth utilization requirements.
[0071] like Figure 2A and Figure 2C As shown, in step S202, the control device obtains the scheduling request information corresponding to the user sent by the network device.
[0072] like Figure 2A and Figure 2C As shown, in step S203, the control device determines at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and scheduling demand information. For example, the at least one maximum available bandwidth is the at least one maximum available bandwidth corresponding to the second adjustment period.
[0073] The total bandwidth for a user is the maximum available bandwidth allocated to that user. The total bandwidth for a user can be determined based on the bandwidth resources allocated to the user using a user-level resource scheduling method. The total bandwidth for a user can be a fixed value or a value that varies flexibly based on the user-level resource scheduling method. When the total bandwidth for a user is adjusted according to the user-level resource scheduling method, the control device determines the total bandwidth for the user based on the bandwidth resource scheduling result determined by the user-level resource scheduling method.
[0074] The control device determines at least one maximum available bandwidth corresponding to at least one of the multiple queues, based on the user's total bandwidth and the bandwidth requirements of multiple queues included in the scheduling demand information. That is, it determines the maximum available bandwidth corresponding one-to-one with each queue in at least one of the multiple queues. The maximum available bandwidth is used to determine the rate-limiting threshold for the corresponding queue.
[0075] The control equipment can follow the power conservation scheduling rule, and based on the user's total bandwidth and scheduling demand information, adjust the bandwidth resources allocated to at least one queue according to the demand for service data transmission in the queue, determine at least one maximum available bandwidth corresponding to each queue, and minimize idle bandwidth.
[0076] As an example, the at least one queue for determining the maximum available bandwidth can be a subset of multiple queues, or it can be all of the multiple queues. The at least one queue for determining the maximum available bandwidth can be determined based on resource scheduling requirements for that queue.
[0077] The embodiments of this disclosure do not limit the method by which the control device determines at least one maximum available bandwidth corresponding to at least one queue among multiple queues based on the user's total bandwidth and scheduling demand information. As an example, the control device determines at least one maximum available bandwidth corresponding to at least one queue among multiple queues based on the user's total bandwidth, scheduling demand information, and a scheduling policy. The scheduling policy is used to indicate the method for determining the at least one maximum available bandwidth. As another example, the control device calls a scheduling model to process the total bandwidth and scheduling demand information to obtain at least one maximum available bandwidth. The scheduling model is used to output at least one maximum available bandwidth based on the total bandwidth and the bandwidth demand of each queue.
[0078] For details on how to determine at least one maximum available bandwidth based on scheduling strategies and how to determine at least one maximum available bandwidth using scheduling models, please refer to the following descriptions.
[0079] The control device determines at least one maximum available bandwidth to adjust the rate-limiting parameters of the queue. The maximum available bandwidth is the maximum bandwidth resource allocated to the queue and is used to limit the actual bandwidth used by the queue when transmitting service data. The maximum available bandwidth does not represent the actual bandwidth used by the queue when transmitting service data. The maximum available bandwidth is greater than or equal to the actual bandwidth used by the queue when transmitting service data. The sum of at least one maximum available bandwidth determined by the control device can be greater than or equal to the total bandwidth.
[0080] like Figure 2A and Figure 2C As shown, in step S204, the control device generates a scheduling instruction based on at least one maximum available bandwidth and sends the scheduling instruction to the network device.
[0081] After determining at least one maximum available bandwidth, the control device generates a scheduling instruction based on that maximum available bandwidth. The scheduling instruction includes at least one maximum available bandwidth corresponding to at least one queue. The scheduling instruction instructs the network device to update the rate limiting parameters of the queues based on their respective maximum available bandwidths.
[0082] Scheduling instructions can be commands sent to network devices via the gRPC (a Remote Procedure Call (RPC) framework) interface. The gRPC interface uses Protocol Buffers (Protobuf) as its interface definition language. Scheduling instructions are described using Protobuf.
[0083] The control device sends scheduling commands to the network device. For example, the control device sends scheduling commands to the network device via the gRPC interface.
[0084] like Figure 2B and Figure 2C As shown, in step S205, in response to receiving a scheduling instruction sent by the control device, the network device updates the rate limiting parameters of at least one queue corresponding to at least one maximum available bandwidth.
[0085] The network device receives the scheduling instructions sent by the control device and updates the rate limiting parameters of the queue corresponding to the maximum available bandwidth based on at least one maximum available bandwidth included in the scheduling instructions.
[0086] For each queue in at least one queue, the network device can determine the rate limiting parameter of the queue based on the maximum available bandwidth corresponding to the queue, and replace the current rate limiting parameter of the queue with the determined rate limiting parameter to update the rate limiting parameter.
[0087] As an example, network devices may include a power-saving scheduler. The power-saving scheduler determines the rate-limiting parameters for a queue based on the maximum available bandwidth corresponding to that queue. The rate-limiting parameters can be the rate-limiting parameters of a meter corresponding to a logically scheduled queue. The meter's rate-limiting parameters are logical rate-limiting parameters. This allows for the replacement of the actual Quality of Service (QoS) buffer with abstract rate limiting, independent of specific hardware, supporting resource scheduling in various hardware-software hybrid scenarios, improving versatility, and reducing application costs.
[0088] The method by which network devices determine the rate limiting parameters of a queue based on the maximum available bandwidth included in the scheduling instructions can be the same as the method described above for determining the rate limiting parameters of a queue based on the maximum available bandwidth of the queue. For details, please refer to the above description, which will not be repeated here.
[0089] Based on the descriptions of steps S201-S205 above, the cloud service resource scheduling method provided in this disclosure can collect scheduling demand information reflecting the transmission service data demand within, for example, a first adjustment period. Based on the total bandwidth and scheduling demand information, it determines at least one maximum available bandwidth corresponding to at least one queue within, for example, a second adjustment period. Then, it uses scheduling instructions including at least one maximum available bandwidth to instruct network devices to adjust the rate limiting parameters of the queues corresponding to the second adjustment period, thereby adjusting the rate limiting parameters of the network devices. This enables automated, real-time, demand-based negative feedback dynamic resource adjustment, achieving a more stable adjustment effect. The adjusted rate limiting parameters can better adapt to the transmission demand of service data, achieving adaptive adjustment. The cloud service resource scheduling method provided in this disclosure collects the bandwidth requirements for queue transmission of service data, uses reactive control, and assumes that the bandwidth required for subsequent transmission of service data in the queue is the same as the collected bandwidth requirements. It adjusts the allocation of bandwidth resources in the queue to follow the power conservation scheduling rule, improving the network hierarchical service effect and bandwidth utilization.
[0090] In at least one embodiment of this disclosure, step S203 includes: determining at least one maximum available bandwidth based on the user's total bandwidth, scheduling demand information, and scheduling policy.
[0091] Scheduling policies indicate how to determine at least one maximum available bandwidth based on total bandwidth and scheduling demand information. Different scheduling policies indicate different determination methods.
[0092] The following section describes the scheduling strategies and methods for determining scheduling strategy instructions provided in this disclosure.
[0093] In some embodiments, the scheduling strategy is a scheduling strategy based on strict priority and on-demand allocation.
[0094] The strict priority and on-demand allocation scheduling strategy is used to determine a method for determining at least one maximum available bandwidth based on total bandwidth, the priorities of multiple queues, and scheduling demand information. The principle of this strategy is to allocate bandwidth to queues according to their priorities, until all total bandwidth has been allocated.
[0095] In one possible implementation, at least one queue is all or some of the queues with a priority lower than the highest priority among multiple queues. The rate-limiting parameter for the highest priority queue can be configured based on the user's total bandwidth and is not involved in the resource scheduling adjustments for the queue. This ensures sufficient bandwidth resources are provided for the highest priority queue, reduces transmission restrictions on the highest priority service data, ensures that the highest priority service data is rate-limited based on the total bandwidth, and guarantees the transmission quality of the highest priority service data.
[0096] The following example illustrates how to determine the at least one maximum available bandwidth corresponding to each of the at least one queue, taking as an example all queues with a priority lower than the highest priority among multiple queues.
[0097] The scheduling strategy based on strict priority and on-demand allocation indicates that at least one maximum available bandwidth is determined based on total bandwidth, the priorities of multiple queues, and scheduling demand information.
[0098] Assume that multiple queues transmitting user service data include queue A, queue B, and queue C. The queue priorities, from highest to lowest, are: queue A, queue B, and queue C. The rate-limiting parameter for queue A is determined based on the user's total bandwidth. The priorities of queue B and queue C are lower than the highest priority queue A. At least one queue includes queue B and queue C. For a scheduling strategy based on strict priority and on-demand allocation, step S203 includes: sequentially executing steps A1-A4 for each queue in the at least one queue (for ease of description, the term "first queue" is used below, meaning the first queue is any queue in the at least one queue) according to the priority of the at least one queue from highest to lowest, to determine at least one maximum available bandwidth.
[0099] Step A1: Determine the first difference between the total bandwidth and the sum of the bandwidth requirements of all queues with a priority higher than the first queue. In Step A1, firstly, the sum of the bandwidth requirements of queues with a priority higher than the first queue is calculated. Then, the first difference between the total bandwidth and the calculated sum of bandwidth requirements is determined. The sum of bandwidth requirements represents the bandwidth resources needed by queues with a priority higher than the first queue. The first difference represents the bandwidth resources that can be allocated to the first queue.
[0100] Step A2: In response to the first difference being greater than or equal to the required bandwidth of the first queue, and the first queue having a higher priority than the lowest priority, the required bandwidth of the first queue is taken as the maximum available bandwidth of the first queue.
[0101] If the first queue has a higher priority than the lowest priority queue (meaning the first queue is not the lowest priority queue), determine the relationship between the first difference and the bandwidth requirement of the first queue. If the first difference is greater than the bandwidth requirement of the first queue, it means that the bandwidth resources that can be allocated to the first queue are greater than the bandwidth requirement of the first queue. In this case, step A2 can be executed, and the bandwidth requirement of the first queue can be taken as the maximum available bandwidth of the first queue.
[0102] Step A3: In response to the first difference being greater than zero and less than the required bandwidth of the first queue, or the first difference being greater than zero and the first queue having the lowest priority, the first difference is taken as the maximum available bandwidth of the first queue.
[0103] If the first difference is less than the required bandwidth of the first queue, but the first difference is greater than zero, it means that the available bandwidth resources cannot meet the allocation requirements of the first queue according to the required bandwidth. The first difference is then allocated to the first queue, i.e., step A3 is executed, and the first difference is taken as the maximum available bandwidth of the first queue.
[0104] Additionally, if the first difference is greater than zero and the first queue is the lowest priority queue, and there are no subsequent queues requiring bandwidth allocation, the entire first difference is allocated to the first queue. This is done by executing step A3, where the first difference is used as the maximum available bandwidth for the first queue. In this case, the first difference can be greater than or equal to the required bandwidth of the first queue, or it can be less than the required bandwidth of the first queue.
[0105] Step A4: In response to the first difference being less than or equal to zero, determine that the maximum available bandwidth of the first queue is zero.
[0106] If the first difference is less than or equal to zero, it means that there is no bandwidth resource available to allocate to the first queue. Proceed to step A4 to determine that the maximum available bandwidth of the first queue is zero.
[0107] The following examples illustrate steps A1-A4.
[0108] For example, in some cases, taking multiple queues including queue A, queue B, and queue C as an example, assuming the user's total bandwidth is 100GB, queue A requires 50GB of bandwidth, queue B requires 35GB of bandwidth, and queue C requires 30GB of bandwidth. Queue A has the highest priority, so the rate limiting threshold for queue A is determined based on the total bandwidth of 100GB.
[0109] Queue B has a higher priority than queue C, so the maximum available bandwidth of queue B is determined first.
[0110] For queue B, the bandwidth requirements of all queues with a higher priority than queue B include the bandwidth requirement of queue A (50GB). Since there is only one queue A, the sum of their bandwidth requirements is the bandwidth requirement of queue A, which is 50GB. Step A1 is executed, and the first difference is the difference between 100GB and 50GB, which is 50GB. Since queue B is not the lowest priority queue, and the first difference (50GB) is greater than the bandwidth requirement of queue B (35GB), step A2 is executed, and the bandwidth requirement of queue B is taken as the maximum available bandwidth of queue B. Therefore, the maximum available bandwidth of queue B is 35GB.
[0111] Next, determine the maximum available bandwidth for queue C.
[0112] For queue C, the bandwidth requirements of all queues with higher priority than queue C include queue A's bandwidth requirement of 50GB and queue B's bandwidth requirement of 35GB. The sum of the bandwidth requirements is 85GB (the sum of 50GB and 35GB). Step A1 yields the first difference between 100GB and 85GB, which is 15GB. Since this first difference is greater than zero, and queue C is the lowest priority queue, step A3 is executed, and this first difference is taken as the maximum available bandwidth for queue C. Therefore, the maximum available bandwidth for queue C is 15GB.
[0113] For example, in other examples, taking the aforementioned multiple queues including queue A, queue B, and queue C as an example, assuming the user's total bandwidth is 100GB, the bandwidth requirement for queue A is 90GB, the bandwidth requirement for queue B is 20GB, and the bandwidth requirement for queue C is 30GB. Queue A has the highest priority, so the rate limiting threshold for queue A is determined based on the total bandwidth of 100GB.
[0114] Queue B has a higher priority than queue C, so the maximum available bandwidth of queue B is determined first.
[0115] For queue B, the bandwidth requirements of all queues with a higher priority than queue B, including queue A's bandwidth requirement of 90GB, are all equal to 90GB. Step A1 is executed, and the first difference is the difference between 100GB and 90GB, which is 10GB. Since this first difference (10GB) is greater than zero and less than the bandwidth requirement of the first queue (20GB), step A3 is executed, and this first difference is taken as the maximum available bandwidth for queue B. Therefore, the maximum available bandwidth for queue B is 10GB.
[0116] Next, determine the maximum available bandwidth for queue C.
[0117] For queue C, the bandwidth requirements of all queues with a higher priority than queue C include queue A's bandwidth requirement of 90GB and queue B's bandwidth requirement of 20GB. Step A1 is executed, and the sum of the bandwidth requirements is 110GB (the sum of 90GB and 20GB). The first difference is the difference between 100GB and 110GB, which is -10GB. Since the first difference is less than zero, step A4 is executed, and zero is taken as the maximum available bandwidth for queue C. Therefore, the maximum available bandwidth for queue C is 0GB.
[0118] Additionally, at least one queue is a subset of queues with a priority lower than the highest priority among multiple queues. The at least one queue can be determined based on resource scheduling needs. For example, at least one queue can be determined based on the packet loss rate of multiple queues. Queues with a priority lower than the highest priority and a packet loss rate higher than a threshold are considered as at least one queue.
[0119] For example, taking multiple queues including queue A, queue B, and queue C as an example, at least one queue includes queue B. In the case where at least one queue is a subset of multiple queues with a priority lower than the highest priority, the method for determining at least one maximum available bandwidth is similar to the method corresponding to steps A1-A4 above.
[0120] In another possible implementation, at least one queue is all queues among multiple queues. For example, taking multiple queues including queue A, queue B, and queue C as an example, at least one queue includes queue A, queue B, and queue C. The method for determining at least one maximum available bandwidth is similar to the method for determining the bandwidth corresponding to steps A1-A4 above.
[0121] In some embodiments, the scheduling strategy is a scheduling strategy based on strict priority and minimum guarantee.
[0122] The strict priority and minimum guarantee scheduling strategy is used to determine at least one maximum available bandwidth based on total bandwidth, the priorities of multiple queues, the minimum bandwidth thresholds of multiple queues, and scheduling demand information. The principle of this strategy is to allocate bandwidth resources to queues sequentially according to their priority, ensuring that the bandwidth allocated to each queue is greater than its minimum bandwidth threshold, until all total bandwidth has been allocated.
[0123] The minimum bandwidth threshold for multiple queues can be pre-set based on the demand for service data transmission within each queue. For queues that are not pre-set, the minimum bandwidth threshold can be zero. It should be noted that the sum of the minimum bandwidth thresholds for multiple queues is less than or equal to the total bandwidth.
[0124] The scheduling strategy based on strict priority and minimum guarantee can ensure that higher priority queues can obtain sufficient resources, while also ensuring that lower priority queues can obtain the minimum resources to complete the more critical data transmission tasks.
[0125] In one possible implementation, a scheduling strategy based on strict priority and minimum guarantee indicates a method for determining at least one maximum available bandwidth corresponding to at least one queue, based on total bandwidth, the priorities of multiple queues, the minimum bandwidth thresholds of multiple queues, and scheduling requirement information.
[0126] At least one queue can be multiple queues. Assume that the multiple queues transmitting user service data include queue A, queue B, and queue C. The queue priorities, from highest to lowest, are: queue A, queue B, and queue C. The maximum available bandwidth for queue A, queue B, and queue C are determined sequentially.
[0127] For a scheduling strategy based on strict priority and minimum guarantee, step S203 includes: executing steps B1-B4 sequentially for multiple queues in descending order of priority to determine the maximum available bandwidth for multiple queues.
[0128] For the second queue, which is any one of multiple queues:
[0129] Step B1: Determine the second difference between the total bandwidth and the sum of the maximum available bandwidth of all queues with a priority higher than that of the second queue.
[0130] Calculate the sum of the maximum available bandwidth for other queues with a priority higher than the second queue. The sum of the maximum available bandwidth represents the bandwidth resources already allocated to other queues with a priority higher than the second queue.
[0131] Determine a second difference between the total bandwidth and the sum of the maximum available bandwidth. This second difference represents the bandwidth resources that can be allocated to the second queue.
[0132] Step B2: In response to the second difference being less than or equal to the minimum bandwidth threshold of the second queue, or the second difference being greater than the minimum bandwidth threshold of the second queue and the minimum bandwidth threshold of the second queue being greater than or equal to the required bandwidth of the second queue, the minimum bandwidth threshold of the second queue is used as the maximum available bandwidth of the second queue.
[0133] If the second difference is less than the minimum bandwidth threshold of the second queue, it means that the bandwidth resources currently available for the second queue cannot meet the minimum bandwidth resources required by the second queue. Step B2 is then executed, and the minimum bandwidth threshold of the second queue is taken as the maximum available bandwidth of the second queue.
[0134] If the second difference is greater than the minimum bandwidth threshold of the second queue and the minimum bandwidth threshold of the second queue is greater than or equal to the required bandwidth of the second queue, the bandwidth resources that can be allocated to the second queue can meet the minimum bandwidth resources required by the second queue. In order to ensure that the second queue has the minimum resources, step B2 is executed, and the minimum bandwidth threshold of the queue is used as the maximum available bandwidth of the second queue.
[0135] This ensures that the second queue has sufficient bandwidth resources to perform basic data transmission tasks.
[0136] Step B3: In response to the second difference being greater than or equal to the required bandwidth of the second queue, and the required bandwidth of the second queue being greater than or equal to the minimum bandwidth threshold of the second queue, the required bandwidth of the second queue is taken as the maximum available bandwidth of the second queue.
[0137] If the second difference is greater than or equal to the required bandwidth of the second queue, and the required bandwidth of the second queue is greater than or equal to the minimum bandwidth threshold of the second queue, it indicates that the actual bandwidth resources required by the second queue are higher than the minimum bandwidth resources of the second queue, and there are sufficient bandwidth resources to meet the actual bandwidth resources required by the second queue. Then, step B3 is executed, and the required bandwidth of the second queue is taken as the maximum available bandwidth of the second queue to meet the actual transmission service data requirements of the second queue.
[0138] Step B4: In response to the second difference being less than the required bandwidth of the second queue and greater than or equal to the minimum bandwidth threshold of the second queue, the second difference is taken as the maximum available bandwidth of the second queue.
[0139] If the second difference is greater than or equal to the minimum bandwidth threshold of the second queue, but less than or equal to the required bandwidth of the second queue, it indicates that the actual bandwidth resources required by the second queue are higher than the minimum bandwidth resources of the second queue, but there are not enough bandwidth resources to meet the actual bandwidth resources required by the second queue. Step B4 is executed, and the second difference is taken as the maximum available bandwidth of the second queue, so as to meet the actual transmission service data needs of the second queue as much as possible while ensuring that the queue has sufficient bandwidth resources to perform basic data transmission tasks.
[0140] The following examples illustrate steps B1-B4.
[0141] Taking the aforementioned queues, including queue A, queue B, and queue C, as an example, assume the user's total bandwidth is 100GB. Queue A requires 75GB of bandwidth, and its minimum bandwidth threshold is 0GB. Queue B requires 35GB of bandwidth, and its minimum bandwidth threshold is 0GB. Queue C requires 30GB of bandwidth, and its minimum bandwidth threshold is 10GB.
[0142] The maximum available bandwidth of each queue is determined sequentially according to the priority order of queue A, queue B, and queue C.
[0143] For queue A, there are no queues with a higher priority than queue A. Therefore, the sum of the maximum available bandwidth of queues with a higher priority than queue A is 0GB. Step B1 is executed, and the second difference obtained is the difference between 100GB and 0GB, which is 100GB. This second difference is greater than the required bandwidth of queue A, and the required bandwidth of queue A is greater than the minimum bandwidth threshold of queue A. Therefore, step B3 is executed, and the required bandwidth of queue A is taken as the maximum available bandwidth of queue A. The maximum available bandwidth of queue A is 75GB.
[0144] For queue B, queue A has a higher priority than queue B. The sum of the maximum available bandwidth of queues with a higher priority than queue B is the maximum available bandwidth of queue A, which is 75GB. Step B1 is executed, and the second difference is the difference between 100GB and 75GB, which is 25GB. This second difference is less than the required bandwidth of queue B (35GB) and greater than the minimum bandwidth threshold of queue B (0GB). Step B4 is executed, and this second difference is taken as the maximum available bandwidth of queue B. The maximum available bandwidth of queue B is 25GB.
[0145] For queue C, queues A and B have a higher priority than queue C. The sum of the maximum available bandwidth of queues with higher priorities than queue C is the sum of the maximum available bandwidth of queues A and B, which is 100GB (75GB + 25GB). Step B1 is executed, and the second difference is the difference between 100GB and 100GB, which is 0GB. This second difference is less than the minimum bandwidth threshold of queue C (10GB). Step B2 is executed, and the minimum bandwidth threshold of queue C is taken as the maximum available bandwidth of queue C. The maximum available bandwidth of queue C is 10GB.
[0146] In some embodiments, the scheduling strategy is a scheduling strategy based on weighted fairsharing with dynamic weights.
[0147] The weighted fair sharing-based dynamic adjustment scheduling strategy is used to determine how to identify at least one maximum available bandwidth based on total bandwidth, the base weight of at least one queue, and scheduling demand information. The principle of this strategy is to dynamically allocate total bandwidth to queues according to their base weights, in order to meet the queues' bandwidth requirements as much as possible.
[0148] The base weight of at least one queue can be pre-set based on the demand for transmitting business data.
[0149] The weighted fair sharing-based dynamic adjustment scheduling strategy can dynamically allocate more bandwidth resources to high-value, high-demand queues based on their data transmission needs, avoiding resource waste caused by fixed queue weights.
[0150] In one possible implementation, a dynamically adjusted scheduling policy based on weighted fair sharing indicates that at least one maximum available bandwidth is determined according to the total bandwidth, the base weight of at least one queue, and scheduling demand information.
[0151] For the dynamically adjusted scheduling strategy based on weighted fair sharing, step S203 includes the following steps C1-C4.
[0152] Step C1: Determine the base bandwidth of at least one queue based on the third difference between the total bandwidth and the required bandwidth of the other queues (excluding at least one queue) and the base weight of at least one queue.
[0153] The sum of the bandwidth requirements of all queues except at least one is the bandwidth resource required by queues that do not participate in resource scheduling. The third difference is obtained by subtracting the sum of the bandwidth requirements of all queues except at least one from the total bandwidth. This third difference represents the bandwidth resource that can be allocated to at least one queue. When at least one queue is multiple queues, the sum of the bandwidth requirements of all queues except at least one is zero. Based on the basic weight of at least one queue, the third difference is divided to obtain the basic bandwidth of at least one queue.
[0154] Taking at least one queue as multiple queues, including queue A, queue B, and queue C, as an example, assume the user's total bandwidth is 100GB. The third difference is 100GB. The basic weight ratio of queues A, B, and C is 3:1:1. Allocating the total bandwidth according to this ratio, we get a basic bandwidth of 60GB for queue A, 20GB for queue B, and 20GB for queue C.
[0155] Step C2: For each queue in at least one queue, use the smaller of the base bandwidth and the required bandwidth as the first allocation value for the queue.
[0156] For any queue in at least one queue, the smaller value between the base bandwidth and the required bandwidth is selected as the first allocation value for that queue. The first allocation value is the bandwidth resource allocated to each queue in the at least one queue for the first time. This ensures that as little bandwidth resource as possible is allocated to each queue in the at least one queue when allocating bandwidth resources for the first time, avoiding bandwidth waste caused by allocating too much bandwidth resource to each queue in the at least one queue.
[0157] Using the three queues mentioned above as examples, assume that queue A requires 50GB of bandwidth, queue B requires 35GB, and queue C requires 20GB. Since queue A's required bandwidth (50GB) is less than its base bandwidth (60GB), the required bandwidth (50GB) is used as the first allocation value for queue A. Similarly, queue B's base bandwidth (20GB) is less than its required bandwidth (35GB), so the base bandwidth (20GB) is used as the first allocation value for queue B. Finally, queue C's base bandwidth (20GB) is equal to its required bandwidth (20GB), so either the base bandwidth (20GB) or the required bandwidth (20GB) is used as the first allocation value for queue C. Therefore, the first allocation value for queue A is 50GB, the first allocation value for queue B is 20GB, and the first allocation value for queue C is 20GB.
[0158] Step C3: In response to a fourth difference between the total bandwidth and the allocated bandwidth being greater than zero, determine a second allocation value for at least one queue based on the fourth difference.
[0159] The allocated bandwidth is the sum of the first allocation value for each of at least one queue and the bandwidth requirements of the other queues (excluding at least one queue). That is, the allocated bandwidth comprises two parts: the sum of the first allocation values and the sum of the bandwidth requirements of the other queues (excluding at least one queue). A fourth difference is determined between the total bandwidth and the allocated bandwidth. If the fourth difference is greater than zero, it indicates the existence of unallocated bandwidth resources, requiring a second allocation for at least one queue.
[0160] Using the example above, the sum of the first allocation values for queue A, queue B, and queue C is 90GB (the sum of 50GB, 20GB, and 20GB). The fourth difference is the difference between 100GB and 90GB, which is 10GB. Since the fourth difference is greater than zero, the second allocation value for each queue is determined based on this fourth difference.
[0161] This embodiment does not limit the method of determining the second allocation value of at least one queue based on the fourth difference.
[0162] As an example, the fourth difference is preferentially allocated to at least one queue whose bandwidth requirement is greater than the first allocation value, thereby satisfying the bandwidth requirements for data transmission in that queue as much as possible. Taking the example above, queue B's bandwidth requirement (35GB) is greater than its first allocation value (20GB). The fourth difference is allocated to queue B, meaning queue B's second allocation value is 10GB. The second allocation values for queue A and queue C are 0GB.
[0163] As another example, the fourth difference is allocated to each of the at least one queue according to the base weight of at least one queue. Taking the example above, the fourth difference (10GB) is divided into 6GB of the second allocation value for queue A, 2GB of the second allocation value for queue B, and 2GB of the second allocation value for queue C, according to the ratio of the base weights of queue A, queue B, and queue C of 3:1:1.
[0164] Step C4: Determine the maximum available bandwidth of at least one queue based on the first allocation value of at least one queue and the second allocation value of at least one queue.
[0165] For each queue in at least one queue, calculate the sum of the first allocation value and the second allocation value to obtain the maximum available bandwidth.
[0166] Taking queue A with a first allocation value of 50GB and a second allocation value of 0GB as an example, the maximum available bandwidth of queue A is 50GB. Taking queue B with a first allocation value of 20GB and a second allocation value of 10GB as an example, the maximum available bandwidth of queue B is 30GB. Taking queue C with a first allocation value of 20GB and a second allocation value of 0GB as an example, the maximum available bandwidth of queue C is 20GB.
[0167] The above describes the possible implementations of various scheduling strategies provided in this disclosure for determining at least one maximum available bandwidth. It should be noted that the various scheduling strategies described above, and the specific determination methods indicated by these strategies, are only possible implementations and are not intended to limit the scope. At least one maximum available bandwidth can be determined based on other scheduling strategies, or it can be determined through other methods based on the scheduling principles of the various scheduling strategies described above.
[0168] The following describes a possible implementation of using a scheduling model to determine at least one maximum available bandwidth.
[0169] In some embodiments, step S203 includes: the control device calling the scheduling model to process the total bandwidth and scheduling demand information to obtain at least one maximum available bandwidth.
[0170] The scheduling model is used to output at least one maximum available bandwidth corresponding to at least one queue, based on the total input bandwidth and the bandwidth requirements of each queue. At least one queue can be a subset of multiple queues, or multiple queues, determined based on resource scheduling needs.
[0171] As an example, the scheduling model is a Proportional-Integral-Derivative (PID) control model. The PID control model is built upon a feedback control algorithm. The control objective of the PID control model is to improve the utilization of total bandwidth. For example, the control objective of the PID control model is to reduce the bandwidth required to transmit dropped service data. The model parameters of the PID control model can be pre-set.
[0172] As another example, the scheduling model can be an artificial intelligence (AI) model. For instance, the scheduling model can be pre-trained based on training data. The training data includes multiple sample data points and corresponding labels. Each sample data point includes total bandwidth and scheduling demand information, and the label indicates at least one maximum available bandwidth corresponding to at least one queue. Another example is a Large Language Model (LLM). An LLM can predict the bandwidth required for subsequent transmission of service data by each queue based on the input total bandwidth and the bandwidth demand of each queue, or predict the peak traffic of service data. It can then allocate the maximum available bandwidth to at least one queue based on the total bandwidth to reduce the occurrence of sudden packet loss and improve bandwidth utilization. AI-based models can enhance the elastic scalability of resource scheduling.
[0173] In at least one embodiment of this disclosure, in addition to the above... Figure 2C In addition to steps S201-S205, the control device interacts with the network device to initialize the configuration of rate limiting parameters for multiple queues.
[0174] Figure 4 The illustration shows a flowchart of another cloud service resource scheduling method provided in at least one embodiment of the present disclosure.
[0175] like Figure 4 As shown, in some embodiments, the cloud service resource scheduling method includes steps S206 and S207 in addition to steps S201-S205. Steps S206 and S207 can be executed before step S201.
[0176] In step S206, the control device sends an initial configuration command to the network device.
[0177] The initial configuration directive includes the user's total bandwidth. This directive instructs network devices to configure rate-limiting parameters for multiple queues based on the user's total bandwidth.
[0178] As an example, in response to obtaining the user's total bandwidth, the control device generates an initial configuration command and sends the initial configuration command to the network device to configure the rate limiting parameters of multiple queues in the network device based on the total bandwidth.
[0179] In step S207, in response to obtaining the initial configuration instruction, the network device configures the rate limiting parameters of multiple queues based on the user's total bandwidth.
[0180] The network device determines the rate limiting parameters for multiple queues based on the total bandwidth and configures the rate limiting parameters for multiple queues to achieve the initial configuration of the rate limiting parameters for the queues.
[0181] In one possible implementation, the total bandwidth can be used as the maximum available bandwidth for each of the multiple queues (i.e., the maximum available bandwidth for each queue is the total bandwidth) to determine the rate limiting parameters for the queues. Initializing the rate limiting parameters using the total bandwidth reduces the initial restrictions on the transmission of service data by the queues, allowing multiple queues to fully utilize bandwidth resources to transmit service data. This, in turn, facilitates subsequent resource scheduling of queues based on their required bandwidth.
[0182] As an example, see Figure 5 As shown, Figure 5 The illustration shows a flowchart of a cloud service resource scheduling method provided in at least one embodiment of the present disclosure.
[0183] The control device obtains the user's total bandwidth. The control device generates an initial configuration command including the user's total bandwidth. The control device sends the initial configuration command to the network device. The initial configuration command includes the user's total bandwidth. The network device configures rate-limiting parameters for multiple queues based on the initial configuration command and sends a configuration success message back to the control device. Upon receiving the configuration success message, the control device starts timing for adjustment period A. The duration of adjustment period A is 1 second. At the end of adjustment period A, the control device sends an information retrieval command to the network device. In response to the information retrieval command, the network device generates scheduling demand information corresponding to the user for scheduling period A. The scheduling demand information includes the required bandwidth for multiple queues. The network device sends the scheduling demand information to the control device. Based on the user's total bandwidth and the scheduling demand information, the control device determines at least one maximum available bandwidth corresponding to at least one queue, generates a scheduling command based on the at least one maximum available bandwidth, and sends the scheduling command to the network device. The network device retrieves the scheduling command and configures the rate-limiting parameters for the corresponding queue based on the at least one maximum available bandwidth. The network device sends a configuration success message back to the control device. After receiving the configuration success message, the control device starts timing for adjustment period B. The duration of adjustment period B is 1 second. Adjustment period B is the next adjustment period adjacent to adjustment period A. Within adjustment period B, network devices control the transmission of service data using the updated rate limiting parameters.
[0184] At the end of adjustment period B, the control device sends an information retrieval command to the network device. In response, the network device generates scheduling requirement information corresponding to the user for scheduling period B. This scheduling requirement information includes the bandwidth requirements of multiple queues. The network device sends this scheduling requirement information to the control device. Based on the user's total bandwidth and the scheduling requirement information, the control device determines at least one maximum available bandwidth corresponding to at least one queue. The control device generates a scheduling command based on the at least one maximum available bandwidth and sends it to the network device. The network device retrieves the scheduling command and configures the rate limiting parameters of the corresponding queue based on the at least one maximum available bandwidth. The network device sends a configuration success message back to the control device. Upon receiving the configuration success message, the control device starts the timing for the next adjustment period C. This process continues, adjusting the rate limiting parameters of at least one queue in the current adjustment period according to the data transmission requirements of multiple queues in the previous adjustment period, thus achieving dynamic resource scheduling according to the adjustment period.
[0185] Finally, the control device sends a delete configuration command to the network device. The network device, based on the delete configuration command, deletes the rate limiting parameters for multiple queues and sends a success message back to the control device. This achieves the clearing of the rate limiting parameters for multiple queues.
[0186] The cloud service resource scheduling method provided in this disclosure can collect scheduling demand information representing the hardware operating status of network devices. Based on the scheduling demand information and total bandwidth, the software deployed on the control device determines at least one maximum available bandwidth corresponding to at least one queue, achieving dynamic allocation of demand. Then, a scheduling instruction including at least one maximum available bandwidth is used to instruct the network devices to adjust rate limiting parameters, thereby adjusting the rate limiting parameters of the network devices. This allows for adjustment of the hardware operating status of the network devices, achieving software and hardware coordination. The cloud service resource scheduling method provided in this disclosure does not require advanced network chip hardware support, can interface with various application-specific integrated circuits (ASICs), and is compatible with other traffic scheduling technologies (such as software-defined networking (SDN) traffic scheduling technology). It provides different rate limiting services at the queue level for different users, exhibiting high versatility.
[0187] Based on the cloud service resource scheduling method provided in at least one embodiment of this disclosure, at least one embodiment of this disclosure also provides a cloud service resource scheduling device. This cloud service resource scheduling device is applied to a control device. The following will be combined with... Figure 6 The resource scheduling device for this cloud service is described in detail.
[0188] Figure 6 The illustration shows a schematic diagram of the structure of a resource scheduling device for cloud services applied to a control device, provided in at least one embodiment of the present disclosure.
[0189] like Figure 6 As shown, the cloud service resource scheduling device 600 of this embodiment includes an acquisition module 601, a determination module 602, and a scheduling module 603. For example, these units or modules can be implemented by hardware (e.g., circuit) modules or software modules, as is the case in the following embodiments, and will not be repeated here. For example, these units or modules can be implemented by a central processing unit (CPU), a general-purpose graphics processing unit (GPGPU), a graphics processing unit (GPU), a tensor processor (TPU), a field-programmable gate array (FPGA), or other forms of processing units with resource scheduling capabilities and / or instruction execution capabilities for cloud services, along with corresponding computer instructions.
[0190] The acquisition module 601 is configured to: acquire scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, and the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data discarded in the queue;
[0191] The determining module 602 is configured to: determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information;
[0192] The scheduling module 603 is configured to generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes at least one maximum available bandwidth corresponding to each of the at least one queue, and the scheduling instruction is used to instruct the network device to update the rate limiting parameters of the at least one queue corresponding to the at least one maximum available bandwidth.
[0193] In at least one embodiment of this disclosure, the determining module 602 is further configured to: determine the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, wherein the scheduling policy is used to indicate the method for determining the at least one maximum available bandwidth.
[0194] In at least one embodiment of this disclosure, the scheduling policy is used to indicate how to determine the at least one maximum available bandwidth based on the total bandwidth, the priorities of the plurality of queues, and the scheduling requirement information.
[0195] In at least one embodiment of this disclosure, the at least one maximum available bandwidth includes the maximum available bandwidth of each queue with a priority lower than the highest priority, the rate limiting parameter of the highest priority queue is determined based on the total bandwidth, and the at least one queue is all or some of the queues with a priority lower than the highest priority among the plurality of queues;
[0196] The determining module 602 is further configured to:
[0197] The following steps are performed sequentially for each of the at least one queue, in descending order of priority, to determine the at least one maximum available bandwidth:
[0198] For the first queue, wherein the first queue is any one of the at least one queues:
[0199] Determine a first difference between the total bandwidth and the sum of the bandwidth requirements of all queues whose priority is higher than that of the first queue;
[0200] In response to the first difference being greater than or equal to the required bandwidth of the first queue, and the first queue having a priority higher than the lowest priority, the required bandwidth of the first queue is taken as the maximum available bandwidth of the first queue.
[0201] In response to the first difference being greater than zero and less than the required bandwidth of the first queue, or the first difference being greater than zero and the priority of the first queue being the lowest priority, the first difference is taken as the maximum available bandwidth of the first queue.
[0202] In response to the first difference being less than or equal to zero, the maximum available bandwidth of the first queue is determined to be zero.
[0203] In at least one embodiment of this disclosure, the scheduling policy is used to indicate a method for determining the at least one maximum available bandwidth based on the total bandwidth, the priorities of the plurality of queues, the minimum bandwidth threshold of the plurality of queues, and the scheduling requirement information.
[0204] In at least one embodiment of this disclosure, the at least one maximum available bandwidth includes the maximum available bandwidth corresponding to multiple queues among the plurality of queues;
[0205] The determining module 602 is further configured to:
[0206] In descending order of priority, the following steps are performed sequentially for each of the multiple queues to determine the maximum available bandwidth for each queue:
[0207] For the second queue, wherein the second queue is any one of the plurality of queues:
[0208] Determine a second difference between the total bandwidth and the sum of the maximum available bandwidth of all queues with a priority higher than that of the second queue;
[0209] In response to the second difference being less than or equal to the minimum bandwidth threshold of the second queue, or the second difference being greater than the minimum bandwidth threshold of the second queue and the minimum bandwidth threshold of the second queue being greater than or equal to the required bandwidth of the second queue, the minimum bandwidth threshold of the second queue is taken as the maximum available bandwidth of the second queue.
[0210] In response to the second difference being greater than or equal to the required bandwidth of the second queue, and the required bandwidth of the second queue being greater than or equal to the minimum bandwidth threshold of the second queue, the required bandwidth of the second queue is taken as the maximum available bandwidth of the second queue;
[0211] In response to the second difference being less than the required bandwidth of the second queue and greater than or equal to the minimum bandwidth threshold of the second queue, the second difference is taken as the maximum available bandwidth of the second queue.
[0212] In at least one embodiment of this disclosure, the scheduling strategy is used to indicate the method for determining the at least one maximum available bandwidth based on the total bandwidth, the basic weights of the plurality of queues, and the scheduling demand information;
[0213] The determining module 602 is further configured to:
[0214] The base bandwidth of the at least one queue is determined based on the third difference between the total bandwidth and the required bandwidth of the other queues in the plurality of queues excluding the at least one queue, and the base weight of the at least one queue.
[0215] For each of the at least one queue, the smaller of the base bandwidth and the required bandwidth is used as the first allocation value for the queue;
[0216] In response to a fourth difference between the total bandwidth and the allocated bandwidth being greater than zero, a second allocation value for the at least one queue is determined based on the fourth difference, wherein the allocated bandwidth is the sum of the first allocation value for each of the at least one queue and the bandwidth requirements of the other queues in the plurality of queues excluding the at least one queue.
[0217] The maximum available bandwidth of the at least one queue is determined based on the first allocation value and the second allocation value of the at least one queue.
[0218] In at least one embodiment of this disclosure, the determining module 602 is further configured to:
[0219] The scheduling model is invoked to process the total bandwidth and the scheduling demand information to obtain the at least one maximum available bandwidth, wherein the scheduling model is used to output the at least one maximum available bandwidth based on the total bandwidth and the bandwidth demand of the multiple queues.
[0220] In at least one embodiment of this disclosure, the scheduling model is a proportional-integral-derivative (PI-DI) control model, which aims to improve the utilization rate of the total bandwidth; or, the scheduling model is an artificial intelligence (AI) model. In at least one embodiment of this disclosure, the scheduling module 603 is further configured to:
[0221] Send an initial configuration instruction to the network device, wherein the initial configuration instruction includes the user's total bandwidth, and the initial configuration instruction is used to instruct the network device to configure the rate limiting parameters of the multiple queues according to the total bandwidth.
[0222] In at least one embodiment of this disclosure, the scheduling demand information is the scheduling demand information corresponding to a first adjustment period, and the at least one maximum available bandwidth is the at least one maximum available bandwidth corresponding to a second adjustment period, wherein the second adjustment period is later than the first adjustment period.
[0223] In at least one embodiment of this disclosure, the plurality of queues are logical scheduling queues.
[0224] Based on the cloud service resource scheduling method provided in at least one embodiment of this disclosure, at least one embodiment of this disclosure also provides a cloud service resource scheduling apparatus. This cloud service resource scheduling apparatus is applied to network devices. The following will be combined with... Figure 7 The resource scheduling device for this cloud service is described in detail.
[0225] Figure 7 The illustration shows a schematic diagram of the structure of a resource scheduling device for cloud services applied to network devices, provided in at least one embodiment of the present disclosure.
[0226] like Figure 7 As shown, the cloud service resource scheduling device 700 of this embodiment includes a sending module 701 and an adjustment module 702. For example, these units or modules can be implemented by hardware (e.g., circuit) modules or software modules, as is the case in the following embodiments, and will not be repeated here. For example, these units or modules can be implemented by a central processing unit (CPU), a general-purpose graphics processing unit (GPGPU), a graphics processing unit (GPU), a tensor processor (TPU), a field-programmable gate array (FPGA), or other forms of processing units with resource scheduling capabilities and / or instruction execution capabilities for cloud services, along with corresponding computer instructions.
[0227] The sending module 701 is configured to: send scheduling request information corresponding to a user to a control device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data transmitted and the traffic of the service data dropped in the queue, and the control device is used to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, and to generate a scheduling instruction based on the at least one maximum available bandwidth, the scheduling instruction including the at least one maximum available bandwidth;
[0228] The adjustment module 702 is configured to: in response to acquiring the scheduling instruction sent by the control device, update the rate limiting parameters of the corresponding at least one queue according to the at least one maximum available bandwidth.
[0229] In at least one embodiment of this disclosure, the adjustment module 702 is further configured to: in response to obtaining an initial configuration instruction sent by the control device, configure the rate limiting parameters of the plurality of queues according to the total bandwidth of the user included in the initial configuration instruction.
[0230] Furthermore, based on the cloud service resource scheduling method provided in at least one embodiment of this disclosure, at least one embodiment of this disclosure also provides a cloud service resource scheduling system. This cloud service resource scheduling system includes a control device and a network device. The following will be combined with... Figure 8 The resource scheduling system of this cloud service is described in detail.
[0231] The cloud service resource scheduling system 800 includes control device 801 and network device 802.
[0232] The network device 802 is used to send scheduling request information corresponding to a user to the control device. The user is one of multiple users using cloud services. The scheduling request information includes the bandwidth requirements of multiple queues. The bandwidth requirements of each queue are determined based on the traffic of the service data already transmitted and the traffic of the service data discarded in the queue. The multiple queues are used to transmit the user's service data.
[0233] The control device 801 is used to acquire scheduling demand information corresponding to the user, determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information, generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth;
[0234] The network device 802 is further configured to update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth in response to obtaining the scheduling instruction.
[0235] In at least one embodiment of this disclosure, the control device 801 is configured to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information, including:
[0236] The control device 801 is used to determine the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling strategy, wherein the scheduling strategy is used to indicate the method for determining the at least one maximum available bandwidth.
[0237] In at least one embodiment of this disclosure, the scheduling policy is used to indicate how to determine the at least one maximum available bandwidth based on the total bandwidth, the priorities of the plurality of queues, and the scheduling requirement information.
[0238] In at least one embodiment of this disclosure, the at least one maximum available bandwidth includes the maximum available bandwidth of each queue with a priority lower than the highest priority, the rate limiting parameter of the highest priority queue is determined based on the total bandwidth, and the at least one queue is all or some of the queues with a priority lower than the highest priority among the plurality of queues;
[0239] The control device 801 is configured to determine the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, including:
[0240] The control device 801 is configured to perform the following steps sequentially for the at least one queue, according to the priority of the at least one queue from high to low, to determine the at least one maximum available bandwidth:
[0241] For the first queue, wherein the first queue is any one of the at least one queues:
[0242] Determine a first difference between the total bandwidth and the sum of the bandwidth requirements of the queues with a priority higher than that of the first queue;
[0243] In response to the first difference being greater than or equal to the required bandwidth of the first queue, and the first queue having a priority higher than the lowest priority, the required bandwidth of the first queue is taken as the maximum available bandwidth of the first queue.
[0244] In response to the first difference being greater than zero and less than the required bandwidth of the first queue, or the first difference being greater than zero and the priority of the first queue being the lowest priority, the first difference is taken as the maximum available bandwidth of the first queue.
[0245] In response to the first difference being less than or equal to zero, the maximum available bandwidth of the first queue is determined to be zero.
[0246] In at least one embodiment of this disclosure, the scheduling policy is used to indicate a method for determining the at least one maximum available bandwidth based on the total bandwidth, the priorities of the plurality of queues, the minimum bandwidth threshold of the plurality of queues, and the scheduling requirement information.
[0247] In at least one embodiment of this disclosure, the at least one maximum available bandwidth includes the maximum available bandwidth corresponding to the plurality of queues;
[0248] The control device 801 is configured to determine the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, including:
[0249] The control device 801 is configured to perform the following steps sequentially, according to priority from high to low, on the plurality of queues, to determine the maximum available bandwidth of the plurality of queues:
[0250] For the second queue, wherein the second queue is any one of the plurality of queues:
[0251] Determine a second difference between the total bandwidth and the sum of the maximum available bandwidth of all queues with a priority higher than that of the second queue;
[0252] In response to the second difference being less than or equal to the minimum bandwidth threshold of the second queue, or the second difference being greater than the minimum bandwidth threshold of the second queue and the minimum bandwidth threshold of the second queue being greater than or equal to the required bandwidth of the second queue, the minimum bandwidth threshold of the second queue is taken as the maximum available bandwidth of the second queue.
[0253] In response to the second difference being greater than or equal to the required bandwidth of the second queue, and the required bandwidth of the second queue being greater than or equal to the minimum bandwidth threshold of the second queue, the required bandwidth of the second queue is taken as the maximum available bandwidth of the second queue;
[0254] In response to the second difference being less than the required bandwidth of the second queue and greater than or equal to the minimum bandwidth threshold of the second queue, the second difference is taken as the maximum available bandwidth of the second queue.
[0255] In at least one embodiment of this disclosure, the scheduling strategy is used to indicate the method for determining the at least one maximum available bandwidth based on the total bandwidth, the basic weights of the plurality of queues, and the scheduling demand information;
[0256] The control device 801 is configured to determine the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, including:
[0257] The control device 801 is configured to: determine the base bandwidth of the at least one queue based on a third difference between the total bandwidth and the sum of the required bandwidths of the other queues (excluding the at least one queue) in the plurality of queues, and the base weight of the at least one queue; for each of the at least one queue, use the smaller of the base bandwidth and the required bandwidth as the first allocation value of the queue; in response to a fourth difference between the total bandwidth and the allocated bandwidth being greater than zero, determine a second allocation value of the at least one queue based on the fourth difference, wherein the allocated bandwidth is the sum of the first allocation value of each of the at least one queue and the required bandwidths of the other queues (excluding the at least one queue) in the plurality of queues; and determine the maximum available bandwidth of the at least one queue based on the first allocation value and the second allocation value of the at least one queue.
[0258] In at least one embodiment of this disclosure, the control device 801 is configured to determine the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, including:
[0259] The control device 801 is used to call the scheduling model to process the total bandwidth and the scheduling demand information to obtain the at least one maximum available bandwidth, wherein the scheduling model is used to output the at least one maximum available bandwidth based on the total bandwidth and the bandwidth demand of the multiple queues.
[0260] In at least one embodiment of this disclosure, the scheduling model is a proportional-integral-derivative (PI-DI) control model, which aims to improve the utilization rate of the total bandwidth; or, the scheduling model is an artificial intelligence (AI) model. In at least one embodiment of this disclosure, the control device 801 is further configured to send an initial configuration instruction to the network device, wherein the initial configuration instruction includes the user's total bandwidth, and the initial configuration instruction is used to instruct the network device to configure the rate-limiting parameters of the multiple queues according to the total bandwidth.
[0261] The network device 802 is further configured to, in response to receiving an initial configuration instruction sent by the control device, configure rate limiting parameters for each queue based on the user's total bandwidth.
[0262] In at least one embodiment of this disclosure, the scheduling demand information is the scheduling demand information corresponding to a first adjustment period, and the at least one maximum available bandwidth is the at least one maximum available bandwidth corresponding to a second adjustment period, wherein the second adjustment period is later than the first adjustment period.
[0263] In at least one embodiment of this disclosure, the plurality of queues are logical scheduling queues.
[0264] At least one embodiment of this disclosure also provides an electronic device, including a processing device and a storage device, the storage device including one or more computer program modules; wherein the one or more computer program modules are stored in the storage device and configured to be executed by the processing device, the one or more computer program modules being used to implement the resource scheduling method for cloud services provided in any embodiment of this disclosure.
[0265] For example, the processing device may be a processor, such as a central processing unit (CPU), digital signal processor (DSP), image processor (GPU), general-purpose graphics processor (GPGPU), or other form of processing unit with cloud service resource scheduling capabilities and / or instruction execution capabilities. It may be a general-purpose processor or a dedicated processor and may control other components in the electronic device to perform the desired functions.
[0266] For example, the storage device may be a memory, which may include one or more computer program products. These computer program products may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may, for example, include random access memory (RAM) and / or cache memory. The non-volatile memory may, for example, include read-only memory (ROM), hard disk, flash memory, etc. One or more computer program instructions may be stored on the computer-readable storage medium, and a processing device may execute these program instructions to implement the functions (implemented by the processing device) in the embodiments of this disclosure and / or other desired functions. Various application programs and various data may also be stored in the computer-readable storage medium, which is not limited by the embodiments of this disclosure.
[0267] The following is for reference. Figure 9The diagram illustrates a structural schematic of an electronic device (e.g., a terminal device or a server) 900 suitable for implementing embodiments of the present disclosure. The terminal device in the embodiments of the present 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 9 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0268] like Figure 9 As shown, electronic device 900 may include a processing device (e.g., a central processing unit, a graphics processor, etc.) 901, which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 902 or a program loaded from storage device 908 into random access memory (RAM) 903. RAM 903 also stores various programs and data required for the operation of electronic device 900. Processing device 901, ROM 902, and RAM 903 are interconnected via bus 904. Input / output (I / O) interface 905 is also connected to bus 904.
[0269] Typically, the following devices can be connected to I / O interface 905: input devices 906 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 907 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 908 including, for example, magnetic tapes, hard disks, etc.; and communication devices 909. Communication device 909 allows electronic device 900 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 9 An electronic device 900 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0270] In particular, according to one or more embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, one or more 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 a communication device 909, or installed from a storage device 908, or installed from a ROM 902. When the computer program is executed by a processing device 901, it performs the functions defined in the methods of the embodiments of this disclosure.
[0271] 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 conjunction 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.
[0272] 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.
[0273] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.
[0274] The aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: acquire scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, and the required bandwidth of each queue is determined based on the traffic of transmitted service data and the traffic of discarded service data in the queue; determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information; generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth and is used to instruct the network device to update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth.
[0275] Alternatively, the aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: send scheduling request information corresponding to a user to a control device, wherein the user is one of multiple users using cloud services; the network device is configured to transmit the user's service data through multiple queues; the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue being determined based on the traffic of transmitted service data and the traffic of discarded service data in that queue; the control device is configured to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information; and generate a scheduling instruction based on the at least one maximum available bandwidth, the scheduling instruction including the at least one maximum available bandwidth; and, in response to obtaining the scheduling instruction sent by the control device, update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth.
[0276] 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).
[0277] One or more embodiments of this disclosure also provide a computer program product comprising one or more computer instructions. When the computer instructions are loaded and executed on a computing device, all or part of the processes or functions described in any embodiment of this disclosure are generated.
[0278] The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, or data center to another website, computer, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means.
[0279] When the computer program product is executed by a computer, the computer executes any of the aforementioned cloud service resource scheduling methods. The computer program product can be a software installation package; when any of the aforementioned cloud service resource scheduling methods is required, the computer program product can be downloaded and executed on the computer.
[0280] 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.
[0281] The units or modules described in the embodiments of this disclosure can be implemented in software or hardware. The names of the units or modules do not necessarily constitute a limitation on the unit or module itself.
[0282] 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-specific standard products (ASSPs), system-on-a-chip (SoCs), complex programmable logic devices (CPLDs), and so on.
[0283] 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.
[0284] According to one or more embodiments of this disclosure, Example 1 provides a resource scheduling method for cloud services, applied to a control device, including:
[0285] Obtain scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, and the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data dropped in the queue;
[0286] Based on the user's total bandwidth and the scheduling demand information, determine at least one maximum available bandwidth corresponding to each of at least one queue;
[0287] A scheduling instruction is generated based on the at least one maximum available bandwidth and sent to the network device. The scheduling instruction includes the at least one maximum available bandwidth and is used to instruct the network device to update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth.
[0288] According to one or more embodiments of this disclosure, Example 2 provides the method in Example 1 for determining at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information, including:
[0289] Based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, the at least one maximum available bandwidth is determined, wherein the scheduling policy is used to indicate the method for determining the at least one maximum available bandwidth.
[0290] According to one or more embodiments of this disclosure, Example 3 provides the scheduling strategy in Example 2 for indicating a method for determining the at least one maximum available bandwidth based on the total bandwidth, the priorities of the plurality of queues, and the scheduling requirement information.
[0291] According to one or more embodiments of this disclosure, Example 4 provides at least one maximum available bandwidth in Example 3, including the maximum available bandwidth of each queue with a priority lower than the highest priority, wherein the rate limiting parameter of the highest priority queue is determined based on the total bandwidth, and the at least one queue is all or some of the queues with a priority lower than the highest priority among the plurality of queues;
[0292] Determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy includes:
[0293] The following steps are performed sequentially for each of the at least one queue, in descending order of priority, to determine the at least one maximum available bandwidth:
[0294] For the first queue, wherein the first queue is any one of the at least one queues:
[0295] Determine a first difference between the total bandwidth and the sum of the bandwidth requirements of all queues whose priority is higher than that of the first queue;
[0296] In response to the first difference being greater than or equal to the required bandwidth of the first queue, and the first queue having a priority higher than the lowest priority, the required bandwidth of the first queue is taken as the maximum available bandwidth of the first queue.
[0297] In response to the first difference being greater than zero and less than the required bandwidth of the first queue, or the first difference being greater than zero and the priority of the first queue being the lowest priority, the first difference is taken as the maximum available bandwidth of the first queue.
[0298] In response to the first difference being less than or equal to zero, the maximum available bandwidth of the first queue is determined to be zero.
[0299] According to one or more embodiments of this disclosure, Example 5 provides the scheduling strategy in Example 2 for indicating a method for determining the at least one maximum available bandwidth based on the total bandwidth, the priorities of the plurality of queues, the minimum bandwidth threshold of the plurality of queues, and the scheduling requirement information.
[0300] According to one or more embodiments of this disclosure, Example Six provides that the at least one maximum available bandwidth in Example Five includes the maximum available bandwidth corresponding to the plurality of queues;
[0301] Determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy includes:
[0302] In descending order of priority, the following steps are performed sequentially for each of the multiple queues to determine the maximum available bandwidth for each queue:
[0303] For the second queue, which is any one of the plurality of queues: determine a second difference between the total bandwidth and the sum of the maximum available bandwidth of all queues with a priority higher than that of the second queue;
[0304] In response to the second difference being less than or equal to the minimum bandwidth threshold of the second queue, or the second difference being greater than the minimum bandwidth threshold of the second queue and the minimum bandwidth threshold of the second queue being greater than or equal to the required bandwidth of the second queue, the minimum bandwidth threshold of the second queue is taken as the maximum available bandwidth of the second queue.
[0305] In response to the second difference being greater than or equal to the required bandwidth of the second queue, and the required bandwidth of the second queue being greater than or equal to the minimum bandwidth threshold of the second queue, the required bandwidth of the second queue is taken as the maximum available bandwidth of the second queue;
[0306] In response to the second difference being less than the required bandwidth of the second queue and greater than or equal to the minimum bandwidth threshold of the second queue, the second difference is taken as the maximum available bandwidth of the second queue.
[0307] According to one or more embodiments of this disclosure, Example 7 provides the scheduling strategy in Example 2 for indicating a method for determining the at least one maximum available bandwidth based on the total bandwidth, the basic weights of the plurality of queues, and the scheduling requirement information;
[0308] Determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy includes:
[0309] The base bandwidth of the at least one queue is determined based on the third difference between the total bandwidth and the required bandwidth of the other queues in the plurality of queues excluding the at least one queue, and the base weight of each at least one queue.
[0310] For each of the at least one queue, the smaller of the base bandwidth and the required bandwidth is used as the first allocation value for the queue;
[0311] In response to a fourth difference between the total bandwidth and the allocated bandwidth being greater than zero, a second allocation value for the at least one queue is determined based on the fourth difference, wherein the allocated bandwidth is the sum of the first allocation value for each of the at least one queue and the bandwidth requirements of the other queues in the plurality of queues excluding the at least one queue.
[0312] The maximum available bandwidth of the at least one queue is determined based on the first allocation value and the second allocation value of the at least one queue.
[0313] According to one or more embodiments of this disclosure, Example 8 provides the method of determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, as described in Example 1, including:
[0314] The scheduling model is invoked to process the total bandwidth and the scheduling demand information to obtain the at least one maximum available bandwidth, wherein the scheduling model is used to output the at least one maximum available bandwidth based on the total bandwidth and the bandwidth demand of the multiple queues.
[0315] According to one or more embodiments of this disclosure, Example Nine provides that the scheduling model in Example Eight is a proportional-integral-derivative (PI-DI) control model, wherein the PI-DI control model aims to improve the utilization rate of the total bandwidth; or, the scheduling model is an artificial intelligence model.
[0316] According to one or more embodiments of this disclosure, Example 10 provides a method from any of Examples 1 to 9, further comprising:
[0317] Send an initial configuration instruction to the network device, wherein the initial configuration instruction includes the user's total bandwidth, and the initial configuration instruction is used to instruct the network device to configure the rate limiting parameters of the multiple queues according to the total bandwidth.
[0318] According to one or more embodiments of this disclosure, Example 11 provides that the scheduling demand information in any of Examples 1 to 9 is the scheduling demand information corresponding to the first adjustment period, and the at least one maximum available bandwidth is the at least one maximum available bandwidth corresponding to the second adjustment period, wherein the second adjustment period is later than the first adjustment period.
[0319] According to one or more embodiments of this disclosure, Example Twelve provides multiple queues from any of Examples One through Nine as logical scheduling queues.
[0320] According to one or more embodiments of this disclosure, Example Thirteen provides a resource scheduling method in a cloud service, applied to a network device, including:
[0321] The network device sends scheduling request information corresponding to a user to the control device. The user is one of multiple users using cloud services. The network device is used to transmit the user's service data through multiple queues. The scheduling request information includes the required bandwidth of the multiple queues. The required bandwidth of each queue is determined based on the traffic of the service data transmitted and the traffic of the service data dropped in the queue. The control device is used to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, and to generate a scheduling instruction based on the at least one maximum available bandwidth. The scheduling instruction includes the at least one maximum available bandwidth.
[0322] In response to receiving the scheduling instruction sent by the control device, the rate limiting parameters of the corresponding at least one queue are updated according to the at least one maximum available bandwidth.
[0323] According to one or more embodiments of this disclosure, Example Fourteen provides the method of Example Thirteen, further comprising:
[0324] In response to receiving an initial configuration instruction sent by the control device, the rate limiting parameters of the multiple queues are configured according to the total bandwidth of the user included in the initial configuration instruction.
[0325] According to one or more embodiments of this disclosure, Example Fifteen provides a resource scheduling device for cloud services, applied to a control device, comprising:
[0326] The acquisition module is configured to: acquire scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, and the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data discarded in the queue;
[0327] The determination module is configured to: determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information;
[0328] The scheduling module is configured to: generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth and is used to instruct the network device to update the rate limiting parameters of the corresponding at least one queue according to the at least one maximum available bandwidth.
[0329] According to one or more embodiments of this disclosure, Example Sixteen provides a resource scheduling device in a cloud service, applied to a network device, comprising:
[0330] The sending module is configured to: send scheduling request information corresponding to a user to a control device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data dropped in the queue, and the control device is used to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, and to generate a scheduling instruction based on the at least one maximum available bandwidth, the scheduling instruction including the at least one maximum available bandwidth;
[0331] The adjustment module is configured to: in response to receiving the scheduling instruction sent by the control device, update the rate limiting parameters of the corresponding at least one queue according to the at least one maximum available bandwidth.
[0332] According to one or more embodiments of this disclosure, Example Seventeen provides a resource scheduling system in a cloud service, including a control device and a network device;
[0333] The network device is used to send scheduling request information corresponding to a user to the control device. The user is one of multiple users using cloud services. The scheduling request information includes the bandwidth requirements of multiple queues. The bandwidth requirements of each queue are determined based on the traffic of transmitted service data and the traffic of discarded service data in the queue. The multiple queues are used to transmit the user's service data.
[0334] The control device is used to obtain the scheduling demand information corresponding to the user, determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information, generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth;
[0335] The network device is also configured to update the rate limiting parameters of the at least one queue corresponding to the at least one maximum available bandwidth in response to receiving the scheduling instruction.
[0336] According to one or more embodiments of this disclosure, Example Eighteen provides an electronic device, including:
[0337] Processing device; and
[0338] Storage device, including one or more computer program instructions;
[0339] The one or more computer program instructions are executed by the processing device to perform the resource scheduling method in the cloud service provided in at least one embodiment of the present disclosure.
[0340] According to one or more embodiments of the present disclosure, Example Nineteen provides a computer-readable storage medium for non-transitory storage of computer-readable instructions, wherein, when the computer-readable instructions are executed by a processor, they implement a resource scheduling method in a cloud service provided in at least one embodiment of the present disclosure.
[0341] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.
[0342] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.
[0343] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims.
Claims
1. A resource scheduling method for cloud services, applied to control equipment, comprising: Obtain scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data discarded in the queue, and the multiple queues are logical scheduling queues. Based on the user's total bandwidth and the scheduling demand information, determine at least one maximum available bandwidth corresponding to each of at least one queue; A scheduling instruction is generated based on the at least one maximum available bandwidth and sent to the network device. The scheduling instruction includes the at least one maximum available bandwidth and is used to instruct the network device to update the rate limiting parameters of the at least one queue corresponding to the at least one maximum available bandwidth. The rate limiting parameters are the rate limiting parameters of the meter corresponding to the logical scheduling queue.
2. The method according to claim 1, wherein, The step of determining at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information includes: Based on the user's total bandwidth, the scheduling demand information, and the scheduling policy, the at least one maximum available bandwidth is determined, wherein the scheduling policy is used to indicate the method for determining the at least one maximum available bandwidth.
3. The method according to claim 2, wherein, The scheduling strategy is used to indicate how to determine the at least one maximum available bandwidth based on the total bandwidth, the priorities of the multiple queues, and the scheduling requirement information.
4. The method according to claim 3, wherein, The at least one maximum available bandwidth includes the maximum available bandwidth of each queue with a priority lower than the highest priority, the rate limiting parameter of the highest priority queue is determined based on the total bandwidth, and the at least one queue is all or some of the queues with a priority lower than the highest priority among the plurality of queues; Determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy includes: The following steps are performed sequentially for each of the at least one queue, in descending order of priority, to determine the at least one maximum available bandwidth: For the first queue, wherein the first queue is any one of the at least one queues: Determine a first difference between the total bandwidth and the sum of the bandwidth requirements of all queues whose priority is higher than that of the first queue; In response to the first difference being greater than or equal to the required bandwidth of the first queue, and the first queue having a priority higher than the lowest priority, the required bandwidth of the first queue is taken as the maximum available bandwidth of the first queue. In response to the first difference being greater than zero and less than the required bandwidth of the first queue, or the first difference being greater than zero and the priority of the first queue being the lowest priority, the first difference is taken as the maximum available bandwidth of the first queue. In response to the first difference being less than or equal to zero, the maximum available bandwidth of the first queue is determined to be zero.
5. The method according to claim 2, wherein, The scheduling strategy is used to indicate how to determine the at least one maximum available bandwidth based on the total bandwidth, the priority of the multiple queues, the minimum bandwidth threshold of the multiple queues, and the scheduling requirement information.
6. The method according to claim 5, wherein, The at least one maximum available bandwidth includes the maximum available bandwidth corresponding to the plurality of queues; Determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy includes: In descending order of priority, the following steps are performed sequentially for each of the multiple queues to determine the maximum available bandwidth for each queue: For the second queue, wherein the second queue is any one of the plurality of queues: Determine a second difference between the total bandwidth and the sum of the maximum available bandwidth of all queues with a priority higher than that of the second queue; In response to the second difference being less than or equal to the minimum bandwidth threshold of the second queue, or the second difference being greater than the minimum bandwidth threshold of the second queue and the minimum bandwidth threshold of the second queue being greater than or equal to the required bandwidth of the second queue, the minimum bandwidth threshold of the second queue is taken as the maximum available bandwidth of the second queue. In response to the second difference being greater than or equal to the required bandwidth of the second queue, and the required bandwidth of the second queue being greater than or equal to the minimum bandwidth threshold of the second queue, the required bandwidth of the second queue is taken as the maximum available bandwidth of the second queue; In response to the second difference being less than the required bandwidth of the second queue and greater than or equal to the minimum bandwidth threshold of the second queue, the second difference is taken as the maximum available bandwidth of the second queue.
7. The method according to claim 2, wherein, The scheduling strategy is used to indicate the method for determining the at least one maximum available bandwidth based on the total bandwidth, the basic weights of the multiple queues, and the scheduling requirement information. Determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy includes: The base bandwidth of the at least one queue is determined based on the third difference between the total bandwidth and the sum of the required bandwidths of the other queues in the plurality of queues excluding the at least one queue, and the base weight of the at least one queue. For each of the at least one queue, the smaller of the base bandwidth and the required bandwidth is used as the first allocation value; In response to a fourth difference between the total bandwidth and the allocated bandwidth being greater than zero, a second allocation value for the at least one queue is determined based on the fourth difference, wherein the allocated bandwidth is the sum of the first allocation value for each of the at least one queue and the bandwidth requirements of the other queues in the plurality of queues excluding the at least one queue. The maximum available bandwidth of the at least one queue is determined based on the first allocation value and the second allocation value of the at least one queue.
8. The method according to claim 1, wherein, Determining the at least one maximum available bandwidth based on the user's total bandwidth, the scheduling demand information, and the scheduling policy includes: The scheduling model is invoked to process the total bandwidth and the scheduling demand information to obtain the at least one maximum available bandwidth, wherein the scheduling model is used to output the at least one maximum available bandwidth based on the total bandwidth and the bandwidth demand of the multiple queues.
9. The method according to claim 8, wherein, The scheduling model is a proportional-integral-derivative (PI-DI) control model, and the PI-DI control model aims to improve the utilization rate of the total bandwidth; or, The scheduling model is an artificial intelligence model.
10. The method according to any one of claims 1-9, further comprising: Send an initial configuration instruction to the network device, wherein the initial configuration instruction includes the user's total bandwidth, and the initial configuration instruction is used to instruct the network device to configure the rate limiting parameters of the multiple queues according to the total bandwidth.
11. The method according to any one of claims 1-9, wherein, The scheduling demand information is the scheduling demand information corresponding to the first adjustment period, and the at least one maximum available bandwidth is the at least one maximum available bandwidth corresponding to the second adjustment period, which is later than the first adjustment period.
12. A resource scheduling method in cloud services, applied to network devices, comprising: The system sends scheduling request information corresponding to a user to a control device. The user is one of multiple users using cloud services. The network device is used to transmit the user's service data through multiple queues. The scheduling request information includes the required bandwidth of the multiple queues. The required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data dropped. The multiple queues are logical scheduling queues. The control device is used to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, and to generate a scheduling instruction based on the at least one maximum available bandwidth. The scheduling instruction includes the at least one maximum available bandwidth. In response to receiving the scheduling instruction sent by the control device, the rate limiting parameter of the corresponding at least one queue is updated according to the at least one maximum available bandwidth, wherein the rate limiting parameter is the rate limiting parameter of the meter corresponding to the logical scheduling queue.
13. The method of claim 12, further comprising: In response to receiving an initial configuration instruction sent by the control device, the rate limiting parameters of the multiple queues are configured according to the total bandwidth of the user included in the initial configuration instruction.
14. A resource scheduling device for cloud services, applied to control equipment, comprising: The acquisition module is configured to: acquire scheduling request information corresponding to a user sent by a network device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data discarded in the queue, and the multiple queues are logical scheduling queues. The determination module is configured to: determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information; The scheduling module is configured to: generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth, and the scheduling instruction is used to instruct the network device to update the rate limiting parameters of the at least one queue corresponding to the at least one maximum available bandwidth, wherein the rate limiting parameters are the rate limiting parameters of the meter corresponding to the logical scheduling queue.
15. A resource scheduling device for cloud services, applied to network equipment, comprising: The sending module is configured to: send scheduling request information corresponding to a user to a control device, wherein the user is one of multiple users using cloud services, the network device is used to transmit the user's service data through multiple queues, the scheduling request information includes the required bandwidth of the multiple queues, the required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data discarded in the queue, the multiple queues are logical scheduling queues, and the control device is used to determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling request information, and to generate a scheduling instruction based on the at least one maximum available bandwidth, the scheduling instruction including the at least one maximum available bandwidth; The adjustment module is configured to: in response to receiving the scheduling instruction sent by the control device, update the rate limiting parameter of the corresponding at least one queue according to the at least one maximum available bandwidth, wherein the rate limiting parameter is the rate limiting parameter of the meter corresponding to the logical scheduling queue.
16. A resource scheduling system in a cloud service, comprising control equipment and network equipment; The network device is used to send scheduling request information corresponding to the user to the control device, wherein... The user is one of multiple users using cloud services. The scheduling requirement information includes the required bandwidth of multiple queues. The required bandwidth of each queue is determined based on the traffic of the service data already transmitted and the traffic of the service data discarded in the queue. The multiple queues are used to transmit the user's service data. The multiple queues are logical scheduling queues. The control device is used to acquire scheduling demand information corresponding to the user, determine at least one maximum available bandwidth corresponding to at least one queue based on the user's total bandwidth and the scheduling demand information, generate a scheduling instruction based on the at least one maximum available bandwidth and send the scheduling instruction to the network device, wherein the scheduling instruction includes the at least one maximum available bandwidth; The network device is further configured to, in response to acquiring the scheduling instruction, update the rate limiting parameters of the corresponding at least one queue based on the at least one maximum available bandwidth, wherein the rate limiting parameters are the rate limiting parameters of the meter corresponding to the logical scheduling queue.
17. An electronic device comprising: Processing device; as well as Storage device, including one or more computer program instructions; The one or more computer program instructions, when executed by the processing device, perform the method according to any one of claims 1 to 11, or perform the method according to claim 12 or 13.
18. A computer-readable storage medium for non-transitory storage of computer-readable instructions, wherein, When the computer-readable instructions are executed by a processor, they implement the method of any one of claims 1 to 11, or the method of claim 12 or 13.
Citation Information
Patent Citations
Architecture and method for traffic engineering between diverse cloud providers
US20160197834A1