Bandwidth scheduling method, device and equipment and computer readable storage medium
By aggregating and predicting the bandwidth usage information in the communication system, efficient scheduling of bandwidth within the second period is achieved, the problems of low bandwidth utilization and high cost in the prior art are solved, and the overall performance of the communication system is improved.
Patent Information
- Application Number
- CN202311108592.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-06-05
- Filing Date
- 2023-08-30
- Publication Date
- 2024-12-06
AI Technical Summary
During the communication process, the prior art is difficult to effectively schedule bandwidth, resulting in low bandwidth utilization and high cost, and low prediction efficiency, which affects the overall performance of the communication system.
By acquiring the first bandwidth usage information of the reference object in the communication system, aggregating it to reduce the information density, obtaining the second bandwidth usage information, and predicting the bandwidth free information of the second period based on the information, and then the bandwidth within the second period is then used to predict the bandwidth in the second period. Carry out scheduling to improve bandwidth utilization and prediction efficiency.
It improves bandwidth utilization, reduces bandwidth usage costs, improves the efficiency and accuracy of communication systems, and ensures efficient utilization of resources.
Smart Images

Figure CN119094358A_ABST
Abstract
Description
[0001] This application claims priority to Chinese patent application No. 202310658012.2 filed on June 5, 2023, with invention name “Method, device, equipment, system, medium and program product for bandwidth scheduling”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a method, apparatus, device and computer-readable storage medium for scheduling bandwidth. Background Art
[0003] During the communication process, bandwidth is required for message transmission. Therefore, before the message is transmitted, the bandwidth needs to be reasonably scheduled. Summary of the invention
[0004] The present application provides a method, apparatus, device and computer-readable storage medium for scheduling bandwidth, so as to reasonably schedule bandwidth. The technical solution provided by the present application includes the following aspects.
[0005] In a first aspect, a method for scheduling bandwidth is provided, where the method is applied to a bandwidth scheduling device in a communication system.
[0006] In the method, the bandwidth scheduling device obtains the first bandwidth usage information of the reference object in the previous first time period for the reference object that needs to occupy the bandwidth for message transmission, and the reference object includes a cloud data center for providing cloud services in the communication system, or the reference object includes a tenant who accesses the communication system to use the cloud service. Then, the bandwidth scheduling device aggregates the first bandwidth usage information to obtain the second bandwidth usage information, and the second bandwidth usage information represents the bandwidth used by the reference object, and the information density of the second bandwidth usage information is less than the information density of the first bandwidth usage information. Since the information density of the first bandwidth usage information is large, the first bandwidth usage information is more detailed and accurate, but the amount of information is large. If the subsequent prediction is completed directly based on the first bandwidth usage information, it may lead to low prediction efficiency, thereby affecting the efficiency of bandwidth scheduling. Therefore, by aggregating the first bandwidth usage information to obtain the second bandwidth usage information, the information density is reduced, that is, the amount of information is reduced, and the prediction efficiency based on the second bandwidth usage information is high, so that the efficiency of bandwidth scheduling is also high.
[0007] Afterwards, the bandwidth scheduling device predicts the first bandwidth spare information of the reference object in a second time period later than the first time period based on the second bandwidth usage information. The first bandwidth spare information represents the bandwidth that may be spared after the reference object uses the bandwidth, or the bandwidth that the reference object can use additionally. Then, the bandwidth scheduling device schedules the first bandwidth of the reference object in the second time period based on the first bandwidth spare information, and obtains the second bandwidth of the reference object in the second time period. The second bandwidth is used to transmit the message of the reference object in the second time period. Therefore, on the basis of the first bandwidth that can be used originally, the spare bandwidth is additionally utilized, which not only improves the bandwidth utilization rate, but also reduces the bandwidth usage cost of the reference object.
[0008] In a possible implementation, predicting the first bandwidth spare information of the reference object in the second time period based on the second bandwidth usage information includes: obtaining the bandwidth usage change rate of the second time period relative to the first time period; predicting the first bandwidth spare information based on the bandwidth usage change rate and the second bandwidth usage information. Among them, since the first time period and the second time period are different time periods, the bandwidth requirements of the reference object in the first time period and the second time period may be the same or different, thereby generating a bandwidth usage change rate of the second time period relative to the first time period, and the bandwidth usage change rate may be greater than 1 (increased bandwidth demand), equal to 1 (unchanged bandwidth demand) or less than 1 (decreased bandwidth demand). Therefore, taking the bandwidth usage change rate into consideration when predicting the first bandwidth spare information can improve the accuracy of the prediction, which is conducive to further improving bandwidth utilization.
[0009] In a possible implementation, predicting first bandwidth idle information based on a bandwidth usage change rate and second bandwidth usage information includes: predicting third bandwidth usage information of a reference object in a second time period based on the bandwidth usage change rate and the second bandwidth usage information; filtering the third bandwidth usage information according to a first reference ratio, and determining first bandwidth threshold information of the reference object in the second time period based on the filtered third bandwidth usage information; and determining first bandwidth idle information based on a first difference between the third bandwidth usage information and the first bandwidth threshold information.
[0010] In this implementation, the bandwidth usage change rate is first used to predict the third bandwidth usage information, the third bandwidth usage information represents the bandwidth that the reference object may use during the second time period, and then the first bandwidth threshold information is determined based on the third bandwidth usage information, the first bandwidth threshold information represents the upper limit of the bandwidth that the reference object can use during the second time period, and then the first bandwidth idle information can be determined based on the first difference between the third bandwidth usage information and the first bandwidth threshold information.
[0011] In a possible implementation, predicting first bandwidth idle information based on a bandwidth usage change rate and second bandwidth usage information includes: filtering the second bandwidth usage information according to a second reference ratio, and determining second bandwidth threshold information of a reference object within a first time period based on the filtered second bandwidth usage information; determining second bandwidth idle information of the reference object within the first time period based on a second difference between the second bandwidth usage information and the second bandwidth threshold information; and predicting the first bandwidth idle information based on the bandwidth usage change rate and the second bandwidth idle information.
[0012] In this implementation, the second bandwidth threshold information is first determined based on the second bandwidth usage information, and the second bandwidth threshold information represents the upper limit of the bandwidth that can be used by the reference object in the first time period. Then, the second bandwidth spare information of the reference object in the first time period is determined based on the second difference between the second bandwidth usage information and the second bandwidth threshold information, and the second bandwidth spare information represents the spare bandwidth of the reference object in the first time period. Then, the bandwidth usage change rate is used based on the second bandwidth spare information to determine the first bandwidth spare information. It can be seen that in the above two implementations, the timing of using the bandwidth usage change rate is different.
[0013] In a possible implementation, before the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, the method further includes: obtaining the bandwidth reservation information of the reference object for the second time period; scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, including: updating the first bandwidth spare information according to the bandwidth reservation information to obtain the updated bandwidth spare information; scheduling the first bandwidth of the reference object in the second time period according to the updated bandwidth spare information to obtain the second bandwidth of the reference object in the second time period. Among them, since the second bandwidth usage information represents the bandwidth used by the reference object in the first time period, the first bandwidth spare information predicted according to the second bandwidth usage information is the bandwidth that the reference object can use additionally in the second time period if the reference object uses the bandwidth normally, and the process of predicting the first bandwidth spare information does not involve the situation that the reference object has an accidental need to use additional bandwidth in the second time period. Therefore, if the reference object has an occasional need to use additional bandwidth in the second period, that is, the above-mentioned bandwidth reservation information exists, it is necessary to update the first bandwidth surplus information according to the bandwidth reservation information to obtain updated bandwidth surplus information, and the updated bandwidth surplus information has higher accuracy.
[0014] In a possible implementation, the first bandwidth of the reference object in the second time period is a fixed bandwidth; the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, including: determining the third bandwidth according to the first bandwidth spare information; adding the third bandwidth to the fixed bandwidth to obtain the second bandwidth of the reference object in the second time period. In this implementation, the reference object can use the original fixed bandwidth and the spare third bandwidth in a superimposed manner, and the available bandwidth is increased, thereby improving bandwidth utilization.
[0015] In a possible implementation, the first bandwidth of the reference object in the second time period is a non-fixed bandwidth; the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, including: determining the fourth bandwidth according to the first bandwidth spare information; replacing the non-fixed bandwidth with the fourth bandwidth to obtain the second bandwidth of the reference object in the second time period. In this implementation, the reference object no longer needs to use the original non-fixed bandwidth, but can use the spare fourth bandwidth, thereby improving bandwidth utilization and reducing bandwidth usage costs.
[0016] In a possible implementation, the first bandwidth spare information is information corresponding to the first service, the first bandwidth of the reference object in the second time period includes the bandwidth corresponding to the first service and the bandwidth corresponding to the second service, and the first service and the second service are different services of the reference object; the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, including: determining the fifth bandwidth according to the first bandwidth spare information; deducting the fifth bandwidth from the bandwidth corresponding to the first service to obtain the first sub-bandwidth of the reference object in the second time period, the first sub-bandwidth is used to transmit the message of the first service in the second time period; adding the fifth bandwidth to the bandwidth corresponding to the second service to obtain the second sub-bandwidth of the reference object in the second time period, the second sub-bandwidth is used to transmit the message of the second service in the second time period; wherein the second bandwidth of the reference object in the second time period includes the first sub-bandwidth and the second sub-bandwidth. In this implementation, the reference object has the first service and the second service, and the bandwidth spared after the first service uses the bandwidth is scheduled to the second service for use, so as to improve the bandwidth utilization rate and reduce the bandwidth use cost of the reference object.
[0017] In a possible implementation, after the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information and the second bandwidth of the reference object in the second time period is obtained, the method further includes: obtaining the fourth bandwidth usage information of the reference object in the first sub-time period in the second time period; updating the second bandwidth according to the fourth bandwidth usage information to obtain the updated bandwidth, the updated bandwidth is used to transmit the message of the reference object in the second sub-time period in the second time period, and the second sub-time period is later than the first sub-time period. Among them, since the second bandwidth of the reference object in the second time period is obtained by scheduling according to the first bandwidth spare information (representing the possible spare bandwidth), and the first bandwidth spare information is obtained by prediction, there may be a situation where the first bandwidth spare information is inconsistent with the actual spare bandwidth in the second time period, resulting in the second bandwidth scheduled according to the first bandwidth spare information is not accurate enough. Therefore, the present application obtains the fourth bandwidth usage information of the reference object in the first sub-time period in the second time period, and the fourth bandwidth usage information represents the bandwidth used by the reference object in the first sub-time period, so that the second bandwidth in the subsequent second sub-time period can be updated according to the bandwidth used by the reference object in the first sub-time period, and the obtained updated bandwidth is more accurate, which improves the accuracy of bandwidth scheduling.
[0018] In a second aspect, a device for scheduling bandwidth is provided, the device comprising:
[0019] An acquisition module, configured to acquire second bandwidth usage information of a reference object within a first time period, wherein the reference object includes a cloud data center in a communication system for providing cloud services, or the reference object includes a tenant accessing the communication system to use cloud services;
[0020] an aggregation module, configured to aggregate the first bandwidth usage information to obtain second bandwidth usage information, wherein the information density of the second bandwidth usage information is less than the information density of the first bandwidth usage information;
[0021] A prediction module, configured to predict first bandwidth spare information of a reference object in a second time period according to the second bandwidth usage information, the second time period being later than the first time period;
[0022] The scheduling module is used to schedule the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, and the second bandwidth is used to transmit the message of the reference object in the second time period.
[0023] In a possible implementation, the prediction module is used to obtain a bandwidth usage change rate of the second time period relative to the first time period; and predict the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information.
[0024] In one possible implementation, the prediction module is used to predict the third bandwidth usage information of the reference object in the second time period based on the bandwidth usage change rate and the second bandwidth usage information; filter the third bandwidth usage information according to the first reference ratio, and determine the first bandwidth threshold information of the reference object in the second time period based on the filtered third bandwidth usage information; and determine the first bandwidth idle information based on the first difference between the third bandwidth usage information and the first bandwidth threshold information.
[0025] In one possible implementation, the prediction module is used to filter the second bandwidth usage information according to a second reference ratio, determine the second bandwidth threshold information of the reference object in the first time period according to the filtered second bandwidth usage information; determine the second bandwidth idle information of the reference object in the first time period according to a second difference between the second bandwidth usage information and the second bandwidth threshold information; and predict the first bandwidth idle information according to the bandwidth usage change rate and the second bandwidth idle information.
[0026] In a possible implementation, the acquisition module is further used to acquire bandwidth reservation information of the reference object for the second time period;
[0027] The scheduling module is used to update the first bandwidth spare information according to the bandwidth reservation information to obtain the updated bandwidth spare information; and schedule the first bandwidth of the reference object in the second time period according to the updated bandwidth spare information to obtain the second bandwidth of the reference object in the second time period.
[0028] In a possible implementation, the first bandwidth of the reference object in the second time period is a fixed bandwidth; the scheduling module is used to determine the third bandwidth according to the first bandwidth spare information; and the third bandwidth is added to the fixed bandwidth to obtain the second bandwidth of the reference object in the second time period.
[0029] In a possible implementation, the first bandwidth of the reference object in the second time period is a non-fixed bandwidth; the scheduling module is used to determine the fourth bandwidth according to the first bandwidth idle information; and the non-fixed bandwidth is replaced with the fourth bandwidth to obtain the second bandwidth of the reference object in the second time period.
[0030] In a possible implementation, the first bandwidth spare information is information corresponding to the first service, the first bandwidth of the reference object in the second time period includes the bandwidth corresponding to the first service and the bandwidth corresponding to the second service, and the first service and the second service are different services of the reference object; a scheduling module is used to determine the fifth bandwidth according to the first bandwidth spare information; deduct the fifth bandwidth from the bandwidth corresponding to the first service to obtain the first sub-bandwidth of the reference object in the second time period, and the first sub-bandwidth is used to transmit the message of the first service in the second time period; add the fifth bandwidth to the bandwidth corresponding to the second service to obtain the second sub-bandwidth of the reference object in the second time period, and the second sub-bandwidth is used to transmit the message of the second service in the second time period; wherein the second bandwidth of the reference object in the second time period includes the first sub-bandwidth and the second sub-bandwidth.
[0031] In a possible implementation, the acquisition module is also used to obtain fourth bandwidth usage information of the reference object in a first sub-period in the second time period; the second bandwidth is updated according to the fourth bandwidth usage information to obtain an updated bandwidth, and the updated bandwidth is used to transmit the message of the reference object in a second sub-period in the second time period, and the second sub-period is later than the first sub-period.
[0032] In a third aspect, a device for scheduling bandwidth is provided, the device comprising a memory and a processor; at least one computer instruction is stored in the memory, and the at least one computer instruction is loaded and executed by the processor, so that the device for scheduling bandwidth implements the method for scheduling bandwidth provided by the first aspect or any possible implementation method of the first aspect.
[0033] Optionally, there are one or more processors and one or more memories.
[0034] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
[0035] In a fourth aspect, a computer-readable storage medium is provided, in which at least one computer instruction is stored, and the at least one computer instruction is loaded and executed by a processor to enable a computer to implement the method for scheduling bandwidth provided by the first aspect or any possible implementation of the first aspect.
[0036] In a fifth aspect, a computer program or a computer program product is provided, which includes computer instructions, and the computer instructions are executed by a processor to enable a computer to implement the method for scheduling bandwidth provided by the first aspect or any possible implementation of the first aspect.
[0037] In a sixth aspect, a chip is provided, comprising a processor, for calling and executing instructions stored in a memory, so that a computer equipped with the chip executes the method for scheduling bandwidth provided by the first aspect or any possible implementation of the first aspect.
[0038] In the seventh aspect, another chip is provided, comprising: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, the processor is used to execute the code in the memory, and when the code is executed, a computer equipped with the chip executes the method for scheduling bandwidth provided by the first aspect or any possible implementation of the first aspect.
[0039] It should be understood that the technical effects achieved by the technical solutions provided by the second to seventh aspects of the present application and the corresponding possible implementation methods can be referred to the above description of the technical effects achieved by the technical solutions provided by the first aspect and the corresponding possible implementation methods, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0040] Figure 1 A schematic diagram of an implementation environment provided for an embodiment of the present application;
[0041] Figure 2 A schematic diagram of a module provided in an embodiment of the present application;
[0042] Figure 3 A schematic diagram of another implementation environment provided for an embodiment of the present application;
[0043] Figure 4 A schematic diagram of another implementation environment provided for an embodiment of the present application;
[0044] Figure 5 A flowchart of a method for scheduling bandwidth provided in an embodiment of the present application;
[0045] Figure 6 A schematic diagram of an idle bandwidth provided in an embodiment of the present application;
[0046] Figure 7 A schematic diagram of another idle bandwidth provided in an embodiment of the present application;
[0047] Figure 8 A schematic diagram of bandwidth usage provided in an embodiment of the present application;
[0048] Fig. 9 A schematic diagram of bandwidth scheduling provided in an embodiment of the present application;
[0049] Fig.10 A schematic diagram of another bandwidth scheduling provided in an embodiment of the present application;
[0050] Fig.11 A schematic diagram of another bandwidth usage provided in an embodiment of the present application;
[0051] Fig.12 A schematic diagram of another bandwidth scheduling provided in an embodiment of the present application;
[0052] Fig.13 A schematic diagram of the structure of a bandwidth scheduling device provided in an embodiment of the present application;
[0053] Fig.14 A schematic diagram of the structure of a bandwidth scheduling device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0054] The terms used in the implementation section of this application are only used to explain the specific embodiments of this application and are not intended to limit this application.
[0055] The present application embodiment provides an implementation environment, such as Figure 1 As shown, the implementation environment includes a bandwidth scheduling device 101 and a reference object 102. The reference object 102 is an object that needs to use bandwidth, and the bandwidth scheduling device 101 is used to schedule the bandwidth required by the reference object 102 through the bandwidth scheduling method provided in the embodiment of the present application.
[0056] In some embodiments, the reference object 102 includes a cloud data center in a communication system for providing cloud services, and the communication system also includes a bandwidth scheduling device 101. In other embodiments, the reference object 102 includes a tenant who accesses the communication system where the bandwidth scheduling device 101 is located to use the cloud service. The embodiments of the present application do not limit the cloud service, and can be set according to actual needs.
[0057] Exemplarily, the bandwidth scheduling device 101 includes multiple modules, and the bandwidth scheduling device 101 implements bandwidth scheduling through the multiple modules. Figure 2 As shown, multiple modules include but are not limited to: sampling module, storage module, prediction module, bandwidth placement module, dynamic adjustment module and bandwidth validation module. Figure 2 The functions of each module shown are explained.
[0058] The sampling module is used to sample the message flow of the reference object to obtain the bandwidth used by the reference object. Exemplarily, the sampling module can perform sampling at a certain frequency, such as sampling once every 1 minute to obtain a bandwidth. The sampling module can also aggregate the bandwidth obtained by sampling to obtain an aggregated bandwidth. The embodiment of the present application does not limit the sampling frequency of the sampling module.
[0059] The storage module is used to store the bandwidth sampled by the sampling module and the aggregated bandwidth obtained by aggregation in a certain storage method. Exemplarily, the storage method includes but is not limited to: storing in a local file mode, storing in an object storage mode, and storing in a database (such as a cloud database) mode, etc. The storage method can be flexibly selected according to the application scenario.
[0060] The prediction module is used to predict the bandwidth sampled by the sampling module to obtain the bandwidth that the reference object may use in the subsequent time period and the total bandwidth that the reference object may be allowed to use. Exemplarily, the prediction module may include a bandwidth usage value prediction module and a bandwidth threshold prediction module. The bandwidth usage value prediction module is used to predict the bandwidth sampled by the sampling module to obtain the bandwidth that the reference object may use in the subsequent time period. The bandwidth threshold prediction module is used to predict the bandwidth sampled by the sampling module to obtain the total bandwidth that the reference object may be allowed to use in the subsequent time period.
[0061] In some implementations, the prediction module obtains the bandwidth sampled by the sampling module from the sampling module ( Figure 2 In some other implementations, the prediction module obtains the bandwidth stored in the storage module from the storage module to make a prediction.
[0062] The bandwidth delivery module is used to determine the bandwidth that may be spare in the subsequent time period according to the bandwidth predicted by the prediction module, and determine the bandwidth that can be delivered to the reference object in the subsequent time period according to the possible spare bandwidth. Of course, the bandwidth delivery module can also determine the bandwidth that may be spare in the subsequent time period by other means, such as determining the spare bandwidth according to the bandwidth sampled by the sampling module, and determining the bandwidth that may be spare in the subsequent time period according to the spare bandwidth, which is not limited here. In an exemplary embodiment, bandwidth delivery can be achieved in the form of bandwidth packages.
[0063] The dynamic adjustment module is used to dynamically adjust the effectiveness of the bandwidth delivered to the reference object to avoid the bandwidth delivered to the reference object exceeding the possible spare bandwidth.
[0064] The bandwidth validation module is used to add bandwidth that can be delivered to the reference object based on the existing bandwidth of the reference object, so that the reference object can use the delivered bandwidth additionally on the basis of the existing bandwidth to improve bandwidth utilization.
[0065] Exemplarily, the multiple modules included in the above bandwidth scheduling device can be integrated into the same computer device. Alternatively, the multiple modules included in the above bandwidth scheduling device can also be distributed in different computer devices. For example, the multiple modules are distributed in at least two computer devices, and each computer device includes at least one module. The embodiment of the present application does not limit the distribution method of the multiple modules.
[0066] The bandwidth scheduling device and multiple modules are described below by way of examples using two different scenarios.
[0067] Scenario 1: bandwidth scheduling scenario between an Internet service provider (ISP, also known as an operator) and a cloud data center (also known as a cloud vendor or cloud service provider).
[0068] In scenario 1, Figure 3 As shown, the reference object that needs to use bandwidth is a cloud data center for providing cloud services in a communication system, for example, each virtual machine included in the cloud data center, namely virtual machine 1 to virtual machine N (N is a positive integer not less than 2). Each virtual machine transmits a message flow with the ISP device by using bandwidth, and the bandwidth used is the bandwidth consumed by transmitting the message flow. Exemplarily, the message flow includes an outgoing message flow or an incoming message flow, the outgoing message flow is a message flow sent by the virtual machine to the ISP device, and the incoming message flow is a message flow sent by the ISP device to the virtual machine.
[0069] The sampling module is located in the Internet access point (POP). The message flow can be transmitted between the POP and the ISP equipment through the border gateway protocol (BGP). BGP is the main routing protocol for communication in the wide area network. For example, the routing between different provinces and countries can rely on BGP. The main function of BGP is to exchange network reachability information between different BGP systems, construct an interconnected routing topology map, and thus clear the routing loop. The storage module is located in the database, the prediction module and the bandwidth delivery module are located in the bandwidth analysis device, and the dynamic adjustment module and the bandwidth effectiveness module are located in the bandwidth control device.
[0070] Based on this, the POP samples and aggregates the outgoing message flow (or incoming message flow), and after obtaining the bandwidth used by the virtual machine, the database stores the bandwidth used by the virtual machine. After the bandwidth analysis device obtains the bandwidth used by the virtual machine from the database, it predicts the possible idle bandwidth in the subsequent time period, determines the bandwidth that can be delivered to the virtual machine based on the possible idle bandwidth, and obtains the corresponding relationship between the object identifier and the bandwidth, where the object identifier is the identifier of the reference object corresponding to the virtual machine, and the bandwidth is the bandwidth delivered to the virtual machine. After that, the corresponding relationship is sent to the bandwidth control device, thereby realizing the delivery of bandwidth. Exemplarily, the bandwidth control device can deliver bandwidth when the virtual machine applies to use the idle bandwidth. Therefore, when the virtual machine needs to transmit a message, the message carries the object identifier, and the bandwidth control device can query the corresponding relationship based on the object identifier carried by the message, obtain the bandwidth corresponding to the object identifier, and then forward the message to be transmitted according to the obtained bandwidth, such as limiting the transmission of the message to be transmitted according to the obtained bandwidth.
[0071] For example, see Figure 3 In the bandwidth pool shown, the bandwidth analysis device predicts the possible idle bandwidth in the subsequent time period, which is equivalent to adding the possible idle bandwidth to the bandwidth pool. The virtual machine applies for the use of idle bandwidth, which is equivalent to applying for the consumption of bandwidth in the bandwidth pool. The bandwidth analysis device implements the bandwidth delivery, which is equivalent to deducting the consumed bandwidth from the bandwidth pool.
[0072] Scenario 2: Bandwidth scheduling scenario between cloud data centers and tenants.
[0073] In scenario 2, if Figure 4As shown, the reference object that needs to use bandwidth is a tenant who accesses the communication system to use cloud services, such as a virtual machine used by a tenant, that is, virtual machine 1 to virtual machine N (N is a positive integer not less than 2). Each virtual machine can be configured with an elastic Internet protocol (elastic internet protocol, EIP, also known as a public IP) address. The EIP address can be flexibly bound and unbound with resources such as elastic cloud servers, bare metal servers, virtual Internet protocols (internet protocol, IP), elastic load balancing, network address translation (network address translation, NAT) gateways, etc., providing the ability to access the public network and the ability to be accessed by the public network. The EIP address has a variety of flexible billing methods that can meet the demands of different business scenarios. Among them, each virtual machine transmits a message flow with the Internet by using bandwidth, and the bandwidth used is also the bandwidth consumed by the transmission message flow. Exemplarily, the message flow includes an outgoing message flow or an incoming message flow, the outgoing message flow is a message flow sent by the virtual machine to the Internet, and the incoming message flow is a message flow sent by the Internet to the virtual machine.
[0074] The sampling module is located in the gateway device, the storage module is located in the database, the prediction module and the bandwidth delivery module are located in the bandwidth analysis device, and the dynamic adjustment module and the bandwidth validation module are located in the bandwidth control device.
[0075] Based on this, the gateway device samples and aggregates the outgoing message flow (or incoming message flow), obtains the bandwidth used by the virtual machine, and then stores the bandwidth used by the virtual machine in the database. After the bandwidth analysis device obtains the bandwidth used by the virtual machine from the database, it predicts the possible idle bandwidth in the subsequent time period, determines the bandwidth that can be put into the virtual machine according to the possible idle bandwidth, and obtains the corresponding relationship between the object identifier, the service identifier and the bandwidth, wherein the object identifier is the identifier of the reference object corresponding to the virtual machine, the service identifier is the identifier of the service of the reference object, and the bandwidth is the bandwidth put into the virtual machine. After that, the corresponding relationship is sent to the bandwidth control device, thereby realizing the bandwidth placement. In an exemplary embodiment, the bandwidth control device can place bandwidth for a certain service when the virtual machine applies for the use of idle bandwidth for the service. Thus, when the virtual machine needs to transmit a message, the message carries the object identifier and the service identifier, and the bandwidth control device can query the corresponding relationship according to the object identifier and the service identifier carried by the message, obtain the bandwidth corresponding to the object identifier and the service identifier, and then forward the message of the service that needs to be transmitted according to the obtained bandwidth, such as limiting the transmission of the message of the service that needs to be transmitted according to the obtained bandwidth.
[0076] For example, see Figure 4In the bandwidth pool shown, the bandwidth analysis device predicts the possible idle bandwidth in the subsequent time period, which is equivalent to adding the possible idle bandwidth to the bandwidth pool. When a virtual machine applies for idle bandwidth for a certain service, it is equivalent to applying for bandwidth in the bandwidth pool for the service. The bandwidth analysis device implements bandwidth delivery, which is equivalent to deducting the bandwidth consumed by the service from the bandwidth pool.
[0077] It should be understood that Figure 3 and Figure 4 For the sake of simplicity, only the connection relationship between the virtual machine N and the bandwidth analysis device and the bandwidth pool is shown. In fact, other virtual machines except the virtual machine N can also be connected to the bandwidth analysis device and the bandwidth pool respectively. In addition, the above description of each module (function and the device where it is located) is only an example and is not used to limit each module. The following method embodiment will continue to describe each module.
[0078] The embodiment of the present application provides a method for scheduling bandwidth, which can be applied to the above-mentioned bandwidth scheduling device. Exemplarily, the steps included in the method can be executed by multiple modules included in the bandwidth scheduling device. Figure 5 The method includes the following steps 501 to 504.
[0079] Step 501: Acquire first bandwidth usage information of a reference object in a first time period.
[0080] The first time period includes multiple moments, and the first bandwidth usage information of the reference object in the first time period includes the bandwidth used by the reference object at each moment. Exemplarily, the bandwidth used by the reference object at each moment is the actual bandwidth obtained by detection (also called sampling), rather than the bandwidth obtained by prediction. Thus, the accuracy of the first bandwidth usage information of the reference object in the first time period can be guaranteed.
[0081] Step 502: Aggregate the first bandwidth usage information to obtain second bandwidth usage information, where the information density of the second bandwidth usage information is less than the information density of the first bandwidth usage information.
[0082] The multiple moments included in the first time period may constitute at least one sub-time period, and the second bandwidth usage information of the reference object in the first time period includes the bandwidth used by the reference object in each sub-time period. Since the second bandwidth usage information is obtained by aggregating the first bandwidth usage information, compared with the first bandwidth usage information, the second bandwidth usage information has a smaller information density and a smaller amount of information, so that bandwidth scheduling according to the second bandwidth usage information is more efficient and requires less overhead.
[0083] Exemplarily, bandwidth detection is performed at a certain detection frequency in a first time period, thereby obtaining first bandwidth usage information with a relatively high information density, and the first bandwidth usage information includes the bandwidth used by the reference object at multiple times. Afterwards, the bandwidth used by the reference object at different times is aggregated to obtain second bandwidth usage information with a relatively low information density. The aggregation method includes, but is not limited to, averaging, weighted summing, etc., which are not limited here.
[0084] For example, in the first time period of 10 minutes, bandwidth detection is performed at a detection frequency of once every minute, and 10 bandwidths are obtained in sequence. The 10 bandwidths are the first bandwidth usage information, that is, the information density of the first bandwidth usage information is 1 bandwidth per minute. Afterwards, since the 10 bandwidths are obtained in sequence, the first 5 bandwidths of the 10 bandwidths are aggregated once, and the last 5 bandwidths of the 10 bandwidths are aggregated once, and the aggregation is performed twice in total to obtain the second bandwidth usage information. The second bandwidth usage information includes 2 bandwidths, that is, the information density of the second bandwidth usage information is 1 bandwidth per 5 minutes, which is less than the information density of the first bandwidth usage information.
[0085] In the embodiment of the present application, the above steps 501 and 502 can be Figure 2 In addition, the first bandwidth usage information and the second bandwidth usage information obtained can be obtained by Figure 2 The storage module shown is used for storage.
[0086] Step 503: predict first bandwidth spare information of the reference object in a second time period according to the second bandwidth usage information, where the second time period is later than the first time period.
[0087] The second time period includes at least one sub-time period, and the first bandwidth spare information of the reference object in the second time period includes the bandwidth that the reference object can use additionally in each sub-time period. The bandwidth that the reference object can use additionally in each sub-time period includes: the remaining bandwidth after deducting the bandwidth used by the reference object in the sub-time period from the total bandwidth allowed to be used by the reference object in the sub-time period. The second time period is later than the first time period, for example, the first time period is a historical time period that has passed, and the second time period is a future time period that has not passed.
[0088] In the embodiment of the present application, step 503 can be performed by Figure 2 The prediction module and bandwidth placement module shown are executed.
[0089] In an exemplary embodiment, predicting first bandwidth spare information of a reference object in a second time period according to second bandwidth usage information includes the following steps 5031 and 5032 .
[0090] Step 5031, obtaining the bandwidth usage change rate of the second time period relative to the first time period.
[0091] There are corresponding sub-periods in each sub-period included in the second period and each sub-period included in the first period. Exemplarily, the corresponding sub-periods are sub-periods with the same time information, and the time information of a sub-period is used to indicate the time order of the sub-period in the period to which it belongs. For example, taking the first period as June, the second period as July, the first period and the second period belonging to the same year, and the duration of the sub-period as 5 minutes as an example, then: the first 5 minutes of June (i.e. 00:00 to 00:05 on June 1) and the first 5 minutes of July (i.e. 00:00 to 00:05 on July 1) are corresponding sub-periods, the last 5 minutes of June (i.e. 23:55 to 00:00 on June 30) and 23:55 to 00:00 on July 30 are corresponding sub-periods, and so on. In addition, the corresponding sub-periods can also be set according to experience or actual needs. For instance, still taking the above situation as an example, the last 5 minutes of June and the last 5 minutes of July (ie, 23:55 to 00:00 on July 31) can be set as corresponding sub-periods, and so on.
[0092] Based on this, the bandwidth usage change rate is used to indicate: in the corresponding sub-period, the bandwidth used by the reference object in the sub-period belonging to the second period, relative to the change in the bandwidth used by the reference object in the sub-period belonging to the first period. Exemplarily, the bandwidth usage change rate can be 1, which is used to indicate that the change is unchanged, that is, the bandwidth used is the same. Alternatively, the bandwidth usage change rate can be greater than 1, which is used to indicate that the change is an increase, that is, the bandwidth used is increased. Alternatively, the bandwidth usage change rate can be less than 1, which is used to indicate that the change is a decrease, that is, the bandwidth used is reduced.
[0093] It should be understood that each pair of corresponding sub-periods may correspond to a bandwidth usage change rate, and the bandwidth usage change rates corresponding to different corresponding sub-periods may be the same or different, and the embodiments of the present application do not limit this. For example, if the corresponding sub-period belongs to 8:00 to 18:00 (daytime) every day, the corresponding bandwidth usage change rate is greater than 1. For another example, if the corresponding sub-period belongs to 18:00 to 8:00 (evening) every day, the corresponding bandwidth usage change rate is equal to 1.
[0094] In some embodiments, the bandwidth usage change rate can be set based on experience or actual needs. Alternatively, in other embodiments, obtaining the bandwidth usage change rate of the second time period relative to the first time period includes: obtaining the bandwidth usage change rate based on the second bandwidth usage information. Wherein, since the second bandwidth usage information includes the bandwidth used by the reference object in each sub-time period (belonging to the first time period), the bandwidth usage change rate can be determined based on the bandwidth used by the reference object in different sub-time periods in the first time period. For example, the first time period includes June, and it is determined based on the second bandwidth usage information: the first average value of the bandwidth used by the reference object in each sub-time period belonging to the first half of June is 10 gigabits per second (Gbps or Gbit / s), and the second average value of the bandwidth used by the reference object in each sub-time period belonging to the second half of June is 11 Gbit / s. Therefore, it can be determined that the change is an increase, and the bandwidth usage change rate is determined based on the ratio of the second average value to the first average value, that is, 1.1. For example, 1.1 is directly determined as the bandwidth usage change rate, or 1.1 is corrected to obtain the bandwidth usage change rate, and the correction process is used to improve the accuracy of the bandwidth usage change rate. Of course, the method of obtaining the bandwidth usage change rate in the embodiment of the present application is not limited to the examples in the above two implementation modes.
[0095] Step 5032: predict first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information.
[0096] After obtaining the bandwidth usage change rate, the first bandwidth spare information can be predicted based on the bandwidth usage change rate and the second bandwidth usage information, so as to facilitate subsequent bandwidth scheduling based on the first bandwidth spare information. In an exemplary embodiment, the method of predicting the first bandwidth spare information includes but is not limited to the following prediction method 1 and prediction method 2.
[0097] Prediction method 1, predicting the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information, includes but is not limited to the following steps 11 to 13.
[0098] Step 11: predict third bandwidth usage information of the reference object in the second time period according to the bandwidth usage change rate and the second bandwidth usage information.
[0099] As mentioned above, the bandwidth usage change rate is used to indicate: in the corresponding sub-period, the bandwidth used by the reference object in the sub-period belonging to the second period changes relative to the bandwidth used by the reference object in the sub-period belonging to the first period. Therefore, for the bandwidth used by the reference object in the sub-period belonging to the first period in the second bandwidth usage information, the product of the bandwidth and the bandwidth usage change rate corresponding to the sub-period is used as the bandwidth used by the reference object in the sub-period belonging to the second period. For example, the first 5 minutes of June and the first 5 minutes of July are corresponding sub-periods, the bandwidth used by the reference object in the first 5 minutes of June is 20Gbit / s, and the bandwidth usage change rate corresponding to the pair of corresponding sub-periods is 1.1, then it is determined that the bandwidth used by the reference object in the first 5 minutes of July is 22Gbit / s.
[0100] In an embodiment of the present application, prediction is completed in this manner for each pair of corresponding sub-time periods, thereby achieving prediction of the third bandwidth usage information of the reference object in the second time period based on the bandwidth usage change rate and the second bandwidth usage information, and the third bandwidth usage information includes the bandwidth used by the reference object in each sub-time period belonging to the second time period.
[0101] Step 12: Filter the third bandwidth usage information according to the first reference ratio, and determine the first bandwidth threshold information of the reference object in the second time period according to the filtered third bandwidth usage information.
[0102] The bandwidth used by the reference object included in the third bandwidth usage information in each sub-period belonging to the second time period is sorted according to the order of sequential bandwidth changes to obtain a reference sequence. Exemplarily, the sequential bandwidth change may be a change in bandwidth from large to small (i.e., sorting in descending order) or a change in bandwidth from small to large (i.e., sorting in ascending order).
[0103] In the reference sequence, screening is performed according to the first reference ratio to obtain the third bandwidth usage information obtained by screening. The first reference ratio is determined based on experience or actual needs, and is not limited here. In some embodiments, the first reference ratio can be expressed as a percentage. For example, when the bandwidth changes sequentially in descending order, the percentage is the last 90%, the last 95%, or the last 100%, etc. For another example, when the bandwidth changes sequentially in ascending order, the percentage is the first 90%, the first 95%, or the first 100%, etc. Alternatively, the first reference ratio can be expressed as a quantity, a ratio (embodied as a score), etc., which is not limited here. It should be understood that the first bandwidth threshold information can be the bandwidth that needs to be billed, and when the percentage is the last 95% or the first 95%, the billing method is also called the 95 billing method.
[0104] It should be understood that, since the third bandwidth usage information includes the bandwidth used by the reference object in each sub-period belonging to the second period, the third bandwidth usage information obtained by screening also includes bandwidth. Therefore, among the various bandwidths included in the third bandwidth usage information obtained by screening, the largest bandwidth is determined as the first bandwidth threshold information of the reference object in the second period, or the first bandwidth threshold information of the reference object in the second period is obtained after the largest bandwidth is corrected, and the correction process is used to improve the accuracy of the first bandwidth threshold information.
[0105] For example, the second period includes 30 days, and the duration of the sub-period included in the second period is 5 minutes, then each hour includes 12 sub-periods, and the second period includes a total of 8640 sub-periods, and the third bandwidth usage information includes 8640 bandwidths (one-to-one corresponding to the 8640 sub-periods). The 8640 bandwidths are sorted in descending order to obtain a reference sequence. The 8640 bandwidths in the reference sequence are screened according to the first reference ratio of the last 95%, that is, the first 5% (i.e., the 1st to 432nd) bandwidths in the reference sequence are removed, and the last 95% (i.e., the 433rd to 8640th) bandwidths in the reference sequence are used as the third bandwidth usage information obtained by screening. Then, the largest bandwidth in the screened third bandwidth usage information (i.e., the 433rd bandwidth in the reference sequence) is used as the first bandwidth threshold information.
[0106] Step 13: determine first bandwidth spare information according to a first difference between the third bandwidth usage information and the first bandwidth threshold information.
[0107] As mentioned above, the first bandwidth spare information includes the bandwidth that the reference object can use additionally in each sub-period (belonging to the second time period), and the bandwidth that can be used additionally includes the bandwidth remaining after deducting the used bandwidth from the total bandwidth allowed for use. In an embodiment of the present application, the first bandwidth threshold information represents the total bandwidth allowed for use, and the third bandwidth usage information represents the used bandwidth, so the first bandwidth spare information can be determined based on the first difference between the third bandwidth usage information and the first bandwidth threshold information, that is, the first difference obtained by subtracting the third bandwidth usage information from the first bandwidth threshold information. Exemplarily, the first difference can be used as the first bandwidth spare information, or the first bandwidth spare information can be obtained by correcting the first difference, and the correction processing is used to improve the accuracy of the first bandwidth spare information.
[0108] like Figure 6 As shown, Figure 6 shows the reference object at a moment (i.e. Figure 6 The bandwidth used and the spare bandwidth at time T0 shown in FIG. 1 are shown in FIG. 1 . It can be seen that the spare bandwidth is equal to the bandwidth threshold minus the used bandwidth, and the bandwidth threshold is based on the used bandwidth (i.e. Figure 6The curve shown in Figure 2 is used to determine the Figure 7 As shown, Figure 7 shows the idle bandwidth of the reference object in a period of time (i.e. Figure 7 In addition, Figure 6 and Figure 7 The vertical axis is bandwidth, and the horizontal axis is time. Figure 6 and Figure 7 The upward triangle on the curve shown represents the maximum value of the used bandwidth, and the downward triangle represents the minimum value of the used bandwidth.
[0109] In the embodiment of the present application, step 11 can be performed by Figure 2 The prediction module shown includes a bandwidth usage value prediction module, and step 12 can be performed by Figure 2 The prediction module shown includes a bandwidth threshold prediction module, and step 13 can be performed by Figure 2 The bandwidth placement module shown is executed.
[0110] Prediction method 2, predicting the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information, includes but is not limited to the following steps 21 to 23.
[0111] Step 21: Filter the second bandwidth usage information according to the second reference ratio, and determine the second bandwidth threshold information of the reference object in the first time period according to the filtered second bandwidth usage information.
[0112] The second reference ratio is set according to experience or actual needs, and the second reference ratio can be the same as or different from the first reference ratio, which is not limited in the present embodiment. The implementation of step 21 can refer to the implementation of step 12, which is not described here.
[0113] Step 22: Determine second bandwidth spare information of the reference object within the first time period according to a second difference between the second bandwidth usage information and the second bandwidth threshold information.
[0114] The implementation method of step 22 may refer to the implementation method of step 13 above, which will not be described in detail here.
[0115] Step 23: predict the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth spare information.
[0116] For the spare bandwidth of the reference object in each sub-period belonging to the first time period in the second bandwidth spare information, the product of the bandwidth and the bandwidth usage change rate corresponding to the sub-period is used as the spare bandwidth of the reference object in the sub-period belonging to the second time period, thereby obtaining the first bandwidth spare information. Alternatively, the first bandwidth spare information may be obtained after the product is corrected, and the correction process is used to improve the accuracy of the first bandwidth spare information.
[0117] It can be seen that the above prediction method 1 and prediction method 2 are both prediction methods that take into account the bandwidth usage change rate. In an embodiment of the present application, the first bandwidth idle information can also be predicted without considering the bandwidth usage change rate. For example, for the above prediction method 1, step 11 is replaced by: without considering the bandwidth usage change rate, predicting the third bandwidth usage information of the reference object in the second time period based on the second bandwidth usage information. The prediction method may include: using the second bandwidth usage information as the third bandwidth usage information, and steps 12 and 13 are the same as above. For another example, for the above prediction method 2, steps 21 and 22 are the same as above, and step 23 is replaced by: without considering the bandwidth usage change rate, predicting the first bandwidth idle information based on the second bandwidth idle information. The prediction method may include: using the second bandwidth idle information as the first bandwidth idle information.
[0118] Step 504: Schedule the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, and the second bandwidth is used to transmit the message of the reference object in the second time period.
[0119] As mentioned above, the first bandwidth spare information includes the bandwidth that the reference object can use additionally in each sub-period (belonging to the second time period). The first bandwidth of the reference object in the second time period includes: the bandwidth that the reference object could originally use in the second time period if the bandwidth scheduling is not performed according to the method provided in the embodiment of the present application. Since the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information, the second bandwidth of the reference object in the second time period is obtained, so that the reference object can use the bandwidth that can be used additionally on the basis of the bandwidth that can be used originally, so as to transmit the reference object's message in the second time period through the second bandwidth, thereby improving the bandwidth utilization.
[0120] In the embodiment of the present application, step 504 can be performed by Figure 2 The bandwidth delivery module and bandwidth validation module shown are executed.
[0121] Next, a method of scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period is described, including but not limited to the following scheduling methods 1 to 3.
[0122] Scheduling method 1, the first bandwidth of the reference object in the second time period is a fixed bandwidth, and the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth idle information to obtain the second bandwidth of the reference object in the second time period, including: determining the third bandwidth according to the first bandwidth idle information, adding the third bandwidth to the fixed bandwidth, and obtaining the second bandwidth of the reference object in the second time period.
[0123] Among them, since the first bandwidth spare information includes the bandwidth that can be additionally used by the reference object in each sub-period included in the second time period, determining the third bandwidth according to the first bandwidth spare information may include: selecting the smallest bandwidth among the bandwidths included in the third bandwidth spare information, and determining the smallest bandwidth as the third bandwidth, and the third bandwidth is the bandwidth that can be delivered to the reference object. In this way, it can be ensured that the third bandwidth in each sub-period included in the second time period is less than or equal to the bandwidth that can be additionally used in the sub-period. For example, see Figure 7 , Figure 7 The rectangle surrounded by the thick line shows an exemplary third bandwidth.
[0124] When the first bandwidth is a fixed bandwidth, a third bandwidth is added to the fixed bandwidth to obtain a second bandwidth of the reference object in the second time period. That is, the sum of the fixed bandwidth and the third bandwidth is taken as the second bandwidth. It should be understood that fixed bandwidth is an exemplary bandwidth usage method. When the first bandwidth is a fixed bandwidth, billing is performed according to the fixed bandwidth. If the bandwidth required by the reference object exceeds the fixed bandwidth, the bandwidth required by the reference object is limited so that the bandwidth actually used by the reference object is less than or equal to the fixed bandwidth. By adding a third bandwidth on the basis of the fixed bandwidth, the embodiment of the present application enables the bandwidth used by the reference object to break through the limitation of the fixed bandwidth, thereby improving the flexibility of bandwidth usage and bandwidth utilization.
[0125] Exemplarily, the reference object has an object identifier, and the object identifier is used to uniquely indicate the reference object. The embodiment of the present application can store the correspondence between the object identifier and the bandwidth. Thus, after receiving the message of the reference object, the message can be parsed to obtain the object identifier, and the corresponding relationship can be queried according to the object identifier to obtain the bandwidth corresponding to the object identifier, and the message of the reference object can be transmitted according to the bandwidth corresponding to the object identifier. It should be understood that before bandwidth scheduling is performed, the corresponding relationship is the relationship between the object identifier and the first bandwidth (i.e., the fixed bandwidth). After bandwidth scheduling is performed, the corresponding relationship is the relationship between the object identifier and the second bandwidth (i.e., the sum of the fixed bandwidth and the third bandwidth).
[0126] In an exemplary embodiment, adding a third bandwidth to a fixed bandwidth to obtain a second bandwidth of a reference object in a second time period includes: when it is determined that the reference object has permission to use the third bandwidth, adding the third bandwidth to the fixed bandwidth to obtain the second bandwidth of the reference object in the second time period. For example, after determining the third bandwidth, the embodiment of the present application sends indication information to the reference object, where the indication information is used to indicate that there is a third bandwidth that can be used additionally. Then, if application information for applying to use the third bandwidth is received from the reference object, then when the reference object meets the conditions, such as when the reference object can pay for the third bandwidth, it is determined that the reference object has permission to use the third bandwidth.
[0127] Scheduling method two, the first bandwidth of the reference object in the second time period is a non-fixed bandwidth, and the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth idle information to obtain the second bandwidth of the reference object in the second time period, including determining the fourth bandwidth according to the first bandwidth idle information, replacing the non-fixed bandwidth with the fourth bandwidth, and obtaining the second bandwidth of the reference object in the second time period.
[0128] The method for determining the fourth bandwidth according to the first bandwidth idle information can refer to the method for determining the third bandwidth according to the first bandwidth idle information in the above-mentioned scheduling method 1, and will not be repeated here. When the reference object corresponds to a non-fixed bandwidth in the second time period, the non-fixed bandwidth is replaced with the bandwidth corresponding to the reference object in the second time period. It should be understood that non-fixed bandwidth is an exemplary bandwidth usage method. In this bandwidth usage method, there is no restriction on fixed bandwidth, and the bandwidth required by the reference object is the bandwidth actually used by the reference object. Accordingly, billing is no longer performed according to the fixed bandwidth, but according to the bandwidth actually used by the reference object. The embodiment of the present application replaces the non-fixed bandwidth with the fourth bandwidth, so that the reference object can directly use the fourth bandwidth without being charged according to the bandwidth actually used by the reference object, thereby reducing the bandwidth usage cost of the reference object.
[0129] Exemplarily, the embodiment of the present application can store the correspondence between the object identifier and the bandwidth. The role of the object identifier and the usage of the correspondence are described in the above scheduling method 1, which will not be repeated here. Before bandwidth scheduling is performed, the correspondence is the relationship between the object identifier and the reference identifier, and the reference identifier is used to indicate a non-fixed bandwidth. After bandwidth scheduling is performed, the correspondence is the relationship between the fixed bandwidth and the fourth bandwidth.
[0130] Next, combine Figure 3 , Figures 8 to 10 The above scheduling method 1 and scheduling method 2 are explained.
[0131] like Figure 8 As shown in Figure 2, bandwidth usage in cloud data centers has peak and trough periods. Figure 8 The vertical axis is bandwidth, and the horizontal axis is time. Figure 8 The upward triangle on the curve shown represents the maximum value of the bandwidth used, and the downward triangle represents the minimum value of the bandwidth used. For example, the cloud data center uses bandwidth to transmit message flows to provide access services. For example, the peak period of bandwidth use is concentrated from 18:00 to 22:00 every day, and the trough period of bandwidth use is concentrated from 00:00 to 8:00 every day. The bandwidth used during the peak period may be 3-5 times the bandwidth used during the trough period. According to the 95 billing method, the cloud data center needs to pay the operator for bandwidth according to 95% of the maximum value of the bandwidth used. The bandwidth utilization rate is not high, resulting in a waste of bandwidth resources.
[0132] For this, see Figure 3 In the embodiment of the present application, the outgoing message flow of the cloud data center is sampled through POP to obtain the used bandwidth, and the idle bandwidth is identified through prediction, and the idle bandwidth is delivered to the cloud data center in the form of bandwidth packages, thereby improving the bandwidth utilization while ensuring that the maximum value of the used bandwidth does not increase.
[0133] For example, for scheduling method 1, see Fig. 9 , when the reference object corresponds to a fixed bandwidth (2G bandwidth package A), if the reference object obtains 3G bandwidth package B (i.e., the third bandwidth) effective from 00:00 to 5:00 (i.e., the second time period), then 2G bandwidth package A and 3G bandwidth package B are superimposed from 00:00 to 5:00, so that the reference object can use the 5G bandwidth package from 00:00 to 5:00, that is, the message flow is transmitted according to the bandwidth of 5Gbit / s. Of course, in other time periods outside 00:00 to 5:00, such as 8:00 to 18:00, if the reference object does not obtain other bandwidth packages outside the fixed bandwidth, the reference object still uses 2G bandwidth package A.
[0134] For example, for scheduling method 2, see Fig.10 , when the reference object corresponds to a non-fixed bandwidth (on-demand billing bandwidth package A), if the reference object obtains 3G bandwidth package B (i.e., the fourth bandwidth) effective from 00:00 to 5:00 (i.e., the second time period), the on-demand billing bandwidth package is replaced with 3G bandwidth package B from 00:00 to 5:00, so that the reference object can use the 3G bandwidth package from 00:00 to 5:00, that is, the message flow is transmitted according to the bandwidth of 3Gbit / s. Of course, in other time periods other than 00:00 to 5:00, such as 8:00 to 18:00, if the reference object does not obtain other bandwidth packages other than the non-fixed bandwidth, the reference object still uses on-demand billing bandwidth package A.
[0135] Scheduling method three, the first bandwidth spare information is information corresponding to the first service, the first bandwidth of the reference object in the second time period includes the bandwidth corresponding to the first service and the bandwidth corresponding to the second service, the first service and the second service are different services of the reference object, and the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, including: deducting the fifth bandwidth from the bandwidth corresponding to the first service to obtain the first sub-bandwidth of the reference object in the second time period, the first sub-bandwidth is used to transmit the message of the first service in the second time period; adding the fifth bandwidth to the bandwidth corresponding to the second service to obtain the second sub-bandwidth of the reference object in the second time period, the second sub-bandwidth is used to transmit the message of the second service in the second time period; wherein, the second bandwidth of the reference object in the second time period includes the first sub-bandwidth and the second sub-bandwidth.
[0136] In the third scheduling method, the first bandwidth idle information is information corresponding to the first service. That is to say, in the process of predicting the first bandwidth idle information, the information used is information corresponding to the first service. For example, the first bandwidth usage information and the second bandwidth usage information used include the bandwidth used by the reference object for the first service in the first time period. The fifth bandwidth determined according to the first bandwidth idle information is used as the bandwidth corresponding to the second service (different from the first service) in the second time period to transmit the message of the second service in the second time period. That is, the idle bandwidth corresponding to one service is applied to another service, which improves the bandwidth utilization rate and helps to reduce the bandwidth usage cost of the reference object. Among them, the method of determining the fifth bandwidth according to the first bandwidth idle information can refer to the method of determining the third bandwidth according to the first bandwidth idle information in the above-mentioned scheduling method one, which will not be repeated here.
[0137] Exemplarily, the embodiment of the present application can store the correspondence between the object identifier, the service identifier and the bandwidth. The role of the object identifier is described in the above scheduling method 1, which will not be repeated here. The service identifier is used to uniquely indicate the service. Thus, after receiving the message of the reference object, the message can be parsed to obtain the object identifier and the service identifier, and the corresponding relationship can be queried according to the object identifier and the service identifier to obtain the bandwidth corresponding to the object identifier and the service identifier, and the message of the reference object is transmitted according to the bandwidth corresponding to the object identifier and the service identifier. Among them, in the correspondence before bandwidth scheduling is performed, the bandwidth corresponding to the object identifier and the first service identifier used to indicate the first service is the bandwidth corresponding to the first service (used to transmit the message of the first service, including the fifth bandwidth), and the bandwidth corresponding to the object identifier and the second service identifier used to indicate the second service is the bandwidth corresponding to the second service (used to transmit the message of the second service, excluding the fifth bandwidth). In the correspondence after bandwidth scheduling, the bandwidth corresponding to the object identifier and the first service identifier is the first sub-bandwidth (used to transmit the message of the first service, excluding the fifth bandwidth), and the bandwidth corresponding to the object identifier and the second service identifier is the second sub-bandwidth (used to transmit the message of the second service, including the fifth bandwidth).
[0138] Next, combine Figure 4 , Fig.11 and Fig.12 The above-mentioned scheduling method three is explained.
[0139] like Fig.11 As shown in Figure 1, different tenants' businesses may have different peak and valley periods for bandwidth usage, and different businesses use different bandwidth packages to ensure isolation between different businesses. Fig.11 The bandwidth usage of the first service is shown. Fig.11 The vertical axis is bandwidth, and the horizontal axis is time. The peak period of bandwidth usage by the first service is during the day, and the low period of bandwidth usage is at night. Fig.11 The upward triangle on the curve shows the maximum bandwidth used by the first service, and the downward triangle shows the minimum bandwidth used by the first service. The peak bandwidth usage of the second service is at night, and the low bandwidth usage is during the day. According to the 95 billing method, the tenant needs to pay the cloud data center for bandwidth at 95% of the maximum bandwidth used by the first service and 95% of the maximum bandwidth used by the second service, respectively. The bandwidth utilization rate is not high, and the bandwidth usage cost is high.
[0140] For this, see Figure 4In the embodiment of the present application, the outbound message flow of the first service of the tenant is sampled by the gateway device to obtain the bandwidth used by the first service, and the idle bandwidth corresponding to the first service is identified by prediction, and the idle bandwidth corresponding to the first service is delivered to the tenant in the form of bandwidth package for use by the second service of the tenant. In this way, without increasing the maximum value of the bandwidth used, the bandwidth utilization rate is improved, the bandwidth usage cost for the tenant is reduced, and the competitiveness of the cloud service provided by the cloud data center is improved.
[0141] For example, for the scheduling method 3, see Fig.12 , if bandwidth scheduling is not performed, the first service needs to use 5G bandwidth package A from 8:00 to 18:00, and the second service needs to use 3G bandwidth package B from 0:00 to 5:00, and the bandwidth usage cost is (5G+3G). If bandwidth scheduling is performed, the first service still uses 5G bandwidth package A from 8:00 to 18:00, and the second service uses 2 megabits per second (Mbps or Mbit / s) bandwidth package B from 8:00 to 18:00. Accordingly, the first service uses 2G bandwidth package A from 0:00 to 5:00 (i.e., the second period), and the second service uses (2M+3G) bandwidth package B from 0:00 to 5:00, which is equivalent to the 3G bandwidth package (i.e., the fifth bandwidth) being updated from being used by the first service to being used by the second service, and the bandwidth usage cost is (5G+2M), thereby reducing the bandwidth usage cost by about 38% without affecting the first and second services of the tenants.
[0142] In an exemplary embodiment, the above-mentioned scheduling method 2 can be used when it is determined that the reference object has the right to use the fourth bandwidth, and the above-mentioned scheduling method 3 can be used when it is determined that the reference object has the right to use the fifth bandwidth. The method for determining that the reference object has the right to use the fourth bandwidth (or the fifth bandwidth) can be referred to the method for determining that the reference object has the right to use the third bandwidth in the above-mentioned scheduling method 1, which will not be repeated here.
[0143] Exemplarily, before scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information and obtaining the second bandwidth of the reference object in the second time period, the method further includes: obtaining the bandwidth reservation information of the reference object for the second time period. The bandwidth reservation information is the bandwidth that the reference object needs to use additionally in the second time period. The bandwidth reservation information can be considered as information that is accidental and difficult to predict. Among them, the bandwidth reservation information can be obtained by the reference object according to business needs (for example, the need to launch a new business) in the first time period. For example, the reference object sends a bandwidth reservation request in the first time period, and the bandwidth reservation request carries the bandwidth reservation information. After receiving and parsing the bandwidth reservation request, the bandwidth reservation information can be obtained.
[0144] Correspondingly, the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth idle information to obtain the second bandwidth of the reference object in the second time period, including: updating the first bandwidth idle information according to the bandwidth reservation information to obtain the updated bandwidth idle information, and scheduling the first bandwidth of the reference object in the second time period according to the updated bandwidth idle information to obtain the second bandwidth of the reference object in the second time period.
[0145] In the embodiment of the present application, since the second bandwidth usage information is the bandwidth used by the reference object in the first time period, the first bandwidth spare information predicted based on the second bandwidth usage information is the bandwidth that the reference object can use additionally in the second time period when the reference object uses the bandwidth normally. The process of predicting the first bandwidth spare information does not involve the situation that the reference object has an accidental need to use additional bandwidth in the second time period. Therefore, if the reference object has an accidental need to use additional bandwidth in the second time period, that is, there is the above-mentioned bandwidth reservation information, then it is necessary to update the first bandwidth spare information based on the bandwidth reservation information to obtain the updated bandwidth spare information. Exemplarily, the difference obtained by subtracting the bandwidth reservation information from the first bandwidth spare information can be determined, and the difference or the difference after correction processing can be used as the updated bandwidth spare information, so as to schedule the corresponding bandwidth of the reference object in the second time period according to the updated bandwidth spare information.
[0146] It should be understood that the method of scheduling the first bandwidth of the reference object in the second time period according to the updated bandwidth spare information to obtain the second bandwidth of the reference object in the second time period can refer to the above scheduling methods 1 to 3. For example, in scheduling method 1, the above-mentioned determination of the third bandwidth according to the first bandwidth spare information is replaced by: determining the third bandwidth according to the updated bandwidth spare information (the third bandwidth is less than or equal to the updated bandwidth spare information). Scheduling methods 2 and 3 are not described here.
[0147] In an exemplary embodiment, after the first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth idle information and the second bandwidth of the reference object in the second time period is obtained, the method provided in the embodiment of the present application also includes: obtaining the fourth bandwidth usage information of the reference object in the first sub-time period in the second time period, updating the second bandwidth according to the fourth bandwidth usage information to obtain the updated bandwidth, and the updated bandwidth is used to transmit the message of the reference object in the second sub-time period in the second time period, and the second sub-time period is later than the first sub-time period.
[0148] According to the above description, the second bandwidth of the reference object in the second time period is obtained by scheduling based on the first bandwidth idle information, and the first bandwidth idle information is obtained by prediction, not by detection. Therefore, there is a situation where the first bandwidth idle information does not match the actual bandwidth idle information in the second time period, resulting in the second bandwidth scheduled based on the first bandwidth idle information being inaccurate. If the scheduled second bandwidth is greater than the actual idle bandwidth, the bandwidth is overused, and if the scheduled second bandwidth is less than the actual idle bandwidth, the bandwidth utilization is not high enough.
[0149] In this regard, an embodiment of the present application can obtain the fourth bandwidth usage information of the reference object in the first sub-period in the second time period by means of detection, where the first sub-period is a historical period that has passed, and the fourth bandwidth usage information is the bandwidth used by the reference object in the first sub-period. Then, the second bandwidth corresponding to the reference object in the second time period is updated according to the fourth bandwidth usage information to obtain an updated bandwidth. The updated bandwidth is used to transmit the message of the reference object in the second sub-period that is later than the first sub-period. Compared with the second bandwidth corresponding to the reference object in the second time period, the updated bandwidth has higher accuracy. This process can be performed by Figure 2 The bandwidth validation module shown is executed.
[0150] For example, the bandwidth effectiveness ratio (including but not limited to percentage, ratio, etc.) is determined according to the fourth bandwidth usage information, and the product of the second bandwidth corresponding to the reference object in the second time period and the bandwidth effectiveness ratio is used as the updated bandwidth. If it is determined according to the fourth bandwidth usage information that the second bandwidth corresponding to the reference object in the second time period is greater than the actual spare bandwidth, the bandwidth effectiveness ratio is determined to be less than zero, so that the updated bandwidth is less than or equal to the actual spare bandwidth, thereby avoiding excessive bandwidth usage. If it is determined according to the fourth bandwidth usage information that the second bandwidth corresponding to the reference object in the second time period is less than the actual spare bandwidth, the bandwidth effectiveness ratio is determined to be greater than zero, so that the difference between the updated bandwidth and the actual spare bandwidth is smaller, thereby improving bandwidth utilization and enabling the actual spare bandwidth to be more fully utilized.
[0151] To summarize, after acquiring the first bandwidth usage information of the first time period (the bandwidth actually used by the reference object), the embodiment of the present application aggregates the first bandwidth usage information to obtain the second bandwidth usage information (the bandwidth actually used by the reference object) with a smaller amount of information than the first bandwidth usage information, and accurately and efficiently predicts the first bandwidth surplus information (possibly surplus bandwidth) of the second time period based on the second bandwidth usage information, and schedules the first bandwidth of the reference object in the second time period (the bandwidth originally available to the reference object) based on the first bandwidth surplus information to obtain the second bandwidth of the reference object in the second time period, which is equivalent to the reference object being able to utilize the surplus bandwidth on the basis of the bandwidth originally available, thereby not only improving the bandwidth utilization rate but also reducing the bandwidth usage cost of the reference object.
[0152] The above describes the method for scheduling bandwidth provided by the embodiment of the present application. Corresponding to the above method, the embodiment of the present application also provides a device for scheduling bandwidth, that is, the above bandwidth scheduling device. The device can be applied to a computer device. The device is used to Fig.13 The modules shown above perform the Figure 5 The method for scheduling bandwidth is shown in FIG. Fig.13 As shown, the device for scheduling bandwidth provided in the embodiment of the present application includes the following modules.
[0153] An acquisition module 1301 is configured to acquire first bandwidth usage information of a reference object in a first time period, where the reference object includes a cloud data center in a communication system for providing cloud services, or the reference object includes a tenant who accesses the communication system to use cloud services;
[0154] Aggregation module 1302, configured to aggregate the first bandwidth usage information to obtain second bandwidth usage information, wherein the information density of the second bandwidth usage information is less than the information density of the first bandwidth usage information;
[0155] Prediction module 1303, configured to predict first bandwidth spare information of a reference object in a second time period according to the second bandwidth usage information, the second time period being later than the first time period;
[0156] The scheduling module 1304 is used to schedule the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, and the second bandwidth is used to transmit the message of the reference object in the second time period.
[0157] In a possible implementation, the prediction module 1303 is used to obtain a bandwidth usage change rate of the second time period relative to the first time period; and predict the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information.
[0158] In one possible implementation, the prediction module 1303 is used to predict the third bandwidth usage information of the reference object in the second time period based on the bandwidth usage change rate and the second bandwidth usage information; filter the third bandwidth usage information according to the first reference ratio, and determine the first bandwidth threshold information of the reference object in the second time period based on the filtered third bandwidth usage information; and determine the first bandwidth idle information based on the first difference between the third bandwidth usage information and the first bandwidth threshold information.
[0159] In one possible implementation, the prediction module 1303 is used to filter the second bandwidth usage information according to the second reference ratio, determine the second bandwidth threshold information of the reference object in the first time period according to the filtered second bandwidth usage information; determine the second bandwidth idle information of the reference object in the first time period according to the second difference between the second bandwidth usage information and the second bandwidth threshold information; and predict the first bandwidth idle information according to the bandwidth usage change rate and the second bandwidth idle information.
[0160] In a possible implementation, the acquisition module 1301 is further configured to acquire bandwidth reservation information of the reference object for the second time period;
[0161] The scheduling module 1304 is used to update the first bandwidth spare information according to the bandwidth reservation information to obtain the updated bandwidth spare information; and schedule the first bandwidth of the reference object in the second time period according to the updated bandwidth spare information to obtain the second bandwidth of the reference object in the second time period.
[0162] In a possible implementation, the first bandwidth of the reference object in the second time period is a fixed bandwidth; the scheduling module 1304 is used to determine the third bandwidth according to the first bandwidth spare information; and add the third bandwidth to the fixed bandwidth to obtain the second bandwidth of the reference object in the second time period.
[0163] In a possible implementation, the first bandwidth of the reference object in the second time period is a non-fixed bandwidth; the scheduling module 1304 is used to determine the fourth bandwidth according to the first bandwidth spare information; and replace the non-fixed bandwidth with the fourth bandwidth to obtain the second bandwidth of the reference object in the second time period.
[0164] In a possible implementation, the first bandwidth spare information is information corresponding to the first service, and the first bandwidth of the reference object in the second time period includes the bandwidth corresponding to the first service and the bandwidth corresponding to the second service, and the first service and the second service are different services of the reference object; the scheduling module 1304 is used to determine the fifth bandwidth according to the first bandwidth spare information; deduct the fifth bandwidth from the bandwidth corresponding to the first service to obtain the first sub-bandwidth of the reference object in the second time period, and the first sub-bandwidth is used to transmit the message of the first service in the second time period; add the fifth bandwidth to the bandwidth corresponding to the second service to obtain the second sub-bandwidth of the reference object in the second time period, and the second sub-bandwidth is used to transmit the message of the second service in the second time period; wherein the second bandwidth of the reference object in the second time period includes the first sub-bandwidth and the second sub-bandwidth.
[0165] In a possible implementation, the acquisition module 1301 is also used to obtain fourth bandwidth usage information of the reference object in a first sub-period in a second time period; the second bandwidth is updated according to the fourth bandwidth usage information to obtain an updated bandwidth, and the updated bandwidth is used to transmit the message of the reference object in a second sub-period in the second time period, and the second sub-period is later than the first sub-period.
[0166] It should be understood that the above Fig.13 The device provided has the following beneficial effects when achieving its function: Figure 5 The provided method for scheduling bandwidth has the same beneficial effects. Fig.13 When the device provided realizes its functions, only the division of the above-mentioned functional modules is used as an example for illustration. In practical applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process is detailed in the method embodiment, which will not be repeated here.
[0167] Exemplarily, an embodiment of the present application further provides a device for scheduling bandwidth, the device comprising a memory and a processor; the memory stores at least one computer instruction, and the at least one computer instruction is loaded and executed by the processor, so that the device for scheduling bandwidth can achieve Figure 5 The method for scheduling bandwidth shown in the figure, the device for scheduling bandwidth is, for example, the computer device described above.
[0168] See also Fig.14 , Fig.14 A schematic structural diagram of an exemplary bandwidth scheduling device 1400 of the present application is shown. The bandwidth scheduling device 1400 includes at least one processor 1401, a memory 1403, and at least one network interface 1404.
[0169] Processor 1401 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing units (NPU), a data processing unit (DPU), a microprocessor or one or more integrated circuits or application-specific integrated circuits (ASICs) for implementing the solution of the present application, a programmable logic device (PLD), other general-purpose processors or other programmable logic devices, discrete gates, transistor logic devices, discrete hardware components or any combination thereof. PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof. A general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting an advanced RISC machines (ARM) architecture. It can implement or execute various logic blocks, modules and circuits described in conjunction with the disclosure of this application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0170] Optionally, the bandwidth scheduling device 1400 further includes a bus 1402. The bus 1402 is used to transmit information between the components of the bandwidth scheduling device 1400. The bus 1402 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus 1402 may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.14 The fact that only one line is used in the diagram does not mean that there is only one bus or only one type of bus.
[0171] The memory 1403 is, for example, a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories. Among them, the nonvolatile memory may be a read-only memory (ROM), a programmable ROM (PROM), an erasable programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache.
[0172] By way of example but not limitation, many forms of ROM and RAM are available. For example, ROM is a compact disc read-only memory (CD-ROM). RAM includes, but is not limited to, static RAM (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct rambus RAM (DR RAM).
[0173] The memory 1403 may also be other types of storage devices that can store static information and instructions. Or it may be other types of dynamic storage devices that can store information and instructions. Or it may be other optical disk storage, optical disk storage (including compressed optical disk, laser disk, optical disk, digital versatile disk, blue-ray disk, etc.), magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by the computer, but is not limited to this. The memory 1403, for example, exists independently and is connected to the processor 1401 through the bus 1402. The memory 1403 may also be integrated with the processor 1401.
[0174] The network interface 1404 uses any transceiver-like device to communicate with other devices or communication networks, and the communication network can be Ethernet, radio access network (RAN) or wireless local area network (WLAN), etc. The network interface 1404 may include a wired network interface and may also include a wireless network interface. Specifically, the network interface 1404 may be an Ethernet interface, such as a fast Ethernet (FE) interface, a gigabit Ethernet (GE) interface, an asynchronous transfer mode (ATM) interface, a WLAN interface, a cellular network interface or a combination thereof. The Ethernet interface may be an optical interface, an electrical interface or a combination thereof. In some embodiments of the present application, the network interface 1404 may be used for the bandwidth scheduling device 1400 to communicate with other devices.
[0175] In a specific implementation, as some embodiments, the processor 1401 may include one or more CPUs, such as Fig.14 0 and CPU1 shown in FIG. Each of these processors may be a single-core processor or a multi-core processor. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0176] In a specific implementation, as some implementation methods, the bandwidth scheduling device 1400 may include multiple processors, such as Fig.14 1401 and 1405 shown in FIG. Each of these processors may be a single-core processor or a multi-core processor. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).
[0177] In some implementations, the memory 1403 is used to store program instructions 1410 for executing the solution of the present application, and the processor 1401 can execute the program instructions 1410 stored in the memory 1403. That is, the device 1400 for scheduling bandwidth can implement the method provided in the method embodiment through the processor 1401 and the program instructions 1410 in the memory 1403, that is, Figure 5 The method for scheduling bandwidth shown in FIG. 1400 may include one or more software modules. Optionally, the processor 1401 itself may also store program instructions for executing the solution of the present application.
[0178] In a specific implementation process, the bandwidth scheduling device 1400 of the present application may correspond to a computer device for executing the above method, and the processor 1401 in the bandwidth scheduling device 1400 reads the instructions in the memory 1403, so that Fig.14 The bandwidth scheduling device 1400 shown can execute all or part of the steps in the method embodiment.
[0179] The bandwidth scheduling device 1400 may also correspond to the above Fig.13 The device shown, Fig.13 Each functional module in the apparatus shown is implemented using software of the bandwidth scheduling device 1400. In other words, Fig.13 The functional modules included in the apparatus shown are generated after the processor 1401 of the bandwidth scheduling device 1400 reads the program instructions 1410 stored in the memory 1403.
[0180] in, Figure 5 Each step of the method shown is completed by an integrated logic circuit of hardware or software instructions in the processor of the bandwidth scheduling device 1400. The steps of the method embodiment disclosed in the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method embodiment in combination with its hardware. To avoid repetition, it is not described in detail here.
[0181] In an exemplary embodiment, a computer-readable storage medium is provided, wherein at least one computer instruction is stored in the computer-readable storage medium, and the at least one computer instruction is loaded and executed by a processor to enable a computer to implement Figure 5 The method of scheduling bandwidth is shown.
[0182] Exemplarily, a computer program or a computer program product is provided, the computer program or the computer program product comprising computer instructions, the computer instructions being executed by a processor to cause a computer to implement Figure 5 The method of scheduling bandwidth is shown.
[0183] Exemplarily, a chip is provided, comprising a processor, configured to call and execute instructions stored in a memory, so that a computer equipped with the chip executes Figure 5 The method of scheduling bandwidth is shown.
[0184] In an exemplary embodiment, another chip is provided, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the computer equipped with the chip executes Figure 5 The method of scheduling bandwidth is shown.
[0185] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented by software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the present application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state disk), etc.
[0186] In this application, the terms "first", "second", etc. are used to distinguish between identical or similar items with substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there a limitation on the quantity and execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another.
[0187] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0188] The term "at least one" in this application means one or more, and the term "multiple" in this application means two or more, for example, multiple modules means two or more modules. The terms "system" and "network" are often used interchangeably herein.
[0189] It should be understood that the terms used in the description of the various examples herein are only for describing specific examples and are not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0190] It should also be understood that the term "and / or" used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The term "and / or" is a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in this application generally indicates that the associated objects before and after are in an "or" relationship.
[0191] It should also be understood that the terms "if" and "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined that ..." or "if [a stated condition or event] is detected" may be interpreted to mean "upon determining that ..." or "in response to determining that ..." or "upon detecting [a stated condition or event]" or "in response to detecting [a stated condition or event]," depending on the context.
[0192] The above description is only an embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent substitutions, improvements, etc. made within the principles of the present application shall be included in the protection scope of the present application.
Claims
1. A method for scheduling bandwidth, characterized in that: The method is applied to a bandwidth scheduling device in a communication system, and the method comprises: Acquire first bandwidth usage information of a reference object in a first time period, wherein the reference object includes a cloud data center in the communication system for providing cloud services, or the reference object includes a tenant who accesses the communication system to use cloud services; aggregating the first bandwidth usage information to obtain second bandwidth usage information, wherein information density of the second bandwidth usage information is less than information density of the first bandwidth usage information; predicting first bandwidth spare information of the reference object in a second time period according to the second bandwidth usage information, the second time period being later than the first time period; The first bandwidth of the reference object in the second time period is scheduled according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, and the second bandwidth is used to transmit the message of the reference object in the second time period.
2. The method according to claim 1, characterized in that The predicting the first bandwidth spare information of the reference object in the second time period according to the second bandwidth usage information includes: Obtaining a bandwidth usage change rate of the second time period relative to the first time period; The first bandwidth spare information is predicted according to the bandwidth usage change rate and the second bandwidth usage information.
3. The method according to claim 2, characterized in that The predicting the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information includes: predicting third bandwidth usage information of the reference object within the second time period according to the bandwidth usage change rate and the second bandwidth usage information; Filtering the third bandwidth usage information according to the first reference ratio, and determining the first bandwidth threshold information of the reference object in the second time period according to the filtered third bandwidth usage information; The first bandwidth margin information is determined according to a first difference between the third bandwidth usage information and the first bandwidth threshold information.
4. The method according to claim 2, characterized in that: The predicting the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information includes: Filtering the second bandwidth usage information according to a second reference ratio, and determining second bandwidth threshold information of the reference object within the first time period according to the filtered second bandwidth usage information; determining second bandwidth spare information of the reference object within the first time period according to a second difference between the second bandwidth usage information and the second bandwidth threshold information; The first bandwidth spare information is predicted according to the bandwidth usage change rate and the second bandwidth spare information.
5. The method according to any one of claims 1 to 4, characterized in that: Before scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, the method further includes: Acquire bandwidth reservation information of the reference object for the second time period; The step of scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period includes: updating the first bandwidth spare information according to the bandwidth reservation information to obtain updated bandwidth spare information; The first bandwidth of the reference object in the second time period is scheduled according to the updated bandwidth spare information to obtain the second bandwidth of the reference object in the second time period.
6. The method according to any one of claims 1 to 4, characterized in that: The first bandwidth of the reference object in the second time period is a fixed bandwidth; The step of scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period includes: determining a third bandwidth according to the first bandwidth spare information; The third bandwidth is added to the fixed bandwidth to obtain a second bandwidth of the reference object in the second time period.
7. The method according to any one of claims 1 to 4, characterized in that: The first bandwidth of the reference object in the second time period is a non-fixed bandwidth; The step of scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period includes: determining a fourth bandwidth according to the first bandwidth spare information; The non-fixed bandwidth is replaced with the fourth bandwidth to obtain a second bandwidth of the reference object in the second time period.
8. The method according to any one of claims 1 to 4, characterized in that: The first bandwidth spare information is information corresponding to a first service, the first bandwidth of the reference object in the second time period includes a bandwidth corresponding to the first service and a bandwidth corresponding to a second service, and the first service and the second service are different services of the reference object; The step of scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period includes: determining a fifth bandwidth according to the first bandwidth spare information; Deducting the fifth bandwidth from the bandwidth corresponding to the first service to obtain a first sub-bandwidth of the reference object in the second time period, where the first sub-bandwidth is used to transmit packets of the first service in the second time period; Adding the fifth bandwidth to the bandwidth corresponding to the second service to obtain a second sub-bandwidth of the reference object in the second time period, where the second sub-bandwidth is used to transmit packets of the second service in the second time period; The second bandwidth of the reference object in the second time period includes the first sub-bandwidth and the second sub-bandwidth.
9. The method according to any one of claims 1 to 8, characterized in that: After scheduling the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, the method further includes: Acquire fourth bandwidth usage information of the reference object in a first sub-period in the second period; The second bandwidth is updated according to the fourth bandwidth usage information to obtain an updated bandwidth, and the updated bandwidth is used to transmit the message of the reference object in a second sub-period in the second time period, and the second sub-period is later than the first sub-period.
10. A device for scheduling bandwidth, characterized in that: The device comprises: An acquisition module, configured to acquire first bandwidth usage information of a reference object within a first time period, wherein the reference object includes a cloud data center in a communication system for providing cloud services, or the reference object includes a tenant accessing the communication system to use cloud services; an aggregation module, configured to aggregate the first bandwidth usage information to obtain second bandwidth usage information, wherein the information density of the second bandwidth usage information is less than the information density of the first bandwidth usage information; A prediction module, configured to predict first bandwidth spare information of the reference object in a second time period according to the second bandwidth usage information, the second time period being later than the first time period; The scheduling module is used to schedule the first bandwidth of the reference object in the second time period according to the first bandwidth spare information to obtain the second bandwidth of the reference object in the second time period, and the second bandwidth is used to transmit the message of the reference object in the second time period.
11. The device according to claim 10, characterized in that The prediction module is used to obtain the bandwidth usage change rate of the second time period relative to the first time period; and predict the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth usage information.
12. The device according to claim 11, characterized in that The prediction module is used to predict the third bandwidth usage information of the reference object in the second time period according to the bandwidth usage change rate and the second bandwidth usage information; filter the third bandwidth usage information according to a first reference ratio, and determine the first bandwidth threshold information of the reference object in the second time period according to the filtered third bandwidth usage information; and determine the first bandwidth idle information according to a first difference between the third bandwidth usage information and the first bandwidth threshold information.
13. The device according to claim 11, characterized in that The prediction module is configured to filter the second bandwidth usage information according to a second reference ratio, and determine the second bandwidth threshold information of the reference object within the first time period according to the filtered second bandwidth usage information; Determine the second bandwidth spare information of the reference object in the first time period according to the second difference between the second bandwidth usage information and the second bandwidth threshold information; and predict the first bandwidth spare information according to the bandwidth usage change rate and the second bandwidth spare information.
14. The device according to any one of claims 10 to 13, characterized in that: The acquisition module is further used to acquire bandwidth reservation information of the reference object for the second time period; The scheduling module is used to update the first bandwidth idle information according to the bandwidth reservation information to obtain updated bandwidth idle information; and schedule the first bandwidth of the reference object in the second time period according to the updated bandwidth idle information to obtain the second bandwidth of the reference object in the second time period.
15. The device according to any one of claims 10 to 13, characterized in that: The first bandwidth of the reference object in the second time period is a fixed bandwidth; the scheduling module is used to determine a third bandwidth according to the first bandwidth spare information; and add the third bandwidth to the fixed bandwidth to obtain the second bandwidth of the reference object in the second time period.
16. The device according to any one of claims 10 to 13, characterized in that: The first bandwidth of the reference object in the second time period is a non-fixed bandwidth; the scheduling module is used to determine a fourth bandwidth according to the first bandwidth spare information; and the non-fixed bandwidth is replaced by the fourth bandwidth to obtain the second bandwidth of the reference object in the second time period.
17. The device according to any one of claims 10 to 13, characterized in that: The first bandwidth spare information is information corresponding to the first service, the first bandwidth of the reference object in the second time period includes the bandwidth corresponding to the first service and the bandwidth corresponding to the second service, and the first service and the second service are different services of the reference object; the scheduling module is used to determine the fifth bandwidth according to the first bandwidth spare information; deduct the fifth bandwidth from the bandwidth corresponding to the first service to obtain the first sub-bandwidth of the reference object in the second time period, and the first sub-bandwidth is used to transmit the message of the first service in the second time period; add the fifth bandwidth to the bandwidth corresponding to the second service to obtain the second sub-bandwidth of the reference object in the second time period, and the second sub-bandwidth is used to transmit the message of the second service in the second time period; wherein the second bandwidth of the reference object in the second time period includes the first sub-bandwidth and the second sub-bandwidth.
18. The device according to any one of claims 10 to 17, characterized in that: The acquisition module is further used to obtain fourth bandwidth usage information of the reference object in a first sub-period in the second time period; update the second bandwidth according to the fourth bandwidth usage information to obtain an updated bandwidth, and the updated bandwidth is used to transmit the message of the reference object in a second sub-period in the second time period, and the second sub-period is later than the first sub-period.
19. A device for scheduling bandwidth, characterized in that: The device includes a memory and a processor; the memory stores at least one computer instruction, and the at least one computer instruction is loaded and executed by the processor, so that the bandwidth scheduling device implements the bandwidth scheduling method described in any one of claims 1-9.
20. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one computer instruction, and the at least one computer instruction is loaded and executed by a processor to enable a computer to implement the method for scheduling bandwidth as described in any one of claims 1-9.
21. A computer program product, characterized in that The computer program product comprises computer instructions, and the computer instructions are executed by a processor to enable a computer to implement the method for scheduling bandwidth as claimed in any one of claims 1 to 9.
