CN115437794A - I/O request scheduling method and device, electronic equipment and storage medium - Google Patents

I/O request scheduling method and device, electronic equipment and storage medium Download PDF

Info

Publication number
CN115437794A
CN115437794A CN202211223430.0A CN202211223430A CN115437794A CN 115437794 A CN115437794 A CN 115437794A CN 202211223430 A CN202211223430 A CN 202211223430A CN 115437794 A CN115437794 A CN 115437794A
Authority
CN
China
Prior art keywords
scheduling
scheduled
requests
cache
request
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.)
Pending
Application number
CN202211223430.0A
Other languages
Chinese (zh)
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 Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202211223430.0A priority Critical patent/CN115437794A/en
Publication of CN115437794A publication Critical patent/CN115437794A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The disclosure provides an I/O request scheduling method, an I/O request scheduling device, electronic equipment and a storage medium, and relates to the technical field of computers. The method comprises the following steps: acquiring a plurality of I/O requests to be scheduled and corresponding data volumes; acquiring available cache capacity of a plurality of reference cache nodes; generating a target scheduling strategy corresponding to the data volume and the available cache capacity based on the dynamic planning of the minimum scheduling cost; and scheduling a plurality of I/O requests to be scheduled to a plurality of reference cache nodes according to the target scheduling strategy. In this way, the available buffer capacity representing the state of the reference buffer node and the data volume representing the state of the I/O request to be scheduled are considered, so that the generated target scheduling policy can adapt to the dynamic change of the buffer area where the reference buffer node is located. The target scheduling strategy generated based on the dynamic planning of the minimum scheduling cost can improve the operation efficiency of the buffer system and the utilization rate of the buffer resources.

Description

I/O request scheduling method and device, electronic equipment and storage medium
Technical Field
The present disclosure relates to the field of computer technologies, and in particular, to an I/O request scheduling method and apparatus, an electronic device, and a storage medium.
Background
In the field of computer technology, a computing system usually employs a burst buffer to handle externally stored peak I/O requests (Input/Output), and a plurality of concurrently running applications share I/O buffer resources of the burst buffer, but the I/O requests of the plurality of applications and access the computing system contend for the I/O buffer resources, which results in performance degradation of the computing system.
In the related art, the concurrently accessed I/O requests are scheduled to different cache nodes of the burst buffer in a random manner. However, the way of randomly scheduling the concurrently accessed I/O requests is difficult to adapt to the dynamic change of the burst buffer, so that the operating efficiency of the buffer system and the utilization rate of the buffer resources are low.
It is to be noted that the information disclosed in the above background section is only for enhancement of understanding of the background of the present disclosure, and thus may include information that does not constitute prior art known to those of ordinary skill in the art.
Disclosure of Invention
The present disclosure provides an I/O request scheduling method, apparatus, electronic device, and storage medium, which overcome, at least to some extent, the problems of low operating efficiency of a buffer system and low utilization of buffer resources in the related art.
Additional features and advantages of the disclosure will be set forth in the detailed description which follows, or in part will be obvious from the description, or may be learned by practice of the disclosure.
According to an aspect of the present disclosure, there is provided an input/output I/O request scheduling method, including: acquiring a plurality of I/O requests to be scheduled and corresponding data volumes; acquiring available cache capacity of a plurality of reference cache nodes; generating a target scheduling strategy corresponding to the data volume and the available cache capacity based on a dynamic plan minimizing scheduling cost; and scheduling the plurality of I/O requests to be scheduled to the plurality of reference cache nodes according to the target scheduling policy.
According to another aspect of the present disclosure, there is provided an input/output I/O request scheduling apparatus including: the device comprises an acquisition module, a scheduling module and a scheduling module, wherein the acquisition module is used for acquiring a plurality of I/O requests to be scheduled and corresponding data volumes; the acquisition module is also used for acquiring the available cache capacity of the plurality of reference cache nodes; a generating module, configured to generate a target scheduling policy corresponding to the data amount and the available cache capacity based on a dynamic plan that minimizes a scheduling cost; and the scheduling module is used for scheduling the plurality of I/O requests to be scheduled to the plurality of reference cache nodes according to the target scheduling strategy.
In an embodiment of the present disclosure, the obtaining module is configured to obtain job information of a first application program, where the first application program is an application program that completes registration with a scheduling device, and the job information includes a first I/O request and a corresponding data amount of the first application program; determining a second application program of which the operation phase is an I/O phase in the first application program; determining a second I/O request of the first I/O requests that puts the second application in an I/O phase; and determining a plurality of I/O requests to be scheduled and corresponding data volumes according to the second I/O requests and the job information.
In an embodiment of the present disclosure, the obtaining module is configured to obtain available cache capacities corresponding to a plurality of cache nodes to be selected, where the plurality of cache nodes to be selected are cache nodes included in a buffer device for receiving an I/O request; and determining the cache node with the available cache capacity larger than the capacity threshold value in the plurality of cache nodes to be selected as a reference cache node.
In an embodiment of the present disclosure, the obtaining module is configured to receive an indication message sent by a buffer device, where the indication message includes available cache capacities corresponding to the multiple reference cache nodes, and the available cache capacities corresponding to the multiple reference cache nodes are all greater than a capacity threshold; and determining the available cache capacity of the reference cache node according to the indication message.
In an embodiment of the present disclosure, the generating module is configured to determine one or more intermediate scheduling costs corresponding to the data amount and the available cache capacity in one or more dynamic planning manners that minimize the scheduling cost; determining a minimum scheduling cost of the one or more intermediate scheduling costs; and determining the scheduling strategy corresponding to the minimum scheduling cost as the target scheduling strategy.
In an embodiment of the present disclosure, the number of the plurality of I/O requests to be scheduled is n, the number of the plurality of reference cache nodes is m, and n and m are integers greater than or equal to 2; the one or more dynamic planning ways to minimize the scheduling cost include one or more of the following dynamic planning ways:
C ij +OPT(n -i ,m -j )
OPT(n -i ,m)
OPT(n,m -j )
OPT(n -i ,m -j )
wherein, C ij Scheduling cost for scheduling the ith I/O request to be scheduled to the jth reference cache node; OPT (n) -i ,m -j ) Based on dynamic planning, scheduling the minimum scheduling cost of other I/O requests to be scheduled, except the ith I/O request to be scheduled, in the n I/O requests to be scheduled to other cache nodes except the jth reference cache node in the m reference cache nodes; OPT (n) -i M) is the minimum scheduling cost for scheduling other I/O requests to be scheduled, except the ith I/O request to be scheduled, in the n I/O requests to be scheduled to m reference cache nodes based on dynamic planning; OPT (n, m) -j ) The method is based on dynamic planning, and the minimum scheduling cost of n I/O requests to be scheduled is scheduled to other reference cache nodes except the jth reference cache node in m reference cache nodes.
In an embodiment of the present disclosure, the objective scheduling policy corresponds to a goal of maximizing the bandwidth obtained by the application program in the buffer device, where C is ij Determining according to the number of the plurality of I/O requests to be scheduled, the corresponding data volume and the completion duration; the completion duration is the duration of the plurality of reference cache nodes completing the use of the corresponding I/O request to be scheduled.
In an embodiment of the present disclosure, in a case that the objective corresponding to the target scheduling policy is the maximum buffer system efficiency, the C ij According to
Figure BDA0003878648900000031
And
Figure BDA0003878648900000032
at least one of the determinations; the described
Figure BDA0003878648900000033
The average value of the sum of the ratio of each service duration to the previous service duration in a plurality of service durations, wherein the plurality of service durations are durations during which the plurality of reference cache nodes provide services for the plurality of third applications; the plurality of third application programs are application programs corresponding to the plurality of I/O requests to be scheduled; the described
Figure BDA0003878648900000034
Is an average remaining cache capacity of the plurality of reference cache nodes.
In an embodiment of the present disclosure, the objective scheduling policy corresponds to a purpose of maximizing application fairness, and C is ij Determining according to the first completion time and the second completion time; the first completion time is a time when the plurality of reference cache nodes complete service for a first third application program; the second completion time is a time when the plurality of reference cache nodes complete service for a last third application; the first third application program is a third application program which is registered with the dispatching equipment in the plurality of third application programs; the last third application is a third application that is registered with the scheduling device last among the plurality of third applications.
In an embodiment of the present disclosure, the objective scheduling policy corresponds to minimizing the delay time of the application program ij Determining a waiting scheduling time length and an extra spent time length corresponding to each I/O request to be scheduled in the plurality of I/O requests to be scheduled; the waiting scheduling time length is a difference value between a time point when the plurality of reference cache nodes serve corresponding I/O requests to be scheduled and a time point when the plurality of reference cache nodes serve a first I/O request to be scheduled in the plurality of I/O requests to be scheduled; the extra spent time length is a difference value between the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled and the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled without interference.
In an embodiment of the present disclosure, the obtaining module is further configured to obtain a concurrency tolerance of the to-be-detected cache node, where the concurrency tolerance represents concurrency capability of the to-be-detected cache node; acquiring the concurrency number of the application programs which are concurrently accessed in the cache nodes to be detected; acquiring the maximum achievable bandwidth and the actual bandwidth of the cache node to be detected; the device further comprises: and the first determining module is used for determining the sensitivity of the cache node to be detected to the concurrent access according to the concurrency tolerance, the concurrency quantity, the maximum achievable bandwidth and the actual bandwidth.
In an embodiment of the present disclosure, the concurrency tolerance includes one or more of a bus channel, a controller channel, and a number of memory banks corresponding to the cache node to be detected.
In an embodiment of the present disclosure, the first determining module is configured to calculate the sensitivity according to the following formula:
Figure BDA0003878648900000041
Figure BDA0003878648900000042
δ=λ τ ×λ ω
wherein, tau a The number of concurrencies; tau is dc Is the concurrency tolerance; omega max For the achievable maximum bandwidth; omega r Is the actual bandwidth; δ is the sensitivity.
In an embodiment of the present disclosure, the obtaining module is further configured to obtain a first execution duration of a job corresponding to an application to be detected under an interference condition, where the interference indicates that there are other application programs executed in parallel in the buffer device; acquiring a second execution time length of the operation under the condition of no interference, wherein the interference indicates that other application programs executed in parallel do not exist in the buffer area equipment; the device further comprises: and the second determining module is used for determining an interference value according to the first execution duration and the second execution duration.
In an embodiment of the present disclosure, the second determining module is configured to calculate the interference value according to the following formula:
Figure BDA0003878648900000051
wherein, ET with_interference Is the first execution duration; ET without_interference The second execution duration; the epsilon is an interference value.
According to still another aspect of the present disclosure, there is provided an electronic device including: a processor; and a memory for storing executable instructions of the processor; wherein the processor is configured to perform any of the above-described input/output I/O request scheduling methods via execution of the executable instructions.
According to yet another aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a processor, implements any of the above-described input/output I/O request scheduling methods.
According to yet another aspect of the present disclosure, there is provided a computer program product comprising a computer program or computer instructions, which is loaded and executed by a processor, to cause a computer to implement any of the above-mentioned input/output I/O request scheduling methods.
The technical scheme provided by the embodiment of the disclosure at least comprises the following beneficial effects:
according to the technical scheme provided by the embodiment of the disclosure, the data volume of a plurality of I/O requests to be scheduled and the available cache capacity of a plurality of reference cache nodes are obtained, dynamic planning for minimizing the scheduling cost is performed by using the data volume and the available cache capacity, and a target scheduling strategy for scheduling the plurality of I/O requests to be scheduled is generated. The target scheduling policy generated by using the data volume of the I/O request to be scheduled and the available cache capacity of the reference cache node considers the available cache capacity representing the state of the reference cache node and the data volume representing the state of the I/O request to be scheduled, so that the generated target scheduling policy can better adapt to the dynamic change of the buffer area where the reference cache node is located. In addition, the target scheduling strategy generated by dynamic planning based on the minimum scheduling cost is executed, so that the operation efficiency of the buffer system and the utilization rate of the buffer resources can be improved.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure. It is to be understood that the drawings in the following description are merely exemplary of the disclosure, and that other drawings may be derived from those drawings by one of ordinary skill in the art without the exercise of inventive faculty.
FIG. 1 is a schematic diagram illustrating an I/O request scheduling system according to an embodiment of the present disclosure;
FIG. 2 illustrates a flow diagram of a method of I/O request scheduling in one embodiment of the present disclosure;
FIG. 3 is a flow diagram illustrating the determination of sensitivity of cache nodes to be tested to concurrent access in one embodiment of the present disclosure;
FIG. 4 illustrates a flow chart of a method of determining an interference value for an application in one embodiment of the present disclosure;
FIG. 5 is a flow diagram illustrating a method of I/O request scheduling in another embodiment of the present disclosure;
FIG. 6 is a schematic diagram illustrating an I/O request scheduling apparatus according to an embodiment of the present disclosure;
fig. 7 shows a block diagram of an electronic device in an embodiment of the present disclosure.
Detailed Description
Example embodiments will now be described more fully with reference to the accompanying drawings. Example embodiments may, however, be embodied in many different forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Furthermore, the drawings are merely schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the drawings denote the same or similar parts, and a repetitive description thereof will be omitted. Some of the block diagrams shown in the figures are functional entities and do not necessarily correspond to physically or logically separate entities. These functional entities may be implemented in the form of software, or in one or more hardware modules or integrated circuits, or in different networks and/or processor devices and/or microcontroller devices.
Fig. 1 is a schematic diagram illustrating a structure of an I/O request scheduling system in an embodiment of the present disclosure, where the system may apply an I/O request scheduling method or an I/O request scheduling apparatus in various embodiments of the present disclosure.
As shown in fig. 1, the I/O request scheduling system architecture may include: an I/O scheduling device 11, a buffer device 12, a plurality of access devices 13.
The buffer device 12 includes a plurality of cache nodes, each of which has a certain cache resource, and the cache resource can be used for caching I/O requests and the like. The buffer device 12 is configured with a monitoring module, which is capable of monitoring status information of a plurality of cache nodes, for example, monitoring available cache capacity, bandwidth, busy/idle status of the cache nodes, and the like of the plurality of cache nodes. The buffer device 12 may transmit data to the I/O scheduling device 11, and the buffer device 12 may also receive the data transmitted by the I/O scheduling device 11.
The access devices 13 include respective devices in which application programs are installed, the applications installed in the access devices 13 generate corresponding jobs during startup and running, the jobs include I/O requests, and the access devices 13 can send the I/O requests generated by the applications to the I/O scheduling device 11. In some embodiments, the access device to which the application corresponds can register information of the job generated by the application with the I/O scheduling device 11, for example, the information includes the name, size, content, and the like of the job.
In some embodiments, an agent module is configured in the access device corresponding to the application, and the agent module is capable of monitoring a current phase of the application, where the current phase of the application is a phase where an ongoing job of the application is located, for example, a job generally includes an I/O request and a computing task, and when the application needs to read/write data, the current phase of the job is an I/O phase, and accordingly, the current phase of the application is an I/O phase. In some embodiments, the agent module may report the phase information of the monitored application to the corresponding access device, and the access device can transmit the phase information to the I/O scheduling device 11.
I/O scheduling facility 11 maintains I/O scheduling queues, which in one embodiment include scheduled but unexecuted I/O requests, as well as unscheduled I/O requests. In another embodiment, I/O requests that are not scheduled in the I/O queue. The I/O scheduling device 11 may receive phase information of the application program sent by the agent module, determine an I/O request to be scheduled according to the phase information and job information of the application program, and then maintain an I/O scheduling queue according to the I/O request to be scheduled. The I/O scheduling device 11 is capable of receiving the state information of the node sent by the buffer device 12, and maintaining the state of the cache node in the buffer device 11 according to the state information. The I/O scheduling device 11 can generate a corresponding scheduling policy according to the I/O request to be scheduled in the scheduling queue and the state of the cache node included in the buffer device 12, and schedule the I/O request to the corresponding cache node according to the scheduling policy.
The I/O scheduling device 11, the buffer device 12, and the plurality of access devices 13 are communicatively connected through a network, which may be a wired network or a wireless network.
Optionally, the wireless or wired networks described above use standard communication techniques and/or protocols. The Network is typically the Internet, but can be any Network including, but not limited to, a Local Area Network (LAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a mobile, wired or wireless Network, a private Network, or any combination of virtual private networks. In some embodiments, data exchanged over a network is represented using techniques and/or formats including HyperText Mark-up Language (HTML), extensible Mark-up Language (XML), and the like. All or some of the links may also be encrypted using conventional encryption techniques such as Secure Socket Layer (SSL), transport Layer Security (TLS), virtual Private Network (VPN), internet protocol Security (IPsec), and so on. In other embodiments, custom and/or dedicated data communication techniques may also be used in place of, or in addition to, the data communication techniques described above.
The access devices included with the plurality of access devices 13 may be a variety of electronic devices including, but not limited to, smart phones, tablets, laptop portable computers, desktop computers, wearable devices, augmented reality devices, virtual reality devices, and the like. The applications installed in different access devices included in the plurality of access devices 13 may have the same application or different applications, which is not limited in this disclosure.
The buffer device 12 is an electronic device having one or more cache nodes, for example, the buffer device 12 may be a server, a terminal, or the like having a storage function. The cache nodes may be independent electronic devices, and the storage media corresponding to different cache nodes may be the same or different. For example, the storage medium corresponding to each cache node may be one or more of a RAM (Random Access Memory), an SSD (Solid State Disk), and an HDD (Hard Disk Drive).
The I/O scheduling device 11 may be any electronic device having the above-described functions, for example, a server or a terminal. In one embodiment, the I/O scheduling device 11 may also be a functional module in the buffer device 12.
Those skilled in the art will appreciate that the number of the plurality of access devices 13 in fig. 1 is merely illustrative and that there may be any number of access devices according to actual needs. The embodiments of the present disclosure do not limit this.
The present exemplary embodiment will be described in detail below with reference to the drawings and examples.
The embodiment of the disclosure provides an I/O request scheduling method, which can be executed by any electronic device with computing processing capability. For example, the electronic device is an I/OI/O scheduling device.
Fig. 2 shows a flowchart of an I/O request scheduling method in an embodiment of the present disclosure, and as shown in fig. 2, the I/O request scheduling method provided in the embodiment of the present disclosure includes the following steps S201 to S204.
S201, a plurality of I/O requests to be scheduled and corresponding data volumes are obtained.
In some embodiments, the I/O requests to be scheduled comprise unscheduled I/O requests. In another embodiment, the I/O requests to be scheduled include unscheduled I/O requests and scheduled unexecuted I/O requests.
In some embodiments, obtaining a plurality of I/O requests to be scheduled and corresponding data volumes may include: acquiring operation information of a first application program, wherein the first application program is an application program which finishes registration to scheduling equipment, and the operation information comprises a first I/O request and a corresponding data volume of the first application program; determining a second application program of which the operation stage is an I/O stage in the first application program; determining a second I/O request of the first I/O requests, which enables the second application program to be in the I/O phase; and determining a plurality of I/O requests to be scheduled and corresponding data volumes according to the second I/O requests and the job information. The job information includes a job name, a size, a content corresponding to the first application program, and a data size and a start time corresponding to each task stage, and the data size corresponding to each task stage includes a data size corresponding to the I/O request in the job information.
In some embodiments, when the application is started, the registering, by the access device where the application is located, job information corresponding to the application to the I/O scheduling device, that is, acquiring the job information of the first application, may include: and receiving the job information sent by the access device where the first application program is located.
In some embodiments, the device where the application program is located monitors the job phase where the application program is located, obtains job phase information where the application program is located, and then sends the job phase information to the I/O scheduling device. The determining the second application program whose operation phase is the I/O phase in the first application program may include: receiving operation stage information corresponding to a first application program; and determining a second application program of which the operation phase is an I/O phase in the first application program according to the operation phase information corresponding to the first application program. The I/O scheduling equipment can determine the job phase of the application program in real time according to the job phase information, and accordingly can determine a second I/O request for enabling a second application program to be in the I/O phase directly from the first I/O request included in the job information.
The I/O scheduling equipment maintains an I/O scheduling queue, has information of scheduled and unexecuted I/O requests in the I/O scheduling queue, and can determine a plurality of I/O requests to be scheduled and corresponding data volumes according to the second I/O scheduling request and the scheduled and unexecuted I/O requests.
S202, the available cache capacity of the multiple reference cache nodes is obtained.
In some embodiments, obtaining the available cache capacity of the plurality of reference cache nodes may include: obtaining available cache capacity corresponding to a plurality of cache nodes to be selected, wherein the plurality of cache nodes to be selected are cache nodes included in buffer area equipment for receiving I/O requests; and determining the cache node with the available cache capacity larger than the capacity threshold value in the plurality of cache nodes to be selected as a reference cache node.
The buffer device is configured with a detection module, and the monitoring module can monitor the available buffer capacity of a plurality of cache nodes to be selected included in the buffer device and can send the available buffer capacity information of the plurality of cache nodes to be selected to the I/O scheduling device. After receiving the available buffer capacity information, the I/O scheduling device may determine the available buffer capacities of the plurality of cache nodes to be selected according to the available buffer capacity information, and determine, from the plurality of cache nodes to be selected, a reference cache node whose available buffer capacity is greater than a capacity threshold value among the plurality of cache nodes to be selected. The capacity threshold is a set value, and regarding the specific size of the capacity threshold, the embodiment of the present disclosure is not limited, and may be set according to experience.
In other embodiments, obtaining the available cache capacity of the plurality of reference cache nodes may include: receiving an indication message sent by buffer area equipment, wherein the indication message comprises available cache capacities corresponding to a plurality of reference cache nodes, and the available cache capacities corresponding to the plurality of reference cache nodes are all larger than a capacity threshold; and determining the available cache capacity of the reference cache node according to the indication message.
In some embodiments, the buffer device is configured with a monitoring module, which is capable of monitoring available buffer capacity of a plurality of cache nodes to be selected included in the buffer device, and determining a cache node to be selected as a reference cache node when the available buffer capacity of the cache node to be selected is greater than a capacity threshold, and generating an indication message, where the indication message includes an identifier of the reference cache node in the cache nodes to be selected and a corresponding available buffer capacity.
S203, generating a target scheduling strategy corresponding to the data volume and the available buffer capacity based on the dynamic planning of the minimized scheduling cost.
In some embodiments, generating the target scheduling policy corresponding to the data amount and the available buffer capacity based on the dynamic plan for minimizing the scheduling cost may include: determining data volume and available cache capacity, and one or more corresponding intermediate scheduling costs in one or more dynamic planning modes which minimize the scheduling costs; determining a minimum scheduling cost of the one or more intermediate scheduling costs; and determining the scheduling strategy corresponding to the minimum scheduling cost as a target scheduling strategy.
In some embodiments, the number of the plurality of I/O requests to be scheduled is n, the number of the plurality of reference cache nodes is m, n and m are integers greater than or equal to 2, and the one or more dynamic planning manners that minimize the scheduling cost include one or more of the following dynamic planning manners:
C ij +OPT(n -i ,m -j ) (1)
OPT(n -i ,m) (2)
OPT(n,m -j ) (3)
OPT(n -i ,m -j ) (4)
wherein, C ij Is the scheduling cost of scheduling the ith I/O request to be scheduled to the jth reference cache node. OPT (n) -i ,m -j ) The minimum scheduling cost of other to-be-scheduled I/O requests except the ith to-be-scheduled I/O request in the n to-be-scheduled I/O requests is scheduled to other cache nodes except the jth reference cache node in the m reference cache nodes based on dynamic planning. OPT (n) -i And m) scheduling the minimum scheduling cost of other I/O requests to be scheduled except the ith I/O request to be scheduled in the n I/O requests to be scheduled to the m reference cache nodes based on dynamic planning. OPT (n, m) -j ) The method is based on dynamic planning, and the minimum scheduling cost of n I/O requests to be scheduled is scheduled to other reference cache nodes except the jth reference cache node in the m reference cache nodes.
In some embodiments, a minimum scheduling cost may be determined according to the dynamic planning shown in the following formula 5, and a scheduling policy corresponding to the minimum scheduling cost is determined to be a target scheduling policy.
Figure BDA0003878648900000111
The OPT (n, m) is based on 4 dynamic planning modes shown in formula 1, formula 2, formula 3 and formula 4, the minimum scheduling cost of n I/O requests to be scheduled is scheduled to m reference cache nodes, and the MIN (standard) is a minimum function.
In some embodiments, the goal of the target scheduling policy corresponds to maximizing the availability of applications in the buffer deviceIn the case of the resulting bandwidth, C ij Determining according to the number of a plurality of I/O requests to be scheduled, the corresponding data volume and the completion duration; the completion duration is the duration of time for the plurality of reference cache nodes to complete the use of the corresponding I/O request to be scheduled. In some embodiments, the completion duration may be predicted according to the data amount of the plurality of I/O requests to be scheduled and the available cache capacity of the plurality of reference cache nodes. How to predict the completion duration of the I/O request to be scheduled according to the data amount of the I/O requests to be scheduled and the available cache capacity of the reference cache nodes is not limited in the embodiments of the present disclosure. The prediction may be made, for example, by direct calculation, or the completion period may also be predicted by an empirical model. The empirical model generates the completion duration of the current I/O request to be scheduled according to the completion duration of the I/O request to be scheduled under the condition that the historical data of the scheduling is similar to the current scheduling.
In one embodiment, the objective scheduling policy corresponds to the goal of maximizing the bandwidth available to the application in the buffer device, C ij Obtained according to the following equation 6.
Figure BDA0003878648900000121
Wherein, γ i Is the data volume of the ith I/O request to be scheduled, t i Is the completion duration of the ith I/O request to be scheduled, and n is the number of the plurality of I/O requests to be scheduled, wherein n is an integer greater than or equal to 2.
In some embodiments, the target scheduling policy corresponds to a goal of maximum buffer system efficiency, C ij According to
Figure BDA0003878648900000122
And
Figure BDA0003878648900000123
at least one of the determination.
Figure BDA0003878648900000124
The average value of the sum of the ratio of each service duration to the previous service duration in the plurality of service durations, and the plurality of service durations are durations during which the plurality of reference cache nodes provide services for the plurality of third applications. The third application programs are application programs corresponding to the I/O requests to be scheduled.
Figure BDA0003878648900000125
Is the average remaining cache capacity of the plurality of reference cache nodes.
The registration time of the plurality of third applications to the I/O scheduling device has a precedence relationship, the precedence order in which the third applications start to be serviced can be determined according to the precedence relationship, the service duration for each third application to be serviced by the plurality of reference cache nodes can be determined according to the precedence order, and the ratio of each service duration to the previous service duration. The first third application program served by the multiple reference cache nodes does not have a corresponding previous served third application program, so when the service duration is calculated, the service duration corresponding to the first third application program can be only used as the denominator of the ratio of the subsequent calculated service durations, for example, 3 third application programs are provided in total, the service duration corresponding to the first third application program is 1s (second), the service duration corresponding to the second third application program is 1.1s, and the service duration corresponding to the third application program is 2.2s, so that the service duration is calculated by using the first reference cache node and the second reference cache node as the reference cache node, and the service duration corresponding to the first third application program is 1.1s, and the service duration corresponding to the third application program is 2.2s
Figure BDA0003878648900000126
Figure BDA0003878648900000127
In some embodiments, the service duration corresponding to each third application may be predicted according to the data amount of the multiple I/O requests to be scheduled and the available cache capacity of the multiple reference cache nodes. How to predict the service duration corresponding to each third application according to the data amount of the plurality of I/O requests to be scheduled and the available cache capacity of the plurality of reference cache nodes is not limited in the embodiments of the present disclosure. The prediction may be made, for example, by direct calculation, or the service duration may also be predicted by empirical models.
In some embodiments of the present invention, the,
Figure BDA0003878648900000131
the average value can be obtained by adding the available buffer capacities of the plurality of reference buffer nodes after the response buffer resources are allocated to each I/O request to be scheduled. The embodiment of the present disclosure is not limited to how to predict the available cache capacities of the multiple reference cache nodes according to the data amounts of the multiple I/O requests to be scheduled and the available cache capacities of the multiple reference cache nodes. The prediction may be made, for example, by means of direct calculation, or the available buffer capacity may also be predicted by means of an empirical model. For example, the available buffer capacities of the multiple reference buffer nodes after the corresponding buffer resource is allocated to each I/O request to be scheduled may be directly calculated according to the data amount of the multiple I/O requests to be scheduled and the available buffer capacities of the multiple reference buffer nodes before the buffer resource is allocated to the I/O request to be scheduled.
In some embodiments, the target scheduling policy corresponds to a goal of maximum buffer system efficiency, C ij Obtained according to the following equation 7.
Figure BDA0003878648900000132
In some embodiments, the objective scheduling policy corresponds to the goal of maximizing application fairness, C ij Determining according to the first completion time and the second completion time; the first completion time is the time when the plurality of reference cache nodes finish serving the first third application program; the second completion time is the time when the plurality of reference cache nodes complete the service for the last third application program; the first third application program is a third application program which is registered with the dispatching equipment in the plurality of third application programs; the last third application is a third application that is last registered with the scheduling device among the plurality of third applications.
The first completion time and the second completion time may be predicted according to a data size of the plurality of I/O requests to be scheduled and an available cache capacity of the plurality of reference cache nodes. The embodiment of the present disclosure is not limited to how to predict the first completion time and the second completion time according to the data amount of the plurality of I/O requests to be scheduled and the available buffer capacity of the plurality of reference buffer nodes. The prediction may be made, for example, by direct calculation, or the first and second completion times may also be predicted by an empirical model.
In some embodiments, the objective scheduling policy corresponds to the goal of maximizing application fairness, C ij Obtained according to the following equation 8.
C ij =t c-LastApp -t c-FirstApp (8)
Wherein, t c-LastApp Is the second completion time, t c-FirstApp Is the first completion time.
In some embodiments, the objective scheduling policy corresponds to minimizing the application delay period, C ij Determining a waiting scheduling time length and an extra spent time length corresponding to each I/O request to be scheduled in a plurality of I/O requests to be scheduled; the waiting scheduling time length is a difference value between a time point of serving the corresponding I/O request to be scheduled by the plurality of reference cache nodes and a time point of serving a first I/O request to be scheduled in the plurality of I/O requests to be scheduled; the extra spent time length is a difference value between the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled and the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled without interference.
In case of no interference, the time length information of the multiple reference cache nodes serving the corresponding I/O request to be scheduled may be stored in the I/O scheduling device in advance. For example, according to the historical data of the scheduling I/O request, the time length for the multiple reference cache nodes to serve the historical I/O request to be scheduled may be determined, and the time length may be considered as the time length for the current I/O request to be scheduled to be served without interference. The historical I/O request to be scheduled has the same data volume as the current I/O request to be scheduled, the environments are the same or similar, and the interference of other I/O requests does not exist when the historical I/O request to be scheduled is executed. Wherein, the plurality of cache nodes which have the same or similar environment and comprise the buffer area equipment have the same or similar available cache capacity.
In some embodiments, the time length for each I/O request to be scheduled to wait for scheduling and the time lengths for the multiple reference cache nodes to serve the corresponding I/O requests to be scheduled may be obtained by prediction according to the data amount of the multiple I/O requests to be scheduled and the available cache capacity of the multiple reference cache nodes.
In some embodiments, the objective scheduling policy corresponds to minimizing the application delay period, C ij Obtained according to the following equation 9.
Figure BDA0003878648900000141
Wherein n is the number of multiple I/O requests to be scheduled, t i-waiting For the waiting scheduling duration, t, of the ith I/O request to be scheduled i-extra The extra time spent for the ith I/O request to be scheduled.
S204, a plurality of I/O requests to be scheduled are scheduled to a plurality of reference cache nodes according to the target scheduling strategy.
The I/O scheduling equipment generates a target scheduling strategy according to the data volume of the I/O requests to be scheduled and the available cache capacity of the reference cache nodes, then executes the target scheduling strategy, allocates the cache resources indicated in the target scheduling strategy for the I/O requests to be scheduled from the cache resources of the reference cache nodes, and schedules the I/O requests to be scheduled to the reference cache nodes.
According to the technical scheme provided by the embodiment of the disclosure, the data volume of a plurality of I/O requests to be scheduled and the available cache capacity of a plurality of reference cache nodes are obtained, dynamic planning for minimizing the scheduling cost is performed by using the data volume and the available cache capacity, and a target scheduling strategy for scheduling the plurality of I/O requests to be scheduled is generated. The target scheduling policy generated by using the data volume of the I/O request to be scheduled and the available cache capacity of the reference cache node considers the available cache capacity representing the state of the reference cache node and the data volume representing the state of the I/O request to be scheduled, so that the generated target scheduling policy can better adapt to the dynamic change of the buffer area where the reference cache node is located. In addition, the target scheduling strategy generated by dynamic planning based on the minimum scheduling cost is executed, so that the operating efficiency of the buffer system and the utilization rate of the buffer resources can be improved, and the occurrence probability of large delay or interruption in the operation of the application program corresponding to the I/O request to be scheduled is further reduced.
In addition, the disclosed embodiment also provides the purpose of the scheduling policy to maximize the bandwidth obtained by the application in the buffer device, or to maximize the efficiency of the buffer system, or to maximize the fairness of the application, or to minimize the delay time of the application, C ij The calculation method of (1).
In another embodiment of the present disclosure, a method for determining sensitivity of a cache node to be detected to concurrent accesses is also provided. As shown in fig. 3, the process of determining the sensitivity of the cache node to be detected to concurrent accesses includes S301 to S304.
S301, obtaining the concurrency tolerance of the cache node to be detected, wherein the concurrency tolerance represents the concurrency capability of the cache node to be detected.
The cache nodes to be detected are part or all of the cache nodes included in the buffer area equipment. For example, the buffer device includes 5 cache nodes, and the cache node to be detected may be any 3 cache nodes in the 5 cache nodes, or may be all cache nodes in the 5 cache nodes. In some embodiments, the concurrency tolerance of the cache node to be detected includes one or more of a bus channel, a controller channel, and a number of memory banks corresponding to the cache node to be detected.
The bus channel, the controller channel and the memory bank number corresponding to the cache node to be detected are determined information, the information can be stored in the buffer area device, and the concurrency tolerance of the cache node to be detected is acquired, which may include: sending a request message to the buffer device; and receiving a feedback message sent by the buffer device, wherein the feedback message comprises one or more of the number of bus channels, controller channels and memory banks corresponding to the cache node to be detected.
S302, obtaining the concurrency number of the application programs which are concurrently accessed in the cache nodes to be detected.
The concurrency number is used for indicating the number of the application programs which are concurrently accessed in the cache nodes to be detected. The I/O scheduling equipment can schedule the I/O request to be scheduled, correspondingly, the I/O scheduling equipment stores the corresponding relation between the I/O request and the cache node, and the concurrency number of the application programs which are concurrently accessed in the cache node to be detected can be obtained according to the corresponding relation.
S303, acquiring the maximum achievable bandwidth and the actual bandwidth of the cache node to be detected.
The method for acquiring the achievable maximum bandwidth and the actual bandwidth of the cache node to be detected includes, in some embodiments, storing the achievable maximum bandwidth and the actual bandwidth of the cache node to be detected in buffer area equipment, and acquiring the achievable maximum bandwidth and the actual bandwidth of the cache node to be detected, where the method includes: and acquiring the achievable maximum bandwidth and the actual bandwidth of the cache node to be detected from the buffer area equipment.
S304, determining the sensitivity of the cache nodes to be detected to the concurrent access according to the concurrency tolerance, the concurrency number, the achievable maximum bandwidth and the practical bandwidth.
In some embodiments, the sensitivity of the cache node to be detected to the concurrent access is determined according to the concurrency tolerance, the concurrency number, the achievable maximum bandwidth and the actual bandwidth, and the sensitivity of the cache node to be detected to the concurrent access can be calculated according to the following formula 10, formula 11 and formula 12.
Figure BDA0003878648900000161
Figure BDA0003878648900000162
δ=λ τ ×λ ω (12)
Wherein, tau a Is the number of concurrencies; tau. dc Is concurrency tolerance; omega max To achieve maximum bandwidth; omega r Is the actual bandwidth; and delta is the sensitivity of the cache node to be detected to concurrent access.
The technical scheme provided by the embodiment of the disclosure provides a representation mode of the sensitivity of the cache node to the concurrent access and a mode of calculating the sensitivity of the cache node to be detected to the concurrent access. And reference is provided for evaluating the performance of the cache nodes and the effect of different scheduling strategies.
In another embodiment of the present disclosure, a method of determining an interference value of an application is also provided. As shown in fig. 4, the determination process of the interference value of the application program includes S401 to S403.
S401, acquiring a first execution duration of a job corresponding to an application program to be detected under the condition of interference, wherein the interference indicates that other application programs executed in parallel exist in buffer area equipment.
The application to be detected may be any application that requests the buffer device for the cache resource. After the application program to be detected is started, the access device corresponding to the application program to be detected registers the job information and the like of the application program to be detected to the I/O scheduling device, records the job completion time when the application program completes the job, and then sends the job completion time to the I/O scheduling device. The I/O scheduling equipment can obtain a first execution duration of the operation corresponding to the application program to be detected under the condition of interference according to the registration time and the operation completion time.
S402, acquiring a second execution time length of the job under the condition of no interference, wherein the interference indicates that other application programs executed in parallel do not exist in the buffer area equipment.
In some embodiments, the second execution time length of the job of the application to be detected may be the second execution time length of a historical job, the historical job has the same data size as the job of the application to be detected, and the environment where the historical job is executed is the same as or similar to the environment where the job of the application to be detected is executed, for example, the buffer device includes a cache node having the same or similar available cache capacity, and the historical job is executed without interference of jobs of other applications. Acquiring the second execution time length of the job without interference may include: the execution time length of the history job is acquired.
And S403, determining an interference value according to the first execution time length and the second execution time length.
In some embodiments, the manner in which the interference value is determined based on the first execution duration and the second execution duration may be as shown in equation 13.
Figure BDA0003878648900000171
Wherein, ET with_interference Is the first execution duration; ET without_interference The second execution duration; ε represents the interference value.
The technical scheme provided by the embodiment of the disclosure provides a representation mode of the interfered condition of the application program and a calculation mode of the interfered degree of the application program. And reference is provided for evaluating the performance of the cache nodes and the effect of different scheduling strategies.
For convenience of understanding, the I/O request scheduling method provided by the embodiment of the present disclosure will be described below by combining the embodiment corresponding to fig. 2, the embodiment corresponding to fig. 3, and the embodiment corresponding to fig. 4. As shown in fig. 5, an I/O request scheduling method provided in another embodiment of the present disclosure includes S501 to S508.
S501, the buffer area device continuously sends the state of the buffer node to the I/O scheduling device. And the monitoring module configured in the buffer area equipment continuously collects the states of the cache nodes included in the buffer area equipment and sends the busy/idle state information of the cache nodes to the I/O scheduling equipment.
S502, the buffer device sends an indication message to the I/O scheduling device, wherein the indication message comprises the identifier of the reference cache node and the corresponding available cache capacity. Wherein the available cache capacity of the reference cache node is greater than the capacity threshold. And the monitoring module configured in the buffer area equipment continuously collects the available cache capacity of the cache node included by the buffer area equipment, and reports the identifier of the cache node and the available cache capacity to the I/O scheduling equipment under the condition that the available cache capacity of the cache node is greater than a capacity threshold value.
S503, the I/O scheduling equipment maintains the registration information of the application program and tracks the operation stage of the running application program.
S504, the I/O scheduling device maintains the state and the available buffer capacity of the buffer nodes included in the buffer area device.
And S505, the I/O scheduling equipment maintains scheduling queue information. Wherein the scheduling queue information includes scheduled unexecuted I/O requests and unscheduled I/O requests. The I/O scheduling device updates the scheduling queue information according to the maintained job phase of the application program.
S506, when the application is started, the access device registers job information and the like of the application to the I/O scheduling device.
And S507, after the I/O scheduling equipment receives the registration information corresponding to the application program, calculating the interference value and the sensitivity of the posterior index. In S507, the time for the I/O scheduling device to calculate the interference value and the sensitivity is arbitrary, and after receiving the registration information corresponding to the application program, the I/O scheduling device calculates the interference value and the sensitivity of the posterior index, which is only one way to calculate the posterior index.
And S508, the I/O scheduling equipment generates a plurality of target scheduling strategies corresponding to the I/O requests to be scheduled according to the dynamic planning of the minimized cost. The I/O requests to be scheduled are I/O requests in a scheduling queue.
Regarding the implementation of each step in the embodiment corresponding to fig. 5, reference may be made to the embodiments corresponding to fig. 2, fig. 3, and fig. 4, which are not described again here.
According to the technical scheme provided by the embodiment of the disclosure, a target scheduling strategy for scheduling a plurality of I/O requests to be scheduled is generated by using a dynamic plan for minimizing scheduling cost. The target scheduling strategy generated by the data volume of the I/O request to be scheduled and the available buffer capacity of the reference buffer node considers the available buffer capacity representing the state of the reference buffer node and the data volume representing the state of the I/O request to be scheduled, so that the generated target scheduling strategy can better adapt to the dynamic change of the buffer area where the reference buffer node is located.
In addition, the target scheduling strategy generated based on the dynamic programming of the minimum scheduling cost can improve the operation efficiency of the buffer system and the utilization rate of the buffer resources, and further reduce the occurrence probability of large delay or interruption of the operation of the application program corresponding to the I/O request to be scheduled.
In addition, the technical scheme provided by the embodiment of the disclosure also provides two posterior indexes (sensitivity and interference value) and calculation modes, quantitatively describes the slowing degree of the application program caused by the interference, and provides reference for evaluating the performance of the cache node and the effects of different scheduling strategies.
Based on the same inventive concept, an I/O request scheduling apparatus is also provided in the embodiments of the present disclosure, as described in the following embodiments. Because the principle of the embodiment of the apparatus for solving the problem is similar to that of the embodiment of the method, the embodiment of the apparatus can be implemented by referring to the implementation of the embodiment of the method, and repeated details are not described again.
Fig. 6 is a schematic diagram illustrating an I/O request scheduling apparatus according to an embodiment of the present disclosure, as shown in fig. 6, the apparatus includes: an obtaining module 601, configured to obtain multiple I/O requests to be scheduled and corresponding data volumes; an obtaining module 601, configured to obtain available cache capacities of multiple reference cache nodes; a generating module 602, configured to generate a target scheduling policy corresponding to the data amount and the available cache capacity based on a dynamic plan that minimizes a scheduling cost; the scheduling module 603 is configured to schedule a plurality of I/O requests to be scheduled to a plurality of reference cache nodes according to the target scheduling policy.
In an embodiment of the present disclosure, the obtaining module 601 is configured to obtain job information of a first application, where the first application is an application that completes registration with a scheduling device, and the job information includes a first I/O request and a corresponding data amount of the first application; determining a second application program of which the operation stage is an I/O stage in the first application program; determining a second I/O request of the first I/O requests, which enables the second application program to be in the I/O phase; and determining a plurality of I/O requests to be scheduled and corresponding data volumes according to the second I/O requests and the job information.
In an embodiment of the present disclosure, the obtaining module 601 is configured to obtain available cache capacities corresponding to multiple cache nodes to be selected, where the multiple cache nodes to be selected are cache nodes included in a buffer device for receiving an I/O request; and determining the cache node of which the available cache capacity is greater than the capacity threshold value in the cache nodes to be selected as a reference cache node.
In an embodiment of the present disclosure, the obtaining module 601 is configured to receive an indication message sent by a buffer device, where the indication message includes available cache capacities corresponding to multiple reference cache nodes, and the available cache capacities corresponding to the multiple reference cache nodes are all greater than a capacity threshold; and determining the available cache capacity of the reference cache node according to the indication message.
In an embodiment of the present disclosure, the generating module 602 is configured to determine a data amount and an available buffer capacity, corresponding to one or more intermediate scheduling costs in one or more dynamic planning manners that minimize scheduling costs; determining a minimum scheduling cost of the one or more intermediate scheduling costs; and determining the scheduling strategy corresponding to the minimum scheduling cost as a target scheduling strategy.
In one embodiment of the present disclosure, the number of the plurality of I/O requests to be scheduled is n, the number of the plurality of reference cache nodes is m, and n and m are both integers greater than or equal to 2; the one or more dynamic planning approaches to minimize the scheduling cost include one or more of the following dynamic planning approaches:
C ij +OPT(n -i ,m -j )
OPT(n -i ,m)
OPT(n,m -j )
OPT(n -i ,m -j )
wherein, C ij Is to the jth referenceScheduling cost of scheduling the ith I/O request to be scheduled in the cache node; OPT (n) -i ,m -j ) Based on dynamic planning, scheduling the minimum scheduling cost of other I/O requests to be scheduled, except the ith I/O request to be scheduled, in the n I/O requests to be scheduled to other cache nodes except the jth reference cache node in the m reference cache nodes; OPT (n) -i M) is the minimum scheduling cost for scheduling other I/O requests to be scheduled, except the ith I/O request to be scheduled, in the n I/O requests to be scheduled to m reference cache nodes based on dynamic planning; OPT (n, m) -j ) The method is based on dynamic planning, and the minimum scheduling cost of n I/O requests to be scheduled is scheduled to other reference cache nodes except the jth reference cache node in m reference cache nodes.
In one embodiment of the present disclosure, the objective scheduling policy corresponds to maximizing the bandwidth available to the application in the buffer device, C ij Determining according to the number of a plurality of I/O requests to be scheduled, the corresponding data volume and the completion duration; the completion duration is the duration of time for the plurality of reference cache nodes to complete the use of the corresponding I/O request to be scheduled.
In one embodiment of the present disclosure, the target scheduling policy corresponds to the objective of maximum buffer system efficiency, C ij According to
Figure BDA0003878648900000201
And
Figure BDA0003878648900000202
at least one determination of;
Figure BDA0003878648900000203
the average value of the sum of the specific values of each service duration and the previous service duration in a plurality of service durations, wherein the plurality of service durations are durations for which a plurality of reference cache nodes provide services for a plurality of third application programs; the plurality of third application programs are application programs corresponding to the plurality of I/O requests to be scheduled;
Figure BDA0003878648900000204
is a plurality ofThe average remaining cache capacity of the cache node is referenced.
In one embodiment of the present disclosure, the objective scheduling policy corresponds to the goal of maximizing application fairness, C ij Determining according to the first completion time and the second completion time; the first completion time is the time when the plurality of reference cache nodes complete the service for the first third application program; the second completion time is the time when the plurality of reference cache nodes complete the service for the last third application program; the first third application program is a third application program which is registered with the dispatching equipment in the plurality of third application programs; the last third application is a third application that is last registered with the scheduling device among the plurality of third applications.
In one embodiment of the present disclosure, the objective scheduling policy corresponds to minimizing the application delay duration ij Determining a waiting scheduling time length and an extra spent time length corresponding to each I/O request to be scheduled in a plurality of I/O requests to be scheduled; the waiting scheduling time length is a difference value between a time point of serving the corresponding I/O request to be scheduled by the plurality of reference cache nodes and a time point of serving a first I/O request to be scheduled in the plurality of I/O requests to be scheduled; the extra spent time length is a difference value between the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled and the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled without interference.
In an embodiment of the present disclosure, the obtaining module 601 is further configured to obtain a concurrency tolerance of the cache node to be detected, where the concurrency tolerance represents a concurrency capability of the cache node to be detected; acquiring the concurrency number of application programs which are concurrently accessed in a cache node to be detected; acquiring the maximum achievable bandwidth and the actual bandwidth of a cache node to be detected; the device still includes: the first determining module 604 is configured to determine sensitivity of the cache node to be detected to concurrent access according to the concurrency tolerance, the concurrency number, the achievable maximum bandwidth, and the actual bandwidth.
In one embodiment of the present disclosure, the concurrency tolerance includes one or more of the number of bus channels, controller channels, and memory banks corresponding to the cache node to be detected.
In one embodiment of the present disclosure, the first determining module 604 is configured to calculate the sensitivity according to the following formula:
Figure BDA0003878648900000211
Figure BDA0003878648900000212
δ=λ τ ×λ ω
wherein, tau a Is the number of concurrencies; tau is dc Is concurrency tolerance; omega max To achieve maximum bandwidth; omega r Is the actual bandwidth; δ is the sensitivity.
In an embodiment of the present disclosure, the obtaining module 601 is further configured to obtain a first execution duration of a job corresponding to an application to be detected under an interference condition, where the interference indicates that there are other application programs executed in parallel in the buffer device; acquiring a second execution time length of the operation under the condition of no interference, wherein the interference indicates that other application programs executed in parallel do not exist in the buffer area equipment; the device still includes: a second determining module 605, configured to determine an interference value according to the first execution duration and the second execution duration.
In one embodiment of the present disclosure, the second determining module 605 is configured to calculate the interference value according to the following formula:
Figure BDA0003878648900000221
wherein, ET with_interference A first execution duration; ET without_interference A second execution duration; ε represents the interference value.
As will be appreciated by one skilled in the art, aspects of the present disclosure may be embodied as a system, method or program product. Accordingly, various aspects of the present disclosure may be embodied in the form of: an entirely hardware embodiment, an entirely software embodiment (including firmware, microcode, etc.), or an embodiment combining hardware and software aspects that may all generally be referred to herein as a "circuit," module "or" system.
An electronic device 700 according to this embodiment of the disclosure is described below with reference to fig. 7. The electronic device 700 shown in fig. 7 is only an example and should not bring any limitation to the function and the scope of use of the embodiments of the present disclosure.
As shown in fig. 7, electronic device 700 is embodied in the form of a general purpose computing device. The components of the electronic device 700 may include, but are not limited to: the at least one processing unit 710, the at least one memory unit 720, and a bus 730 that couples various system components including the memory unit 720 and the processing unit 710.
Wherein the storage unit stores program code that can be executed by the processing unit 710 to cause the processing unit 710 to perform the steps according to various exemplary embodiments of the present disclosure described in the section "detailed description" above in this specification.
The memory unit 720 may include readable media in the form of volatile memory units, such as a random access memory unit (RAM) 7201 and/or a cache memory unit 7202, and may further include a read only memory unit (ROM) 7203.
The storage unit 720 may also include a program/utility 7204 having a set (at least one) of program modules 7205, such program modules 7205 including, but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which, or some combination thereof, may comprise an implementation of a network environment.
Bus 730 may be any representation of one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
The electronic device 700 may also communicate with one or more external devices 740 (e.g., keyboard, pointing device, bluetooth device, etc.), with one or more devices that enable a user to interact with the electronic device 700, and/or with any devices (e.g., router, modem, etc.) that enable the electronic device 700 to communicate with one or more other computing devices. Such communication may occur via an input/output (I/O) interface 750. Also, the electronic device 700 may communicate with one or more networks (e.g., a Local Area Network (LAN), a Wide Area Network (WAN), and/or a public network such as the Internet) via the network adapter 760. As shown in FIG. 7, the network adapter 760 communicates with the other modules of the electronic device 700 via the bus 730. It should be understood that although not shown in the figures, other hardware and/or software modules may be used in conjunction with the electronic device 700, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, among others.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which may be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.
In an exemplary embodiment of the present disclosure, there is also provided a computer-readable storage medium, which may be a readable signal medium or a readable storage medium. On which a program product capable of implementing the above-described method of the present disclosure is stored. In some possible embodiments, various aspects of the disclosure may also be implemented in the form of a program product comprising program code for causing a terminal device to perform the steps according to various exemplary embodiments of the disclosure as described in the "detailed description" section above of this specification, when the program product is run on the terminal device.
More specific examples of the computer-readable storage medium in the present disclosure may include, but are not limited to: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
In the present disclosure, a computer readable storage medium may include a propagated data signal with readable program code embodied therein, either in baseband or as part of a carrier wave. Such a propagated data signal may take many forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A readable signal medium may also be any readable medium that is not a readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Alternatively, program code embodied on a computer readable storage medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
In particular implementations, program code for carrying out operations of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, C + +, or the like, as well as conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may execute entirely on the user's computing device, partly on the user's device, as a stand-alone software package, partly on the user's computing device and partly on a remote computing device, or entirely on the remote computing device or server. In situations involving remote computing devices, the remote computing devices may be connected to the user computing device through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to external computing devices (e.g., through the internet using an internet service provider).
It should be noted that although in the above detailed description several modules or units of the device for action execution are mentioned, such a division is not mandatory. Indeed, the features and functionality of two or more modules or units described above may be embodied in one module or unit, according to embodiments of the present disclosure. Conversely, the features and functions of one module or unit described above may be further divided into embodiments by a plurality of modules or units.
Moreover, although the steps of the methods of the present disclosure are depicted in the drawings in a particular order, this does not require or imply that these steps must be performed in this particular order, or that all of the depicted steps must be performed, to achieve desirable results. Additionally or alternatively, certain steps may be omitted, multiple steps combined into one step execution, and/or one step broken down into multiple step executions, etc.
Through the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein may be implemented by software, or by software in combination with necessary hardware. Therefore, the technical solution according to the embodiments of the present disclosure may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a usb disk, a removable hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which may be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the embodiments of the present disclosure.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. This disclosure is intended to cover any variations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope of the disclosure being indicated by the following claims.

Claims (18)

1. An I/O request scheduling method, comprising:
acquiring a plurality of I/O requests to be scheduled and corresponding data volumes;
acquiring available cache capacity of a plurality of reference cache nodes;
generating a target scheduling strategy corresponding to the data volume and the available cache capacity based on a dynamic plan minimizing scheduling cost;
and scheduling the plurality of I/O requests to be scheduled to the plurality of reference cache nodes according to the target scheduling policy.
2. The method of claim 1, wherein obtaining a plurality of I/O requests to be scheduled and corresponding data volumes comprises:
acquiring operation information of a first application program, wherein the first application program is an application program which finishes registration to scheduling equipment, and the operation information comprises a first I/O request and a corresponding data volume of the first application program;
determining a second application program of which the operation phase is an I/O phase in the first application program;
determining a second I/O request of the first I/O requests that places the second application in an I/O phase;
and determining a plurality of I/O requests to be scheduled and corresponding data volumes according to the second I/O requests and the job information.
3. The method of claim 1, wherein obtaining the available cache capacity of the plurality of reference cache nodes comprises:
obtaining available cache capacity corresponding to a plurality of cache nodes to be selected, wherein the plurality of cache nodes to be selected are cache nodes included in buffer area equipment for receiving I/O requests;
and determining the cache node with the available cache capacity larger than the capacity threshold value in the plurality of cache nodes to be selected as a reference cache node.
4. The method of claim 1, wherein obtaining the available cache capacity of the plurality of reference cache nodes comprises:
receiving an indication message sent by buffer area equipment, wherein the indication message comprises available cache capacities corresponding to the multiple reference cache nodes, and the available cache capacities corresponding to the multiple reference cache nodes are all larger than a capacity threshold;
and determining the available cache capacity of the reference cache node according to the indication message.
5. The method according to claim 1, wherein the generating a target scheduling policy corresponding to the data amount and the available buffer capacity based on the dynamic programming for minimizing the scheduling cost comprises:
determining one or more intermediate scheduling costs corresponding to the data volume and the available cache capacity in one or more dynamic planning modes which minimize the scheduling costs;
determining a minimum scheduling cost of the one or more intermediate scheduling costs;
and determining the scheduling strategy corresponding to the minimum scheduling cost as the target scheduling strategy.
6. The method of claim 5, wherein the number of the plurality of I/O requests to be scheduled is n, the number of the plurality of reference cache nodes is m, and n and m are integers greater than or equal to 2; the one or more dynamic planning ways to minimize the scheduling cost include one or more of the following dynamic planning ways:
C ij +OPT(n -i ,m -j )
OPT(n -i ,m)
OPT(n,m -j )
OPT(n -i ,m -j )
wherein, C ij Scheduling cost for scheduling the ith I/O request to be scheduled to the jth reference cache node; OPT (n) -i ,m -j ) Based on dynamic planning, scheduling the minimum scheduling cost of other I/O requests to be scheduled, except the ith I/O request to be scheduled, in the n I/O requests to be scheduled to other cache nodes except the jth reference cache node in the m reference cache nodes;
OPT(n -i m) is the minimum scheduling cost for scheduling other I/O requests to be scheduled, except the ith I/O request to be scheduled, in the n I/O requests to be scheduled to m reference cache nodes based on dynamic planning;
OPT(n,m -j ) The method is based on dynamic planning, and the minimum scheduling cost of n I/O requests to be scheduled is scheduled to other reference cache nodes except the jth reference cache node in m reference cache nodes.
7. The method of claim 6, wherein the objective scheduling policy corresponds to maximizing the bandwidth available to the application in the buffer device ij Determining according to the number of the plurality of I/O requests to be scheduled, the corresponding data volume and the completion duration;
the completion duration is a duration for the plurality of reference cache nodes to complete use of the corresponding I/O request to be scheduled.
8. The method of claim 6, wherein the objective of the target scheduling policy is to maximize buffer system efficiency, and wherein C is ij According to
Figure FDA0003878648890000031
And
Figure FDA0003878648890000032
at least one determination of;
the described
Figure FDA0003878648890000033
The average value of the sum of the specific values of each service duration and the previous service duration in a plurality of service durations, wherein the plurality of service durations are durations during which the plurality of reference cache nodes provide services for a plurality of third application programs; the plurality of third application programs are application programs corresponding to the plurality of I/O requests to be scheduled; the described
Figure FDA0003878648890000034
Is an average remaining cache capacity of the plurality of reference cache nodes.
9. The method of claim 6, wherein the objective of the target scheduling policy is to maximize fairness for the application, and wherein C is ij Determining according to the first completion time and the second completion time;
the first completion time is a time when the plurality of reference cache nodes complete the service for the first third application; the second completion time is a time when the plurality of reference cache nodes complete service for a last third application;
the first third application program is a third application program which is registered with the dispatching equipment in the plurality of third application programs; the last third application is a third application that is registered with the scheduling device last among the plurality of third applications.
10. The method of claim 6, wherein the objective scheduling policy corresponds to minimizing the delay time of the application program ij Determining a waiting scheduling time length and an extra spent time length corresponding to each I/O request to be scheduled in the plurality of I/O requests to be scheduled;
the waiting scheduling time length is a difference value between a time point when the plurality of reference cache nodes serve corresponding I/O requests to be scheduled and a time point when the plurality of reference cache nodes serve a first I/O request to be scheduled in the plurality of I/O requests to be scheduled;
the extra spent time length is a difference value between the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled and the time length that the plurality of reference cache nodes serve the corresponding I/O request to be scheduled without interference.
11. The method of any of claims 1-10, further comprising:
acquiring concurrency tolerance of a cache node to be detected, wherein the concurrency tolerance represents concurrency capability of the cache node to be detected;
acquiring the concurrency number of the application programs which are concurrently accessed in the cache nodes to be detected;
acquiring the maximum achievable bandwidth and the actual bandwidth of the cache node to be detected;
and determining the sensitivity of the cache node to be detected to the concurrent access according to the concurrency tolerance, the concurrency quantity, the achievable maximum bandwidth and the actual bandwidth.
12. The method according to claim 11, wherein the concurrency tolerance includes one or more of a number of bus channels, controller channels, and memory banks corresponding to the cache nodes to be detected.
13. The method according to claim 11, wherein the determining the sensitivity of the cache node to be detected to the concurrent access according to the concurrency tolerance, the concurrency number, the maximum achievable bandwidth, and the actual bandwidth comprises:
the sensitivity is calculated according to the following formula:
Figure FDA0003878648890000041
Figure FDA0003878648890000042
δ=λ τ ×λ ω
wherein, tau a The number of concurrencies; tau is dc Is the concurrency tolerance; omega max For the achievable maximum bandwidth; omega r Is the actual bandwidth; δ is the sensitivity.
14. The method of any of claims 1-10, further comprising:
acquiring a first execution duration of a job corresponding to an application program to be detected under the condition of interference, wherein the interference indicates that other application programs executed in parallel exist in buffer area equipment;
acquiring a second execution time length of the operation under the condition of no interference, wherein the interference indicates that other application programs executed in parallel do not exist in the buffer area equipment;
and determining an interference value according to the first execution duration and the second execution duration.
15. The method of claim 14, wherein determining an interference value based on the first execution duration and the second execution duration comprises:
calculating the interference value according to the following formula:
Figure FDA0003878648890000043
wherein, ET with_interference Is the first execution duration; ET without_interference The second execution duration; the epsilon is an interference value.
16. An input/output (I/O) request scheduling apparatus, comprising:
the device comprises an acquisition module, a scheduling module and a scheduling module, wherein the acquisition module is used for acquiring a plurality of I/O requests to be scheduled and corresponding data volumes;
the acquisition module is also used for acquiring the available cache capacity of the plurality of reference cache nodes;
a generating module, configured to generate a target scheduling policy corresponding to the data amount and the available cache capacity based on a dynamic plan that minimizes a scheduling cost;
and the scheduling device is used for scheduling the plurality of I/O requests to be scheduled to the plurality of reference cache nodes according to the target scheduling strategy.
17. An electronic device, comprising:
a processor; and
a memory for storing executable instructions of the processor;
wherein the processor is configured to perform the input/output I/O request scheduling method of any one of claims 1 to 15 via execution of the executable instructions.
18. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the method for scheduling input/output I/O requests according to any one of claims 1 to 15.
CN202211223430.0A 2022-10-08 2022-10-08 I/O request scheduling method and device, electronic equipment and storage medium Pending CN115437794A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211223430.0A CN115437794A (en) 2022-10-08 2022-10-08 I/O request scheduling method and device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211223430.0A CN115437794A (en) 2022-10-08 2022-10-08 I/O request scheduling method and device, electronic equipment and storage medium

Publications (1)

Publication Number Publication Date
CN115437794A true CN115437794A (en) 2022-12-06

Family

ID=84252042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211223430.0A Pending CN115437794A (en) 2022-10-08 2022-10-08 I/O request scheduling method and device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN115437794A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453378A (en) * 2023-12-25 2024-01-26 北京卡普拉科技有限公司 Method, device, equipment and medium for scheduling I/O requests among multiple application programs

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117453378A (en) * 2023-12-25 2024-01-26 北京卡普拉科技有限公司 Method, device, equipment and medium for scheduling I/O requests among multiple application programs
CN117453378B (en) * 2023-12-25 2024-03-19 北京卡普拉科技有限公司 Method, device, equipment and medium for scheduling I/O requests among multiple application programs

Similar Documents

Publication Publication Date Title
US8701108B2 (en) Apparatus and method for controlling live-migrations of a plurality of virtual machines
Zhu et al. A performance interference model for managing consolidated workloads in QoS-aware clouds
US9575810B2 (en) Load balancing using improved component capacity estimation
JP2019194914A (en) Rolling resource credit for scheduling virtual computer resource
US11188392B2 (en) Scheduling system for computational work on heterogeneous hardware
WO2018194836A1 (en) Systems and methods for proactively and reactively allocating resources in cloud-based networks
EP2894827B1 (en) Method, apparatus, and system for managing migration of virtual machine
EP1750200A2 (en) System and method for executing job step, and computer product
CN102541460B (en) Multiple disc management method and equipment
JP4557178B2 (en) Virtual machine management system, method and program thereof
US20140310712A1 (en) Sequential cooperation between map and reduce phases to improve data locality
US10191779B2 (en) Application execution controller and application execution method
CN110196770B (en) Cloud system memory data processing method, device, equipment and storage medium
CN102541657A (en) Method and device for function distribution amid operation of a hardware accelerator
CN112181664B (en) Load balancing method and device, computer readable storage medium and electronic equipment
US20200159587A1 (en) Releasable resource based preemptive scheduling
US10419305B2 (en) Visualization of workload distribution on server resources
US11750711B1 (en) Systems and methods for adaptively rate limiting client service requests at a blockchain service provider platform
CN111338785A (en) Resource scheduling method and device, electronic equipment and storage medium
CN115269108A (en) Data processing method, device and equipment
CN115437794A (en) I/O request scheduling method and device, electronic equipment and storage medium
WO2020233364A1 (en) Resource processing platform confirmation method and apparatus, and electronic device and medium
US20140136659A1 (en) Timeout Value Adaptation
CN109343958B (en) Computing resource allocation method and device, electronic equipment and storage medium
CN113285890B (en) Gateway flow distribution method and device, electronic equipment and storage medium

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