WO2020177336A1 - 资源调度方法、设备、系统及中心服务器 - Google Patents
资源调度方法、设备、系统及中心服务器 Download PDFInfo
- Publication number
- WO2020177336A1 WO2020177336A1 PCT/CN2019/112844 CN2019112844W WO2020177336A1 WO 2020177336 A1 WO2020177336 A1 WO 2020177336A1 CN 2019112844 W CN2019112844 W CN 2019112844W WO 2020177336 A1 WO2020177336 A1 WO 2020177336A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- request
- numbering
- interval
- tag value
- resource scheduling
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000004044 response Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000012549 training Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 238000013136 deep learning model Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5013—Request control
Definitions
- the present disclosure relates to resource control technology, in particular to a resource scheduling method, equipment, system and central server.
- AI Artificial Intelligence
- GPU Graphics Processing Unit
- I/O input/output
- Input/Output input/output
- An embodiment of the present disclosure provides a resource scheduling technology.
- a resource scheduling method including: receiving a first I/O request sent by a client; based on a first number interval obtained from a central server, /O request allocation request number; based on the request number of the first I/O request, determine the tag value of the first I/O request; based on the tag value of the first I/O request, schedule the first I/O request An I/O request.
- the allocating a request number to the first I/O request based on the first number interval obtained from the central server includes: determining the first number Whether there is an unallocated idle number in the interval; in response to the existence of at least one idle number in the first number interval, the smallest number in the at least one idle number is used as the request number of the first I/O request.
- the allocating a request number to the first I/O request based on the first number interval obtained from the central server includes: responding to the first number interval If there is no idle number in the numbering interval, send a numbering request for requesting a new numbering interval to the central server; receive a second numbering interval sent by the central server based on the numbering request, wherein the second numbering interval At least one numbering interval is separated from the first numbering interval.
- the allocating a request number to the first I/O request based on the first number interval obtained from the central server further includes: responding to the first number interval There is no idle number in a number interval, and the request number of the first I/O request is determined based on the largest number in the first number interval.
- the determining the tag value of the first I/O request based on the request number of the first I/O request includes: The difference between the request number of the I/O request and the request number of the second I/O request determines the tag value of the first I/O request, wherein the second I/O request is the first An I/O request corresponds to the last I/O request sent by the client.
- the first I/O request is determined based on the difference between the request number of the second I/O request and the request number of the second I/O request.
- the tag value of the I/O request includes: the tag value of the second I/O request based on the difference between the request number of the first I/O request and the request number of the second I/O request Value and current time, determine the tag value of the first I/O request.
- the tag value of the first I/O request includes at least one of a reserved tag value, a threshold tag value, and a weight tag value.
- the scheduling the first I/O request based on the tag value of the first I/O request includes: The tag value of the request determines the order of the first I/O request in the I/O request queue; based on the order of the first I/O request in the I/O request queue, the first I/O request is scheduled O request.
- a resource scheduling method applied to a server, including: receiving a first numbering request sent by a first resource scheduling device, the first numbering request being used to request a number for a client Interval; based on the third numbering interval allocated for the second numbering request, the first numbering interval is issued to the first resource scheduling device, wherein the second numbering request is the second resource received last time by the server For the numbering request for the client sent by the scheduling device, the first numbering interval is located after the third numbering interval.
- a resource scheduling device including: a request receiving unit configured to receive a first I/O request sent by a client; and a numbering interval acquiring unit configured to acquire based on a central server The first number interval that is reached, the request number is assigned to the first I/O request; the tag value determining unit is configured to determine the number of the first I/O request based on the request number of the first I/O request Tag value; a resource scheduling unit configured to schedule the first I/O request based on the tag value of the first I/O request.
- a server including: a request receiving unit configured to receive a first numbering request sent by a first resource scheduling device, the first numbering request being used to request a number for a client Interval; a numbering interval issuing unit configured to issue a first numbering interval to the first resource scheduling device based on a third numbering interval allocated for a second numbering request, wherein the second numbering request is the last time the server In the received numbering request for the client from the second resource scheduling device, the first numbering interval is located after the third numbering interval.
- a resource scheduling system including: a plurality of resource scheduling devices and a central server, wherein the resource scheduling device is configured to send to the central server for the client The first numbering request of the request numbering interval; the central server is configured to issue the first numbering interval to the resource scheduling device based on the first numbering request and the third numbering interval sent for the client last time, Wherein, the first numbering interval is located after the third numbering interval.
- an electronic device including: a memory for storing executable instructions; and a processor for communicating with the memory to execute the executable instructions to complete the above Steps of the resource scheduling method described in one aspect or the second aspect.
- a computer-readable storage medium for storing computer-readable instructions, and when the instructions are executed, the operation of any one of the resource scheduling methods described above is performed.
- a computer program product including computer readable code, and when the computer readable code runs on a device, the processor in the device executes the Instructions of the resource scheduling method described in one aspect or the second aspect.
- the resource scheduling method, device, system and central server provided by the above-mentioned embodiments of the present disclosure receive the first I/O request sent by the client; based on the first number interval obtained from the central server, it is the first I/O Request to allocate a request number; determine the tag value of the first I/O request based on the request number of the first I/O request; schedule the first I/O request based on the tag value of the first I/O request.
- the tag value is determined by the request number, and the first I/O request is scheduled according to the tag value, which solves the problem of uneven resource distribution and realizes the control of the number of I/O requests and the concurrent number according to the system concurrency.
- FIG. 1 is a schematic flowchart of a resource scheduling method provided by an embodiment of the disclosure
- FIG. 2 is a schematic diagram of another flow of a resource scheduling method provided by an embodiment of the disclosure.
- FIG. 3 is a schematic structural diagram of a resource scheduling device provided by an embodiment of the disclosure.
- FIG. 4 is a schematic diagram of another flow of a resource scheduling method provided by an embodiment of the disclosure.
- Figure 5 is a schematic structural diagram of a server provided by an embodiment of the disclosure.
- FIG. 6 is a schematic structural diagram of a resource scheduling system provided by an embodiment of the disclosure.
- FIG. 7 is a schematic diagram of an interaction process of a resource scheduling system provided by an embodiment of the disclosure.
- FIG. 8 is a structural diagram of an application example of the resource scheduling system provided by an embodiment of the disclosure.
- FIG. 9 is a schematic structural diagram of an electronic device suitable for implementing a terminal device or a server of an embodiment of the present disclosure.
- object storage systems In order to improve concurrent access to resources, object storage systems usually deploy multiple gateway instances to provide users with storage services. However, multiple gateway instances provide storage services independently, and there is no communication between them, so it is difficult to effectively control users, such as IOPS current limiting and speed limiting scenarios for users.
- FIG. 1 is a schematic flowchart of a resource scheduling method provided by an embodiment of the disclosure.
- Step 110 Receive the first I/O request sent by the client.
- the first I/O request may be issued by the client, and the first I/O request may be used to request an operation on the resource.
- the first I/O request may be issued by the user through the client, and the issued first I/O request is used to request resources for the user; wherein, the type of operation requested by the first I/O request may include but is not limited to : Get files or other objects, query files or other objects, upload files or other objects, etc.
- the method may further include: parsing at least one first I/O request, and obtaining at least one first I/O request based on the analysis result.
- each client can correspond to at least one first I/O request.
- the user basic information may include but is not limited to at least one of the following information: IP address information of the client that issued the first I/O request, login identification (ID), user name, secret key, and I/O request operation Type information, etc.
- the load balancing software layer in the resource scheduling device may receive at least one first I/O request, and select one of the gateway instances to process the first I/O request according to the load situation of each gateway instance and/or other factors. /O request; at this time, the gateway instance optionally obtains the basic user information by parsing the HyperText Transfer Protocol (HTTP, HyperText Transfer Protocol) header of the first I/O request. The purpose of obtaining basic user information is to distinguish and analyze the first I/O request. When the resource corresponding to the first I/O request is obtained, the obtained resource will be fed back according to the IP address information in the user basic information, which will be allocated. The resource is fed back to the client corresponding to the IP address information corresponding to the first I/O request.
- HTTP HyperText Transfer Protocol
- Step 120 Assign a request number to the first I/O request based on the first number interval obtained from the central server.
- each first I/O request corresponds to a request number.
- the first I/O request may be assigned a request number based on the central server.
- the first number interval is obtained from the central server, and the first number interval includes a set number of numbers.
- the 20 numbers included in the first number interval ⁇ 21,40> are: number 21 to number 40 .
- the first I/O request may be numbered based on the numbers included in the first numbering interval, for example, a free number in the first numbering interval (a free number is an unallocated number) is allocated to a first I/O request. If there is currently no free number in the first number interval, a local temporary number can be assigned as the request number of the first I/O request.
- the assigned local temporary number can be the request number assigned to the previous first I/O request plus 1;
- the waiting time improves the processing efficiency.
- Step 130 Determine the tag value of the first I/O request based on the request number of the first I/O request.
- the mClock algorithm may be used to obtain the tag value of the first I/O request.
- the mClock algorithm is to achieve effective control of multiple dimensions through triples combined with corresponding scheduling; the above triples (three tags) such as: Reservation: indicates the absolute value limit of the performance that needs to be retained, such as limiting the read per second
- the number of write operations (IOPS, Input/Output Operations Per Second) is 250/s. This type of method is a very common strategy when the system bandwidth and IOPS are not oversold;
- This type of limit is also an absolute numerical limit on performance, such as the upper limit of IOPS usage, such as to prevent some input and output intensive applications (IO Intensive Applications) from affecting online businesses, such as anti-virus applications virus scanners, virtual hard disk migration (virtual-disk migrations) applications, backup applications, etc.;
- the embodiment of the present disclosure can determine the tag value of the first I/O request through three tags.
- the tag value includes one of a reservation tag (corresponding to Reservation), a threshold tag (corresponding to Limit), and a weight tag (corresponding to Shares). Any variety.
- the disclosed example realizes the realization of the above three dimensions for multiple back-end service capability entities in a user multi-node login scenario ( Corresponding to the effective control of three tags.
- Step 140 Schedule the first I/O request based on the tag value of the first I/O request.
- the first I/O request is sorted according to the size of the tag value corresponding to the first I/O request, and the first I/O request is scheduled according to the sort. For example, the first I/O request is sorted according to the tag value from largest to smallest, and the requested resource is allocated to the client that issued the first I/O request in sequence.
- receiving the first I/O request sent by the client based on the first number interval obtained from the central server, assigning the request number to the first I/O request;
- Fig. 2 is a schematic diagram of another flow of a resource scheduling method provided by an embodiment of the present disclosure. As shown in Fig. 2, the method includes:
- Step 210 Receive the first I/O request sent by the client.
- Step 220 Determine whether there is an unallocated idle number in the first numbering interval.
- the idle number refers to the unassigned idle number in the first number interval.
- the number assigned to the first I/O request as the request number for example, the first number interval includes 20 numbers, specifically including ⁇ 21,40>, when the numbers 21-30 have been assigned to the first I/O request as After the request number, the number 31-40 is the free number in the first number interval; when a first I/O request is received, the number 31 can be assigned to the first I/O request as the request number.
- Step 230 In response to the existence of at least one free number in the first number interval, the smallest number among the at least one free number is used as the request number of the first I/O request.
- the first number interval includes a set number of numbers, where each number has a different size.
- the first number interval includes 20 numbers, specifically ⁇ 21,40>, where the smallest number is 21 and the largest number is 40 .
- the numbers in the first number interval are allocated to the first I/O request, the numbers are allocated from small to large according to the size of the numbers. For example, when the numbers 21-30 in the above example have been assigned to the first I/O request as the request number, the numbers 31-40 are the free numbers in the first number interval; when a first I/O request is received When requesting, assign number 31 to the first I/O request as the request number.
- the local temporary number is automatically allocated. For example, the allocated local temporary number may be assigned to the previous first I/O request.
- the request number requested by O is increased by 1; at the same time, a request is made to the central server for a new numbering interval. After the new numbering interval is obtained, the number in the new numbering interval can be directly used as the first I/O request to allocate the request number, reducing the number The waiting time improves the processing efficiency.
- Step 240 Determine the tag value of the first I/O request based on the request number of the first I/O request.
- the embodiment of the present disclosure can obtain the tag value of the first I/O request through the mClock algorithm, or obtain the tag value of the first I/O request based on the request number of the first I/O request in other ways.
- the specific way of obtaining the tag value of the first I/O request is not limited.
- Step 250 Schedule the first I/O request based on the tag value of the first I/O request.
- the embodiment of the present disclosure allocates request numbers to the first I/O request through the first number interval that has been obtained locally, so as to quickly obtain the request number, implement resource allocation for each client (user), and effectively control the number of user requests And concurrency.
- step 220 the assigning a request number to the first I/O request based on the first number interval obtained from the central server includes: responding to the first number interval If there is no free number in, send a numbering request for requesting a new numbering interval to the central server; receive a second numbering interval sent by the central server based on the numbering request, wherein the second numbering interval is separated from the first numbering interval At least one number interval.
- the central server when there is no free number in the first number interval, that is, all the numbers in the first number interval have been allocated to the first I/O request as the request number, if the first I/O request is received again, O request, a numbering request for requesting a new numbering interval needs to be sent to the central server; after receiving the numbering request, the central server sends a second numbering interval including a preset number of numbers to the resource scheduling device according to the numbering request. Wherein, the second number interval is separated from the first number interval by at least one number interval.
- the resource scheduling device may allocate a local temporary request number to the received first I/O request, and the local temporary request needs to be assigned Numbering reserves available space. Based on this, the embodiments of the present disclosure reserve at least one numbering interval between the second numbering interval and the first numbering interval as the numbering interval of the local temporary request number that can be allocated by the resource scheduling device.
- the method further includes: in response to the absence of free numbers in the first number interval, determining the request number of the first I/O request based on the largest number in the first number interval.
- the first number interval is ⁇ 21,40>, and all numbers in the first number interval have been assigned to the first I/O request as the request number, and the first I/O request is received again.
- the central server requests the second number interval, it determines that the request number assigned to the last first I/O request is number 40, and then the number 40 can be increased by 1, and the newly received first I/O request can be assigned number 41 as Local temporary request number (that is, the request number of the first I/O request).
- the second number interval obtained from the central server may be ⁇ 61, 80>, including numbers 61-80.
- the second number interval in this embodiment is not limited to this, and may also be ⁇ 81,110> and so on.
- step 130 includes: determining the first I/O request based on the difference between the request number of the first I/O request and the request number of the second I/O request. O requested label value.
- the second I/O request is the last I/O request sent by the client corresponding to the first I/O request.
- the tag value corresponding to each first I/O request it is necessary to separately determine the number difference between the request numbers of the two first I/O requests, that is, the second I/O sent by the same client last time.
- the difference between the request number corresponding to the O request and the request number corresponding to the first I/O request sent by the client this time and then calculate the tag value of the first I/O request based on the difference, and pass Calculate the tag value for the I/O requests issued by the client, which realizes the control of the number of I/O requests of each client, and reduces the inability of other clients to obtain resources due to a large number of requests from some clients The problem.
- determining the tag value of the first I/O request based on the difference between the request number of the first I/O request and the request number of the second I/O request includes: The difference between the request number of the I/O request and the request number of the second I/O request, the tag value of the second I/O request, and the current time determine the tag value of the first I/O request.
- the tag value of the first I/O request includes but is not limited to at least one of a reserved tag value, a threshold tag value, and a weight tag value.
- the process of determining the tag value of the first I/O request may include: based on the difference between the request number of the first I/O request and the request number of the second I/O request, and the tag value of the second I/O request , The pre-stored tag value of the reserved tag corresponding to the client and the current time (the current time is the time when the first I/O request is obtained), and the tag value of the reserved tag corresponding to the first I/O request is calculated;
- the tag value of the second I/O request Based on the difference between the request number of the first I/O request and the request number of the second I/O request, the tag value of the second I/O request, the pre-stored tag value of the threshold tag corresponding to the client, and the current time (The current time is the time to obtain the first I/O request), calculate and obtain the tag value of the threshold tag corresponding to the first I/O request;
- the tag value of the second I/O request Based on the difference between the request number of the first I/O request and the request number of the second I/O request, the tag value of the second I/O request, the pre-stored tag value of the weight tag corresponding to the client, and the current time (The current time is the time when the first I/O request is acquired), and the tag value of the weight tag corresponding to the first I/O request is calculated.
- r i , l i and p i refer to the pre-stored label value and threshold label of the reserved label corresponding to the i-th client Tag value and pre-stored tag value of weight tag, t represents the current time; counter refers to the last I/O request of client i (corresponding to the second I/O request) and current I/O request (corresponding to the first I/O request) ) The difference of the request number.
- the tag values of the three tags corresponding to each first I/O request can be obtained through the above formula.
- step 140 may include: determining the order of the first I/O request in the I/O request queue based on the tag value of the first I/O request; An I/O request is sorted in the I/O request queue, and the first I/O request is scheduled.
- the sorting based on the tag value and the scheduling of the first I/O request can be implemented based on the following pseudo code:
- the tag value may include at least one of a reserved tag value, a threshold tag value, and a weight tag value
- the sorting may include at least one of the following: obtaining at least one first I/O request whose reserved tag value is less than the current time, and sorting the obtained at least one first I/O request according to the reserved tag value to obtain the first sequence; At least one first I/O request whose threshold tag value is less than the current time is sorted according to the at least one weight tag value corresponding to the acquired at least one first I/O request to obtain The second sequence.
- the resource requested by the I/O is further allocated to the at least one first I/O request according to the first sequence and/or the second sequence.
- the first I/O request may be sorted according to the order of the reserved tag value from small to large to obtain the first sequence.
- the at least one first I/O request is sorted according to the order of the weight tag value from small to large to obtain the second sequence.
- allocating the resources requested by the I/O to at least one first I/O request according to the first sequence and the second sequence includes: sequentially obtaining a preset quantity from the first sequence According to the first I/O request of the preset number of first I/O requests in the first sequence, the preset number of first I/O requests are allocated the requested resources; the remaining number in the first sequence is obtained The first I/O request is sorted in the second sequence, and the requested resource is allocated to the preset number of first I/O requests according to the sequence of the preset number of first I/O requests in the second sequence.
- the back-end service entity in the embodiment of the present disclosure uses the mClock algorithm to implement resource allocation, obtains the first sequence and/or the second sequence based on the three types of tags, and allocates resources according to the first sequence and/or the second sequence .
- the mClock algorithm uses the mClock algorithm to implement resource allocation, obtains the first sequence and/or the second sequence based on the three types of tags, and allocates resources according to the first sequence and/or the second sequence .
- the process of implementing resource scheduling by the mClock algorithm may include, but is not limited to, the following links:
- the three-dimensional tag includes a retainable tag in the embodiment of the present disclosure.
- Tag ri (corresponding to Reservation tag), threshold tag li (corresponding to Limit tag), and weight tag wi (corresponding to Share or weight tag)
- Reservation Firstly, we will try our best to guarantee reservation first, such as ensuring that a certain client can guarantee IOPS 1w to support the training business; what needs to be explained is: in order to ensure that all client reservations (Reservation) can be guaranteed, the underlying system can provide The comprehensive resource capability must be greater than the sum of the Reservation required by all clients.
- Limit&Share weight tag as above: Under the condition of ensuring that the limit is not exceeded, resource allocation is carried out uniformly according to the Share ratio.
- Limit&share The greater the Limit tag value, the greater the density in the I/O request queue and the greater the proportion. But according to the priority of the share tag, I/O requests that do not exceed the Limit are scheduled according to the proportion of shares.
- the resource control method provided by the embodiment of the present disclosure can be implemented in combination with the following parts.
- the implementation part can include but is not limited to: application layer (multi-machine multi-card training), central server (responsible for managing request numbers, Each time a numbering application for a gateway instance is received, a continuous numbering interval is returned, such as ⁇ 1,100> ⁇ 101,200>...), multiple gateway instance layer, back-end storage layer, etc.
- the process of implementing resource control through the above-mentioned parts can include: the application layer is a distributed deep learning model training, which can be divided into single-machine multi-card and multi-machine multi-card scenarios, responsible for initiating I/O requests (corresponding to the first of the embodiments of the present disclosure) I/O request); I/O request arrives at the load balancing software layer, according to the load situation of each gateway instance, select one of the gateway instances to process the I/O request; I/O request arrives at the gateway instance, and the gateway instance parses the I/O request Http header to obtain the user’s basic information and determine whether there is a free number currently; if there is a free number, an I/O request is made as a request number; if there is no free number, the background thread responsible for initiating the number request is activated, Initiate a numbering request to the central server to obtain a new numbering range; in order to improve performance, the I/O request will not wait for the next batch of numbers to arrive, but directly
- a person of ordinary skill in the art can understand that all or part of the steps in the above method embodiments can be implemented by a program instructing relevant hardware.
- the foregoing program can be stored in a computer readable storage medium. When the program is executed, it is executed. Including the steps of the foregoing method embodiment; and the foregoing storage medium includes: ROM, RAM, magnetic disk, or optical disk and other media that can store program codes.
- Fig. 3 is a schematic structural diagram of a resource scheduling device provided by an embodiment of the disclosure.
- the device of this embodiment can be used to implement the foregoing method embodiments of the present disclosure.
- the device of this embodiment includes:
- the request receiving unit 31 is configured to receive the first I/O request sent by the client.
- the number interval obtaining unit 32 is configured to allocate a request number to the first I/O request based on the first number interval obtained from the central server.
- the tag value determining unit 33 is configured to determine the tag value of the first I/O request based on the request number of the first I/O request.
- the resource scheduling unit 34 is configured to schedule the first I/O request based on the tag value of the first I/O request.
- the tag value is determined by the request number, and the first I/O request is scheduled according to the tag value, which solves the problem of uneven resource distribution and realizes the control of I/O according to the system concurrency.
- the numbering interval acquiring unit 32 is configured to determine whether there is an unallocated idle number in the first numbering interval; in response to the existence of at least one idle number in the first numbering interval, the smallest number among the at least one idle number is taken as the first numbering interval.
- the request number of an I/O request is configured to determine whether there is an unallocated idle number in the first numbering interval; in response to the existence of at least one idle number in the first numbering interval, the smallest number among the at least one idle number is taken as the first numbering interval.
- the request number of an I/O request is configured to determine whether there is an unallocated idle number in the first numbering interval; in response to the existence of at least one idle number in the first numbering interval, the smallest number among the at least one idle number is taken as the first numbering interval.
- the numbering interval obtaining unit 32 is configured to send a numbering request for requesting a new numbering interval to the central server in response to the absence of free numbers in the first numbering interval; receiving the second number sent by the central server based on the numbering request An interval, where the second number interval and the first number interval are separated by at least one number interval.
- the numbering interval acquiring unit 32 is configured to determine the request number of the first I/O request based on the largest number in the first numbering interval in response to the absence of free numbers in the first numbering interval.
- the tag value determining unit 33 is configured to determine the first I/O request based on the difference between the request number of the first I/O request and the request number of the second I/O request. /O The requested tag value.
- the second I/O is the last I/O request sent by the client corresponding to the first I/O request.
- the number difference of each first I/O request needs to be determined separately, that is, the second I/O request issued by the same client last time corresponds to The difference between the request number of the client and the request number corresponding to the first I/O request issued by the client this time, and then calculate the tag value of the first I/O request based on the difference, by taking the user as The unit calculates the tag value of the I/O requests it sends, which realizes the control of the number of I/O requests corresponding to each client and reduces the problem that other users cannot obtain resources due to a large number of requests from some users.
- the tag value determining unit 33 is configured to be based on the difference between the request number of the first I/O request and the request number of the second I/O request, the tag value of the second I/O request, and the current time To determine the tag value of the first I/O request.
- the tag value of the first I/O request includes at least one of a reserved tag value, a threshold tag value, and a weight tag value.
- the resource scheduling unit 34 is configured to determine the order of the first I/O request in the I/O request queue based on the tag value of the first I/O request; Ordering in the request queue, scheduling the first I/O request.
- FIG. 4 is another schematic flow diagram of the resource scheduling method provided by the embodiments of the present disclosure.
- the method can be applied to a server. As shown in FIG. 4, the method includes:
- Step 410 Receive a first numbering request sent by the first resource scheduling device. Wherein, the first numbering request is used to request a numbering interval for the client.
- the first numbering request is because the first resource scheduling device receives an I/O request from the client and needs to allocate a request number for the received I/O request. Therefore, it needs to request the central server for the numbering interval, In order to realize that the request number is allocated to the I/O request based on the obtained number interval, so as to realize the scheduling of resources for the client.
- Step 420 Send the first numbering interval to the first resource scheduling device based on the third numbering interval allocated for the second numbering request.
- the second numbering request is the numbering request for the client received by the central server last time and sent by the second resource scheduling device, and the first numbering interval is located after the third numbering interval.
- the server provided in the embodiment of the present disclosure corresponds to multiple resource scheduling devices (for example, including a first resource scheduling device and a second resource scheduling device, etc.), when a third resource scheduling device is assigned to the second resource scheduling device that previously issued a numbering request After the numbering interval, when allocating the first numbering interval to the first resource scheduling device that is currently issuing the numbering request, accumulation may be performed on the basis of the third numbering interval to obtain the specific numerical range of the first numbering interval.
- the third number interval is ⁇ 1,20>
- the first number interval is ⁇ 21,40>.
- the method may further include: before issuing the first number interval to the first resource scheduling device, the total number of clients corresponding to the resource scheduling device (including the first resource scheduling device) may also be obtained, where the total number of clients is The number of numbers can be determined based on information such as the quality of service (QoS) of the client.
- QoS quality of service
- the method may further include: after obtaining the total number of clients, determining the number of numbers included in the first number interval sent to the first resource scheduling device according to the total number of clients, that is, determining the number of numbers included in the first numbering interval sent to the first resource scheduling device.
- the number of the number of the first numbered interval sent to the first resource scheduling device this time, and the number of the number of the first numbered interval sent is less than the total number of numbers, which realizes the effective control of the number of requests and the number of concurrency according to the system concurrency ability, and reduces The system crashes and crashes due to high pressure.
- the resource scheduling method provided by the embodiment of the present disclosure receives the first numbering request sent by the resource scheduling device through the server, and sends the numbering interval including the preset number of numbers to the resource scheduling device for the I/O received by the resource scheduling device. Request to allocate a request number to realize resource scheduling for multiple resource scheduling devices.
- a person of ordinary skill in the art can understand that all or part of the steps in the above method embodiments can be implemented by a program instructing relevant hardware.
- the foregoing program can be stored in a computer readable storage medium. When the program is executed, it is executed. Including the steps of the foregoing method embodiment; and the foregoing storage medium includes: ROM, RAM, magnetic disk, or optical disk and other media that can store program codes.
- Fig. 5 is a schematic structural diagram of a server provided by an embodiment of the disclosure.
- the server of this embodiment can be used to implement the foregoing method embodiments of the present disclosure.
- the server of this embodiment includes:
- the request receiving unit 51 is configured to receive a first numbering request sent by the first resource scheduling device; where the first numbering request is used to request a numbering interval for the client;
- the numbering interval issuing unit 52 is configured to issue the first numbering interval to the first resource scheduling device based on the third numbering interval allocated for the second numbering request; where the second numbering request is the second resource received last time by the server For the numbering request for the client sent by the scheduling device, the first numbering interval is located after the third numbering interval.
- the server provided by the embodiment of the present disclosure receives the first numbering request sent by the resource scheduling device, and distributes the numbering interval including the preset number of numbers to the resource scheduling device, so that the resource scheduling device can allocate the request number for the I/O request it receives , In order to realize the resource scheduling of multiple resource scheduling devices.
- FIG. 6 is a schematic structural diagram of a resource scheduling system provided by an embodiment of the disclosure.
- the resource scheduling system includes: multiple resource scheduling devices 61 and a central server 62, among which,
- the resource scheduling device 61 is configured to send a first numbering request for requesting a numbering interval for the user to the central server;
- the central server 62 is configured to send the first numbering interval to the resource scheduling device based on the first numbering request and the third numbering interval sent for the client last time; wherein the first numbering interval is located after the third numbering interval.
- the resource scheduling device 61 adopted in the embodiment of the present disclosure may be the resource scheduling device provided in any one of the foregoing embodiments, which can implement the resource scheduling method provided by the embodiment shown in FIG. 1 or 2, but the embodiment of the present disclosure does not The specific type of resource scheduling device 61 and its application method are restricted.
- the embodiment of the present disclosure requests the central server 62 to obtain the numbering interval, and the obtained numbering interval is numbered for the client.
- the central server 62 used in the embodiment of the present disclosure may be the central server provided in any one of the foregoing embodiments, which can implement the resource scheduling method provided in the embodiment shown in FIG. 3, and the embodiment of the present disclosure does not limit the central server 62 The specific types and methods of application.
- the serial number in the first serial number interval issued by the central server 62 for the client this time is determined based on the serial number in the third serial number interval issued to the client last time, for example, the third serial number obtained last time
- the numbering interval is ⁇ 1,100>
- the first numbering interval obtained this time may be ⁇ 301,400>
- the first numbering interval is located after the third numbering interval
- the first numbering interval and the third numbering interval are not necessarily continuous.
- the central server issues number intervals for resource scheduling equipment, which solves the problem that because multiple gateway instances independently provide storage services without communication with each other, it is difficult to implement
- the problem of effective control of users, the number of user requests and concurrency can be controlled through the number interval, which solves the problem of uneven resource distribution.
- the resource scheduling device 61 is further configured to: receive a first I/O request sent by the client; assign a request number to the first I/O request based on the first number interval; and request a request based on the first I/O request Number, scheduling the first I/O request.
- the resource scheduling device 61 is configured to determine the tag value of the first I/O request based on the request number of the first I/O request; and schedule the first I/O based on the tag value of the first I/O request request.
- the resource scheduling device 61 is configured to determine the tag value of the first I/O request based on the difference between the request number of the first I/O request and the request number of the second I/O request, where: The second I/O is the last I/O request sent by the client corresponding to the first I/O request.
- the resource scheduling device 61 is further configured to be based on the difference between the request number of the first I/O request and the request number of the second I/O request, the tag value of the second I/O request, and the current time To determine the tag value of the first I/O request.
- the resource scheduling device 61 is configured to determine whether there is an unallocated idle number in the first number interval; in response to the existence of at least one idle number in the first number interval, the smallest number in the at least one idle number is taken as the first The request number of the I/O request.
- the resource scheduling device 61 is configured to: in response to the absence of free numbers in the first numbering interval, send a second numbering request for requesting a new numbering interval to the central server; and receiving the information sent by the central server based on the second numbering request The second numbering interval, wherein there is at least one numbering interval between the second numbering interval and the first numbering interval.
- the resource scheduling device 61 is further configured to determine the request number of the first I/O request based on the largest number in the first numbering interval in response to the absence of idle numbers in the first numbering interval.
- FIG. 7 is a schematic diagram of an interaction process of a resource scheduling system provided by an embodiment of the disclosure.
- the resource scheduling device 61 may be a gateway instance.
- the resource scheduling system further includes a gateway instance that receives the first I/O request sent by the client.
- the interaction process between the client, the gateway instance, and the central server includes: the gateway instance sends the first numbering request that is the client's request numbering interval, and sends the first numbering request to the central server; the central server is based on the first numbering request and the last time
- the third number interval issued by the client determines the first number interval, and the first number interval is fed back to the gateway instance;
- the gateway instance receives the first number interval;
- the client sends the first I/O request to the gateway instance;
- the gateway instance receives For the first I/O request, assign a request number to the first I/O request based on the first number interval, and determine the tag value of the first I/O request based on the assigned request number, and based on the tag value of the first I/O request Realize the scheduling of the first I/O request.
- FIG. 8 is a structural diagram of an application example of the resource scheduling system provided by an embodiment of the disclosure.
- the user submits a single-machine multi-card, multi-machine multi-card task and initiates an I/O request.
- the object storage gateway (corresponding to the resource scheduling device) receives the I/O request, it determines whether the number in the current numbering interval has been allocated End (that is, whether it also includes a free number); if there is a free number, obtain a number as the request number of the I/O request (the request number of the current I/O request can be the number of the last I/O request plus 1) ; If there is no free number, activate the background thread to send a numbering request to the central server to obtain a new numbering interval (the numbering interval obtained at this time may not be continuous with the numbering interval previously obtained, such as the previous interval is ⁇ 1,100>, which is now acquired The interval can be ⁇ 301,400>), and the I/O request is assigned a local temporary request number as the request
- the I/O request processing thread pool obtains I/O requests from the request queue according to the sorting results and submits them to the background storage Layer (ie, the back-end storage in Figure 8) is processed, and the execution result is fed back to the application layer after the back-end storage layer is processed.
- the background storage Layer ie, the back-end storage in Figure 8
- An embodiment of the present disclosure also provides an electronic device, including: a memory, configured to store executable instructions; and a processor, configured to communicate with the memory to execute the executable instructions to complete the resource scheduling method provided by any of the above embodiments. step.
- the embodiments of the present disclosure also provide a computer-readable storage medium for storing computer-readable instructions, and when the instructions are executed, operations of the resource scheduling method provided in any of the above embodiments are performed.
- the embodiments of the present disclosure also provide a computer program product, including computer-readable code.
- the processor in the device executes the method for implementing the resource scheduling method provided by any of the above embodiments. instruction.
- the computer program product can be specifically implemented by hardware, software or a combination thereof.
- the computer program product is specifically embodied as a computer storage medium.
- the computer program product is specifically embodied as a software product, such as a software development kit (SDK, Software Development Kit).
- plural may refer to two or more than two, and “at least one” may refer to one, two or more than two.
- the embodiments of the present disclosure also provide an electronic device, which may be a mobile terminal, a personal computer (PC), a tablet computer, a server, etc., for example.
- the electronic device 900 includes one or more processors and a communication unit.
- the one or more processors are for example: one or more central processing units (CPU) 901, and/or one or more graphics processing units (GPU) 913, etc.
- the processors may be stored in a read-only memory ( Executable instructions in ROM, Read Only Memory) 902 or executable instructions loaded from the storage part 908 to random access memory (RAM, Random Access Memory) 903 perform various appropriate actions and processing.
- the communication unit 912 may include but is not limited to a network card, and the network card may include but is not limited to an IB (Infiniband) network card.
- the processor can communicate with the ROM 902 and/or RAM 903 to execute executable instructions, connect to the communication unit 912 via the bus 904, and communicate with other target devices via the communication unit 912, thereby completing any item provided by the embodiments of the present disclosure
- the operation corresponding to the method, for example, receiving the first I/O request sent by the client; assigning a request number to the first I/O request based on the first number interval obtained from the central server; based on the first I/O request Request number, determine the tag value of the first I/O request; schedule the first I/O request based on the tag value of the first I/O request, determine the tag value by the request number, and schedule the first I/O according to the tag value request.
- RAM 903 can also store various programs and data required for device operation.
- the CPU 901, the ROM 902, and the RAM 903 are connected to each other through a bus 904.
- ROM902 is an optional module.
- the RAM 903 stores executable instructions, or writes executable instructions into the ROM 902 during runtime, and the executable instructions cause the central processing unit 901 to perform operations corresponding to the aforementioned communication methods.
- the I/O interface 905 is also connected to the bus 904.
- the communication unit 912 may be integrated, or may be configured to have multiple sub-modules (for example, multiple IB network cards) and be on the bus link.
- the following components are connected to the I/O interface 905: the input part 906 including keyboard, mouse, etc.; including the output part 907 such as cathode ray tube (CRT, Cathode Ray Tube), liquid crystal display (LCD, Liquid Crystal Display) and speakers, etc.
- the communication section 909 performs communication processing via a network such as the Internet.
- the drive 910 is also connected to the I/O interface 905 as needed.
- a removable medium 911 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 910 as required, so that the computer program read therefrom is installed into the storage portion 908 as required.
- FIG. 9 is only an optional implementation.
- the number and types of components in Figure 9 can be selected, deleted, added or replaced according to actual needs; Different functional components can also be set separately or integrated.
- GPU913 and CPU901 can be set separately or GPU913 can be integrated on CPU901.
- the communication unit can be set separately or integrated on CPU901 or GPU913. and many more.
- the process described above with reference to the flowchart can be implemented as a computer software program.
- the embodiments of the present disclosure include a computer program product, which includes a computer program tangibly contained on a machine-readable medium.
- the computer program includes program code for executing the method shown in the flowchart.
- the program code may include a corresponding Execute the instructions corresponding to the method steps provided by the embodiments of the present disclosure, for example, receive the first I/O request sent by the client; based on the first number interval obtained from the central server, assign a request number to the first I/O request; Based on the request number of the first I/O request, determine the tag value of the first I/O request; based on the tag value of the first I/O request, schedule the first I/O request, determine the tag value based on the request number, and The tag value schedules the first I/O request.
- the computer program may be downloaded and installed from the network through the communication part 909, and/or installed from the removable medium 911. When the computer program is executed by the CPU 901, it executes the operations of the above-mentioned functions defined in the method of the present disclosure.
- the method and apparatus of the present disclosure may be implemented in many ways.
- the method and apparatus of the present disclosure can be implemented by software, hardware, firmware or any combination of software, hardware, and firmware.
- the above-mentioned order of the steps for the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above, unless specifically stated otherwise.
- the present disclosure may also be implemented as programs recorded in a recording medium, and these programs include machine-readable instructions for implementing the method according to the present disclosure.
- the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (30)
- 一种资源调度方法,包括:接收客户端发送的第一输入输出I/O请求;基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;基于所述第一I/O请求的标签值,调度所述第一I/O请求。
- 根据权利要求1所述的方法,其中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
- 根据权利要求1或2所述的方法,其中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求新的编号区间的编号请求;接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
- 根据权利要求1至3中任一项所述的方法,其中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号。
- 根据权利要求1至4中任一项所述的方法,其中,所述基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值,包括:基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O请求为所述第一I/O请求对应的客户端上一次发出的I/O请求。
- 根据权利要求5所述的方法,其中,所述基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,包括:基于所述第一I/O请求的请求编号与所述第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
- 根据权利要求1至6中任一项所述的方法,其中,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
- 根据权利要求1至7中任一所述的方法,其中,所述基于所述第一I/O请求的标签值,调度所述第一I/O请求,包括:基于所述第一I/O请求的标签值,确定所述第一I/O请求在I/O请求队列中的排序;基于所述第一I/O请求在I/O请求队列中的排序,调度所述第一I/O请求。
- 一种资源调度方法,应用于服务器,包括:接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为客户端请求编号区间;基于为第二编号请求分配的第三编号区间,向所述第一资源调度设备发送第一编号区间,其中,所述第二编号请求为所述服务器上一次接收到的、第二资源调度设备发出的针对所述客户端的编号请求,第一编号区间位于所述第三编号区间之后。
- 一种资源调度设备,包括:请求接收单元,配置为接收客户端发送的第一I/O请求;编号区间获取单元,配置为基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;标签值确定单元,配置为基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;资源调度单元,配置为基于所述第一I/O请求的标签值,调度所述第一I/O请求。
- 根据权利要求10所述的设备,其中,所述编号区间获取单元,配置为确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
- 根据权利要求10或11所述的设备,其中,所述编号区间获取单元,配置为响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求新的编号区间的编号请求;接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
- 根据权利要求10至12中任一项所述的设备,其中,所述编号区间获取单元,配置为响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号。
- 根据权利要求10至13中任一项所述的设备,其中,所述标签值确定单元,配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O为所述第一I/O请求对应的客户端上一次发出的I/O请求。
- 根据权利要求14所述的设备,其中,所述标签值确定单元,配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
- 根据权利要求10至15中任一项所述的设备,其中,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
- 根据权利要求10至16中任一所述的设备,其中,所述资源调度单元,配置为 基于所述第一I/O请求的标签值,确定所述第一I/O请求在I/O请求队列中的排序;基于所述第一I/O请求在I/O请求队列中的排序,调度所述第一I/O请求。
- 一种服务器,包括:请求接收单元,配置为接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为客户端请求编号区间;编号区间发放单元,配置为基于为第二编号请求分配的第三编号区间,向所述第一资源调度设备发放第一编号区间,其中,所述第二编号请求为所述服务器上一次接收到的、第二资源调度设备发出的针对所述用户的编号请求,第一编号区间位于所述第三编号区间之后。
- 一种资源调度系统,包括:多个资源调度设备和中心服务器,其中,所述资源调度设备,配置为向所述中心服务器发出用于为客户端请求编号区间的第一编号请求;所述中心服务器,配置为基于所述第一编号请求和上一次为所述客户端发放的第三编号区间,向所述资源调度设备发送第一编号区间,其中,第一编号区间位于所述第三编号区间之后。
- 根据权利要求19所述的系统,其中,所述资源调度设备还配置为:接收所述客户端发送的第一I/O请求;基于所述第一编号区间,为所述第一I/O请求分配请求编号;基于所述第一I/O请求的请求编号,调度所述第一I/O请求。
- 根据权利要求20所述的系统,其中,所述资源调度设备,配置为基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;基于所述第一I/O请求的标签值,调度所述第一I/O请求。
- 根据权利要求21所述的系统,其中,所述资源调度设备,配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O为所述第一I/O请求对应的客户端上一次发出的I/O请求。
- 根据权利要求22所述的系统,其中,所述资源调度设备,还配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
- 根据权利要求20至23中任一项所述的系统,其中,所述资源调度设备,配置为确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
- 根据权利要求19至24中任一项所述的系统,其中,所述资源调度设备配置为:响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求新的编号区间的第二编号请求;接收所述中心服务器基于所述第二编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
- 根据权利要求24或25所述的系统,其中,所述资源调度设备,配置为响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号,确定所述第一I/O请求的请求编号。
- 根据权利要求19至26中任一项所述的系统,其中,所述资源调度设备为网关实例。
- 一种电子设备,包括:存储器,用于存储可执行指令;以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至8任意一项所述资源调度方法的步骤;或者,用于与所述存储器通信以执行所述可执行指令从而完成权利要求9所述资源调度方法的步骤。
- 一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行权利要求1至8任意一项所述资源调度方法的步骤;或者,所述指令被执行时执行权利要求9所述资源调度方法的步骤。
- 一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现权利要求1至8任意一项所述资源调度方法的指令;或者,所述设备中的处理器执行用于实现权利要求9所述资源调度方法的指令。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020539089A JP7174764B2 (ja) | 2019-03-07 | 2019-10-23 | リソーススケジューリング方法、機器、システム、ならびにセンタサーバ |
SG11202006769YA SG11202006769YA (en) | 2019-03-07 | 2019-10-23 | Resource scheduling methods, device and system, and central server |
US16/929,187 US20200348977A1 (en) | 2019-03-07 | 2020-07-15 | Resource scheduling methods, device and system, and central server |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910172678.0A CN111666147B (zh) | 2019-03-07 | 2019-03-07 | 资源调度方法、设备、系统及中心服务器 |
CN201910172678.0 | 2019-03-07 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/929,187 Continuation US20200348977A1 (en) | 2019-03-07 | 2020-07-15 | Resource scheduling methods, device and system, and central server |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020177336A1 true WO2020177336A1 (zh) | 2020-09-10 |
Family
ID=72337033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/112844 WO2020177336A1 (zh) | 2019-03-07 | 2019-10-23 | 资源调度方法、设备、系统及中心服务器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20200348977A1 (zh) |
JP (1) | JP7174764B2 (zh) |
CN (1) | CN111666147B (zh) |
SG (1) | SG11202006769YA (zh) |
TW (1) | TWI747092B (zh) |
WO (1) | WO2020177336A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112584361A (zh) * | 2020-12-09 | 2021-03-30 | 齐鲁工业大学 | M2m通信中基于深度强化学习的资源调度方法及装置 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4002791B1 (en) | 2020-11-13 | 2024-10-23 | Secure Thingz Limited | A provisioning system and method |
US12106151B2 (en) * | 2021-01-25 | 2024-10-01 | Lenovo (Singapore) Pte. Ltd. | Dynamic client/server selection for machine learning execution based on current performance characteristics |
CN112948089B (zh) * | 2021-03-22 | 2024-04-05 | 福建随行软件有限公司 | 一种招投标请求的资源分发方法及数据中心 |
US20220374149A1 (en) * | 2021-05-21 | 2022-11-24 | Samsung Electronics Co., Ltd. | Low latency multiple storage device system |
US12067254B2 (en) | 2021-05-21 | 2024-08-20 | Samsung Electronics Co., Ltd. | Low latency SSD read architecture with multi-level error correction codes (ECC) |
CN114528093B (zh) * | 2022-01-08 | 2024-10-15 | 智协慧同(北京)科技有限公司 | 一种提高车载终端设备存储服务性能的方法及系统 |
CN114168306B (zh) * | 2022-02-10 | 2022-05-17 | 北京奥星贝斯科技有限公司 | 调度方法及调度装置 |
CN116016373A (zh) * | 2022-12-30 | 2023-04-25 | 昆仑芯(北京)科技有限公司 | 数据处理请求的发送方法及装置、设备和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
CN106293536A (zh) * | 2016-08-12 | 2017-01-04 | 华为技术有限公司 | 输入/输出i/o调度方法及装置 |
CN108153494A (zh) * | 2017-12-25 | 2018-06-12 | 新华三技术有限公司 | 一种io请求处理方法及装置 |
CN108881348A (zh) * | 2017-05-15 | 2018-11-23 | 新华三技术有限公司 | 服务质量控制方法、装置和存储服务器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0215354A (ja) * | 1988-07-04 | 1990-01-19 | Hitachi Ltd | I/oスケジューリング方法 |
JPH056282A (ja) * | 1991-06-27 | 1993-01-14 | Fujitsu Ltd | プロセス管理方式 |
CN101123448B (zh) * | 2006-08-10 | 2011-04-20 | 大唐移动通信设备有限公司 | 一种增强的随机接入控制信道资源分配方法及装置 |
US20120151479A1 (en) * | 2010-12-10 | 2012-06-14 | Salesforce.Com, Inc. | Horizontal splitting of tasks within a homogenous pool of virtual machines |
US8700628B1 (en) * | 2011-02-03 | 2014-04-15 | Google Inc. | Personalized aggregation of annotations |
CN103139255B (zh) * | 2011-11-30 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 分配资源标识和标识段的方法 |
US9967230B2 (en) * | 2016-02-04 | 2018-05-08 | Google Llc | Systems and methods for allocating communication resources via information technology infrastructure |
JP6458823B2 (ja) * | 2017-04-14 | 2019-01-30 | 富士通株式会社 | 情報処理装置、情報処理方法及び情報処理プログラム |
US10719245B1 (en) * | 2017-07-13 | 2020-07-21 | EMC IP Holding Company LLC | Transactional IO scheduler for storage systems with multiple storage devices |
US10671494B1 (en) * | 2017-11-01 | 2020-06-02 | Pure Storage, Inc. | Consistent selection of replicated datasets during storage system recovery |
-
2019
- 2019-03-07 CN CN201910172678.0A patent/CN111666147B/zh active Active
- 2019-10-23 WO PCT/CN2019/112844 patent/WO2020177336A1/zh active Application Filing
- 2019-10-23 SG SG11202006769YA patent/SG11202006769YA/en unknown
- 2019-10-23 JP JP2020539089A patent/JP7174764B2/ja active Active
- 2019-11-29 TW TW108143798A patent/TWI747092B/zh active
-
2020
- 2020-07-15 US US16/929,187 patent/US20200348977A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812248A (zh) * | 2016-05-09 | 2016-07-27 | 腾讯科技(深圳)有限公司 | 标识取值的分配方法和装置 |
CN106293536A (zh) * | 2016-08-12 | 2017-01-04 | 华为技术有限公司 | 输入/输出i/o调度方法及装置 |
CN108881348A (zh) * | 2017-05-15 | 2018-11-23 | 新华三技术有限公司 | 服务质量控制方法、装置和存储服务器 |
CN108153494A (zh) * | 2017-12-25 | 2018-06-12 | 新华三技术有限公司 | 一种io请求处理方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112584361A (zh) * | 2020-12-09 | 2021-03-30 | 齐鲁工业大学 | M2m通信中基于深度强化学习的资源调度方法及装置 |
CN112584361B (zh) * | 2020-12-09 | 2021-09-07 | 齐鲁工业大学 | M2m通信中基于深度强化学习的资源调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20200348977A1 (en) | 2020-11-05 |
CN111666147B (zh) | 2022-06-07 |
SG11202006769YA (en) | 2020-10-29 |
JP7174764B2 (ja) | 2022-11-17 |
TWI747092B (zh) | 2021-11-21 |
JP2021518002A (ja) | 2021-07-29 |
TW202034179A (zh) | 2020-09-16 |
CN111666147A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI747092B (zh) | 資源調度方法、設備、系統及中心伺服器 | |
EP3718008B1 (en) | Provisioning using pre-fetched data in serverless computing environments | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
US8595722B2 (en) | Preprovisioning virtual machines based on request frequency and current network configuration | |
CN112486648A (zh) | 任务调度方法、装置、系统、电子设备和存储介质 | |
US20200174844A1 (en) | System and method for resource partitioning in distributed computing | |
CN107590002A (zh) | 任务分配方法、装置、存储介质、设备及分布式任务系统 | |
CN110166507B (zh) | 多资源调度方法和装置 | |
Seth et al. | Dynamic heterogeneous shortest job first (DHSJF): a task scheduling approach for heterogeneous cloud computing systems | |
Mishra et al. | Time efficient dynamic threshold-based load balancing technique for Cloud Computing | |
CN103927225A (zh) | 一种多核心架构的互联网信息处理优化方法 | |
CN109729113A (zh) | 管理专用处理资源的方法、服务器系统和计算机程序产品 | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN107045452B (zh) | 虚拟机调度方法和装置 | |
Yang et al. | Multi-resource allocation for virtual machine placement in video surveillance cloud | |
CN116382844A (zh) | 一种分布式存储多异步任务动态控制方法及系统 | |
Nzanywayingoma et al. | Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment | |
CN113722091A (zh) | 一种仿真任务部署方法、系统及相关装置 | |
Ainbinder et al. | A Study Comparing Waiting Times in Global and Local Queuing Systems with Heterogeneous Workers | |
Chawla et al. | A load balancing based improved task scheduling algorithm in cloud computing | |
CN116680086B (zh) | 一种基于离线渲染引擎的调度管理系统 | |
Sinha et al. | Computational model for hybrid job scheduling in grid computing | |
CN112925636B (zh) | 一种请求调度、处理方法和装置 | |
CN113157404B (zh) | 任务处理方法和装置 | |
Verma | Efficient Load Balancing in Cloud Environment Using Improved Spider Monkey Optimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2020539089 Country of ref document: JP Kind code of ref document: A |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19917884 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19917884 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 14/02/2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19917884 Country of ref document: EP Kind code of ref document: A1 |