[go: up one dir, main page]

CN115809014B - Scheduling control method, equipment and computer storage medium - Google Patents

Scheduling control method, equipment and computer storage medium

Info

Publication number
CN115809014B
CN115809014B CN202111076483.XA CN202111076483A CN115809014B CN 115809014 B CN115809014 B CN 115809014B CN 202111076483 A CN202111076483 A CN 202111076483A CN 115809014 B CN115809014 B CN 115809014B
Authority
CN
China
Prior art keywords
request
tag value
time tag
reserved
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111076483.XA
Other languages
Chinese (zh)
Other versions
CN115809014A (en
Inventor
王倩文
邱晶晶
孙晗
王东旭
郭建楠
胡剑飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202111076483.XA priority Critical patent/CN115809014B/en
Publication of CN115809014A publication Critical patent/CN115809014A/en
Application granted granted Critical
Publication of CN115809014B publication Critical patent/CN115809014B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种调度控制方法、设备及计算机存储介质,该方法包括:接收用户设备发送的待处理输入输出IO请求,并确定待处理IO请求的属性参数;其中,属性参数至少包括预设吞吐率参数和预设转发率参数;基于预设吞吐率参数和预设转发率参数,对待处理IO请求进行标签分配处理,确定待处理IO请求的目标时间标签值;基于待处理IO请求的目标时间标签值,对待处理IO请求进行调度。这样,根据预设转发率参数和预设吞吐率参数对批量待处理IO请求实现合理调度,能够实现兼顾转发率性能和吞吐率性能的服务质量控制,在多种存储业务场景下均能够提供高质量的存储服务。

The present application provides a scheduling control method, device, and computer storage medium. The method includes: receiving pending input/output (IO) requests sent by a user device, and determining attribute parameters of the pending IO requests; wherein the attribute parameters include at least a preset throughput parameter and a preset forwarding rate parameter; based on the preset throughput parameter and the preset forwarding rate parameter, label allocation processing is performed on the pending IO requests, and a target time label value of the pending IO requests is determined; based on the target time label value of the pending IO requests, the pending IO requests are scheduled. In this way, reasonable scheduling of batch pending IO requests is achieved according to the preset forwarding rate parameter and the preset throughput parameter, which can achieve service quality control that takes into account both forwarding rate performance and throughput performance, and can provide high-quality storage services in various storage business scenarios.

Description

Scheduling control method, equipment and computer storage medium
Technical Field
The present application relates to the field of cloud computing technologies, and in particular, to a scheduling control method, a scheduling control device, and a computer storage medium.
Background
Due to the decentralized nature of distributed storage systems, the same storage device may be accessed by multiple storage user devices at the same time, which involves competing problems with storage resources. To solve this problem, the storage system allocates different storage resources to user equipments of different services through quality of service (Quality of Service, qoS) control, so as to achieve fair and reasonable allocation of the storage resources.
In the related art, a Dmclock algorithm is generally adopted to implement scheduling control of different storage Input/output (IO) requests, so as to allocate different storage resources for storage user devices of different services. However, the Dmclock algorithm only schedules the IO requests to be processed on the basis of considering the forwarding rate performance, but the effect of service quality control in certain service scenarios is not ideal due to incomplete consideration.
Disclosure of Invention
The application provides a scheduling control method, scheduling control equipment and a computer storage medium, which schedule IO requests to be processed on the basis of considering both forwarding rate performance and throughput rate performance, and can provide high-quality storage service.
The technical scheme of the application is realized as follows:
In a first aspect, an embodiment of the present application provides a scheduling control method, which is applied to a service device, where the method includes:
Receiving an input/output (IO) request to be processed, which is sent by user equipment, and determining attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters;
performing label distribution processing on the IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determining a target time label value of the IO request to be processed;
Scheduling the IO request to be processed based on the target time tag value of the IO request to be processed.
In a second aspect, an embodiment of the present application provides a service device, where the service device includes a determining unit, a tag unit, and a recommending unit,
The system comprises a determining unit, a processing unit and a forwarding unit, wherein the determining unit is configured to receive an input/output IO request to be processed, which is sent by user equipment, and determine attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters;
The label unit is configured to perform label distribution processing on the IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determine a target time label value of the IO request to be processed;
the scheduling unit is configured to schedule the IO request to be processed based on the target time tag value of the IO request to be processed.
In a third aspect, an embodiment of the present application provides a service device, where the service device includes a memory and a processor, where,
A memory for storing a computer program capable of running on the processor;
A processor for performing the steps of the method as the first aspect when the computer program is run.
In a fourth aspect, embodiments of the present application provide a computer storage medium storing a computer program which when executed performs steps of a method as in the first aspect.
The application provides a scheduling control method, equipment and a computer storage medium, which are used for receiving an input/output IO request to be processed, which is sent by user equipment, and determining attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters, performing label distribution processing on the IO request to be processed based on the preset throughput rate parameters and the preset forwarding rate parameters, determining a target time label value of the IO request to be processed, and scheduling the IO request to be processed based on the target time label value of the IO request to be processed. In this way, according to the preset forwarding rate parameter and the preset throughput rate parameter, a corresponding time tag value can be allocated to the IO requests to be processed, so that reasonable scheduling is realized for the IO requests to be processed in batches, and service quality control considering both the forwarding rate performance and the throughput rate performance can be realized, thereby providing high-quality storage service in various storage service scenes.
Drawings
Fig. 1 is a schematic flow chart of a scheduling control method according to an embodiment of the present application;
Fig. 2 is a flow chart of another scheduling control method according to an embodiment of the present application;
Fig. 3 is a schematic diagram of a working process of a scheduling control method according to an embodiment of the present application;
fig. 4 is a schematic diagram of a working process of another scheduling control method according to an embodiment of the present application;
fig. 5 is a schematic diagram illustrating a working process of another scheduling control method according to an embodiment of the present application;
Fig. 6 is a schematic diagram of a composition structure of a service device according to an embodiment of the present application;
fig. 7 is a schematic hardware structure of a service device according to an embodiment of the present application;
fig. 8 is a schematic diagram of a distributed storage system according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present application. It is to be understood that the specific embodiments described herein are merely illustrative of the application and not limiting of the application. It should be noted that, for convenience of description, only a portion related to the related application is shown in the drawings.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of the application only and is not intended to be limiting of the application.
In the following description, reference is made to "some embodiments" which describe a subset of all possible embodiments, but it is to be understood that "some embodiments" can be the same subset or different subsets of all possible embodiments and can be combined with one another without conflict.
It should be noted that the term "first/second/third" in relation to embodiments of the present application is merely used to distinguish similar objects and does not represent a particular ordering of the objects, it being understood that the "first/second/third" may be interchanged with a particular order or sequencing, if allowed, to enable embodiments of the present application described herein to be implemented in an order other than that illustrated or described herein.
The following terms are used in the embodiments of the present application:
The forwarding rate (Input/Output Operations Per Second, IOPS) is the number of IO requests to be processed per second processed by a storage device (or referred to as a storage server);
Throughput rate-the amount of data processed per second by a storage device when processing IO requests to be processed, in kilobytes/second (KiloByte/second, KB/s), megabytes/second (MegaBytes/second, MB/s), gigabytes/second (GigaByte/second, GB/s).
Table 1 shows the symbol schematic for the examples of the present application, and the details are shown in Table 1.
TABLE 1
The principle of the distributed storage system is that storage data (files, block data and objects) are scattered onto a plurality of independent storage devices, are interconnected through a network and can be transversely expanded, so that the effect of sharing loads by utilizing the plurality of storage devices is realized. The reliability, availability and access efficiency of the distributed storage system are substantially improved and easily scalable compared to conventional storage systems. In other words, the distributed storage system builds these dispersed storage devices into a virtual, large pool of storage resources for use by upper level applications. However, due to the distributed storage system's distributed storage nature of data, the same storage device may be accessed by multiple storage user devices at the same time, which involves a problem of contention for storage resources.
In the related art, to solve the problem of resource contention in distributed storage, a distributed storage system allocates different storage resources (e.g., the forwarding rate IOPS) to user equipments of different services through quality of service control, so as to achieve fair and reasonable allocation of the storage resources. Specifically, for a distributed storage system, scheduling of different pending IO requests can be implemented by a Dmclock algorithm, where the algorithm uses a time tag value to schedule the pending IO requests of the user device, and specifically, the time tag value controls storage IO performance of the storage user device through three dimensions of Reservation (Reservation tag), upper Limit (Limit tag), and weight (Proportion tag). The reserved time tag value (or called reserved tag value) ensures the lowest IOPS performance of the user equipment, the upper limit time tag value (or called upper limit tag value) limits the highest IOPS performance of the user equipment, the weight time tag value (or called weight tag value) represents the scheduling priority of the user equipment request, and under the condition that the reserved performance of all the user equipment is met, the residual IOPS performance is distributed to each user equipment according to the weight.
The following is a code schematic of Dmclock scheduling algorithm:
based on the codes, the scheduling principle of Dmclock scheduling algorithm flow is specifically described.
Here, the scheduling algorithm runs on each storage server and is mainly divided into three important parts, namely (1) label value allocation, (2) label value adjustment and (3) request scheduling.
(1) Tag value assignment, namely, three types of tag values, namely R, L and P, are allocated for a request from the user equipment VM v i. Taking the reserved time tag value R as an example, the time tag value of the IO request to be processed refers to the maximum value of the two following steps, namely adding ρ i/ri (delay meeting reserved forwarding rate) on the basis of the time tag value of the last IO request and the current time t (Currenttime), wherein the specific formula is shown in the formula (1). By the method, the reserved time tag values of all IO requests can form a linear increasing relation in time. In particular, when a certain user equipment VM changes from an inactive state to an active state, the reserved time tag value allocated to the request is the current time of the current request, so that the confusion of scheduling can be avoided, and the IO performance of other active VMs can be influenced. The L and P tag value assignment rules are substantially identical to R.
(2) And adjusting the tag value, namely when the non-active user equipment VM v i is converted into an active state, according to the tag allocation rule, the weight time tag value allocated to the IO request of the user equipment is the current time t of the IO request. However, in this case, the weight time stamp value queue of the IO request of the user device VM v i and the request weight time stamp value queues (in a linearly increasing queue) of other active user devices VM are not on the same reference (do not form a linear relationship), which may cause that the request weight value of VM v i and the request weight values of other VMs do not form a real proportional relationship. Therefore, the weight time stamp value queue requested by VM v i must be pulled to the same benchmark as the request stamp value queues of other active VMs. To solve the above problem, first, the minimum value minPtag in the current weight tag queue is selected to form a difference with the current time, and then the weight time tag values of the requests of other active user equipments are subtracted by the difference, as shown in formula (2). Since only the P-tag value is adjusted, no impact is imposed on the constrained scheduling phase.
Wherein minPtag denotes the minimum P-tag that the current request has, and t denotes the current time.
(3) The request scheduling is divided into two scheduling stages, namely a constraint scheduling stage and a weight scheduling stage. And the constraint scheduling stage schedules the requests according to the R tag values of all the user equipment VM requests, forms an ordered queue with all the requests with the R tag values lower than the current time t, starts scheduling from the request with the minimum R tag value until the queue requests are scheduled, completes the scheduling at the stage, and ensures that all the requests of the user equipment VM meet the reserved forwarding rate performance. In the weight scheduling stage, scheduling the requests according to the L and P tag values of all the VM requests of the user equipment, firstly, forming an ordered queue from all the requests with the L tag values lower than the current time t according to the P tag values, and starting scheduling from the request with the minimum P tag value until the queue requests are scheduled. In order to keep the request queues from the same user device VM v k linear, one request is scheduled while subtracting ρ k/rk from the R-tag value of all requests after in the user device VM v k request queue to which the request belongs.
However, since Dmclock algorithm only gives the scheduling algorithm for IO forwarding rate, i.e. IOPS performance, more traffic scenarios often need to be able to achieve performance quality of service control for both the forwarding rate IOPS and the throughput rate. For example, for a large number of small file traffic storage scenarios, its forwarding rate IOPS performance is mainly controlled, and for larger file traffic scenarios, its throughput rate performance is mainly controlled. Particularly for public cloud service scenarios, multiple tenants share the performance of the underlying storage cluster, and due to the unpredictability of the upper layer service deployed by the tenants, multiple storage service scenarios are often mixed. Therefore, it is highly necessary to implement a distributed storage system while achieving quality of service control for both the transfer rate IOPS and throughput performance.
Based on the above, the embodiment of the application provides a scheduling control method, which basically comprises the steps of receiving an input/output IO request to be processed sent by user equipment, determining attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters, performing label distribution processing on the IO request to be processed based on the preset throughput rate parameters and the preset forwarding rate parameters, determining a target time label value of the IO request to be processed, and scheduling the IO request to be processed based on the target time label value of the IO request to be processed. In this way, according to the preset forwarding rate parameter and the preset throughput rate parameter, a corresponding time tag value can be allocated to the IO requests to be processed, so that reasonable scheduling is realized for the IO requests to be processed in batches, and service quality control considering both the forwarding rate performance and the throughput rate performance can be realized, thereby providing high-quality storage service in various storage service scenes.
Embodiments of the present application will be described in detail below with reference to the accompanying drawings.
In an embodiment of the present application, referring to fig. 1, a flow chart of a scheduling control method provided by an embodiment of the present application is shown. As shown in fig. 1, the method may include:
S101, receiving an input/output IO request to be processed, which is sent by user equipment, and determining attribute parameters of the IO request to be processed.
It should be noted that, the scheduling control method provided by the embodiment of the present application is applied to a service device (may also be referred to as a "storage server" or a "server") in a distributed storage system.
Specifically, in the distributed storage system, storage data (files, block data, objects, and the like) is broken up onto a plurality of independent service devices, that is, the same service device is simultaneously accessed by a plurality of clients (hereinafter referred to as user devices). Therefore, a physical service device may receive multiple Input/Output (IO) requests from one or more user devices in a short time, how to reasonably schedule and complete the IO requests is important content for implementing quality of service control, and the method provided by the embodiment of the present application is to solve this problem.
For the scheduling control method provided by the embodiment of the application, after receiving the to-be-processed IO request sent by the user equipment, the attribute parameters of the to-be-processed IO request need to be determined. Here, the attribute parameters include at least a preset forwarding rate parameter and a preset throughput rate parameter.
Illustratively, the service device sets a corresponding theoretical performance parameter for each user device based on the user device importance, priority, and performance. That is, the preset forwarding rate parameter and the preset throughput rate parameter are preset by the server for different user equipments.
Here, although one or more user devices will typically send a plurality of consecutive IO requests to the service device, the preliminary processing performed by the service device on these IO requests is the same, for example, determining attribute parameters of each IO request, setting different labels for each IO request, etc. Thus, the IO request to be processed may be considered as an entirety of a plurality of IO requests sent by one or more user devices, or may be considered as a specific one of a plurality of IO requests sent by one or more user devices. For convenience of explanation, in the embodiment of the present application, the technical solution is described in terms of the IO request to be processed being a specific one, but this does not constitute a related limitation.
S102, performing label distribution processing on the IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determining a target time label value of the IO request to be processed.
It should be noted that, the scheduling control method provided by the embodiment of the application is essentially optimizing Dmclock algorithm, and still uses the framework of Dmclock algorithm. Therefore, after the preset forwarding rate parameter and the preset throughput rate parameter corresponding to the IO request to be processed are determined, a target time tag value is allocated to the IO request to be processed according to the determined parameters.
It should be further noted that, the preset forwarding rate parameter may include a reserved forwarding rate parameter and an upper limit forwarding rate parameter, and the preset throughput rate parameter may include a reserved throughput rate parameter and an upper limit throughput rate parameter. Accordingly, the target time stamp value may include a reserved time stamp value and an upper limit time stamp value.
Here, the reserved time tag value ensures the lowest storage processing performance of the user equipment, in other words, when the reserved time tag value of the IO request to be processed is greater than the current time, the corresponding storage resource allocated by the service equipment to the user equipment is indicated to have met the minimum value, and the upper limit time tag value ensures the highest storage processing performance of the user equipment, in other words, when the upper limit time tag value of the IO request to be processed is greater than the current time, the corresponding storage resource allocated by the service equipment to the user equipment is indicated to have met the maximum value.
Specifically, the preset forwarding rate parameter may include a reserved forwarding rate parameter and an upper limit forwarding rate parameter, the preset throughput rate parameter may include a reserved throughput rate parameter and an upper limit throughput rate parameter, and the target time tag value includes a reserved time tag value and an upper limit time tag value, so in some embodiments, performing tag allocation processing on the IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determining the target time tag value of the IO request to be processed may include:
Performing label distribution processing on the IO request to be processed according to the reserved forwarding rate parameter and the reserved throughput rate parameter to obtain a reserved time label value of the IO request to be processed;
And performing label distribution processing on the IO request to be processed according to the upper limit forwarding rate parameter and the upper limit throughput rate parameter to obtain an upper limit time label value of the IO request to be processed.
It should be noted that, in general, the service device sets two types of theoretical performance parameters, that is, a reserved performance parameter and an upper limit performance parameter, for each ue. Here, the reservation performance parameter limits the lowest service performance that the user equipment can obtain from the service equipment, and the upper limit performance parameter limits the highest service performance that the user equipment can obtain from the service equipment.
Therefore, according to the reserved forwarding rate parameter and the reserved throughput rate parameter, the service device can calculate the reserved time required for completing the IO request to be processed, and further allocate a reserved time tag value for the IO request to be processed according to the reserved time.
According to the upper limit forwarding rate parameter and the upper limit throughput rate parameter, the storage device can calculate the upper limit time required for completing the IO request to be processed, and further, an upper limit time tag value is allocated to the IO request to be processed according to the upper limit time.
Specifically, in some embodiments, the attribute parameters further include a data length value, and the specific process of determining the reserved time tag value is as follows:
Determining reserved forwarding rate delay and reserved throughput rate delay, wherein the reserved forwarding rate delay is calculated according to reserved forwarding rate parameters, and the reserved throughput rate delay is calculated according to data length values and reserved throughput rate parameters;
Determining reserved forwarding rate delay and reserved throughput rate delay, wherein the reserved forwarding rate delay is calculated according to reserved forwarding rate parameters, and the reserved throughput rate delay is calculated according to data length values and reserved throughput rate parameters;
Determining the minimum value of the reserved throughput rate delay and the reserved forwarding rate delay as a target reserved delay;
After the previous reserved time tag value and the current time tag value are acquired, determining a reserved time tag value of the IO request to be processed according to the target reserved time delay, the previous reserved time tag value and the current time tag value;
the previous reserved time tag value refers to a reserved time tag value of a previous IO request from the same user equipment as the IO request to be processed.
It should be noted that, the attribute parameter may further include a data length value, where the data length value refers to a length value of target data corresponding to the IO request to be processed. The data length value is illustratively calculated by the user device and is sent to the service device together when sending the pending IO request to the service device.
For convenience of explanation, the time required for the service device to process the IO request to be processed at the reserved forwarding rate is referred to as reserved forwarding rate delay, and the time required for the service device to process the IO request to be processed at the reserved throughput rate is referred to as reserved throughput rate delay.
The inverse of the reserved forwarding rate parameter is the reserved forwarding rate delay, for example, the reserved forwarding rate parameter may be 100/second, and the reserved forwarding rate delay is 1/100 second, and similarly, the throughput rate is the data volume processed by the service device in unit time, so that the reserved throughput rate delay is obtained by dividing the data length value by the throughput rate.
On the basis of meeting the reserved forwarding rate and the reserved throughput rate simultaneously, the reserved time tag value needs to be distributed according to the requirement of high service quality, namely the minimum value of the reserved throughput rate delay and the reserved forwarding rate delay is determined to be the target reserved delay.
After the target reservation delay is obtained, the reservation time tag value of the IO request to be processed needs to be determined according to the target reservation delay, the previous reservation time tag value and the current time tag value. Here, the previous reserved time tag value refers to a reserved time tag value of a previous IO request of the user equipment, and the current time tag value refers to a system current time of the service equipment, that is, specific values of the current time tag value are different in different steps. The concrete explanation is as follows:
There may also be other IO requests in the service device that were previously sent by the user device and not processed, and all IO requests of the one user device should be performed sequentially and consecutively. Therefore, the reserved time tag value (i.e., the previous reserved time tag value) and the target reserved time delay of the previous IO request of the user equipment need to be calculated to determine the theoretical reserved time tag value of the IO request to be processed.
Here, the theoretical reservation time tag value is calculated, and a first request number (ρ i) is also related, which indicates the last request sent by the user equipment to the current storage server and the number of requests sent by the user equipment during the current request and processed in the reservation scheduling stage, and the value is 1 in the case of only a single storage server. The first request number is obtained by calculation at the user equipment side and is sent to the service equipment together with the IO request to be processed, namely the first request number also belongs to one of the attribute parameters of the IO request to be processed. And adding the product of the first request number and the target reservation delay on the basis of the previous reservation time tag value to obtain the theoretical reservation tag.
In particular, if the IO request to be processed is the first IO request sent after the user equipment changes from the inactive state to the active state, the current time stamp value may be used as the reserved time stamp value, for example, the time when the server receives the IO request to be processed.
Therefore, the maximum value of the theoretical reserved time tag value and the current time is required to be used as the reserved time tag of the IO request to be processed, and the reserved time tag is specifically shown as a formula (3).
Further, in some embodiments, the specific process of determining the upper limit sign value is as follows:
Determining upper limit forwarding rate delay and upper limit throughput rate delay, wherein the upper limit forwarding rate delay is calculated according to an upper limit forwarding rate parameter, and the upper limit throughput rate delay is calculated according to a data length value and an upper limit throughput rate parameter;
Determining the maximum value of the upper limit throughput rate delay and the upper limit forwarding rate delay as a target upper limit delay;
After the previous upper limit time tag value and the current time tag value are obtained, determining an upper limit time tag value of the IO request to be processed according to the target upper limit time delay, the previous upper limit time tag value and the current time tag value;
The previous upper time tag value refers to an upper time tag value of a previous IO request from the same user equipment as the IO request to be processed.
The method is similar to the calculation method of the reserved forwarding rate delay and the reserved throughput rate delay, the inverse of the upper limit forwarding rate parameter is determined as the upper limit forwarding rate delay, and the data length value is divided by the upper limit throughput rate parameter to obtain the upper limit throughput rate delay.
However, in the case where only one of the time required for completing the current IO request and the time required for the upper limit throughput and the upper limit forwarding rate can be satisfied, the longer the time required means the lower the upper limit service quality. And the upper limit time tag value needs to be distributed according to the requirement of low service quality, namely, the maximum value of the reserved throughput rate delay and the reserved forwarding rate delay is determined as the target upper limit delay.
After the target upper limit delay is obtained, the upper limit time tag value of the IO request to be processed needs to be determined according to the target upper limit delay, the previous upper limit time tag value and the current time tag value. Here, the previous upper time stamp value refers to an upper time stamp value of a previous IO request of the user equipment. The concrete explanation is as follows:
Similarly, after determining the target upper bound time delay, the theoretical upper bound time tag value is obtained by calculating the target upper bound time tag value (i.e., the previous upper bound time tag value) of the previous IO request of the user device and the target upper bound time delay.
Here, the theoretical upper time-stamp value is calculated, and a second request number (δ i) is also referred to, which indicates the last request sent by the user equipment to the current storage server and the number of processed requests sent by the user equipment in the period of the current request, and is 1 in the case of only a single storage server. The second request number is obtained by calculation at the user equipment side and is sent to the service equipment together with the IO request to be processed, namely the second request number also belongs to one of the attribute parameters of the IO request to be processed. And adding the product of the second request number and the target upper limit time delay on the basis of the previous upper limit time tag value to obtain the theoretical upper limit tag.
In particular, if the IO request to be processed is the first IO request sent after the user equipment changes from the inactive state to the active state, the current time stamp value may be used as the upper time stamp value.
Thus, the maximum value of the theoretical upper time stamp value and the current time is required to be the upper time stamp value of the IO request to be processed, specifically as shown in the formula (4).
Further, in some embodiments, the attribute parameters further comprise a weight parameter, and the target time stamp value further comprises a weight time stamp value;
Correspondingly, the performing label distribution processing on the to-be-processed IO request based on the preset throughput rate parameter and the preset forwarding rate parameter, and determining the target time label value of the to-be-processed IO request may further include:
and carrying out label distribution processing on the IO request to be processed according to the weight parameters to obtain a weight time label value of the IO request to be processed.
It should be noted that, the weight parameter is used to instruct the service device to set priority for the user device, and according to the weight parameter, the service device allocates a weight time tag value for the IO request to be processed.
Specifically, in some embodiments, the specific process of determining the weight time stamp value is as follows:
Determining target weight delay, wherein the target weight delay is obtained by calculation according to weight parameters;
After the previous weight time tag value and the current time tag value are obtained, determining the weight time tag value of the IO request to be processed according to the target weight delay, the previous upper limit time tag value and the current time tag value;
the previous weight time tag value refers to a weight time tag value of a previous IO request from the same user equipment as the IO request to be processed.
It should be noted that, unlike the forwarding rate and the throughput rate, the weight parameter is only a relative parameter between different user equipments, and does not have a unit. In general, the higher the weight parameter, the higher the processing priority of the user equipment, so the inverse of the weight parameter is generally determined as the target weight delay.
After the target weight delay is obtained, the weight time tag value of the IO request to be processed needs to be determined according to the target weight delay, the previous weight time tag value and the current time tag value. Here, the previous weight time stamp value refers to the weight time stamp value of the previous IO request of the user equipment. The concrete explanation is as follows:
Similarly, after determining the target weight delay, the weight time tag value (i.e., the previous upper limit time tag value) of the previous IO request of the user equipment and the target weight delay are calculated to obtain a theoretical weight limit tag value.
Here, the second request number (δ i) is also involved in calculating the theoretical weight time stamp value. And adding the product of the second request number and the target weight delay on the basis of the previous weight time tag value to obtain the theoretical weight tag.
In particular, if the IO request to be processed is the first IO request sent after the user equipment changes from the inactive state to the active state, the current time stamp value may be used as the weight time stamp value thereof.
Thus, the maximum value of the theoretical weight time stamp value and the current time stamp value needs to be used as the weight time stamp value of the IO request to be processed, and the specific formula is shown in the formula (5).
In this case, the weight tag of the IO request to be processed and the weight tag of the IO request of other user devices existing in the service device may have a problem of not being in the same linear echelon. At this time, it is necessary to adjust the IO requests of other user devices existing in the service device with reference to the aforementioned formula (2).
From the above processing, it can be seen that the service device still needs to allocate three types of time tag values, namely, a reserved time tag value, an upper limit time tag value and a weight time tag value, for each IO request to be processed, and then the scheduling of the IO request is still realized through the three types of time tag values. However, in the related art, three types of time tag values are only allocated to the IO request on the basis of considering the forwarding rate and the weight, and in the embodiment of the application, three types of time tag values are allocated to the IO request on the basis of considering the forwarding rate, the throughput rate and the weight, so that the storage service can be better provided on the basis of considering the forwarding rate, the throughput rate and the priority.
In this way, by the processing method, the reserved time tag value, the upper limit time tag value and the weight time tag value of the IO request to be processed can be determined, so that reasonable scheduling can be performed on the IO request to be processed later.
And S103, scheduling the IO request to be processed based on the reserved time tag value, the upper limit time tag value and the weight time tag value.
It should be noted that, according to the reserved time tag value, the upper limit time tag value and the weight time tag value, performance resources of the service device can be comprehensively considered, so that the IO request to be processed is scheduled under the condition of ensuring the service quality. Because the performance parameters of the forwarding rate and the throughput rate are considered when the reserved time tag value, the upper limit time tag value and the weight tag are allocated, the tag allocation can be flexibly carried out according to different IO requests to be processed, and therefore the forwarding rate and the throughput rate are ensured when the IO requests are scheduled.
It should be noted that, due to the characteristics of the distributed storage system, the service device may receive multiple IO requests from one or more user devices, and all unprocessed IO requests existing in the service device are hereinafter referred to as a pending request set. It should be appreciated that the set of pending requests includes at least one pending IO request. Thus, in some embodiments, the scheduling the IO request to be processed based on the reserved time tag value, the upper limit time tag value, and the weight time tag value may include:
determining a set of pending requests comprising at least one pending IO request;
judging whether at least one first IO request exists in a request set to be processed, wherein the reserved time tag value of the first IO request is smaller than the current time;
and under the condition that at least one first IO request exists in the to-be-processed request set, scheduling the at least one first IO request according to the reserved time tag value of the at least one first IO request.
Further, in some embodiments, in the event that the first IO request is not present in the set of pending requests, the method may further include:
Judging whether at least one second IO request exists in the to-be-processed request set, wherein the upper limit time tag value of the second IO request is smaller than the current time.
If yes, scheduling the at least one second IO request according to the weight time tag value of the at least one second IO request.
It should be noted that, for the service device, it is required to perform unified scheduling on all the IO requests in the system, and hereinafter, all the IO requests are referred to as a pending request set, i.e., the pending request set includes at least one pending IO request. In addition, the current time stamp value refers to the current time of the service device.
At this time, the specific steps of scheduling the set of requests to be processed include:
(1) And the constraint scheduling stage is used for judging whether the IO request with the reserved time tag value smaller than the current time tag value exists in the to-be-processed request set, namely the first IO request.
If at least one first IO request exists, scheduling the at least one first IO request according to the sequence from the small reserved time tag value to the large reserved time tag value for the at least one IO request; if there is no at least one first IO request, a weight scheduling phase is entered.
Here, the constraint scheduling stage can ensure that the IO requests of all user equipment meet the reserved forwarding rate performance and the reserved throughput rate performance.
(2) In the weight scheduling stage, judging whether an IO request with the upper limit time tag value smaller than the current time tag value exists in a request set to be processed, namely a second IO request;
And if at least one second IO request exists, scheduling the at least one second IO request according to the sequence from the low weight time tag value to the high weight time tag value for the at least two IO requests.
The scheduling policy of the IO requests may be understood by checking, for a plurality of IO requests, whether the reserved time tag values of the IO requests are smaller than the current time tag value, and if so, indicating that the storage resources allocated by the service device to the first user device (the user device corresponding to the first IO request) do not reach the theoretical minimum requirement of the first user device, and should preferentially process the IO requests of the first user device.
If the reserved time tag value of all IO requests is larger than the current time tag value, the storage resources allocated by the service equipment to all the user equipment are satisfied with the respective theoretical minimum requirements of each user equipment. At this time, a second IO request with the upper limit time tag value smaller than the current time tag value is selected from all IO requests, and the IO request with the smallest P tag is selected from the second IO requests to answer.
It should be understood that, in the embodiment of the present invention, the plurality of current time stamp values are all changed along with the system time of the service device, and are not fixed at a certain time point, so the specific referred time points may be different.
Further, in some embodiments, in the event that the pending IO request is determined to be a second IO request, the method may further include:
After the scheduling of the IO request to be processed is completed, determining a target time difference value according to the reserved time tag value and the previous reserved time tag value of the IO request to be processed;
and updating the reserved time tag value of the target IO request corresponding to the IO request to be processed based on the target time difference value.
Here, the target IO request and the IO request to be processed are from the same user equipment, and the reserved time tag value of the target IO request is greater than the reserved time tag value of the IO request to be processed.
It should be noted that, if the pending IO request is scheduled in the weight scheduling stage, for the reserved time tag value, in order to keep the IO request queues (the IO request queues formed according to the size of the reserved time tag value) from the same user equipment linearly increasing, all the IO requests in the request queues corresponding to the user equipment after the pending IO request need to be moved forward sequentially.
That is, after the scheduling of the IO request to be processed is completed, subtracting the reserved time tag value of the IO request to be processed from the previous reserved time tag value to obtain a target time difference value, namely, the target time difference value is ρ k×min{sk/rtk,1/rfk, and then subtracting the target time difference value from the reserved time tag value of the target IO request corresponding to all the IO requests to be processed to obtain a new reserved time tag value of the target IO request. The target IO request and the IO request to be processed come from the same user equipment, and the reserved time tag value of the target IO request is larger than that of the IO request to be processed.
In summary, the embodiment of the application provides a method for realizing service quality control by optimizing Dmclock algorithm, so as to better solve the service quality control problem existing in more service scenes, particularly in shared storage service scenes of public clouds. In the embodiment of the application, the method mainly comprises the following steps:
(1) Setting a reserved forwarding rate parameter r fi and a reserved throughput rate parameter r ti for a user equipment VM v i, setting an upper limit forwarding rate parameter l fi and an upper limit throughput rate parameter l ti, and setting a weight value w i;
(2) The IO request sent by the user equipment VM v i to the storage server s j carries IO request length s i, first request number rho i, second request number delta i,si、ρi and delta i values which are calculated by the user equipment VM side;
(3) The storage server s j optimizes Dmclock algorithm to schedule IO requests of the user equipment VM v i, and specifically, the optimizing Dmclock algorithm comprises label allocation and request scheduling;
(a) The label distribution optimization comprises the following steps:
And calculating the reserved time label value by taking the minimum value of the throughput rate delay s i/rti and the forwarding rate delay 1/r fi, wherein the minimum value is shown in a formula (3).
And calculating the upper limit time tag value by taking the maximum value of the throughput rate delay s i/lti and the forwarding rate delay 1/l fi, wherein the upper limit throughput rate delay s i/lti and the upper limit forwarding rate delay 1/l fi of the current request are calculated respectively.
The weight time stamp value is calculated as shown in the specific formula (5).
(B) The request scheduling optimization includes:
In the weight scheduling stage, in order to keep the request queues from the same user equipment VM v k linearly increasing, one request is scheduled while subtracting ρ k×min{sk/rtk,1/rfk from the R tag value of all requests after in the user equipment VM v k request queue to which the request belongs.
In this way, compared with the related art, the embodiment of the application optimizes Dmclock algorithm, thereby realizing the distributed storage system and simultaneously realizing the service quality control of the forwarding rate IOPS and throughput rate performance.
The embodiment of the application provides a scheduling control method, which comprises the steps of receiving an input/output IO request to be processed, which is sent by user equipment, and determining attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters, carrying out label distribution processing on the IO request to be processed based on the preset throughput rate parameters and the preset forwarding rate parameters, determining a target time label value of the IO request to be processed, and scheduling the IO request to be processed based on the target time label value of the IO request to be processed. In this way, according to the preset forwarding rate parameter and the preset throughput rate parameter, a corresponding time tag value can be allocated to the IO requests to be processed, so that reasonable scheduling is realized for the IO requests to be processed in batches, and service quality control considering both the forwarding rate performance and the throughput rate performance can be realized, thereby providing high-quality storage service in various storage service scenes.
In another embodiment of the present application, a distributed storage system including the user device VM v i and the storage server s j is taken as an example, and the scheduling control method is described in detail. Referring to fig. 2, a flow chart of another scheduling control method provided by an embodiment of the present application is shown. As shown in fig. 2, the method may include:
S201, the user equipment VM v i sends an IO request to the storage server S j, calculates the IO request length S i, and sends the total number delta i of the completed requests and the number rho i of the requests in the constraint phase of the user equipment VM v i and the last IO request sent to the storage server S j to the storage server S j together with the IO request.
The user device VM v i transmits the IO request, the request length s i (corresponding to the data length value described above), the request number δ i, and the request number ρ i to the storage server s j.
In addition, the request length s i may be determined by the user device s j after receiving the IO request, instead of being transmitted by the user device VM v i.
S202, after receiving the IO request, the storage server S j runs Dmclock algorithm to input the request length S i, the request number delta i and the request number rho i of the current IO request when the tag value is allocated, the time tag value allocation of the current IO request is realized by using a preset tag allocation model, and when the IO request is scheduled, the scheduling of the IO request is realized according to the time tag value of the IO request.
It should be noted that, after the storage server s j receives the IO request, according to the request length s i, the request number δ i, and the request number ρ i of the current IO request, a tag value is allocated to the current IO request by using a preset tag allocation model. And then, according to the time tag value of the IO request, the scheduling of the IO request is realized. Here, the preset label distribution model is the optimized Dmclock algorithm.
In fig. 3, a principle description is made on configuration of a reserved time tag value in a scheduling control algorithm provided by an embodiment of the present application. According to the tag value allocation rule, whether for the reserved forwarding rate IOPS or the reserved throughput rate, the reserved time slice is finally required to be reflected, namely, the delay required for completing the reserved forwarding rate and the throughput rate.
As shown in fig. 3, assuming that the reserved forwarding rate IOPS set for the user equipment 1 is 100 IO requests per second, that is, r f1 =100, the delay required for completing a single IO request is 1/r f1 =10 milliseconds (millisecond, ms), the reserved throughput rate is 100MB per second, that is, r t1 =100 MB/s, the actual length of the current IO request is 2MB, that is, s 1 =2 MB, and the delay required for completing the current IO request is s 1/rt1 =20 ms;
Assuming that the reserved forwarding rate set for the user equipment 2 is 100 IO requests per second, that is, r f2 =100, the delay required for completing a single IO request is 1/r f2 =10 ms, the reserved throughput rate is 100MB per second, that is, r t2 =100 MB/s, the actual length of the current IO request is 0.5MB, that is, s 2 =0.5 MB, and the delay required for completing the current IO request is s 2/rt2 =5 ms.
For completing the IO request to be processed, on the basis of the time required for simultaneously meeting the reserved throughput rate and the time required for reserving the forwarding rate, the shorter the required time is, which means that the reserved service quality is higher, therefore, the reserved time tag value must be distributed according to the requirement of meeting the high service quality, and therefore, the calculation model of the reserved time tag value is shown as a formula (3).
Based on such a principle, as shown in fig. 3, the reserved forwarding rate delay 10ms of the r-th IO request of the user equipment 1 is lower than the reserved throughput rate delay 20ms, so that the reserved forwarding rate delay value is taken when the reserved time tag value is allocated: the reserved forwarding rate delay of the r-th IO request of the user equipment 2 is 10ms higher than the reserved throughput rate delay of 5ms, so that the reserved throughput rate delay value is taken when the reserved time tag value is allocated:
as shown in fig. 4, a principle description is made on the configuration of the upper limit time tag value in the scheduling control algorithm provided by the embodiment of the present application.
In fig. 4, assuming that the upper limit forwarding rate IOPS set for the user equipment 1 is 1000 IO requests per second, i.e. i f1 =100, the delay required for completing a single IO request is 1/l f1 =1 ms, the upper limit throughput rate is 1000MB per second, i.e. i t1 =1000 MB/s, the actual length of the current IO request is s 1 =2 MB, and the delay required for completing the current IO request is s 1/lt1 =2 ms.
Assuming that the upper limit forwarding rate set for the user equipment 2 is that 400 IO requests are completed per second, i.e. i f2 =400, the delay required for completing a single IO request is 1/l f2 =2 ms, the upper limit throughput rate is that of 800MB per second, i.e. i t2 =800 MB/s, the actual length of the current IO request is s 2 =1 MB, and the delay required for completing the current IO request is s 2/lt2 =1.25 ms.
For the current IO request, the time required for the upper limit throughput rate and the time required for the upper limit forwarding rate can only meet one of them, and the longer the time required is, the lower the upper limit service quality is, so the upper limit time tag value must be allocated according to the requirement of meeting the lower service quality. Therefore, a calculation model giving the following upper limit time stamp value is shown in expression (4).
Based on such principle, as shown in fig. 4, the r-th IO request of the user equipment 1 is completed, and the upper limit forwarding rate delay is 1ms lower than the upper limit throughput rate delay by 2ms, so that the upper limit throughput rate delay value is taken when the upper limit time tag value is allocated, which isThe upper limit forwarding rate delay of finishing the r IO request of the user equipment 2 is 2ms higher than the upper limit throughput rate delay of 1.25ms, so that the upper limit forwarding rate delay value is taken when the upper limit time tag value is allocated, and is the upper limit forwarding rate delay value
Reference is made to the foregoing for determination of weight time stamp values and specific scheduling procedures. In particular, for the weight scheduling phase:
As shown in fig. 5, in the weight scheduling phase, upper time stamp value request queue for user device VM v i (i.e the (upper limit time tag value of) r request of L tag request queue is ) Scheduling is performed, and at this time, all the reserved time tag values of the reserved time tag value request queue (i.e. the R tag request queue) of the user equipment v i are larger than the current time t. In order not to affect the constrained scheduling phase, it must be ensured that the time stamp value of the reserved time stamp value request queue of the user equipment v i increases linearly. Specifically, for the request queue of the user equipment v i, the request queue is provided withAll reservation time tag values thereafter minus the reservation time tag value requested by the currently scheduled IOReserved time tag value with previous IO requestThe difference, ρ i×min{si/rti,1/rfi (corresponding to the target difference as described above). For example, in fig. 5, after L1 requests scheduling, all reservation labels of the requests following the L1 request are moved forward by the distance ρ i×min{si/rti,1/rfi.
In summary, the solution proposed by the embodiment of the present application for implementing the qos control of the distributed storage system based on Dmclock algorithm includes:
(1) Setting a reserved forwarding rate parameter r fi and a reserved throughput rate parameter r ti for a user equipment VM v i, setting an upper limit forwarding rate parameter l fi and an upper limit throughput rate parameter l ti, and setting a weight value w i;
(2) The IO request sent by the user equipment VM v i to the storage server s j carries IO request length s i, first request number rho i, second request number delta i,si、ρi and delta i values which are calculated by the user equipment VM side;
(3) The storage server s j optimizes Dmclock algorithm to schedule IO requests for the user device VM v i.
Specifically, the optimization Dmclock algorithm includes label assignment and request scheduling;
(a) The label distribution optimization comprises the following steps:
For the calculation of the reserved time tag value, respectively calculating reserved throughput rate delay s i/rti and reserved forwarding rate delay 1/r fi for completing the current IO request;
taking the minimum value of the throughput rate delay s i/rti and the forwarding rate delay 1/r fi to calculate a reserved time tag value, wherein a specific calculation model is as follows
For the calculation of the upper limit time tag value, respectively calculating the upper limit throughput rate delay s i/lti and the upper limit forwarding rate delay 1/l fi for completing the current IO request;
Taking the maximum value of the throughput rate delay s i/lti and the forwarding rate delay 1/l fi to calculate an upper limit time tag value, wherein a specific calculation model is as follows
For weight time tag value calculation, a specific calculation model is as follows
(B) The request scheduling optimization includes:
In the weight scheduling stage, in order to keep the request queues from the same user equipment VM v k linearly increasing, one request is scheduled while subtracting ρ k×min{sk/rtk,1/rfk from the R tag value of all requests after in the user equipment VM v k request queue to which the request belongs.
In this way, compared with the technical scheme for realizing the distributed storage service quality control based on Dmclock algorithm provided by the related art, the embodiment of the application optimizes Dmclock algorithm to realize the service quality control of the distributed storage system based on the forwarding rate IOPS and throughput rate performance at the same time.
The embodiment of the application provides a scheduling control method, which is used for elaborating the specific implementation method of the embodiment, and can be used for distributing corresponding time tag values for IO requests to be processed according to preset forwarding rate parameters and preset throughput rate parameters, further reasonably scheduling the IO requests to be processed in batches, and realizing service quality control considering both forwarding rate performance and throughput rate performance, so that high-quality storage service can be provided in various storage service scenes.
In still another embodiment of the present application, referring to fig. 6, a schematic diagram of the composition structure of a service device 30 according to an embodiment of the present application is shown. As shown in fig. 6, the service device 30 comprises a determining unit 301, a tag unit 302 and a scheduling unit 303, wherein,
The determining unit 301 is configured to receive an input/output IO request to be processed sent by a user equipment, and determine attribute parameters of the IO request to be processed, where the attribute parameters at least include a preset throughput rate parameter and a preset forwarding rate parameter;
the tag unit 302 is configured to perform tag allocation processing on the IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determine a target time tag value of the IO request to be processed;
the scheduling unit 303 is configured to schedule the IO request to be processed based on the target time tag value of the IO request to be processed.
In some embodiments, the preset forwarding rate parameter includes a reserved forwarding rate parameter and an upper limit forwarding rate parameter, the preset throughput rate parameter includes a reserved throughput rate parameter and an upper limit throughput rate parameter, the target time tag value includes a reserved time tag value and an upper limit time tag value, the tag unit 302 is specifically configured to perform tag allocation processing on the IO request to be processed according to the reserved forwarding rate parameter and the reserved throughput rate parameter to obtain a reserved time tag value of the IO request to be processed, and perform tag allocation processing on the IO request to be processed according to the upper limit forwarding rate parameter and the upper limit throughput rate parameter to obtain an upper limit time tag value of the IO request to be processed.
In some embodiments, the attribute parameter further includes a data length value, the tag unit 302 is further configured to determine a reserved forwarding rate delay and a reserved throughput rate delay, where the reserved forwarding rate delay is calculated according to the reserved forwarding rate parameter, the reserved throughput rate delay is calculated according to the data length value and the reserved throughput rate parameter, a minimum value of the reserved throughput rate delay and the reserved forwarding rate delay is determined as a target reserved delay, and after acquiring a previous reserved time tag value and a current time tag value, a reserved time tag value of the IO request to be processed is determined according to the target reserved delay, the previous reserved time tag value and the current time tag value, where the previous reserved time tag value refers to a reserved time tag value of a previous IO request from the same user equipment as the IO request to be processed.
In some embodiments, the attribute parameter further includes a data length value, the tag unit 302 is further configured to determine an upper limit forwarding rate delay and an upper limit throughput rate delay, where the upper limit forwarding rate delay is calculated according to the upper limit forwarding rate parameter, the upper limit throughput rate delay is calculated according to the data length value and the upper limit throughput rate parameter, a maximum value of the upper limit throughput rate delay and the upper limit forwarding rate delay is determined as a target upper limit delay, and after acquiring a previous upper limit time tag value and a current time tag value, an upper limit time tag value of the IO request to be processed is determined according to the target upper limit delay, the previous upper limit time tag value and the current time tag value, where the previous upper limit time tag value refers to an upper limit time tag value of a previous IO request from the same user equipment as the IO request to be processed. In some embodiments, the attribute parameter further includes a weight parameter, the target time tag value further includes a weight time tag value, the tag unit 302 is further configured to determine a target weight delay, where the target weight delay is calculated according to the weight parameter, and after acquiring a previous weight time tag value and a current time tag value, the weight time tag value of the IO request to be processed is determined according to the target weight delay, the previous weight time tag value and the current time tag value, where the previous weight time tag value refers to a weight time tag value of a previous IO request from the same user equipment as the IO request to be processed.
In some embodiments, the scheduling unit 303 is specifically configured to determine a set of pending requests including at least one pending IO request and a current time stamp value, determine whether at least one first IO request exists in the set of pending requests, where the reserved time stamp value of the first IO request is smaller than the current time stamp value, and schedule the at least one first IO request according to the reserved time stamp value of each of the at least one first IO requests if the at least one first IO request exists in the set of pending requests.
In some embodiments, the scheduling unit 303 is further configured to determine whether at least one second IO request exists in the set of pending requests if the first IO request does not exist in the set of pending requests, where an upper limit time tag value of the second IO request is smaller than a current time tag value, and schedule the at least one second IO request according to a weight time tag value of the at least one second IO request when the at least one second IO request exists in the set of pending requests.
In some embodiments, the scheduling unit 303 is further configured to determine, after the scheduling of the IO request to be processed is completed, a target time difference value according to a reserved time tag value and a previous reserved time tag value of the IO request to be processed, and update the reserved time tag value of the target IO request corresponding to the IO request to be processed based on the target time difference value, where the target IO request and the IO request to be processed are from the same user equipment, and the reserved time tag value of the target IO request is greater than the reserved time tag value of the IO request to be processed.
It will be appreciated that in this embodiment, the "unit" may be a part of a circuit, a part of a processor, a part of a program or software, etc., and may of course be a module, or may be non-modular. Furthermore, the components in the present embodiment may be integrated in one processing unit, or each unit may exist alone physically, or two or more units may be integrated in one unit. The integrated units may be implemented in hardware or in software functional modules.
The integrated units, if implemented in the form of software functional modules, may be stored in a computer-readable storage medium, if not sold or used as separate products, and based on this understanding, the technical solution of the present embodiment may be embodied essentially or partly in the form of a software product, or all or part of the technical solution may be embodied in a storage medium, which includes several instructions to cause a computer device (which may be a personal computer, a server, or a network device, etc.) or processor (processor) to perform all or part of the steps of the method of the present embodiment. The storage medium includes various media capable of storing program codes, such as a U disk, a removable hard disk, a Read Only Memory (ROM), a random access Memory (Random Access Memory, RAM), a magnetic disk, or an optical disk.
Accordingly, the present embodiment provides a computer storage medium storing a computer program which, when executed by a plurality of processors, implements the steps of the method of any of the preceding embodiments.
Based on the above-mentioned composition of a service device 30 and a computer storage medium, referring to fig. 7, a schematic hardware structure of the service device 30 according to an embodiment of the present application is shown. As shown in fig. 7, the service device 30 may include a communication interface 401, a memory 402, and a processor 403, the various components being coupled together by a bus device 404. It is understood that bus device 404 is used to enable connected communications between these components. The bus device 404 includes a power bus, a control bus, and a status signal bus in addition to the data bus. But for clarity of illustration the various buses are labeled as bus device 404 in fig. 7. The communication interface 401 is configured to receive and send signals in a process of receiving and sending information with other external network elements;
A memory 402 for storing a computer program capable of running on the processor 403;
processor 403, when running a computer program, is configured to perform:
Receiving an input/output (IO) request to be processed, which is sent by user equipment, and determining attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters;
performing label distribution processing on the IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determining a target time label value of the IO request to be processed;
Scheduling the IO request to be processed based on the target time tag value of the IO request to be processed.
It will be appreciated that the memory 402 in embodiments of the application can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. The nonvolatile Memory may be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically Erasable EPROM (EEPROM), or a flash Memory. The volatile memory may be random access memory (Random Access Memory, RAM) which acts as external cache memory. By way of example, and not limitation, many forms of RAM are available, such as static random access memory (STATIC RAM, SRAM), dynamic random access memory (DYNAMIC RAM, DRAM), synchronous dynamic random access memory (Synchronous DRAM, SDRAM), double data rate Synchronous dynamic random access memory (Double DATA RATE SDRAM, DDRSDRAM), enhanced Synchronous dynamic random access memory (ENHANCED SDRAM, ESDRAM), synchronous Link DRAM (SLDRAM), and Direct memory bus RAM (DRRAM). The memory 402 of the apparatus and methods described herein is intended to comprise, without being limited to, these and any other suitable types of memory.
While processor 403 may be an integrated circuit chip with signal processing capabilities. In implementation, the steps of the above method may be performed by integrated logic circuits of hardware in the processor 403 or by instructions in the form of software. The Processor 403 may be a general purpose Processor, digital signal Processor (DIGITAL SIGNAL Processor, DSP), application SPECIFIC INTEGRATED Circuit (ASIC), field programmable gate array (Field Programmable GATE ARRAY, FPGA) or other programmable logic device, discrete gate or transistor logic device, discrete hardware components. The disclosed methods, steps, and logic blocks in the embodiments of the present application may be implemented or performed. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like. The steps of the method disclosed in connection with the embodiments of the present application may be embodied directly in the execution of a hardware decoding processor, or in the execution of a combination of hardware and software modules in a decoding processor. The software modules may be located in a random access memory, flash memory, read only memory, programmable read only memory, or electrically erasable programmable memory, registers, etc. as well known in the art. The storage medium is located in the memory 402, and the processor 403 reads the information in the memory 402 and performs the steps of the method in combination with its hardware.
It is to be understood that the embodiments described herein may be implemented in hardware, software, firmware, middleware, microcode, or a combination thereof. For a hardware implementation, the Processing units may be implemented within one or more Application SPECIFIC INTEGRATED Circuits (ASICs), digital signal processors (DIGITAL SIGNAL Processing, DSPs), digital signal Processing devices (DSP DEVICE, DSPD), programmable logic devices (Programmable Logic Device, PLDs), field-Programmable gate arrays (Field-Programmable GATE ARRAY, FPGA), general purpose processors, controllers, micro-controllers, microprocessors, other electronic units for performing the functions of the application, or a combination thereof.
For a software implementation, the techniques of the present application may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions of the present application. The software codes may be stored in a memory and executed by a processor. The memory may be implemented within the processor or external to the processor.
Optionally, as another embodiment, the processor 403 is further configured to perform the steps of the method of any of the preceding embodiments when the computer program is run.
In yet another embodiment of the present application, reference is made to FIG. 8, which illustrates a schematic diagram of the composition of another distributed storage system 50 provided by an embodiment of the present application. As shown in fig. 8, the distributed storage system 50 includes at least a service device 501 and a user device 502. Wherein the service device 501 may refer to the service device 30 of any of the foregoing embodiments, and a communication connection exists between the service device 501 and the user device 502.
For the distributed storage system 50, the distributed storage system includes the service device 501 and the user device 502, and the service device 501 can receive the IO request to be processed of the user device 502, and allocate a corresponding time tag value to the IO request to be processed according to a preset forwarding rate parameter and a preset throughput rate parameter, so as to reasonably schedule batch of IO requests to be processed, and achieve quality control of service considering both forwarding rate performance and throughput rate performance, so that high-quality storage service can be provided in various storage service scenarios.
The above is only a preferred embodiment of the present application, and is not intended to limit the scope of the present application.
It should be noted that, in the present application, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The foregoing embodiment numbers of the present application are merely for the purpose of description, and do not represent the advantages or disadvantages of the embodiments.
The methods disclosed in the method embodiments provided by the application can be arbitrarily combined under the condition of no conflict to obtain a new method embodiment.
The features disclosed in the several product embodiments provided by the application can be combined arbitrarily under the condition of no conflict to obtain new product embodiments.
The features disclosed in the embodiments of the method or the apparatus provided by the application can be arbitrarily combined without conflict to obtain new embodiments of the method or the apparatus.
The foregoing is merely illustrative embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily think about variations or substitutions within the technical scope of the present application, and the application should be covered. Therefore, the protection scope of the application is subject to the protection scope of the claims.

Claims (10)

1. A scheduling control method, applied to a service device, the method comprising:
receiving an input/output (IO) request to be processed, which is sent by user equipment, and determining attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters;
Performing label distribution processing on the input/output IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determining a target time label value of the input/output IO request to be processed;
Scheduling the input/output IO request to be processed based on a target time tag value of the input/output IO request to be processed, wherein the preset forwarding rate parameter comprises a reserved forwarding rate parameter and an upper limit forwarding rate parameter, the preset throughput rate parameter comprises a reserved throughput rate parameter and an upper limit throughput rate parameter, the attribute parameter further comprises a data length value and a weight parameter, the target time tag value comprises a reserved time tag value and an upper limit time tag value, the target time tag value further comprises a weight time tag value, the label distribution processing is carried out on the input/output IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and the target time tag value of the input/output IO request to be processed is determined, and the method comprises the following steps:
Determining a reserved forwarding rate delay and a reserved throughput rate delay, wherein the reserved forwarding rate delay is calculated according to the reserved forwarding rate parameter, the reserved throughput rate delay is calculated according to the data length value and the reserved throughput rate parameter, and the reserved forwarding rate delay and the reserved throughput rate delay are used for determining a reserved time tag value of the input/output IO request to be processed;
Determining upper limit forwarding rate delay and upper limit throughput rate delay, wherein the upper limit forwarding rate delay is calculated according to the upper limit forwarding rate parameter, the upper limit throughput rate delay is calculated according to the data length value and the upper limit throughput rate parameter, and the upper limit forwarding rate delay and the upper limit throughput rate delay are used for determining an upper limit time tag value of the input/output IO request to be processed;
And determining target weight delay, wherein the target weight delay is obtained by calculation according to the weight parameter, and the target weight delay is used for determining the weight time tag value.
2. The scheduling control method according to claim 1, characterized in that the method further comprises:
Determining the minimum value of the reserved throughput rate delay and the reserved forwarding rate delay as a target reserved delay;
After a previous reserved time tag value and a current time tag value are acquired, determining the reserved time tag value of the input/output IO request to be processed according to the target reserved time delay, the previous reserved time tag value and the current time tag value;
The previous reserved time tag value refers to a reserved time tag value of a previous IO request from the same user equipment with the input/output IO request to be processed.
3. The scheduling control method according to claim 1, characterized in that the method further comprises:
determining the maximum value of the upper limit throughput rate delay and the upper limit forwarding rate delay as a target upper limit delay;
After the previous upper limit time tag value and the current time tag value are obtained, determining the upper limit time tag value of the input/output IO request to be processed according to the target upper limit time delay, the previous upper limit time tag value and the current time tag value;
the previous upper limit time tag value refers to an upper limit time tag value of a previous IO request from the same user equipment with the input/output IO request to be processed.
4. The scheduling control method according to claim 1, characterized in that the method further comprises:
after a previous weight time tag value and a current time tag value are obtained, determining the weight time tag value of the input/output IO request to be processed according to the target weight delay, the previous weight time tag value and the current time tag value;
The previous weight time tag value refers to a weight time tag value of a previous IO request from the same user equipment with the input/output IO request to be processed.
5. The scheduling control method according to claim 4, wherein the scheduling the pending input-output IO request based on the target time stamp value of the pending input-output IO request includes:
Determining a to-be-processed request set containing at least one to-be-processed input-output (IO) request and a current time tag value;
judging whether at least one first IO request exists in the request set to be processed, wherein the reserved time tag value of the first IO request is smaller than the current time tag value;
and under the condition that at least one first IO request exists in the to-be-processed request set, scheduling the at least one first IO request according to the reserved time tag value of each at least one first IO request.
6. The scheduling control method of claim 5, wherein in the event that there is no first IO request in the set of pending requests, the method further comprises:
judging whether at least one second IO request exists in the request set to be processed, wherein the upper limit time tag value of the second IO request is smaller than the current time tag value;
And under the condition that at least one second IO request exists in the to-be-processed request set, scheduling the at least one second IO request according to the weight time tag value of each at least one second IO request.
7. The scheduling control method according to claim 6, wherein in the case where the pending input-output IO request is determined to be a second IO request, the method further comprises:
After the scheduling of the input/output IO request to be processed is completed, determining a target time difference value according to the reserved time tag value and the previous reserved time tag value of the input/output IO request to be processed;
Updating the reserved time tag value of the target IO request corresponding to the input/output IO request to be processed based on the target time difference value;
the target IO request and the input/output IO request to be processed come from the same user equipment, and the reserved time tag value of the target IO request is larger than the reserved time tag value of the input/output IO request to be processed.
8. A service device is characterized by comprising a determining unit, a label unit and a scheduling unit, wherein,
The determining unit is configured to receive an input/output (IO) request to be processed, which is sent by user equipment, and determine attribute parameters of the IO request to be processed, wherein the attribute parameters at least comprise preset throughput rate parameters and preset forwarding rate parameters;
The tag unit is configured to perform tag allocation processing on the input/output IO request to be processed based on the preset throughput rate parameter and the preset forwarding rate parameter, and determine a target time tag value of the input/output IO request to be processed;
The scheduling unit is configured to schedule the input/output IO request to be processed based on a target time tag value of the input/output IO request to be processed, wherein the preset forwarding rate parameter comprises a reserved forwarding rate parameter and an upper limit forwarding rate parameter, the preset throughput rate parameter comprises a reserved throughput rate parameter and an upper limit throughput rate parameter, the attribute parameter further comprises a data length value and a weight parameter, the target time tag value comprises a reserved time tag value and an upper limit time tag value, the target time tag value further comprises a weight time tag value, and the tag unit is configured to:
Determining a reserved forwarding rate delay and a reserved throughput rate delay, wherein the reserved forwarding rate delay is calculated according to the reserved forwarding rate parameter, the reserved throughput rate delay is calculated according to the data length value and the reserved throughput rate parameter, and the reserved forwarding rate delay and the reserved throughput rate delay are used for determining a reserved time tag value of the input/output IO request to be processed;
Determining upper limit forwarding rate delay and upper limit throughput rate delay, wherein the upper limit forwarding rate delay is calculated according to the upper limit forwarding rate parameter, the upper limit throughput rate delay is calculated according to the data length value and the upper limit throughput rate parameter, and the upper limit forwarding rate delay and the upper limit throughput rate delay are used for determining an upper limit time tag value of the input/output IO request to be processed;
and determining target weight delay, wherein the target weight delay is obtained by calculation according to the weight parameter, and the target weight delay is used for determining the weight time tag value.
9. A service device is characterized in that the service device comprises a memory and a processor, wherein,
The memory is used for storing a computer program capable of running on the processor;
the processor being adapted to perform the steps of the method according to any of claims 1 to 7 when the computer program is run.
10. A computer storage medium, characterized in that it stores a computer program which, when executed, implements the steps of the method according to any one of claims 1 to 7.
CN202111076483.XA 2021-09-14 2021-09-14 Scheduling control method, equipment and computer storage medium Active CN115809014B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111076483.XA CN115809014B (en) 2021-09-14 2021-09-14 Scheduling control method, equipment and computer storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111076483.XA CN115809014B (en) 2021-09-14 2021-09-14 Scheduling control method, equipment and computer storage medium

Publications (2)

Publication Number Publication Date
CN115809014A CN115809014A (en) 2023-03-17
CN115809014B true CN115809014B (en) 2025-08-26

Family

ID=85481581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111076483.XA Active CN115809014B (en) 2021-09-14 2021-09-14 Scheduling control method, equipment and computer storage medium

Country Status (1)

Country Link
CN (1) CN115809014B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117435142B (en) * 2023-12-12 2024-03-01 苏州元脑智能科技有限公司 IO request scheduling method and storage device
CN117827785B (en) * 2023-12-12 2025-10-31 天翼云科技有限公司 Qos function realization method of directory level of distributed file system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107526532A (en) * 2016-06-21 2017-12-29 伊姆西公司 The method and apparatus for adjusting the handling capacity of storage device
US10719245B1 (en) * 2017-07-13 2020-07-21 EMC IP Holding Company LLC Transactional IO scheduler for storage systems with multiple storage devices

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713904A (en) * 1993-06-29 1995-01-17 Hitachi Ltd I / O device allocation control method
US9584599B2 (en) * 2014-01-14 2017-02-28 Netapp, Inc. Method and system for presenting storage in a cloud computing environment
US10037167B2 (en) * 2015-09-11 2018-07-31 Sandisk Technologies Llc Multiple scheduling schemes for handling read requests

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107526532A (en) * 2016-06-21 2017-12-29 伊姆西公司 The method and apparatus for adjusting the handling capacity of storage device
US10719245B1 (en) * 2017-07-13 2020-07-21 EMC IP Holding Company LLC Transactional IO scheduler for storage systems with multiple storage devices

Also Published As

Publication number Publication date
CN115809014A (en) 2023-03-17

Similar Documents

Publication Publication Date Title
CN108667867B (en) Data storage method and device
US20230161515A1 (en) Multi-stream ssd qos management
US8266289B2 (en) Concurrent data processing in a distributed system
US20190319844A1 (en) Service deployment method and apparatus
CN103036946B (en) A kind of method and system processing file backup task for cloud platform
CN114327843A (en) Task scheduling method and device
CN110383764A (en) System and method for processing events using historical data in a serverless system
CN115809014B (en) Scheduling control method, equipment and computer storage medium
JP2023526883A (en) Scheduling methods, computing devices, and storage media for tasks
CN112749002A (en) Method and device for dynamically managing cluster resources
CN103503412A (en) Method and device for scheduling resources
WO2016041446A1 (en) Resource allocation method, apparatus and device
CN112860442A (en) Resource quota adjusting method and device, computer equipment and storage medium
US10606650B2 (en) Methods and nodes for scheduling data processing
US20170344266A1 (en) Methods for dynamic resource reservation based on classified i/o requests and devices thereof
Wu et al. ABP scheduler: Speeding up service spread in docker swarm
CN117407160A (en) A hybrid deployment method of online tasks and offline tasks in edge computing scenarios
CN113849295B (en) Model training method, device and computer readable storage medium
CN115033358B (en) A method, device, computer equipment and storage medium for job scheduling
CN110430236B (en) A method for deploying services and a scheduling device
WO2024098926A1 (en) Computing resource management method and apparatus
CN120523548A (en) Virtual machine migration method, device, computer equipment, medium, and product
CN113742059B (en) Task allocation method, device, computer equipment and storage medium
CN119030901A (en) Serverless request scheduling device and system based on delay perception
CN116701126A (en) Pod capacity control method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant