Traffic scheduling
By acquiring virtual machine traffic data and basic traffic quotas, and using machine learning models for traffic scheduling, the problem of unstable traffic management in cloud storage has been solved, improving resource utilization and access stability.
Patent Information
- Application Number
- PCT/IB2025/056152
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-06-17
- Filing Date
- 2025-06-17
- Publication Date
- 2025-12-26
AI Technical Summary
In cloud storage scenarios, when storage agent nodes handle traffic from multiple network virtual machines, the lack of effective traffic management strategies leads to unstable access to network virtual machines and makes it impossible to guarantee the normal operation of basic access.
By obtaining the current allocated traffic quota and historical data of virtual machines, the basic traffic allocation strategy is determined, and flexible scheduling is carried out using machine learning models and traffic scheduling devices to ensure the rational allocation of traffic resources.
It enables flexible scheduling of virtual machine traffic, improves the utilization rate of traffic resources, and ensures the stability of basic virtual machine access operations and the reliability of cloud storage access.
Smart Images

Figure IB2025056152_26122025_PF_FP_ABST
Abstract
Description
[0001] Traffic scheduling
[0002]
[0001] The present disclosure relates to the field of network technology, and particularly relates to traffic scheduling. BACKGROUND
[0003]
[0002] With the rapid development of cloud technology, cloud products are applied more and more widely. In a cloud storage scenario, a storage proxy node, as a first access point of network virtual machine (VM) traffic, needs to process traffic from different VMs to different storage areas.
[0004]
[0003] However, since the storage proxy node needs to process traffic of multiple network virtual machines, in the case that there is no good traffic management strategy, the normal performance of the basic access operation of the network virtual machine cannot be guaranteed, and thus the stable performance of the cloud storage access operation cannot be guaranteed. SUMMARY
[0005]
[0004] Embodiments of the present disclosure provide a traffic scheduling method, device, equipment and computer program product, which can flexibly adjust the allocated traffic quota of each virtual machine, and ensure the stable performance of the basic access operation of the user.
[0005] In a first aspect, the embodiments of the present disclosure provide a traffic scheduling method, comprising: obtaining current allocated traffic quota and historical traffic usage data of each of at least one virtual machine; determining a basic traffic quota corresponding to each of the at least one virtual machine and a total traffic quota for supporting access operations of multiple virtual machines, the basic traffic quota being used for a single virtual machine to implement a preset basic operation; determining traffic scheduling information corresponding to each of the at least one virtual machine based on the historical traffic usage data and the total traffic quota; and scheduling the current allocated traffic quota of any one virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine.
[0006]
[0006] In a second aspect, embodiments of this disclosure provide a traffic scheduling device, comprising: a first acquisition module, configured to acquire the current allocated traffic quota and historical traffic usage data corresponding to at least one virtual machine; a first determination module, configured to determine the basic traffic quota corresponding to at least one virtual machine and the total traffic quota for supporting access operations of multiple virtual machines, wherein the basic traffic quota is used to enable a single virtual machine to perform preset basic operations; the first determination module is further configured to determine traffic scheduling information corresponding to at least one virtual machine based on the historical traffic usage data and the total traffic quota; and a first processing module, configured to schedule the current allocated traffic quota of any virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine.
[0007]
[0007] In a third aspect, embodiments of this disclosure provide an electronic device, including: a memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement the traffic scheduling method described in the first aspect above.
[0008]
[0008] In a fourth aspect, embodiments of the present invention provide a computer storage medium for storing a computer program, wherein the computer program enables a computer to implement the traffic scheduling method described in the first aspect above when executed.
[0009]
[0009] In a fifth aspect, embodiments of the present invention provide a computer program product, comprising: a computer program, which, when executed by a processor of an electronic device, causes the processor to perform the steps in the traffic scheduling method described in the first aspect above.
[0010]
[0010] The traffic scheduling method, device, equipment and computer program product provided by the embodiments of the present disclosure can realize flexible scheduling operation on the current allocated traffic quota of each virtual machine, improve the utilization rate of traffic resource usage, and ensure the stable performance of the basic access operation of the virtual machine, thereby further improving the practicability of the method.
[0011]
[0011] In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure or the related art, the accompanying drawings needed to be used in the embodiments or the related art description will be briefly introduced. Obviously, the accompanying drawings in the following description are some embodiments of the present disclosure, and for those skilled in the art, other drawings can also be obtained without creative labor based on these drawings.
[0012]
[0012] Fig. 1 is a schematic diagram of the principle of a traffic scheduling method provided by an embodiment of the present disclosure;
[0013]
[0013] Fig. 2 is a flowchart of a traffic scheduling method provided by an embodiment of the present disclosure;
[0014]
[0014] Fig. 3 is a flowchart of scheduling the current allocated traffic quota of the virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine provided by an embodiment of the present disclosure;
[0015]
[0015] Fig. 4 is a flowchart of restoring the current allocated traffic quota to the basic traffic quota provided by an embodiment of the present disclosure;
[0016]
[0016] Fig. 5 is a flowchart of scheduling the current allocated traffic quota of the virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine provided by an embodiment of the present disclosure;
[0017]
[0017] Fig. 6 is a schematic diagram of the principle of a traffic scheduling operation provided by an application embodiment of the present disclosure;
[0018]
[0018] Fig. 7 is a structural schematic diagram of a flow scheduling device provided by an embodiment of the present disclosure;
[0019]
[0019] Fig. 8 is a structural schematic diagram of an electronic device corresponding to the flow scheduling device provided by the embodiment shown in Fig. 7. DETAILED DESCRIPTION
[0020]
[0020] To make the objects, technical solutions, and advantages of the embodiments of the present disclosure clearer, the technical solutions in the embodiments of the present disclosure will be described clearly and completely below with reference to the drawings in the embodiments of the present disclosure. Obviously, the described embodiments are some but not all of the embodiments of the present disclosure. Based on the embodiments in the present disclosure, all other embodiments obtained by a person of ordinary skill in the art without creative work fall within the protection scope of the present disclosure.
[0021]
[0021] The terms used in the embodiments of the present disclosure are merely for the purpose of describing particular embodiments and are not intended to limit the present disclosure. The singular forms "a," "an," and "the" used in the embodiments of the present disclosure and the appended claims are intended to include plural forms as well, unless the context clearly indicates otherwise. "Plural" generally includes at least two, but does not exclude the possibility of including at least one.
[0022]
[0022] It should be understood that the term "and / or" used herein only describes an association relationship of associated objects, and means that three relationships can exist, for example, A and / or B can mean that A exists alone, A and B exist together, and B exists alone. In addition, the character "or" herein generally means that the preceding and following associated objects are in an "or" relationship.
[0023]
[0023] Depending on the context, the word "if" as used herein can be interpreted to mean "when" or "while" or "in response to determining" or "in response to detecting." Similarly, depending on the context, the phrase "if it is determined" or "if it is detected (a stated condition or event)" can be interpreted to mean "when it is determined" or "in response to determining" or "when it is detected (a stated condition or event)" or "in response to detecting (a stated condition or event).
[0024]
[0024] It is also to be noted that the terms "comprising", "including", or any other variant thereof are intended to cover a non-exclusive inclusion, such that a product or process that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such product or process. An element proceeded by "comprises a" does not, without further constraints, exclude the presence of additional identical elements in the product or process.
[0025]
[0025] In addition, the step sequence in each of the following method embodiments is only an example, not a strict limitation.
[0026]
[0026] In order to facilitate the understanding of the implementation process and implementation principle of each step in the flow scheduling method, device, equipment and computer program product in the embodiment, the related technology will be briefly described first.
[0027]
[0027] In the cloud storage scenario, the storage proxy node is the first access point of the user network virtual machine (VM) traffic, and needs to process the traffic from different VMs to different storage areas. However, since the storage proxy node needs to process and distribute the access traffic of one or more user network virtual machines, the related art provides a traffic distribution operation based on a Round-Robin (RR) algorithm or a Weighted Round Robin (WRR) algorithm
[0028]
[0029]
[0028] However, when using the RR algorithm for traffic distribution operation, only the fair use of resources between different cloud storage disks can be guaranteed, and there is no differentiated traffic distribution operation; when using the WRR algorithm for traffic distribution operation, the distribution operation of the flow resource can be performed according to the preset weight, but the traffic resource requirement of the basic operation is not distinguished, at this time, for the user's access traffic, without good traffic management, it is easy to cause mutual interference between user traffic, and it is easy to cause a large number of storage tenants to occupy the traffic of other normal tenants, thereby unable to guarantee the normal operation of the user's basic access operation, and unable to guarantee the stable operation of the cloud storage access operation.
[0030]
[0029] To solve the above technical problems, the embodiment provides a flow scheduling method, device, equipment and computer program product, wherein the execution subject of the flow scheduling method is a flow scheduling device, that is, the flow scheduling method can be applied to the flow scheduling device, as shown in FIG. 1, the flow scheduling device 200 is communicatively connected with at least one virtual machine 100, it should be noted that the flow scheduling device 200 can be implemented as a local server, a server in the cloud or a preset module, wherein the flow scheduling device 200 can be integrated with a cloud storage area, or the flow scheduling device 200 is communicatively connected with the cloud storage area; at this time, in the case that the flow scheduling device 200 is implemented as a server in the cloud, the flow scheduling method can be executed in the cloud, and a plurality of computing nodes (cloud servers) can be deployed in the cloud, each computing node has computing, storage and other processing resources. In the cloud, a plurality of computing nodes can be organized to provide a certain service, of course, one computing node can also provide one or more services. The cloud can provide the service in the form of a service interface provided to the outside, and a user calls the service interface to use the corresponding service. The service interface includes software development kit (Software Development Kit, SDK), application programming interface (Application Programming Interface, API) and the like.
[0031]
[0030] The traffic scheduling device 200 can be in communication connection with at least one virtual machine 100, so that multiple users can perform read and write operations on the cloud storage area through the at least one virtual machine 100 respectively. In some examples, the at least one virtual machine 100 can be implemented as or deployed on a client, so that the user can perform access operations on the cloud storage area through the client. The client can be any computing device with certain data transmission capability. In practice, the client can be a mobile phone, a personal computer (PC), a tablet computer, a set application, etc. In addition, the basic structure of the client can include at least one processor. The number of processors depends on the configuration and type of the client. The client can also include a memory, which can be volatile, such as a random access memory (RAM), or non-volatile, such as a read-only memory (ROM), a flash memory, etc., or both. The memory usually stores an operating system (OS), one or more application programs, and program data, etc. In addition to the processing unit and the memory, the client also includes some basic configurations, such as a network card chip, a bus, a display component, and some peripheral devices, etc. Optionally, some peripheral devices can include, for example, a keyboard, a mouse, a stylus, a printer, etc. Other peripheral devices are well known in the art and will not be described here.
[0032]
[0031] The traffic scheduling device 200 refers to a device that can provide traffic scheduling operations in a network virtual environment, usually refers to a device that uses a network to plan information and perform traffic scheduling operations. In physical implementation, the traffic scheduling device 200 can be any device that can provide computing services, respond to traffic scheduling requests, and perform traffic scheduling operations based on traffic scheduling requests, such as a cluster server, a regular server, a cloud server, a cloud host, a virtual center, etc. The composition of the traffic scheduling device 200 mainly includes a processor, a hard disk, a memory, a system bus, etc., which is similar to the general computer architecture.
[0033]
[0032] In the above embodiment, the network connection between the at least one virtual machine 100 and the traffic scheduling device 200 can be a wireless or wired network connection. If the at least one virtual machine 100 and the traffic scheduling device 200 are in communication connection, the network mode of the mobile network can be any one of 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4G+ (LTE+), WiMax, 5G, 6G, etc.
[0034]
[0032] In the above embodiment, the network connection between the at least one virtual machine 100 and the traffic scheduling device 200 can be a wireless or wired network connection. If the at least one virtual machine 100 and the traffic scheduling device 200 are in communication connection, the network mode of the mobile network can be any one of 2G (GSM), 2.5G (GPRS), 3G (WCDMA, TD-SCDMA, CDMA2000, UTMS), 4G (LTE), 4G+ (LTE+), WiMax, 5G, 6G, etc.
[0035]
[0033] In the embodiments of the present disclosure, in order to flexibly schedule the traffic quota of the virtual machine 100, the traffic scheduling device 200 is configured to acquire the current allocated traffic quota and the historical traffic usage data corresponding to each of the at least one virtual machine 100, wherein the historical traffic usage data can include at least one of the following: historical request quantity, historical traffic rate, etc., in order to ensure that the user can stably access the at least one virtual machine 100, the current allocated traffic quota and the historical traffic usage data corresponding to each of the at least one virtual machine 100 are acquired, and the basic traffic quota corresponding to each of the at least one virtual machine 100 and the total traffic quota for supporting the access operation of the plurality of virtual machines 100 are determined, wherein the basic traffic quota is used for the preset basic operation of the single virtual machine 100.
[0036]
[0034] After acquiring the historical traffic usage data and the total traffic quota, the traffic scheduling information corresponding to each of the at least one virtual machine 100 can be determined based on the historical traffic usage data and the total traffic quota, and the traffic scheduling information is used for limiting or adjusting the allocated traffic quota of the at least one virtual machine 100, therefore, after acquiring the traffic scheduling information, for any one virtual machine 100, the current allocated traffic quota of the corresponding virtual machine 100 can be scheduled based on the traffic scheduling information corresponding to the virtual machine 100 and the basic traffic quota corresponding to the virtual machine 100, which can flexibly adjust the allocated traffic quota of each virtual machine 100, not only ensuring the stable performance of the basic access operation, but also effectively improving the effective utilization rate of the traffic resource.
[0037]
[0035] The embodiments of the present application will be described in detail below with reference to the drawings. The embodiments described below and the features in the embodiments can be combined with each other in the case of no conflict. In addition, the sequence of steps in each method embodiment is only an example, and is not strictly limited.
[0038]
[0036] FIG. 2 is a flowchart of a traffic scheduling method according to an embodiment of the present disclosure. As shown in FIG. 2, the traffic scheduling method can be applied to a traffic scheduling device, and the traffic scheduling device can communicate with at least one virtual machine. The traffic scheduling device can implement traffic scheduling operations for the at least one virtual machine based on historical traffic usage data. Specifically, the traffic scheduling method can include the following steps.
[0039]
[0037] In step S201, the current allocated traffic quota and the historical traffic usage data of each of the at least one virtual machine are obtained.
[0040]
[0038] In step S202, the base traffic quota of each of the at least one virtual machine and the total traffic quota for supporting access operations of the plurality of virtual machines are determined. The base traffic quota is used for a single virtual machine to implement a preset base operation.
[0041]
[0039] In step S203, the traffic scheduling information of each of the at least one virtual machine is determined based on the historical traffic usage data and the total traffic quota.
[0042]
[0040] In step S204, for any one virtual machine, the current allocated traffic quota of the virtual machine is scheduled based on the traffic scheduling information of the virtual machine and the base traffic quota of the virtual machine.
[0043]
[0041] The specific implementation process and implementation effects of each step will be described in detail below.
[0044]
[0042] In step S201, the current allocated traffic quota and the historical traffic usage data of each of the at least one virtual machine are obtained.
[0045]
[0043] Among them, the traffic scheduling device can be communicatively connected with at least one virtual machine and a cloud storage area, a user can access the cloud storage area through the at least one virtual machine, in order to ensure the accuracy and reliability of the data processing operation of the virtual machine, the traffic scheduling device can obtain the current allocated traffic quota and the historical traffic usage data corresponding to each of the at least one virtual machine, the current allocated traffic quota is used to identify the actual upper limit of the traffic resource of the virtual machine for data processing operation, different virtual machines can correspond to the same or different current allocated traffic quota, the historical traffic usage data of at least one virtual machine can include at least one of the following: historical request quantity, historical traffic rate.
[0044] In some examples, the current allocated traffic quota and the historical traffic usage data can be stored in a preset area, at this time, obtaining the current allocated traffic quota and the historical traffic usage data corresponding to each of the at least one virtual machine can include: obtaining the virtual machine identity corresponding to the at least one virtual machine; based on the virtual machine identity, accessing the preset area, and then obtaining the current allocated traffic quota and the historical traffic usage data, which effectively ensures the accuracy and reliability of obtaining the current allocated traffic quota and the historical traffic usage data.
[0046]
[0045] In other examples, the current allocated traffic quota and the historical traffic usage data can not only be obtained synchronously, but also asynchronously, for example: the current allocated traffic quota corresponding to each of the at least one virtual machine can be obtained first, and then the historical traffic usage data corresponding to each of the at least one virtual machine can be obtained; or, the historical traffic usage data corresponding to each of the at least one virtual machine can be obtained first, and then the current allocated traffic quota corresponding to each of the at least one virtual machine can be obtained, as long as the accuracy and reliability of obtaining the current allocated traffic quota and the historical traffic usage data can be ensured, the person skilled in the art can flexibly select or configure the obtaining method of the current allocated traffic quota and the historical traffic usage data according to the specific application scene or application requirement.
[0047]
[0046] Step S202: determining the basic traffic quota corresponding to each of the at least one virtual machine and the total traffic quota for supporting the access operation of the plurality of virtual machines, the basic traffic quota is used for a single virtual machine to implement a preset basic operation.
[0048]
[0047] In the process of data access operation of the virtual machine using the traffic resource, in order to ensure the normal operation of the basic access operation of the virtual machine, after obtaining the current allocated traffic quota and the historical traffic usage data corresponding to each of the at least one virtual machine, the basic traffic quota corresponding to each of the at least one virtual machine and the total traffic quota for supporting the access operation of the plurality of virtual machines can be determined, wherein the basic traffic quota corresponding to each of the at least one virtual machine is a lower limit of the traffic quota for the preset basic operation of the single virtual machine, and the basic traffic quotas corresponding to different virtual machines can be the same or different.
[0049]
[0048] Specifically, the embodiment does not limit the specific determination manner of the basic traffic quota and the total traffic quota, in some instances, the basic traffic quota can be determined based on the basic traffic demand corresponding to the virtual machine, at this time, determining the basic traffic quota corresponding to each of the at least one virtual machine can include: obtaining the basic traffic demand corresponding to each of the at least one virtual machine, wherein the basic traffic demand is used to identify the data processing capability that the user expects the virtual machine to provide, which is closely related to the configuration information of the virtual machine, therefore, the basic traffic demand corresponding to each of the at least one virtual machine can be determined based on the configuration information of the virtual machine; after obtaining the basic traffic demand, the basic traffic quota corresponding to the virtual machine can be determined based on the basic traffic demand, when the traffic quota of the virtual machine reaches the basic traffic quota, the basic data processing operation of the virtual machine can be ensured to be completed.
[0050]
[0049] In yet some instances, the basic traffic quota can be determined not only based on the basic traffic demand corresponding to the virtual machine, but also based on the service level agreement (Service-Level Agreement, SLA), at this time, determining the basic traffic quota corresponding to each of the at least one virtual machine can include: obtaining the service level agreement corresponding to each of the at least one virtual machine; determining the basic traffic quota corresponding to each of the at least one virtual machine based on the service level agreement.
[0051]
[0050] Specifically, in the process of access operation of the cloud storage area using the at least one virtual machine, in order to accurately determine the basic traffic quota corresponding to each of the at least one virtual machine, the service level agreement SLA corresponding to each of the at least one virtual machine can be obtained, wherein the service level agreement SLA can be determined through the identity of the virtual machine and the preset mapping relationship; after obtaining the service level agreement corresponding to each of the at least one virtual machine, the basic traffic quota corresponding to each of the at least one virtual machine can be determined based on the service level agreement, which effectively ensures the accuracy and reliability of determining the basic traffic quota.
[0052]
[0051] In some examples, the base traffic quota can be determined based on the base traffic requirement and the SLA. In some examples, the base traffic quota can be determined based on the human-computer interaction operation. In some examples, determining the base traffic quota corresponding to each of the at least one virtual machine can include: obtaining a traffic quota configuration page corresponding to each of the at least one virtual machine; determining an execution operation input by a user in the traffic quota configuration page; and determining the base traffic quota corresponding to each of the at least one virtual machine based on the execution operation.
[0053]
[0052] In some examples, the total traffic quota can be stored in a preset area. In some examples, determining the total traffic quota for supporting the access operation of the plurality of virtual machines can include: determining a storage area for storing the total traffic quota; and accessing the storage area to obtain the total traffic quota for supporting the access operation of the plurality of virtual machines.
[0054]
[0053] In some examples, the total traffic quota can be obtained by accessing the preset area or by configuration. In some examples, determining the total traffic quota for supporting the access operation of the plurality of virtual machines can include: displaying a configuration page of the total traffic quota; obtaining an execution operation for configuring the total traffic quota through the configuration page; and configuring the total traffic quota for supporting the access operation of the plurality of virtual machines based on the execution operation.
[0055]
[0054] Step S203: determining the traffic scheduling information corresponding to each of the at least one virtual machine based on the historical traffic usage data and the total traffic quota.
[0056]
[0055] In some examples, the traffic scheduling device can flexibly schedule the traffic resources of the virtual machine. In some examples, the traffic scheduling device can analyze and process the historical traffic usage data and the total traffic quota to determine the traffic scheduling information corresponding to each of the at least one virtual machine.
[0057]
[0056] In some examples, the traffic scheduling information can be determined by a pre-trained machine learning model, and determining the traffic scheduling information corresponding to each of the at least one virtual machine based on the historical traffic usage data and the total traffic quota can include: obtaining the pre-trained machine learning model, inputting the historical traffic usage data and the total traffic quota into the machine learning model, and obtaining the traffic scheduling information corresponding to each of the at least one virtual machine output by the machine learning model.
[0058]
[0057] In other examples, the traffic scheduling information can be determined not only by a pre-trained machine learning model, but also based on the traffic demand corresponding to each of the at least one virtual machine, and determining the traffic scheduling information corresponding to each of the at least one virtual machine based on the historical traffic usage data and the total traffic quota can include: obtaining the traffic demand corresponding to each of the at least one virtual machine; and determining the traffic scheduling information corresponding to each of the at least one virtual machine based on the traffic demand corresponding to each of the at least one virtual machine, the historical traffic usage data, and the total traffic quota.
[0059]
[0058] In some examples, after obtaining the at least one virtual machine, in order to accurately determine the traffic scheduling information corresponding to each of the at least one virtual machine, the traffic demand corresponding to each of the at least one virtual machine can be obtained, and in some examples, the traffic demand corresponding to each of the at least one virtual machine can be obtained through human-computer interaction operation, or the traffic demand can be determined based on the attribute characteristics of the target storage unit corresponding to each of the at least one virtual machine, and in this case, obtaining the traffic demand corresponding to each of the at least one virtual machine can include: determining the attribute characteristics of the target storage unit corresponding to each of the at least one virtual machine; and determining the traffic demand corresponding to each of the at least one virtual machine based on the attribute characteristics of the target storage unit.
[0060]
[0059] Since the traffic demand is related to the attribute characteristics of the target storage unit corresponding to each of the at least one virtual machine, in order to accurately determine the traffic demand corresponding to each of the at least one virtual machine, the attribute characteristics of the target storage unit corresponding to each of the at least one virtual machine can be determined, and the target storage unit is a pre-set cloud storage product, and the attribute characteristics of the target storage unit corresponding to each of the at least one virtual machine can include at least one of the following: capacity information of the target storage unit, the number of target storage units, the number of read / write operations per second (Input / Output Operations Per Second, IOPS) corresponding to the target storage unit.
[0061]
[0062]
[0060] After the attribute features of the target storage units corresponding to the at least one virtual machine are determined, the traffic demands corresponding to the at least one virtual machine can be determined based on the attribute features of the target storage units. In some examples, determining the traffic demands corresponding to the at least one virtual machine based on the attribute features of the target storage units can include: obtaining a mapping relationship between the pre-configured attribute features and the traffic demands; and determining the traffic demands corresponding to the at least one virtual machine based on the mapping relationship and the attribute features of the target storage units, thereby effectively ensuring the accuracy and reliability of determining the traffic demands corresponding to the at least one virtual machine.
[0063]
[0061] After the traffic demands corresponding to the at least one virtual machine are obtained, the traffic demands corresponding to the at least one virtual machine, the historical traffic usage data, and the total traffic quota can be analyzed and processed, so that the traffic scheduling information corresponding to the at least one virtual machine can be stably determined, thereby effectively ensuring the accuracy and reliability of determining the traffic scheduling information.
[0064]
[62] In yet some examples, the traffic scheduling information is determined based on the traffic demands corresponding to the virtual machines, and the traffic scheduling information can also be determined by directly analyzing and processing the historical traffic usage data. At this time, determining the traffic scheduling information corresponding to the at least one virtual machine based on the historical traffic usage data and the total traffic quota can include: determining the historical usage traffic, the historical access queue depth, and the first weight coefficient corresponding to the historical access queue depth corresponding to the at least one virtual machine based on the historical traffic usage data; determining the second weight coefficient for the traffic allocation operation of the at least one virtual machine based on the historical usage traffic, the historical access queue depth, and the first weight coefficient; and determining the traffic scheduling information corresponding to the at least one virtual machine based on the second weight coefficient.
[0065]
[63] For a virtual machine, the historical traffic usage data can reflect the rules or trends of data processing operations of the virtual machine. Therefore, when the traffic scheduling device performs the traffic scheduling operation for the virtual machine, not only the current state of the virtual machine can be considered, but also the historical traffic usage data can be combined to determine the traffic scheduling information. At this time, after the historical traffic usage data is obtained, the historical traffic usage data can be subjected to information extraction operation to obtain the historical usage traffic, the historical access queue depth, and the first weight coefficient corresponding to the historical access queue depth corresponding to the at least one virtual machine. The first weight coefficient can be obtained through human-computer interaction operation or default configuration operation, and the first weight coefficient is used to identify the influence degree of the flow limiting condition on the traffic resource allocation operation.
[0066]
[64] After obtaining the historical traffic usage data, the historical access queue depth, and the first weight coefficient, the historical traffic usage data, the historical access queue depth, and the first weight coefficient can be analyzed and processed to determine a second weight coefficient for the traffic allocation operation of the at least one virtual machine, the second weight coefficient being used to identify the influence degree of the historical usage on the traffic allocation operation. After obtaining the second weight coefficient, the respective traffic scheduling information of the at least one virtual machine can be determined based on the second weight coefficient and the total traffic quota.
[0067]
[65] In some examples, the traffic scheduling information can be determined through a preset mapping relationship. At this time, based on the second weight coefficient and the total traffic quota, determining the respective traffic scheduling information of the at least one virtual machine can include: obtaining a preset mapping relationship between different second weight coefficients and traffic scheduling information pre-configured, and determining the respective traffic scheduling information of the at least one virtual machine based on the preset mapping relationship, the total traffic quota, and the second weight coefficient.
[0068]
[66] In other examples, the traffic scheduling information can not only be determined through a preset mapping relationship, but also be determined in combination with the remaining idle resources of the traffic scheduling device. At this time, based on the second weight coefficient and the total traffic quota, determining the respective traffic scheduling information of the at least one virtual machine can include: obtaining the remaining idle resources based on the total traffic quota; determining allocable idle resources for allocating resources to the virtual machine based on the second weight coefficient and the remaining idle resources. At this time, the allocable idle resources can be determined through the product value between the second weight coefficient and the remaining idle resources. Then, the allocable idle resources and the initial allocated traffic quota can be analyzed and processed to determine the respective traffic scheduling information of the at least one virtual machine, which effectively ensures the accuracy and reliability of determining the traffic scheduling information.
[0069] In detail, when the initial allocation flow quota is alloq, the remaining idle resource is unused, and the second weight coefficient is Wj, the allocable idle resource for allocating resources to the virtual machine can be determined, which can be unused x wj. After obtaining the allocable idle resource unused x wj and the initial allocation flow quota alloq, the sum value between the allocable idle resource and the initial allocation flow quota can be obtained, that is, unused x wj + alloq. Then, the flow scheduling information corresponding to each virtual machine can be determined based on the sum value between the allocable idle resource and the initial allocation flow quota, which effectively ensures the accuracy and reliability of determining the flow scheduling information.
[0070] In step S204, for any one virtual machine, the current allocation flow quota of the virtual machine is scheduled based on the flow scheduling information corresponding to the virtual machine and the basic flow quota corresponding to the virtual machine.
[0071] After obtaining the flow scheduling information and the basic flow quota, for any one virtual machine, the current allocation flow quota of the virtual machine can be scheduled based on the flow scheduling information corresponding to the virtual machine and the basic flow quota corresponding to the virtual machine, so as to improve the utilization rate of flow resources as much as possible while ensuring that the virtual machine completes the preset basic operation. In some examples, the scheduling operation can be implemented by a pre-trained machine learning model. At this time, scheduling the current allocation flow quota of the virtual machine based on the flow scheduling information corresponding to the virtual machine and the basic flow quota corresponding to the virtual machine can include: obtaining the pre-trained machine learning model, inputting the flow scheduling information, the basic flow quota, and the current allocation flow quota of the virtual machine into the machine learning model to obtain the scheduled allocation flow output by the machine learning model, wherein the scheduled allocation flow can be different from the current allocation flow quota.
[0072]
[0070] It should be noted that since the number of virtual machines can be multiple, multiple virtual machines can correspond to different current allocation flow quotas, and the current allocation flow quotas corresponding to multiple virtual machines can be scheduled synchronously or asynchronously by the flow scheduling device. In order to ensure stable data processing when performing unified scheduling operation, the sum of the scheduled allocation flows corresponding to all virtual machines needs to be less than or equal to the total flow quota that can be provided to support access operations of multiple virtual machines.
[0073]
[0071] The traffic scheduling method provided by the embodiment can realize flexible scheduling operation on the current allocated traffic quota of each virtual machine, is beneficial to improving the utilization rate of traffic resource usage, and further improves the practicability of the method.
[0074]
[0072] FIG. 3 is a flowchart of scheduling the current allocated traffic quota of the virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine according to the embodiment of the present disclosure. Referring to FIG. 3, when scheduling the current allocated traffic quota of the virtual machine, the traffic scheduling operation can be realized by a pre-trained machine learning model, and the traffic scheduling operation can also be realized based on the running state of the virtual machine. At this time, for any virtual machine, scheduling the current allocated traffic quota of the virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine can include the following steps.
[0075]
[0073] Step S301: detecting whether any virtual machine has burst access traffic.
[0076]
[0074] When data access operation is performed by using a virtual machine, the virtual machine can correspond to different running states, for example, a burst access state and a normal access state. The burst access state is used to identify that a plurality of data access requests need to be processed in a short time. The normal access state is used to identify that a preset normal number range of data access requests need to be processed.
[0077]
[0075] Since different running states can correspond to different traffic scheduling strategies, in order to ensure the accurate performance of the traffic scheduling operation, after obtaining the current allocated traffic quota and historical traffic usage data of each of the at least one virtual machine, it can be detected whether any one of the virtual machines has burst access traffic. In some examples, whether any one of the virtual machines has burst access traffic can be detected based on the access parameters corresponding to the virtual machine. At this time, detecting whether any one of the virtual machines has burst access traffic can include: obtaining access parameters corresponding to any one of the virtual machines, the access parameters including at least one of: access delay, access queue depth; based on the access parameters, detecting whether any one of the virtual machines has burst access traffic.
[0078]
[0076] Wherein, when the user has the demand for whether there is burst access traffic for the virtual machine, the access parameters corresponding to any one of the virtual machines can be obtained, which can include access delay and / or access queue depth, and the above-mentioned access parameters can be obtained by sensing device detection. After obtaining the access parameters, the access parameters can be analyzed and processed to detect whether any one of the virtual machines has burst access traffic based on the analysis and processing result. In some examples, whether any one of the virtual machines has burst access traffic can be determined by analyzing and processing the access parameters through a machine learning model, or whether any one of the virtual machines has burst access traffic can be determined by analyzing and processing the access parameters through a parameter threshold. At this time, based on the access parameters, detecting whether any one of the virtual machines has burst access traffic can include: obtaining a parameter threshold for analyzing and processing the access parameters; when the access parameters are greater than the parameter threshold, it is determined that the virtual machine has burst access traffic.
[0079]
[0077] Specifically, after obtaining the access parameters, in order to detect whether the virtual machine has burst access traffic based on the access parameters, a parameter threshold for analyzing and processing the access parameters can be obtained, which can be obtained through human-computer interaction operation, or by accessing the preset area or the preset device. After obtaining the parameter threshold, the access parameters and the parameter threshold can be analyzed and compared. When the access parameters are less than or equal to the parameter threshold, it is determined that the virtual machine does not have burst access traffic; when the access parameters are greater than the parameter threshold, it is determined that the virtual machine has burst access traffic, which effectively realizes the detection operation of whether the virtual machine has burst access traffic. In order to facilitate understanding of the detection principle of whether the virtual machine has burst access operation, the access delay and the access queue depth are taken as access parameters as an example for description.
[0080]
[0078] In Example 1, when the access parameter is access delay, whether the virtual machine has burst access traffic can be detected by the access delay. The detection of whether the virtual machine has burst access traffic can include: obtaining the access delay of the virtual machine; and determining that the virtual machine has burst access traffic when the access delay is greater than a preset delay threshold.
[0081]
[0079] Specifically, when the virtual machine is used for access operation, the access delay of the virtual machine can be obtained by using a preset algorithm or a preset detection module. Then, the access delay is compared with the preset delay threshold. When the access delay is greater than the preset delay threshold, it indicates that the traffic resources of the virtual machine cannot meet the data access demand, thereby reducing the efficiency of the data access operation. Therefore, it can be determined that the virtual machine has burst access traffic. Correspondingly, when the access delay is less than or equal to the preset delay threshold, it indicates that the traffic resources of the virtual machine can meet the data access demand, thereby ensuring the quality and efficiency of the data access operation. Therefore, it can be determined that the virtual machine does not have burst access traffic.
[0082]
[0080] In Example 2, when the access parameter is the access queue depth of the virtual machine, whether the virtual machine has burst access traffic can be detected based on the access queue depth of the virtual machine. The detection of whether the virtual machine has burst access traffic can include: obtaining the access queue depth of the virtual machine; and determining that the virtual machine has burst access traffic when the access queue depth is greater than a preset depth threshold.
[0083]
[0081] Specifically, when the virtual machine is used for access operation, the access queue depth of the virtual machine can be obtained by using a preset detection algorithm. Then, the access queue depth is compared with the preset depth threshold. When the access queue depth is greater than the preset depth threshold, it indicates that there are more access requests to be processed by the virtual machine, thereby reducing the efficiency of the data access operation. Therefore, it can be determined that the virtual machine has burst access traffic. Correspondingly, when the access delay is less than or equal to the preset delay threshold, it indicates that there are fewer access requests to be processed by the virtual machine. Therefore, it can be determined that the virtual machine does not have burst access traffic. In this way, the detection of whether the virtual machine has burst access traffic is effectively realized, and then the traffic scheduling operation can be performed based on the detection result.
[0084]
[0082] In the example 3, when the access parameter includes the access delay and the access queue depth of the virtual machine, the burst access traffic of the virtual machine can be detected by the access delay and the access queue depth. The detection of the burst access traffic of any virtual machine can include: obtaining the access delay and the access queue depth of any virtual machine; determining that the virtual machine has the burst access traffic when the access delay is greater than a preset delay threshold or the access queue depth is greater than a preset depth threshold; and determining that the virtual machine does not have the burst access traffic when the access delay is less than or equal to the preset delay threshold and the access queue depth is less than or equal to the preset depth threshold. In this way, the stable detection of the burst access traffic of the virtual machine is also achieved.
[0085]
[0083] In step S302, the current allocated traffic quota and the basic traffic quota are compared when the virtual machine has the burst access traffic.
[0086]
[0084] When it is determined that the virtual machine has the burst access traffic, because there are many access requests to be processed at this time, in order to improve the quality and efficiency of the data access operation and ensure the stable performance of the preset basic operation of the virtual machine, the current allocated traffic quota and the basic traffic quota can be compared to implement the traffic scheduling operation based on the comparison result.
[0087]
[0085] In some examples, when the virtual machine has the burst access traffic, the method in the embodiment can further include: determining an excess traffic quota corresponding to the virtual machine, the excess traffic quota being greater than the basic traffic quota; and adjusting the current allocated traffic quota of the virtual machine to the excess traffic quota through the basic traffic quota.
[0088]
[0086] When the traffic scheduling device allocates traffic resources for the virtual machine, not only the basic traffic quota is allocated for the traffic scheduling device, but also a certain amount of excess available traffic is allocated for the virtual machine. At this time, the virtual machine can correspond to the basic traffic quota and the excess traffic quota, wherein the excess traffic quota is greater than the basic traffic quota, and the excess traffic quota = excess available traffic + basic traffic quota. When the virtual machine has the burst access traffic, in order to further ensure the quality and efficiency of the data processing operation, the excess traffic quota corresponding to the virtual machine can be determined. The determination method of the excess traffic quota is similar to the determination method of the basic traffic quota, and specific reference can be made to the above statements, which will not be repeated here.
[0089]
[0087] When the virtual machine has burst access traffic, the current allocated traffic quota of the virtual machine can be directly adjusted to the excess traffic quota, or the current allocated traffic quota of the virtual machine is adjusted from the basic traffic quota to the excess traffic quota. Compared with restoring the current allocated traffic quota of the virtual machine to the basic traffic quota, since the scheduling quota corresponding to the excess traffic quota is higher than the scheduling quota corresponding to the basic traffic quota, this is conducive to improving the quality and efficiency of the access request processing operation.
[0090]
[0088] Step S303: When the current allocated traffic quota is less than the basic traffic quota, the current allocated traffic quota is restored to the basic traffic quota.
[0091]
[0089] When the current allocated traffic quota is less than the basic traffic quota, it indicates that the current allocated traffic quota of the virtual machine cannot guarantee that the virtual machine implements the preset basic operation. At this time, in order to guarantee that the virtual machine completes the preset basic operation, the current allocated traffic quota can be restored to the basic traffic quota.
[0092]
[0090] When the current allocated traffic quota is greater than or equal to the basic traffic quota, it indicates that although the virtual machine has burst access traffic, the current allocated traffic quota corresponding to the virtual machine can still complete the preset basic operation, and then the current allocated traffic quota corresponding to the virtual machine is kept unchanged.
[0093]
[0091] In still other examples, the method in the embodiment can further include: when the virtual machine does not have burst access traffic, obtaining a preset coefficient for adjusting the current allocated traffic quota; adjusting the current allocated traffic quota based on the preset coefficient to obtain an adjusted allocated traffic quota, the adjusted allocated traffic quota being less than the current allocated traffic quota.
[0094]
[0092] When the detection result is that the virtual machine does not have burst access traffic, it indicates that the current allocated traffic quota corresponding to the virtual machine can meet the access demand corresponding to the virtual machine, and further indicates that the current allocated traffic quota corresponding to the virtual machine is more. At this time, in order to improve the utilization rate of traffic resources, the current allocated traffic quota corresponding to the virtual machine can be adjusted, specifically, a preset coefficient for adjusting the current allocated traffic quota can be obtained, and then the current allocated traffic quota can be adjusted based on the preset coefficient to obtain an adjusted allocated traffic quota, the adjusted allocated traffic quota being less than the current allocated traffic quota.
[0095]
[0093] In the case where the preset coefficient is greater than 0 and less than 1, the product of the preset coefficient and the current allocation flow rate can be determined as the adjusted allocation flow rate, i.e., alloq = alloc_histi * a, which effectively realizes the lowering operation of the current allocation flow rate.
[0096]
[0094] In the case where the preset coefficient is greater than 1, the ratio of the preset coefficient to the current allocation flow rate can be determined as the adjusted allocation flow rate, i.e., alloq = alloc hist / a, which effectively realizes the lowering operation of the current allocation flow rate and is conducive to improving the utilization rate of flow resources.
[0097]
[0095] In this embodiment, by detecting whether any virtual machine has burst access flow, when the virtual machine has burst access flow, the current allocation flow rate is compared with the basic flow rate, and when the current allocation flow rate is less than the basic flow rate, the current allocation flow rate can be restored to the basic flow rate, which effectively realizes the flow scheduling operation based on the running state of the virtual machine and further improves the practicability of the method.
[0098]
[0096] FIG. 4 is a flowchart of the method for restoring the current allocation flow rate to the basic flow rate according to the embodiment of the present disclosure. Based on the above embodiment, referring to FIG. 4, the embodiment provides an implementation scheme for realizing the flow restoration operation based on the idle flow. At this time, the restoration of the current allocation flow rate to the basic flow rate in the embodiment can include the following steps.
[0099]
[0097] Step S401: determining idle traffic for implementing the traffic scheduling operation.
[0098] Since the current allocated traffic quota is less than the basic traffic quota, in order to restore the current allocated traffic quota to the basic traffic quota, some idle traffic needs to be moved for the virtual machine, at this time, the idle traffic for implementing the traffic scheduling operation can be determined, in some instances, the idle traffic can be obtained through other virtual machines, at this time, determining the idle traffic for implementing the traffic scheduling operation can include: identifying whether each of the at least one virtual machine corresponds to idle allocated traffic; when the virtual machine corresponds to idle allocated traffic, the virtual machine with idle allocated traffic is determined as a to-be-scheduled virtual machine; and based on the to-be-scheduled virtual machine, the idle traffic for implementing the traffic scheduling operation is determined.
[0100]
[0099] In order to determine the idle traffic for implementing the traffic scheduling operation through other virtual machines, it can be first identified whether each of the at least one virtual machine corresponds to idle allocated traffic, specifically, the at least one virtual machine can be identified as corresponding to idle allocated traffic through a preset algorithm or a preset detection module, when the identification result is that the virtual machine corresponds to idle allocated traffic, the virtual machine with idle allocated traffic can be determined as a to-be-scheduled virtual machine for implementing the traffic scheduling operation, and the number of the determined to-be-scheduled virtual machine can be one or more.
[0101]
[0100] After the to-be-scheduled virtual machine is determined, the idle traffic for implementing the traffic scheduling operation can be determined based on the to-be-scheduled virtual machine, at this time, based on the to-be-scheduled virtual machine, the idle traffic for implementing the traffic scheduling operation can include: determining the number of the to-be-scheduled virtual machine; when the number of the to-be-scheduled virtual machine is one, the idle allocated traffic of the to-be-scheduled virtual machine can be determined as the idle traffic for implementing the traffic scheduling operation; or, when the number of the to-be-scheduled virtual machine is multiple, the sum of the idle allocated traffics corresponding to all the to-be-scheduled virtual machines can be determined as the idle traffic for implementing the traffic scheduling operation; or, a target scheduling virtual machine can also be determined in the multiple to-be-scheduled virtual machines, wherein the target scheduling virtual machine can be obtained by sorting according to the size of the idle allocated traffic, or the target scheduling virtual machine can be determined by a double selection method, after the target scheduling virtual machine is determined, the idle allocated traffic of the target scheduling virtual machine can be determined as the idle traffic for implementing the traffic scheduling operation, which can stably determine the idle traffic for implementing the traffic scheduling operation.
[0102]
[0101] In some examples, the idle traffic can be obtained not only by other virtual machines, but also by a preset shared traffic pool, and the idle traffic used for implementing the traffic scheduling operation in the embodiment can include: determining a preset shared traffic pool, the preset shared traffic pool being determined by a sum of the total traffic quota and the basic traffic quota corresponding to each of the virtual machines; and determining the idle traffic used for implementing the traffic scheduling operation based on the preset shared traffic pool.
[0103]
[0102] The preset shared traffic pool used for implementing the traffic scheduling operation is preconfigured, and specifically, before obtaining the current allocated traffic quota corresponding to each of the at least one virtual machine, the traffic scheduling device, in addition to allocating the basic traffic quota corresponding to each of the virtual machines, can reserve some resources for implementing the resource scheduling operation, and the reserved idle resources can be configured as the preset shared traffic pool, that is, the preset shared traffic pool = the sum of the total traffic quota - the current allocated traffic quota corresponding to each of the virtual machines. In some examples, the idle resources in the preset shared traffic pool are used to cope with the burst situation of at least one or at least two virtual machines. When the virtual machine appears the burst access traffic situation, the idle traffic used for implementing the traffic scheduling operation can be determined based on the obtained traffic resources in the preset shared traffic pool, which effectively implements the idle traffic obtained by the preset shared traffic pool and guarantees the flexibility and reliability of obtaining the idle traffic.
[0104]
[0103] Step S402: determining the difference between the current allocated traffic quota and the basic traffic quota as the to-be-scheduled quota.
[0105]
[0104] Since the basic traffic quota is less than the current allocated traffic quota, after obtaining the current allocated traffic quota and the basic traffic quota, the current allocated traffic quota and the basic traffic quota can be analyzed and compared to determine the to-be-scheduled quota. In some examples, the to-be-scheduled quota = the basic traffic quota - the current allocated traffic quota, that is, the to-be-scheduled quota is equal to the traffic difference between the basic traffic quota and the current allocated traffic quota.
[0106]
[0105] Step S403: in the idle traffic, the target idle traffic corresponding to the to-be-scheduled quota is allocated to the virtual machine, so that the virtual machine is restored from the current allocated traffic quota to the basic traffic quota.
[0107]
[0106] In some examples, when the idle traffic is obtained through the preset shared traffic pool, since the preset shared traffic pool at least includes idle resources capable of supporting preset basic operations of one virtual machine, that is, the traffic included in the preset shared traffic pool is greater than or equal to the target idle traffic corresponding to the to-be-scheduled quota, at this time, after the to-be-scheduled quota and the idle traffic are obtained, the target idle traffic corresponding to the to-be-scheduled quota in the idle traffic is allocated to the virtual machine, so that the virtual machine can be restored from the current allocated traffic quota to the basic traffic quota, thereby effectively restoring the current allocated traffic quota to the basic traffic quota.
[0108]
[0107] In other examples, when the idle traffic is determined through idle allocated traffic of other virtual machines, at this time, the idle traffic can be greater than or equal to the target idle traffic corresponding to the to-be-scheduled quota, or can be less than the target idle traffic corresponding to the to-be-scheduled quota, when the idle traffic is greater than or equal to the target idle traffic corresponding to the to-be-scheduled quota, the target idle traffic corresponding to the to-be-scheduled quota in the idle traffic can be directly allocated to the virtual machine, and it can be understood that the target idle traffic can come from one virtual machine or multiple virtual machines, so that the virtual machine can be restored from the current allocated traffic quota to the basic traffic quota, thereby effectively restoring the current allocated traffic quota to the basic traffic quota.
[0109]
[0108] When the idle traffic is less than the target idle traffic corresponding to the to-be-scheduled quota, not only all the idle traffic can be allocated to the virtual machine, but also the preset shared traffic pool can be used to continue the traffic scheduling operation to restore the virtual machine from the current allocated traffic quota to the basic traffic quota, so that the virtual machine can complete the preset basic operation.
[0110]
[0109] In this embodiment, the idle traffic used for the traffic scheduling operation is determined, then the difference between the current allocated traffic quota and the basic traffic quota is determined as the to-be-scheduled quota, and in the idle traffic, the target idle traffic corresponding to the to-be-scheduled quota is allocated to the virtual machine, so that the virtual machine is restored from the current allocated traffic quota to the basic traffic quota, thereby effectively scheduling the traffic, ensuring that the virtual machine can complete the preset basic operation when the virtual machine has burst traffic, and further improving the practicability of the method.
[0111]
[0110] FIG. 5 is a flowchart of scheduling the current allocated traffic quota of the virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine according to an embodiment of the present disclosure. Based on the above embodiment, referring to FIG. 5, the embodiment further provides an implementation scheme for implementing the traffic scheduling operation based on the remaining idle traffic and the excess traffic quota. At this time, the method in the embodiment further includes the following steps.
[0112]
[0111] Step S501: Obtain the remaining idle traffic.
[0113]
[0112] When the traffic scheduling information is determined based on the second weight information, in order to be able to implement the traffic scheduling operation, the remaining idle traffic can be obtained, which can be determined by the sum of the traffic quota and the current allocated traffic quota corresponding to each of the at least one virtual machine. Specifically, the remaining idle traffic can be determined by the difference between the sum of the traffic quota and the sum of the current allocated traffic quota corresponding to all virtual machines.
[0114]
[0113] Step S502: Determine the excess traffic quota corresponding to the virtual machine.
[0115]
[0114] In order to accurately implement the traffic scheduling operation, the excess traffic quota corresponding to the virtual machine can be determined, wherein the excess traffic quota can be determined by human-computer interaction operation or service level agreement (SLA). Specifically, the specific implementation method of the excess traffic quota is similar to the specific implementation process and implementation effect of the basic traffic quota in the above embodiment. For details, refer to the above description, which will not be repeated here.
[0116]
[0115] Step S503: Schedule the current allocated traffic quota of the corresponding virtual machine based on the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota.
[0117]
[0116] After obtaining the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota, the traffic scheduling operation can be implemented based on the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota. In some examples, the traffic scheduling operation can be obtained through a pre-trained machine learning model, and at this time, scheduling the current allocated traffic quota of the corresponding virtual machine based on the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota can include: obtaining the pre-trained machine learning model, inputting the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota into the machine learning model, obtaining the scheduled quota output by the machine learning model, and then scheduling the current allocated traffic quota of the virtual machine with the scheduled quota as the target, thereby effectively implementing the traffic scheduling operation.
[0118]
[0117] In other examples, not only can the traffic scheduling operation be implemented through a pre-trained machine learning model, but also the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota can be processed using a preset algorithm to determine the traffic scheduling operation, and at this time, scheduling the current allocated traffic quota of the corresponding virtual machine based on the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota can include: obtaining a product value of the remaining idle traffic and the second weight coefficient; determining a traffic quota sum of the product value and the current allocated traffic quota; and scheduling the current allocated traffic quota of the corresponding virtual machine based on the traffic quota sum and the excess traffic quota.
[0119]
[0118] Among them, the remaining idle traffic can be the idle resource left after the traffic resource allocation operation is performed for multiple virtual machines, and after obtaining the remaining idle traffic unused and the second weight coefficient wj, the product of the remaining idle traffic unused and the second weight coefficient wj can be processed to obtain a product value unused x wj, and then the traffic quota sum of the product value and the current allocated traffic quota alloq can be determined, that is, unused x wj + alloq.
[0120]
[0119] After obtaining the sum of traffic quota unused x w; + alloq and the excess traffic quota res_burstj, the sum of traffic quota and the excess traffic quota can be analyzed and processed, and then the current allocated traffic quota of the virtual machine can be scheduled based on the analysis and processing result. In some examples, based on the sum of traffic quota and the excess traffic quota, the current allocated traffic quota of the corresponding virtual machine can be scheduled, which can include: comparing the sum of traffic quota with the excess traffic quota; when the sum of traffic quota is less than the excess traffic quota value, the current allocated traffic quota of the virtual machine is adjusted to the sum of traffic quota; when the sum of traffic quota is greater than the excess traffic quota value, the current allocated traffic quota of the virtual machine is adjusted to the excess traffic quota value.
[0121]
[0120] Specifically, after obtaining the sum of traffic quota unused x w; + alloq and the excess traffic quota res_burstj, the sum of traffic quota and the excess traffic quota can be analyzed and compared. When unused x w; + alloq > res_burstj, the current allocated traffic quota of the virtual machine can be adjusted to the excess traffic quota value, that is, alloq <- res_burstj; when unused x w; + alloq < res_burstj, the current allocated traffic quota of the virtual machine can be adjusted to the sum of traffic quota, that is, alloq <- unused x w; + alloq, thereby effectively implementing the traffic scheduling operation.
[0122]
[0121] In this embodiment, by obtaining the remaining idle traffic, the excess traffic quota corresponding to the virtual machine is determined, and the current allocated traffic quota of the corresponding virtual machine is scheduled based on the current allocated traffic quota, the remaining idle traffic, the second weight coefficient and the excess traffic quota, thereby effectively realizing the traffic scheduling operation combined with the influence degree of historical traffic usage data, and further improving the flexibility and reliability of the traffic scheduling operation.
[0123]
[0122] Specifically, as shown in FIG. 6, the application provides a traffic scheduling method. The execution subject of the traffic scheduling method is a traffic scheduling device. The traffic scheduling device can be connected to a cloud storage area and one or more virtual machines as a storage proxy node, so that the virtual machine corresponding to the user can access the cloud storage area (which can be a remote storage) through the storage proxy node. The access operation can include data reading and writing operations, etc. Specifically, the traffic scheduling method can include the following steps.
[0124]
[0123] Step 1: In the TO period, obtain the total amount of traffic quota that can be scheduled by the traffic scheduling device to support access operations of multiple virtual machines.
[0125]
[0124] The TO period can be the first period in which the traffic scheduling device schedules the traffic quota allocated to the virtual machine.
[0126]
[0125] Step 2: The traffic scheduling device allocates corresponding basic traffic quota and excess traffic quota to each virtual machine connected based on the total amount of traffic quota.
[0127]
[0126] In order to ensure that each virtual machine can provide basic level performance and complete the preset basic level operation, the traffic scheduling device can allocate corresponding basic traffic quota to each virtual machine connected based on the total amount of traffic quota. Specifically, the sum of the basic traffic quota allocated to all virtual machines is less than or equal to the total amount of traffic quota. In addition, the basic traffic quota and the excess traffic quota can be determined by a service level agreement (SLA). The service level agreements (SLAs) corresponding to different virtual machines can be the same or different.
[0128]
[0127] In addition, the above-mentioned basic traffic quota can ensure that each virtual machine can complete the basic level performance. The implementation of the basic level performance can include two aspects: (i) When the virtual machine has sufficient I / O parallelism, it can reach the number of read / write operations per second (IOPS) or bit rate (BPS) of the basic level; (ii) Since the delay information determines the maximum throughput that the application can reach, delay guarantee is very important. At this time, when the virtual machine runs within the IOPS / BPS range of the basic level, the average read / write delay remains within the preset range, that is, the delay requirement is met.
[0129]
[0128] Step 2: Obtain the actual usage quota corresponding to each virtual machine.
[0130]
[0129] Wherein, since the data processing needs of the user at different times are different, the actual usage quota of each virtual machine often does not reach the basic traffic quota, that is, the actual usage quota is less than the basic traffic quota. In order to understand the rules and trends of the data processing operation of the virtual machine, the actual usage quota of each virtual machine can be obtained through a preset detector.
[0131]
[0130] Step 3: Based on the actual usage quota, determine the usage data of the virtual machine in the T0 period.
[0132]
[0131] Wherein, the usage data can include the number of requests processed in the T0 period, the data processing request rate in the T0 period, and the usage data of the virtual machine in the T0 period is stored.
[0133]
[0132] Step 4: In the T1 period, the traffic scheduling device performs traffic allocation operation for the virtual machine based on the historical traffic usage data of the virtual machine in the T0 period and the total traffic quota to obtain the respective current allocation traffic quota of the virtual machine.
[0134]
[0133] In some examples, the current allocation traffic quota is often less than the basic traffic quota.
[0135]
[0134] Step 5: Detect whether any virtual machine has burst access traffic.
[0136]
[0135] In some examples, detecting whether any virtual machine has burst access traffic can include: obtaining the access delay of any virtual machine; when the access delay is greater than a preset delay threshold, it is determined that the virtual machine has burst access traffic; when the access delay is less than or equal to the preset delay threshold, it is determined that the virtual machine does not have burst access traffic.
[0137]
[0136] In other examples, detecting whether any virtual machine has burst access traffic can include: obtaining the access queue depth of any virtual machine; when the access queue depth is greater than a preset depth threshold, it is determined that the virtual machine has burst access traffic; when the access queue depth is less than or equal to the preset depth threshold, it is determined that the virtual machine does not have burst access traffic.
[0138]
[0137] Step 6: When the virtual machine has burst access traffic, compare the current allocation traffic quota with the basic traffic quota, and when the current allocation traffic quota is less than the basic traffic quota, perform traffic scheduling operation on the current allocation traffic quota.
[0139]
[0138] The flow scheduling device can include a dynamic rate meter, a global rate meter, and a calculation module. The dynamic rate meter can be in communication with each virtual machine, and the number of dynamic rate meters can correspond to the number of virtual machines, for performing dynamic scheduling of the flow quota of the virtual machine. The global rate meter is used to dynamically adjust the flow quota of the virtual machine based on the total flow quota. The calculation module obtains historical flow usage data using a data detector, and determines the flow scheduling of the current allocated flow quota of the virtual machine based on the historical flow usage data and the total flow quota.
[0140]
[0139] In addition, the flow scheduling device can include not only the above-mentioned modules, but also an I / O processing engine. The I / O processing engine is used to obtain the access request to be processed through the dynamic rate meter and the global rate meter, and perform corresponding data access operations based on the access request, and can obtain the data access result.
[0141]
[0140] Specifically, the flow scheduling operation on the current allocated flow quota can include: the calculation module obtains the total flow quota and the current allocated flow quota through the global rate meter, and obtains historical flow usage data using a data detector; then the calculation module calculates the allocation quota based on the total flow quota, the current allocated flow quota, and the historical flow usage data, to obtain flow scheduling information; and then the flow scheduling information is transmitted to the dynamic rate meter, which can schedule the current allocated flow quota of the virtual machine based on the flow scheduling information, to restore the current allocated flow quota to the basic flow quota, or to restore the current allocated flow quota to the preset excess flow quota.
[0142]
[0141] In addition, the calculation module calculates the allocation quota based on the total flow quota, the current allocated flow quota, and the historical flow usage data to obtain flow scheduling information, which can include: determining the idle flow for implementing the flow scheduling operation, which can be obtained from other virtual machines with idle flow or a preset shared flow pool; then determining the difference between the current allocated flow quota and the basic flow quota as the to-be-scheduled quota; in the idle flow, the target idle flow corresponding to the to-be-scheduled quota is allocated to the virtual machine, so that the virtual machine is restored from the current allocated flow quota to the basic flow quota; when the current allocated flow quota is equal to the basic flow quota, the current allocated flow quota remains unchanged.
[0143]
[0142] Wherein, when the idle traffic is obtained by other virtual machines with idle traffic, the current virtual machine with exhausted resources can try to take additional allocated idle resources from other virtual machines, since the traffic scheduling operation is implemented in a thread, there is no thread synchronization overhead. Specifically, the other virtual machines can be one or more virtual machines with the most additional resources, when the number of other virtual machines is multiple, the multiple virtual machines can be sorted based on idle additional resources, and then the target virtual machine for implementing the traffic scheduling resource is determined based on the sorted virtual machines; or, the other virtual machines can determine the target virtual machine by power-of-two-choices, as long as the accuracy and reliability of determining the target virtual machine for implementing the traffic scheduling operation can be ensured.
[0144]
[0143] In addition, if the virtual machine with burst access traffic consumes all the allocated traffic resources, in order to ensure the preset basic operation of the virtual machine, a flexible traffic scheduling operation can be performed on the virtual machine, specifically, a preset shared traffic pool can be used to determine the idle resources, a portion of idle resource traffic sufficient for two virtual machines to recover the basic traffic quota is reserved in the preset shared traffic pool, which not only greatly helps the virtual machine to implement the preset basic operation or basic level performance, but also can cope with or support the burst access traffic of the virtual machine, further improving the practicality of the method.
[0145]
[0144] Step 7: When the virtual machine does not have burst access traffic, a preset coefficient for adjusting the current allocated traffic quota is obtained, and the current allocated traffic quota is adjusted based on the preset coefficient to obtain an adjusted allocated traffic quota, wherein the adjusted allocated traffic quota is less than the current allocated traffic quota.
[0146]
[0145] Wherein, when the preset coefficient for adjusting the current allocated traffic quota is a, and the current allocated traffic quota is alloc_hist, the adjusted allocated traffic quota can be obtained, that is, alloq = alloc_histix a, thereby effectively implementing the traffic scheduling operation.
[0147]
[0146] In addition, the calculation module can actively collect historical traffic usage data, and can perform resource allocation operation according to the demand ratio of the user, it should be noted that the resource allocation operation needs to meet the following restrictions:
[0148] (i) When performing the resource allocation operation, the sum of the allocated current allocated traffic quota is less than or equal to the sum of the traffic quota.
[0149] (ii) Once it is found that the virtual machine has burst access traffic, it means that the resource corresponding to the virtual machine is insufficient, and the current allocated traffic quota of the virtual machine is restored to the basic traffic quota, so as to ensure the normal operation of the basic level performance.
[0150]
[0147] When the virtual machine does not have burst access traffic, the calculation module calculates the allocation quota based on the total traffic quota, the current allocated traffic quota and the historical traffic usage data, and obtains the traffic scheduling information, which can include: based on the historical traffic usage data, determining the historical usage traffic, the historical access queue depth corresponding to each of the at least one virtual machine, and the first weight coefficient corresponding to the historical access queue depth; based on the historical usage traffic, the historical access queue depth and the first weight coefficient, determining the second weight coefficient for the traffic allocation operation of the at least one virtual machine; based on the second weight coefficient, determining the traffic scheduling information corresponding to each of the at least one virtual machine.
[0151]
[0148] Specifically, after obtaining the traffic scheduling information, the current allocated traffic quota can be adjusted based on the traffic scheduling information, which can specifically include: obtaining the remaining idle traffic; determining the excess traffic quota corresponding to the virtual machine; determining the product value of the remaining idle traffic and the second weight coefficient; determining the traffic quota sum of the product value and the current allocated traffic quota; comparing the traffic quota sum with the excess traffic quota; when the traffic quota sum is less than the excess traffic quota value, the current allocated traffic quota of the virtual machine is adjusted to the traffic quota sum; when the traffic quota sum is greater than the excess traffic quota value, the current allocated traffic quota of the virtual machine is adjusted to the excess traffic quota value.
[0149] Wherein, the remaining idle traffic can be unused - unused - alloq, the unused can be determined by the total traffic quota total_alloc and the preset reserved resource reserved, that is, unused = total_alloc - reserved, and the excess traffic quota is res_bursti T When the first weight coefficient is weight_throttle, the historical access queue depth is throttle, and the historical usage traffic is usage, the second weight coefficient for the traffic allocation operation of the at least one virtual machine can be determined based on the historical usage traffic, the historical access queue depth and the first weight coefficient, that is, weight = usage + throttle x weight_throttle
[0152] £ usage + £ throttle] x weight_throttle °
[0153]
[0150] After obtaining the second weight coefficient, the respective traffic scheduling information of the at least one virtual machine can be determined based on the second weight coefficient, so that the scheduled traffic quota can be obtained. In some examples, the scheduled traffic quota can be obtained by the following formula: alloc; «- min(alloc; + unused x w;, res_burst;)
[0154]
[0151] It should be noted that when the traffic scheduling device schedules traffic for the virtual machine, no matter how the behavior data of the current virtual machine or other virtual machines is, even if the virtual machine triggers a burst situation, each virtual machine can complete the preset basic operation based on the basic traffic quota (i.e., can complete the basic level IOPS and BPS), and can maintain bounded delay information, and will not exceed the excess traffic quota corresponding to the virtual machine.
[0155]
[0152] The technical method provided by the application embodiment can realize dynamic resource allocation operation for the virtual machine, fully release the traffic resources of the traffic scheduling device under the premise of guaranteeing the preset basic operation (basic 10 operation) of the virtual machine, thereby meeting the demand of burst traffic to the greatest extent. Specifically, by using the dynamic rate meter and the global rate meter, not only the dynamic scheduling operation of the traffic quota of the virtual machine is realized, but also the dynamic scheduling operation of each virtual machine is realized based on the respective corresponding basic traffic quota, so that the virtual machine can realize the respective corresponding preset basic operation, the performance isolation operation of the basic level performance is realized, and the competition situation of the traffic resources between the virtual machines can be prevented. In addition, when the virtual machine appears burst access traffic, the current traffic quota of the virtual machine can be flexibly adjusted in the next scheduling period, i.e., the current traffic quota of the virtual machine is restored to the basic traffic quota. Specifically, the idle resources of the basic demand can be scheduled to the virtual machine with burst traffic for use by using the dynamic adjustment strategy. In this way, not only the basic performance is guaranteed, but also the upper limit of the overall performance (the ability to support burst access) of the storage agent is maximized, which further improves the practicability of the method and is conducive to the promotion and application of the market.
[0156]
[0153] Figure 7 is a structural schematic diagram of a flow scheduling device according to an embodiment of the present disclosure; referring to Figure 7, the embodiment provides a flow scheduling device, which is in communication connection with at least one virtual machine; the flow scheduling device can include the following modules.
[0157]
[0154] The first obtaining module 11 is configured to obtain current allocated flow quota and historical flow usage data of each of the at least one virtual machine.
[0158]
[0155] The first determining module 12 is configured to determine a basic flow quota of each of the at least one virtual machine and a total flow quota for supporting access operations of the plurality of virtual machines, the basic flow quota being used for a preset basic operation of a single virtual machine.
[0159]
[0156] The first determining module 12 is further configured to determine flow scheduling information of each of the at least one virtual machine based on the historical flow usage data and the total flow quota.
[0160]
[0157] The first processing module 13 is configured to, for any one virtual machine, schedule the current allocated flow quota of the virtual machine based on the flow scheduling information of the virtual machine and the basic flow quota of the virtual machine.
[0161]
[0158] In some examples, when the first processing module 13 schedules the current allocated flow quota of the virtual machine based on the flow scheduling information of the virtual machine and the basic flow quota of the virtual machine, the first processing module 13 is configured to perform: detecting whether the virtual machine has burst access flow; when the virtual machine has burst access flow, comparing the current allocated flow quota with the basic flow quota; and when the current allocated flow quota is less than the basic flow quota, restoring the current allocated flow quota to the basic flow quota.
[0162]
[0159] In some examples, the first processing module 13 in the embodiment is configured to perform: when the virtual machine does not have burst access flow, obtaining a preset coefficient for adjusting the current allocated flow quota; and adjusting the current allocated flow quota based on the preset coefficient to obtain an adjusted allocated flow quota, the adjusted allocated flow quota being less than the current allocated flow quota.
[0163]
[0160] In some examples, when the first processing module 13 in the embodiment detects whether the burst access traffic occurs in any one virtual machine, the first processing module 13 is configured to perform: obtaining an access parameter corresponding to any one virtual machine, the access parameter comprising at least one of: access delay, access queue depth; and detecting whether the burst access traffic occurs in any one virtual machine based on the access parameter.
[0164]
[0161] In some examples, when the first processing module 13 in the embodiment detects whether the burst access traffic occurs in any one virtual machine based on the access parameter, the first processing module 13 is configured to perform: obtaining a parameter threshold for analyzing and processing the access parameter; and determining that the burst access traffic occurs in the virtual machine when the access parameter is greater than the parameter threshold.
[0165]
[0162] In some examples, when the burst access traffic occurs in the virtual machine, the first determining module 12 and the first processing module 13 in the embodiment are configured to perform the following steps: the first determining module 12 is configured to determine an excess traffic quota corresponding to the virtual machine, the excess traffic quota being greater than a basic traffic quota; and the first processing module 13 is configured to adjust the current allocated traffic quota of the virtual machine to the excess traffic quota through the basic traffic quota.
[0166]
[0163] In some examples, when the first processing module 13 restores the current allocated traffic quota to the basic traffic quota, the first processing module 13 is configured to perform: determining idle traffic for implementing the traffic scheduling operation; determining a difference between the current allocated traffic quota and the basic traffic quota as a to-be-scheduled quota; and allocating target idle traffic corresponding to the to-be-scheduled quota to the virtual machine in the idle traffic, so that the virtual machine is restored from the current allocated traffic quota to the basic traffic quota.
[0167]
[0164] In some examples, when the first processing module 13 determines the idle traffic for implementing the traffic scheduling operation, the first processing module 13 is configured to perform: identifying whether at least one virtual machine respectively corresponds to idle allocated traffic; determining a to-be-scheduled virtual machine as a virtual machine having idle allocated traffic when the virtual machine corresponds to the idle allocated traffic; and determining the idle traffic for implementing the traffic scheduling operation based on the to-be-scheduled virtual machine.
[0168]
[0165] In some examples, when the first processing module 13 determines the idle traffic for implementing the traffic scheduling operation, the first processing module 13 is configured to perform: determining a preset shared traffic pool, the preset shared traffic pool being determined by a sum of the total traffic quota and the base traffic quota corresponding to each of the plurality of virtual machines; and determining the idle traffic for implementing the traffic scheduling operation based on the preset shared traffic pool.
[0169]
[0166] In some examples, when the first determining module 12 determines the traffic scheduling information corresponding to each of the at least one virtual machine based on the historical traffic usage data and the total traffic quota, the first determining module 12 is configured to perform: determining, based on the historical traffic usage data, historical usage traffic, historical access queue depth, and a first weight coefficient corresponding to the historical access queue depth, corresponding to each of the at least one virtual machine; determining, based on the historical usage traffic, the historical access queue depth, and the first weight coefficient, a second weight coefficient for performing the traffic allocation operation on the at least one virtual machine; and determining, based on the second weight coefficient, the traffic scheduling information corresponding to each of the at least one virtual machine.
[0170]
[0167] In some examples, the first obtaining module 11, the first determining module 12, and the first processing module 13 in the embodiment are configured to perform the following steps: the first obtaining module 11 is configured to obtain the remaining idle traffic; the first determining module 12 is configured to determine the excess traffic quota corresponding to the virtual machine; and the first processing module 13 is configured to schedule the current allocated traffic quota of the corresponding virtual machine based on the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota.
[0171]
[0168] In some examples, when the first determining module 12 schedules the current allocated traffic quota of the corresponding virtual machine based on the current allocated traffic quota, the remaining idle traffic, the second weight coefficient, and the excess traffic quota, the first determining module 12 is configured to perform: obtaining a product value of the remaining idle traffic and the second weight coefficient; determining a sum of the product value and the traffic quota of the current allocated traffic quota; and scheduling the current allocated traffic quota of the corresponding virtual machine based on the sum of the traffic quota and the excess traffic quota.
[0172]
[0169] In some examples, when the first determining module 12 schedules the current allocated traffic quota of the corresponding virtual machine based on the sum of traffic quotas and the excess traffic quota, the first determining module 12 is configured to perform: comparing the sum of traffic quotas with the excess traffic quota; when the sum of traffic quotas is less than the excess traffic quota, adjusting the current allocated traffic quota of the virtual machine to the sum of traffic quotas; when the sum of traffic quotas is greater than the excess traffic quota, adjusting the current allocated traffic quota of the virtual machine to the excess traffic quota.
[0173]
[0170] In some examples, when the first determining module 12 determines the traffic scheduling information corresponding to each of the at least one virtual machine based on the historical traffic usage data and the sum of traffic quotas, the first determining module 12 is configured to perform: obtaining the traffic demand corresponding to each of the at least one virtual machine; determining the traffic scheduling information corresponding to each of the at least one virtual machine based on the traffic demand corresponding to each of the at least one virtual machine, the historical traffic usage data and the sum of traffic quotas.
[0174]
[0171] In some examples, when the first determining module 12 obtains the traffic demand corresponding to each of the at least one virtual machine, the first determining module 12 is configured to perform: determining the attribute characteristics of the target storage unit corresponding to each of the at least one virtual machine; determining the traffic demand corresponding to each of the at least one virtual machine based on the attribute characteristics of the target storage unit.
[0175]
[0172] In some examples, when the first determining module 12 determines the basic traffic quota corresponding to each of the at least one virtual machine, the first determining module 12 is configured to perform: obtaining the service level agreement corresponding to each of the at least one virtual machine; determining the basic traffic quota corresponding to each of the at least one virtual machine based on the service level agreement.
[0176]
[0173] The traffic scheduling apparatus shown in FIG. 7 can perform the method of the embodiments shown in FIGS. 1-6, and the parts of the present embodiment not described in detail can refer to the related descriptions of the embodiments shown in FIGS. 1-6. The execution process and technical effects of the technical solution can refer to the descriptions in the embodiments shown in FIGS. 1-6, and will not be described here again.
[0177]
[0174] In a possible design, the structure of the traffic scheduling apparatus shown in FIG. 7 can be implemented as an electronic device. Referring to FIG. 8, the traffic scheduling apparatus in this embodiment can be implemented as an electronic device, which is communicatively connected with at least one virtual machine. Specifically, the electronic device can include a first processor 21 and a first memory 22. The first memory 22 is configured to store a program for implementing the traffic scheduling method provided in the embodiment shown in FIG. 2, and the first processor 21 is configured to execute the program stored in the first memory 22.
[0178]
[0175] The program includes one or more computer instructions, and when the one or more computer instructions are executed by the first processor 21, the following steps can be implemented: obtaining current allocated traffic quota and historical traffic usage data of each virtual machine; determining a basic traffic quota corresponding to each virtual machine and a total traffic quota for supporting access operations of the virtual machines, the basic traffic quota being used for implementing a preset basic operation of a single virtual machine; determining traffic scheduling information corresponding to each virtual machine based on the historical traffic usage data and the total traffic quota; and scheduling the current allocated traffic quota of any virtual machine based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine.
[0179]
[0176] Further, the first processor 21 is further configured to execute all or part of the steps in the embodiment shown in FIG. 2. The structure of the electronic device can further include a first communication interface 23, which is configured to enable the electronic device to communicate with other devices or a communication network.
[0180]
[0177] In addition, the embodiment of the present application provides a computer storage medium for storing computer software instructions for an electronic device, which includes a program for implementing the traffic scheduling method in the method embodiment shown in FIG. 2.
[0181]
[0178] In addition, the embodiment of the present application provides a computer program product, which includes: a computer program, when the computer program is executed by a processor of an electronic device, the processor executes the traffic scheduling method in the method embodiment shown in FIG. 2.
[0182]
[0179] It should be noted that the user information (including but not limited to user equipment information, user personal information, etc.) and data (including but not limited to data for analysis, stored data, displayed data, etc.) involved in the present disclosure are all information and data authorized by the user or authorized by all parties, and the collection, use and processing of related data need to comply with relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation portal for user to choose authorization or refusal.
[0183]
[0180] The apparatus embodiments described above are only schematic, and units shown as separate components can or can not be physically separate, and components shown as units can or can not be physical units, i.e., can be located in one place or distributed on multiple network units. Some or all of the modules can be selected to achieve the purpose of the embodiment scheme according to actual needs. Those skilled in the art can understand and implement without creative labor.
[0184]
[0181] From the description of the above embodiments, those skilled in the art can clearly understand that the embodiments can be realized by means of general hardware platform as necessary, and of course can also be realized by means of combination of hardware and software. Based on such understanding, the above technical solutions can be embodied in the form of computer program product, and the present disclosure can be embodied in the form of computer program product implemented on one or more computer usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.
[0185]
[0182] The present disclosure is described with reference to flowcharts and / or block diagrams of methods, apparatus (system) and computer program products according to embodiments of the present disclosure. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and the combination of flows and / or blocks in the flowcharts and / or block diagrams can be realized by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor or other programmable device to produce a machine, so that the instructions executed by the processor of the computer or other programmable device produce the apparatus for implementing the functions specified in one or more flows or one or more blocks in the flowcharts.
[0186]
[0183] These computer program instructions can also be stored in a computer- readable memory that can direct a computer or other programmable apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the function specified in the flowchart or flowcharts and / or block or blocks of the block diagrams. These computer program instructions can also be loaded onto a computer or other programmable apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart or flowcharts and / or block or blocks of the block diagrams.
[0187]
[0184] In one typical arrangement, the computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory. The memory can include non-persistent memory, random access memory (RAM), and / or non-volatile memory, such as read only memory (ROM) or flash memory, in a computer readable medium. The memory is an example of computer readable media.
[0188]
[0185] Computer readable media includes permanent and non-permanent, removable and non-removable media implemented in any method or technology for data storage. Data can be computer readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), digital versatile disc (DVD), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store data accessible to a computing device. According to the definition herein, computer readable media does not include transitory media, such as modulated data signals and carrier waves.
[0189]
[0186] Finally, it should be noted that the above examples are only used to illustrate the technical solutions of the present disclosure, and are not intended to limit the present disclosure; although the present disclosure has been described in detail with reference to the foregoing examples, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing examples, or make equivalent replacements for part or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present disclosure.
Claims
Claims 1. A traffic scheduling method, comprising: Obtain the current allocated traffic quota and historical traffic usage data for at least one virtual machine; Determine the basic traffic quota for each of at least one virtual machine and the total traffic quota used to support access operations for multiple virtual machines. The basic traffic quota is used to enable a single virtual machine to perform preset basic operations. Based on the historical traffic usage data and the total traffic quota, determine the traffic scheduling information for each of at least one virtual machine. For any given virtual machine, the current allocated traffic quota of the virtual machine is scheduled based on the traffic scheduling information and the basic traffic quota corresponding to the virtual machine.
2. The method according to claim 1, wherein, The current allocated traffic quota of the virtual machine is scheduled based on the traffic scheduling information corresponding to the virtual machine and the basic traffic quota corresponding to the virtual machine, including: detecting whether any virtual machine experiences a sudden surge in access traffic; when the virtual machine experiences a sudden surge in access traffic, comparing the current allocated traffic quota with the basic traffic quota; when the current allocated traffic quota is less than the basic traffic quota, restoring the current allocated traffic quota to the basic traffic quota.
3. The method according to claim 2, further comprising: When there is no sudden surge in access traffic to the virtual machine, obtain a preset coefficient for adjusting the currently allocated traffic quota; The current allocated traffic quota is adjusted based on the preset coefficient to obtain an adjusted allocated traffic quota, wherein the adjusted allocated traffic quota is less than the current allocated traffic quota.
4. The method according to claim 2 or 3, wherein, Detecting whether any virtual machine experiences a sudden surge in access traffic includes: obtaining access parameters corresponding to any virtual machine, wherein the access parameters include at least one of the following: access latency, access queue depth; and based on the access parameters, detecting whether any virtual machine experiences a sudden surge in access traffic.
5. The method according to claim 4, wherein, Based on the access parameters, detecting whether any virtual machine experiences a sudden surge in access traffic includes: obtaining a parameter threshold for analyzing and processing the access parameters; and determining that the virtual machine experiences a sudden surge in access traffic when the access parameters are greater than the parameter threshold.
6. The method according to claim 2 or 3, wherein, When the virtual machine experiences a sudden surge in access traffic, the method further includes: determining the excess traffic quota corresponding to the virtual machine, wherein the excess traffic quota is greater than the basic traffic quota; and adjusting the current allocated traffic quota of the virtual machine to the excess traffic quota through the basic traffic quota.
7. The method according to claim 2 or 3, wherein, Restoring the currently allocated traffic quota to the basic traffic quota includes: determining idle traffic for implementing traffic scheduling operations; determining the difference between the currently allocated traffic quota and the basic traffic quota as the quota to be scheduled; and allocating the target idle traffic corresponding to the quota to be scheduled to the virtual machine from the idle traffic, so that the virtual machine is restored from the currently allocated traffic quota to the basic traffic quota.
8. The method according to claim 7, wherein, Determining the available traffic for traffic scheduling operations includes: identifying whether at least one virtual machine has available allocated traffic; and when a virtual machine has available allocated traffic, determining the virtual machine with available allocated traffic as the virtual machine to be scheduled. Based on the virtual machine to be scheduled, determine the idle traffic used to implement traffic scheduling operations.
9. The method according to claim 7, wherein, Determining the available traffic for traffic scheduling operations includes: determining a preset shared traffic pool, wherein the preset shared traffic pool is determined by the sum of the traffic quotas and the basic traffic quotas corresponding to each of the multiple virtual machines; and determining the available traffic for traffic scheduling operations based on the preset shared traffic pool.
10. The method according to any one of claims 1-3, wherein, Based on the historical traffic usage data and the total traffic quota, determine the traffic scheduling information corresponding to at least one virtual machine, including: based on the historical traffic usage data, determining the historical traffic usage, historical access queue depth, and a first weighting coefficient corresponding to the historical access queue depth for each of the at least one virtual machine; based on the historical traffic usage, historical access queue depth, and the first weighting coefficient, determining a second weighting coefficient for traffic allocation operations for at least one virtual machine; and based on the second weighting coefficient and the total traffic quota, determining the traffic scheduling information corresponding to each of the at least one virtual machine.
11. The method according to claim 10, further comprising: Get the remaining free bandwidth; Determine the excess traffic limit corresponding to the virtual machine; Based on the current allocated traffic quota, remaining idle traffic, second weighting coefficient, and excess traffic quota, the current allocated traffic quota of the corresponding virtual machine is scheduled.
12. The method according to claim 11, wherein, Based on the currently allocated traffic quota, remaining idle traffic, second weighting coefficient, and excess traffic quota, the current allocated traffic quota of the corresponding virtual machine is scheduled, including: obtaining the product of the remaining idle traffic and the second weighting coefficient; determining the sum of the product value and the traffic quota of the currently allocated traffic quota; and scheduling the current allocated traffic quota of the corresponding virtual machine based on the sum of the traffic quotas and the excess traffic quota.
13. The method according to claim 12, wherein, Based on the sum of the traffic allowances and the excess traffic allowance, the current allocated traffic allowance of the corresponding virtual machine is scheduled, including: comparing the sum of the traffic allowances with the excess traffic allowance; if the sum of the traffic allowances is less than the excess traffic allowance, then the current allocated traffic allowance of the virtual machine is adjusted to the sum of the traffic allowances; if the sum of the traffic allowances is greater than the excess traffic allowance, then the current allocated traffic allowance of the virtual machine is adjusted to the excess traffic allowance.
14. The method according to any one of claims 1-3, wherein, Based on the historical traffic usage data and the total traffic quota, determine the traffic scheduling information corresponding to at least one virtual machine, including: obtaining the traffic demand corresponding to at least one virtual machine; and determining the traffic scheduling information corresponding to at least one virtual machine based on the traffic demand corresponding to at least one virtual machine, the historical traffic usage data, and the total traffic quota.
15. The method according to claim 14, wherein, Obtaining the traffic requirements corresponding to at least one virtual machine includes: determining the attribute characteristics of the target storage unit corresponding to each of the at least one virtual machine; and determining the traffic requirements corresponding to each of the at least one virtual machine based on the attribute characteristics of the target storage unit.
16. The method according to any one of claims 1-3, wherein, Determining the basic traffic quota for at least one virtual machine includes: obtaining the service level agreement (SLA) for each of the at least one virtual machine; and determining the basic traffic quota for each of the at least one virtual machine based on the SLA.
17. A traffic scheduling device, comprising: The first acquisition module is used to acquire the current allocated traffic quota and historical traffic usage data of at least one virtual machine; The first determining module is used to determine the basic traffic quota corresponding to at least one virtual machine and the total traffic quota used to support access operations of multiple virtual machines. The basic traffic quota is used to enable a single virtual machine to perform preset basic operations. The first determining module is also used to determine traffic scheduling information corresponding to at least one virtual machine based on the historical traffic usage data and the total traffic quota. The first processing module is used to schedule the current allocated traffic quota of any virtual machine based on the traffic scheduling information and the basic traffic quota of the virtual machine.
18. An electronic device, comprising: A memory and a processor; wherein the memory is used to store one or more computer instructions, wherein the one or more computer instructions, when executed by the processor, implement the traffic scheduling method of any one of claims 1-16.
19. A computer program product, comprising: A computer program, wherein when the computer program is executed by a processor of an electronic device, the processor performs the steps of the traffic scheduling method of any one of claims 1-16.
Citation Information
Patent Citations
Virtual machine flow control method and device, electronic equipment and storage medium
CN114443228A
Flow control system, method and device
CN117014346A
Flow data control method and device, equipment and medium
CN117118906A