WO2020177336A1 - 资源调度方法、设备、系统及中心服务器 - Google Patents

资源调度方法、设备、系统及中心服务器 Download PDF

Info

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
Application number
PCT/CN2019/112844
Other languages
English (en)
French (fr)
Inventor
易建亮
赵伟
颜深根
Original Assignee
上海商汤智能科技有限公司
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 上海商汤智能科技有限公司 filed Critical 上海商汤智能科技有限公司
Priority to JP2020539089A priority Critical patent/JP7174764B2/ja
Priority to SG11202006769YA priority patent/SG11202006769YA/en
Priority to US16/929,187 priority patent/US20200348977A1/en
Publication of WO2020177336A1 publication Critical patent/WO2020177336A1/zh

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
    • 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
    • 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/5027Allocation 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/5038Allocation 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request 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

一种资源控制方法、设备、系统及中心服务器,其中,该方法包括:接收客户端发送的第一输入输出(I/O)请求(110);基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号(120);基于第一I/O请求的请求编号,确定第一I/O请求的标签值(130);基于第一I/O请求的标签值,调度第一I/O请求(140)。

Description

资源调度方法、设备、系统及中心服务器
相关申请的交叉引用
本申请基于申请号为201910172678.0、申请日为2019年3月7日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此以引入方式并入本申请。
技术领域
本公开涉及资源控制技术,尤其是一种资源调度方法、设备、系统及中心服务器。
背景技术
人工智能(AI,Artificial Intelligence)深度学习模型训练会涉及多节点、多用户并发访问存储资源,为了保证模型训练的速度,除了图形处理器(GPU,Graphics Processing Unit)芯片的性能外,输入/输出(I/O,Input/Output)性能也起着非常关键的作用。然而在实际使用过程中发现,存在资源分布极度不均匀的情况,例如某些用户占据大部分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请求的标签值,包括:基于所述第一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请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
可选地,在本公开上述任一方法实施例中,所述基于所述第一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请求。
根据本公开实施例的第四方面,提供了一种服务器,包括:请求接收单元,配置为接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为客户端请求编号区间;编号区间发放单元,配置为基于为第二编号请求分配的第三编号区间,向所述第一资源调度设备发放第一编号区间,其中,所述第二编号请求为所述服务器上一次接收到的、第二资源调度设备发出的针对所述客户端的编号请求,第一编号区间位于所述第三编号区间之后。
根据本公开实施例的第五方面,提供了一种资源调度系统,包括:多个资源调度设备和中心服务器,其中,所述资源调度设备,配置为向所述中心服务器发出用于为客户 端请求编号区间的第一编号请求;所述中心服务器,配置为基于所述第一编号请求和上一次为所述客户端发送的第三编号区间,向所述资源调度设备发放第一编号区间,其中,第一编号区间位于所述第三编号区间之后。
根据本公开实施例的第六方面,提供了一种电子设备,包括:存储器,用于存储可执行指令;以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成如上第一方面或第二方面所述资源调度方法的步骤。
根据本公开实施例的第七方面,提供的一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行如上任意一项所述资源调度方法的操作。
根据本公开实施例的第八方面,提供的一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现如上第一方面或第二方面所述资源调度方法的指令。
本公开上述实施例提供的一种资源调度方法、设备、系统及中心服务器,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求。本公开实施例通过请求编号确定标签值,并根据标签值调度第一I/O请求,解决了资源分布不均匀的问题,实现了根据系统并发能力控制I/O请求的数量和并发数。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1为本公开实施例提供的资源调度方法的一个流程示意图;
图2为本公开实施例提供的资源调度方法的另一流程示意图;
图3为本公开实施例提供的资源调度设备的一个结构示意图;
图4为本公开实施例提供的资源调度方法的又一流程示意图;
图5为本公开实施例提供的服务器的结构示意图;
图6为本公开实施例提供的资源调度系统的结构示意图;
图7为本公开实施例提供的资源调度系统的交互流程示意图;
图8为本公开实施例提供的资源调度系统的一个应用示例结构图;
图9为适于用来实现本公开实施例的终端设备或服务器的电子设备的结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体 说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开实施例的保护范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
为了提升资源并发访问能力,对象存储系统通常会部署多个网关实例来给用户提供存储服务。然而多个网关实例是独立提供存储服务的,相互之间没有通信,所以很难实现对用户进行有效控制,比如对用户进行IOPS限流、限速场景等。
图1为本公开实施例提供的资源调度方法的一个流程示意图。
步骤110,接收客户端发送的第一I/O请求。
在一些可选实施例中,第一I/O请求可以是由客户端发出的,该第一I/O请求可以用于请求对资源进行操作。例如,第一I/O请求可以是用户通过客户端发出的,发出的第一I/O请求用于为用户请求资源;其中,第一I/O请求所请求的操作类型可包括但不限于:获取文件或其他对象、查询文件或其他对象、上传文件或其他对象等。
在一个可选实施例中,在接收客户端发送的第一I/O请求之后,所述方法还可以包括:对至少一个第一I/O请求进行解析,基于解析结果获得至少一个发出第一I/O请求的客户端对应的用户基本信息。
其中,每个客户端可对应至少一个第一I/O请求。可选地,用户基本信息可以包括但不限于以下信息的至少之一:发出第一I/O请求的客户端的IP地址信息、登录标识(ID)、用户名、秘钥、I/O请求操作类型信息等。
在一些可选实施例中,可以由资源调度设备中的负载均衡软件层接收至少一个第一I/O请求,根据各网关实例负载情况和/或其他因素,选择其中一个网关实例处理第一I/O请求;此时,网关实例可选地通过解析第一I/O请求的超文本传输协议(HTTP,Hyper Text Transfer Protocol)头部(header),获得用户基本信息。获得用户基本信息的目的在于对第一I/O请求进行区分和分析,当获取第一I/O请求所对应的资源后,按照用户基本信息中的IP地址信息反馈获得的资源,即将分配的资源反馈到第一I/O请求对应的IP地址信息对应的客户端。
步骤120,基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号。
在一些可选实施例中,每个第一I/O请求对应一个请求编号。
在一些可选实施例中,可基于中心服务器为第一I/O请求分配请求编号。作为一种 示例,从中心服务器获取第一编号区间,所述第一编号区间包括设定数量的编号,例如,第一编号区间<21,40>包括的20个编号为:编号21到编号40。可以基于第一编号区间内包括的编号对第一I/O请求进行编号,例如,将第一编号区间中的一个空闲编号(空闲编号为未进行分配的编号)分配给一个第一I/O请求。若第一编号区间内当前没有空闲编号,可以分配本地临时编号作为第一I/O请求的请求编号,例如,分配的本地临时编号可以为分配给上一个第一I/O请求的请求编号加1;同时,可选地,可以向中心服务器请求获得新的编号区间,在获得新的编号区间后可直接采用新的编号区间内的编号为第一I/O请求分配请求编号,减少了编号等待时间,提高了处理效率。
步骤130,基于第一I/O请求的请求编号,确定第一I/O请求的标签值。
在一些可选实施例中,可采用mClock算法获取第一I/O请求的标签值。其中,mClock算法是通过三元组结合相应的调度实现多个维度的有效控制;上述三元组(三个标签)例如:Reservation:说明需要保留性能的绝对数值的限制,比如限制每秒进行读写操作的次数(IOPS,Input/Output Operations Per Second)为250/s。此类方式在系统带宽、IOPS非超销情况下是很常用的策略;
Limit:此类限制也是对性能绝对数值限制,限制比如IOPS使用的上限,比如用于防止一些输入输出密集型应用(IO Intensive Application)对在线业务造成影响,比如反病毒应用virus scanners、虚拟硬盘迁移(virtual-disk migrations)应用、备份(backup)应用等等;
Shares:使用相对比例控制(权重)的方式来控制对底层资源的申请和使用。
本公开实施例可通过三个标签确定第一I/O请求的标签值,例如,标签值包括保留标签(对应Reservation)、阈值标签(对应Limit)和权重标签(对应Shares)中的一种或任意多种。
与mClock算法对当前集群中的虚拟机(VM)访问后端单个服务能力实体实施控制不同,本公开实例实现在用户多节点登录场景下实现对后端多个服务能力实体实现上述三个维度(对应三个标签)的有效控制。
步骤140,基于第一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请求,解决了资源分布不均匀的问题,实现了根据系统并发能力控制I/O请求的数量和并发数。
图2为本公开实施例提供的资源调度方法的另一流程示意图,如图2所示,方法包括:
步骤210,接收客户端发送的第一I/O请求。
步骤220,确定第一编号区间中是否存在尚未分配的空闲编号。
在需要为第一I/O请求分配请求编号的场景下,首先判断当前设备从中心服务器获取到的第一编号区间是否还存在尚未分配的空闲编号,空闲编号是指在第一编号区间中未分配给第一I/O请求作为请求编号的编号,例如,第一编号区间包括20个编号,具体包括<21,40>,当其中编号21-30都已经分配给第一I/O请求作为请求编号之后,编号31-40即为该第一编号区间中的空闲编号;当接收到一个第一I/O请求时,可将编号31分配给该第一I/O请求作为请求编号。
步骤230,响应于第一编号区间中存在至少一个空闲编号,将至少一个空闲编号中的最小编号作为第一I/O请求的请求编号。
在第一编号区间中包括设定数量的编号,其中每个编号的大小不同,例如,第一编号区间包括20个编号,具体为<21,40>,其中最小编号为21,最大编号为40。可选地,在第一编号区间中的编号分配给第一I/O请求时,是按照编号大小从小到大进行分配的。例如,当上述示例中编号21-30都已经分配给第一I/O请求作为请求编号之后,编号31-40即为该第一编号区间中的空闲编号;当接收到一个第一I/O请求时,将编号31分配给该第一I/O请求作为请求编号。
在一些可选实施例中,若第一编号区间内没有空闲编号待分配给第一I/O请求,自动分配本地临时编号,例如,分配的本地临时编号可以为分配给上一个第一I/O请求的请求编号加1;同时向中心服务器请求获得新的编号区间,在获得新的编号区间后可直接采用新的编号区间内的编号为第一I/O请求分配请求编号,减少了编号等待时间,提高了处理效率。
步骤240,基于第一I/O请求的请求编号,确定第一I/O请求的标签值。
本公开实施例可通过mClock算法获得第一I/O请求的标签值,或通过其他方式以第一I/O请求的请求编号为基础获得第一I/O请求的标签值,本公开实施例不限制获得第一I/O请求的标签值的具体方式。
步骤250,基于第一I/O请求的标签值,调度第一I/O请求。
本公开实施例通过已经获取到本地的第一编号区间为第一I/O请求分配请求编号,以实现快速获取请求编号,实现对每个客户端(用户)进行资源调配,有效控制用户请求数和并发数。
在一个或多个可选实施例中,步骤220中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:响应于第一编号区间中不存在空闲编号,向中心服务器发送用于请求新的编号区间的编号请求;接收中心服务器基于编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
本公开实施例中,在第一编号区间中不存在空闲编号的情况下,即第一编号区间中所有编号都已分配给第一I/O请求作为请求编号,若再接收到第一I/O请求,需向中心 服务器发送用于请求新的编号区间的编号请求;中心服务器接收编号请求后,根据编号请求发送包括预设数量的编号的第二编号区间至资源调度设备。其中,第二编号区间与第一编号区间间隔至少一个编号区间。
在一些可选实施例中,由于在请求获取第二编号区间的等待过程中,为了提高处理效率,资源调度设备可为接收的第一I/O请求分配本地临时请求编号,需要为本地临时请求编号预留可用空间,基于此,本公开实施例将第二编号区间与第一编号区间之间预留至少一个编号区间作为资源调度设备可分配的本地临时请求编号的编号区间。
在一些可选实施例中,所述方法还包括:响应于第一编号区间中不存在空闲编号,基于第一编号区间中的最大编号确定第一I/O请求的请求编号。例如,第一编号区间为<21,40>,在第一编号区间中的所有编号都已经分配给第一I/O请求作为请求编号、再接收到第一I/O请求的情况下,向中心服务器请求第二编号区间的同时,确定分配给上一个第一I/O请求的请求编号为编号40,则可通过编号40加1,为新接收的第一I/O请求分配编号41作为本地临时请求编号(即第一I/O请求的请求编号)。
在一些可选实施例中,从中心服务器获得的第二编号区间可以为<61,80>,包括编号61-编号80。当然,本实施例中的第二编号区间不限于此,也可以为<81,110>等等。
在本公开的一个或多个可选的实施例中,步骤130包括:基于第一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请求的请求编号与第二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请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值、客户端对应的阈值标签的预存标签值、以及当前时间(当前时间即为获取第一I/O请求的时间),计算获得第一I/O请求对应的阈值标签的标签值;
基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值、客户端对应的权重标签的预存标签值、以及当前时间(当前时间即为获取第一I/O请求的时间),计算获得第一I/O请求对应的权重标签的标签值。
例如,可采用以下公式获得保留标签值、阈值标签值和权重标签值:
Figure PCTCN2019112844-appb-000001
Figure PCTCN2019112844-appb-000002
Figure PCTCN2019112844-appb-000003
上述公式中,
Figure PCTCN2019112844-appb-000004
表示第i个客户端的r请求(对应第一I/O请求)的保留标签值,
Figure PCTCN2019112844-appb-000005
表示第i个客户端的r请求(对应第一I/O请求)的阈值标签值,
Figure PCTCN2019112844-appb-000006
表示第i个客户端的r请求(对应第一I/O请求)的权重标签值;r i、l i和p i分别指第i个客户端对应的保留标签的预存标签值、阈值标签的预存标签值和权重标签的预存标签值,t表示当前时间;counter指客户端i的上一个I/O请求(对应第二I/O请求)与当前I/O请求(对应第一I/O请求)的请求编号的差值。通过上述公式即可获得每个第一I/O请求对应的三种标签的标签值。
在本公开的一个或多个可选的实施例中,步骤140可以包括:基于第一I/O请求的标签值,确定第一I/O请求在I/O请求队列中的排序;基于第一I/O请求在I/O请求队列中的排序,调度第一I/O请求。
可选地,实现基于标签值的排序和对第一I/O请求的调度可基于以下伪代码实现:
Figure PCTCN2019112844-appb-000007
Figure PCTCN2019112844-appb-000008
在本公开的一些可选实施例中,由于标签值可包括保留标签值、阈值标签值和权重标签值中的至少一种,因此,对于第一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请求的资源,包括:从第一序列中按序获取预设数量的第一I/O请求,按照预设数量的第一I/O请求在第一序列中的排序为预设数量的第一I/O请求分配所请求的资源;获取第一序列中的剩余第一I/O请求在第二序列中的排序,按照预设数量的第一I/O请求在第二序列中的排序为预设数量的第一I/O请求分配所请求的资源。
可选地,本公开实施例中后端服务实体采用mClock算法实现资源的分配,基于三种标签获得第一序列和/或第二序列,按照第一序列和/或第二序列对资源进行分配。例 如通过以下实现:
mClock算法实现资源调度的过程,可以包括但不限于如下几个环节:通过为第一I/O请求设置三个维度的标签(tag),三个维度的标签在本公开实施例中包括可保留标签ri(对应Reservation tag)、阈值标签li(对应Limit tag)和权重标签wi(对应Share or weight tag)
其中,Reservation:首先尽最大努力优先保障Reservation,比如确保某个客户端能够保障IOPS 1w以支持训练业务;需要说明的是:为了保障所有客户端的预约(Reservation)都能够得到保障,底层系统能够提供的资源综合能力必须大于所有客户端需要的Reservation之和。Limit&Share(如上weight tag):在确保不超过Limit情况下,再进行统一按照Share比例进行资源分配。
结合三个维度的标签值和调度器的切换实现第一I/O请求的调度。
对于上述公式(1)、(2)、(3)中为什么取Max:避免客户端空闲态(idle)情况下产生idle积分现象。比如前一个I/O请求很早接收到,后面的I/O请求的R值若为
Figure PCTCN2019112844-appb-000009
显然很容易导致
Figure PCTCN2019112844-appb-000010
可能在某些情况下远远小于当前时间(current-Time),从调度优先级来说,调度器会优先调度R值最小的I/O请求,这会导致其他刚从idle到激活态(Active)的客户端的R值I/O请求远远大于之前的客户端,从而导致刚处于active的客户端的I/O请求饥饿。
Limit&share:Limit标签值越大,在I/O请求队列中的密度越大,占比越多。但是会按照share tag的优先级确保不超过Limit的I/O请求按照share的比重进行调度。
在一个可选示例中,本公开实施例提供的资源控制方法可结合以下几个部分实现,实现部分可以包括但不限于:应用层(多机多卡训练)、中心服务器(负责管理请求编号,每次接收到网关实例的编号申请则返回一个连续的编号区间,如<1,100><101,200>…)、多网关实例层、后端存储层等。
通过上述几个部分实现资源控制的过程可以包括:应用层为分布式深度学习模型训练,可分为单机多卡、多机多卡场景,负责发起I/O请求(对应本公开实施例的第一I/O请求);I/O请求到达负载均衡软件层,根据各网关实例负载情况,选择其中一个网关实例处理I/O请求;I/O请求到达网关实例,网关实例解析I/O请求的http header获得用户基本信息,并判断当前是否存在空闲编号;若存在空闲编号,则为I/O请求一个空闲编号作为请求编号;若不存在空闲编号,则激活负责发起编号请求的后台线程,向中心服务器发起编号请求以获取新的编号区间;为了提升性能,此时I/O请求不会等待下一批编号到来,而是直接分配一个本地临时请求编号;获得编号后,对I/O请求进行打标签操作(包括保留标签、阈值标签、权重标签中的至少一种,携带对应的标签值),将I/O请求转发给mClock排序队列;mClock排序队列根据I/O请求携带的标签值调整队列中的I/O请求的顺序;I/O请求处理线程池向mClock队列获取I/O请求后,解析I/O请求,并根据I/O请求类型提交后台存储层执行;后台存储层处理完毕,将处理结果反馈对象 存储网关实例,由网关实例反馈应用层程序。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图3为本公开实施例提供的资源调度设备的结构示意图。该实施例的设备可用于实现本公开上述各方法实施例。如图3所示,该实施例的设备包括:
请求接收单元31,配置为接收客户端发送的第一I/O请求。
编号区间获取单元32,配置为基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号。
标签值确定单元33,配置为基于第一I/O请求的请求编号,确定第一I/O请求的标签值。
资源调度单元34,配置为基于第一I/O请求的标签值,调度第一I/O请求。
基于本公开上述实施例提供的一种资源调度设备,通过请求编号确定标签值,并根据标签值调度第一I/O请求,解决了资源分布不均匀的问题,实现了根据系统并发能力控制I/O请求的数量和并发数。
可选地,编号区间获取单元32,配置为确定第一编号区间中是否存在尚未分配的空闲编号;响应于第一编号区间中存在至少一个空闲编号,将至少一个空闲编号中的最小编号作为第一I/O请求的请求编号。
可选地,编号区间获取单元32,配置为响应于第一编号区间中不存在空闲编号,向中心服务器发送用于请求新的编号区间的编号请求;接收中心服务器基于编号请求发送的第二编号区间,其中,第二编号区间与第一编号区间间隔至少一个编号区间。
可选地,编号区间获取单元32,配置为响应于第一编号区间中不存在空闲编号,基于第一编号区间中的最大编号确定第一I/O请求的请求编号。
在一个或多个可选的实施例中,标签值确定单元33,配置为基于第一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请求的数量的控制,减少了由于部分用户大量请求而导致的其他用户无法获得资源的问题。
可选地,标签值确定单元33,配置为基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值以及当前时间,确定第一I/O请求的标签值。
可选地,第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
可选地,资源调度单元34,配置为基于第一I/O请求的标签值,确定第一I/O请求在I/O请求队列中的排序;基于第一I/O请求在I/O请求队列中的排序,调度第一I/O请求。
图4为本公开实施例提供的资源调度方法的又一流程示意图,该方法可以应用于服务器,如图4所示,该方法包括:
步骤410,接收第一资源调度设备发出的第一编号请求。其中,第一编号请求用于为客户端请求编号区间。
可选地,该第一编号请求是由于第一资源调度设备从客户端接收到I/O请求,需要为接收到的I/O请求分配请求编号,因此,需要向中心服务器请求获得编号区间,以实现基于获得的编号区间为I/O请求分配请求编号,从而实现为客户端调度资源。
步骤420,基于为第二编号请求分配的第三编号区间,向第一资源调度设备发送第一编号区间。其中,第二编号请求为中心服务器上一次接收到的、第二资源调度设备发出的针对客户端的编号请求,第一编号区间位于第三编号区间之后。
可选地,本公开实施例提供的服务器对应多个资源调度设备(如包括第一资源调度设备和第二资源调度设备等),当为之前发出编号请求的第二资源调度设备分配了第三编号区间之后,在为当前发出编号请求的第一资源调度设备分配第一编号区间时,可在第三编号区间的基础上进行累加,获得第一编号区间的具体数值范围。例如,第三编号区间为<1,20>,第一编号区间为<21,40>。
可选地,方法还可以包括:在向第一资源调度设备发放第一编号区间之前,还可以获取资源调度设备(包括第一资源调度设备)对应的客户端的总编号数,其中,客户端的总编号数可基于客户端的服务质量(Quality of Service,QoS)等信息确定的。
可选地,方法还可以包括:获得客户端的总编号数之后,根据客户端的总编号数确定向第一资源调度设备发送的第一编号区间中包括的编号数,即根据客户端的总编号数确定本次向该第一资源调度设备发送的第一编号区间的编号数,发送的第一编号区间的编号数小于总编号数,实现了根据系统并发能力,有效控制请求数和并发数,减少了系统因为压力大而产生崩溃、宕机的现象。
本公开实施例提供的资源调度方法,通过服务器接收资源调度设备发出的第一编号请求,为资源调度设备发送包括预设数量编号的编号区间,以供资源调度设备为其接收到的I/O请求分配请求编号,实现对多个资源调度设备的资源调度。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图5为本公开实施例提供的服务器的结构示意图。该实施例的服务器可用于实现本 公开上述各方法实施例。如图5所示,该实施例的服务器包括:
请求接收单元51,配置为接收第一资源调度设备发出的第一编号请求;其中,第一编号请求用于为客户端请求编号区间;
编号区间发放单元52,配置为基于为第二编号请求分配的第三编号区间,向第一资源调度设备发放第一编号区间;其中,第二编号请求为服务器上一次接收到的、第二资源调度设备发出的针对客户端的编号请求,第一编号区间位于第三编号区间之后。
本公开实施例提供的服务器,接收资源调度设备发出的第一编号请求,为资源调度设备分发包括预设数量编号的编号区间,以供资源调度设备为其接收到的I/O请求分配请求编号,以实现对多个资源调度设备的资源调度。
图6为本公开实施例提供的资源调度系统的结构示意图。该资源调度系统包括:多个资源调度设备61和中心服务器62,其中,
资源调度设备61,配置为向中心服务器发出用于为用户请求编号区间的第一编号请求;
中心服务器62,配置为基于第一编号请求和上一次为客户端发送的第三编号区间,向资源调度设备发送第一编号区间;其中,第一编号区间位于第三编号区间之后。
可选地,本公开实施例采用的资源调度设备61可以为上述任意一项实施例提供的资源调度设备,可实现上述图1或2所示实施例提供的资源调度方法,本公开实施例不限制资源调度设备61的具体类型及其应用的方法。本公开实施例为了实现通过资源调度设备61对客户端的I/O请求(例如第一I/O请求)进行调度,向中心服务器62请求获取编号区间,以获得的编号区间为客户端进行编号。
可选地,本公开实施例采用的中心服务器62可以为上述任意一项实施例提供的中心服务器,可实现上述图3所示实施例提供的资源调度方法,本公开实施例不限制中心服务器62的具体类型及其应用的方法。可选地,中心服务器62本次为客户端发放的第一编号区间中的编号号码,是基于上一次为客户端发放的第三编号区间的编号号码确定的,例如,上一次获取的第三编号区间是<1,100>,本次获得的第一编号区间可能是<301,400>,第一编号区间位于第三编号区间之后,第一编号区间与第三编号区间之间不一定连续。
基于本公开上述实施例提供的一种资源调度系统,通过中心服务器为资源调度设备发放编号区间的方式,解决了由于多个网关实例是独立提供存储服务的,相互之间没有通信,很难实现对用户进行有效控制的问题,通过编号区间可以实现对用户的请求数和并发数进行控制,解决了资源分布不均匀的问题。
可选地,资源调度设备61还配置为:接收客户端发送的第一I/O请求;基于第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,调度第一I/O请求。
可选地,资源调度设备61,配置为基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求。
可选地,资源调度设备61,配置为基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定第一I/O请求的标签值,其中,第二I/O为第一I/O请求对应的客户端上一次发出的I/O请求。
可选地,资源调度设备61,还配置为基于第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、第二I/O请求的标签值以及当前时间,确定第一I/O请求的标签值。
可选地,资源调度设备61,配置为确定第一编号区间中是否存在尚未分配的空闲编号;响应于第一编号区间中存在至少一个空闲编号,将至少一个空闲编号中的最小编号作为第一I/O请求的请求编号。
可选地,资源调度设备61配置为:响应于第一编号区间中不存在空闲编号,向中心服务器发送用于请求新的编号区间的第二编号请求;接收中心服务器基于第二编号请求发送的第二编号区间,其中,第二编号区间与第一编号区间间隔至少一个编号区间。
可选地,资源调度设备61,还配置为响应于第一编号区间中不存在空闲编号,基于第一编号区间中的最大编号,确定第一I/O请求的请求编号。
图7为本公开实施例提供的资源调度系统的交互流程示意图。如图7所示,在本公开实施例中,资源调度设备61可以为网关实例。
在该实施例中,资源调度系统还包括接收客户端发出的第一I/O请求的网关实例。客户端、网关实例和中心服务器的交互流程包括:网关实例发送为客户端请求编号区间的第一编号请求,并将第一编号请求发送给中心服务器;中心服务器基于第一编号请求和上一次为该客户端发放的第三编号区间确定第一编号区间,并将第一编号区间反馈给网关实例;网关实例接收第一编号区间;客户端发送第一I/O请求至网关实例;网关实例接收第一I/O请求,基于第一编号区间为第一I/O请求分配请求编号,并基于分配的请求编号确定第一I/O请求的标签值,基于第一I/O请求的标签值实现对第一I/O请求的调度。
图8为本公开实施例提供的资源调度系统的一个应用示例结构图。如图8所示,用户提交单机多卡、多机多卡任务并发起I/O请求,对象存储网关(对应资源调度设备)接收I/O请求后,判断当前编号区间中的编号是否已分配完(即,是否还包括空闲编号);若存在空闲编号,则获取一个编号作为I/O请求的请求编号(当前I/O请求的请求编号可以是上一次I/O请求的编号加1);若不存在空闲编号,激活后台线程向中心服务器发送编号请求以获取新的编号区间(此时获取的编号区间与之前获取的编号区间不一定连续,如之前区间是<1,100>,现在获取的区间可以是<301,400>),并为I/O请求分配本地临时请求编号作为请求编号;可采用mClock算法,例如可根据公式(1)、(2)、(3)中的至少一个公式获得标签值(保留标签(reservation)值,阈值标签(limit)值,权重标签(weight)值中的至少一种标签值),将标签值以“打标签”的方式携带在I/O请求中。
将“打完标签”的I/O请求推送(push)到请求队列中,根据标签值进行排序;I/O 请求处理线程池按照排序结果向请求队列中获取I/O请求,并提交后台存储层(即图8中的后端存储)处理,后台存储层处理完毕后将执行结果反馈应用层。
本公开实施例还提供了一种电子设备,包括:存储器,用于存储可执行指令;以及处理器,用于与存储器通信以执行可执行指令从而完成如上任意一实施例提供的资源调度方法的步骤。
本公开实施例还提供了一种计算机可读存储介质,用于存储计算机可读取的指令,指令被执行时执行如上任意一实施例提供的资源调度方法的操作。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任意一实施例提供的资源调度方法的指令。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选例子中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选例子中,计算机程序产品具体体现为软件产品,例如软件开发包(SDK,Software Development Kit)等等。
应理解,本公开实施例中的“第一”、“第二”等术语仅仅是为了区分,而不应理解成对本公开实施例的限定。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
本公开实施例还提供了一种电子设备,例如可以是移动终端、个人计算机(PC)、平板电脑、服务器等。下面参考图12,其示出了适于用来实现本公开实施例的终端设备或服务器的电子设备800的结构示意图:如图9所示,电子设备900包括一个或多个处理器、通信部等,所述一个或多个处理器例如:一个或多个中央处理单元(CPU)901,和/或一个或多个图像处理器(GPU)913等,处理器可以根据存储在只读存储器(ROM,Read Only Memory)902中的可执行指令或者从存储部分908加载到随机访问存储器(RAM,Random Access Memory)903中的可执行指令而执行各种适当的动作和处理。通信部912可包括但不限于网卡,所述网卡可包括但不限于IB(Infiniband)网卡。
处理器可与ROM 902和/或RAM 903中通信以执行可执行指令,通过总线904与通信部912相连、并经通信部912与其他目标设备通信,从而完成本公开实施例提供的任一项方法对应的操作,例如,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求。
此外,在RAM 903中,还可存储有装置操作所需的各种程序和数据。CPU901、 ROM902以及RAM903通过总线904彼此相连。在有RAM903的情况下,ROM902为可选模块。RAM903存储可执行指令,或在运行时向ROM902中写入可执行指令,可执行指令使中央处理单元901执行上述通信方法对应的操作。I/O接口905也连接至总线904。通信部912可以集成设置,也可以设置为具有多个子模块(例如多个IB网卡),并在总线链接上。
以下部件连接至I/O接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT,Cathode Ray Tube)、液晶显示器(LCD,Liquid Crystal Display)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
需要说明的,如图9所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图9的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如GPU913和CPU901可分离设置或者可将GPU913集成在CPU901上,通信部可分离设置,也可集成设置在CPU901或GPU913上,等等。这些可替换的实施方式均落入本公开实施例公开的保护范围。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码,程序代码可包括对应执行本公开实施例提供的方法步骤对应的指令,例如,接收客户端发送的第一I/O请求;基于从中心服务器获取到的第一编号区间,为第一I/O请求分配请求编号;基于第一I/O请求的请求编号,确定第一I/O请求的标签值;基于第一I/O请求的标签值,调度第一I/O请求,通过请求编号确定标签值,并根据标签值调度第一I/O请求。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被CPU901执行时,执行本公开的方法中限定的上述功能的操作。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够 理解本公开从而设计适于特定用途的带有各种修改的各种实施例。

Claims (30)

  1. 一种资源调度方法,包括:
    接收客户端发送的第一输入输出I/O请求;
    基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;
    基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;
    基于所述第一I/O请求的标签值,调度所述第一I/O请求。
  2. 根据权利要求1所述的方法,其中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:
    确定所述第一编号区间中是否存在尚未分配的空闲编号;
    响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
  3. 根据权利要求1或2所述的方法,其中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:
    响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求新的编号区间的编号请求;
    接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
  4. 根据权利要求1至3中任一项所述的方法,其中,所述基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号,包括:
    响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号。
  5. 根据权利要求1至4中任一项所述的方法,其中,所述基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值,包括:
    基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O请求为所述第一I/O请求对应的客户端上一次发出的I/O请求。
  6. 根据权利要求5所述的方法,其中,所述基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,包括:
    基于所述第一I/O请求的请求编号与所述第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
  7. 根据权利要求1至6中任一项所述的方法,其中,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
  8. 根据权利要求1至7中任一所述的方法,其中,所述基于所述第一I/O请求的标签值,调度所述第一I/O请求,包括:
    基于所述第一I/O请求的标签值,确定所述第一I/O请求在I/O请求队列中的排序;
    基于所述第一I/O请求在I/O请求队列中的排序,调度所述第一I/O请求。
  9. 一种资源调度方法,应用于服务器,包括:
    接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为客户端请求编号区间;
    基于为第二编号请求分配的第三编号区间,向所述第一资源调度设备发送第一编号区间,其中,所述第二编号请求为所述服务器上一次接收到的、第二资源调度设备发出的针对所述客户端的编号请求,第一编号区间位于所述第三编号区间之后。
  10. 一种资源调度设备,包括:
    请求接收单元,配置为接收客户端发送的第一I/O请求;
    编号区间获取单元,配置为基于从中心服务器获取到的第一编号区间,为所述第一I/O请求分配请求编号;
    标签值确定单元,配置为基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;
    资源调度单元,配置为基于所述第一I/O请求的标签值,调度所述第一I/O请求。
  11. 根据权利要求10所述的设备,其中,所述编号区间获取单元,配置为确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
  12. 根据权利要求10或11所述的设备,其中,所述编号区间获取单元,配置为响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求新的编号区间的编号请求;接收所述中心服务器基于所述编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
  13. 根据权利要求10至12中任一项所述的设备,其中,所述编号区间获取单元,配置为响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号确定所述第一I/O请求的请求编号。
  14. 根据权利要求10至13中任一项所述的设备,其中,所述标签值确定单元,配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O为所述第一I/O请求对应的客户端上一次发出的I/O请求。
  15. 根据权利要求14所述的设备,其中,所述标签值确定单元,配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
  16. 根据权利要求10至15中任一项所述的设备,其中,所述第一I/O请求的标签值包括保留标签值、阈值标签值和权重标签值中的至少一种。
  17. 根据权利要求10至16中任一所述的设备,其中,所述资源调度单元,配置为 基于所述第一I/O请求的标签值,确定所述第一I/O请求在I/O请求队列中的排序;基于所述第一I/O请求在I/O请求队列中的排序,调度所述第一I/O请求。
  18. 一种服务器,包括:
    请求接收单元,配置为接收第一资源调度设备发出的第一编号请求,所述第一编号请求用于为客户端请求编号区间;
    编号区间发放单元,配置为基于为第二编号请求分配的第三编号区间,向所述第一资源调度设备发放第一编号区间,其中,所述第二编号请求为所述服务器上一次接收到的、第二资源调度设备发出的针对所述用户的编号请求,第一编号区间位于所述第三编号区间之后。
  19. 一种资源调度系统,包括:多个资源调度设备和中心服务器,其中,
    所述资源调度设备,配置为向所述中心服务器发出用于为客户端请求编号区间的第一编号请求;
    所述中心服务器,配置为基于所述第一编号请求和上一次为所述客户端发放的第三编号区间,向所述资源调度设备发送第一编号区间,其中,第一编号区间位于所述第三编号区间之后。
  20. 根据权利要求19所述的系统,其中,所述资源调度设备还配置为:
    接收所述客户端发送的第一I/O请求;基于所述第一编号区间,为所述第一I/O请求分配请求编号;基于所述第一I/O请求的请求编号,调度所述第一I/O请求。
  21. 根据权利要求20所述的系统,其中,所述资源调度设备,配置为基于所述第一I/O请求的请求编号,确定所述第一I/O请求的标签值;基于所述第一I/O请求的标签值,调度所述第一I/O请求。
  22. 根据权利要求21所述的系统,其中,所述资源调度设备,配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值,确定所述第一I/O请求的标签值,其中,所述第二I/O为所述第一I/O请求对应的客户端上一次发出的I/O请求。
  23. 根据权利要求22所述的系统,其中,所述资源调度设备,还配置为基于所述第一I/O请求的请求编号与第二I/O请求的请求编号之间的差值、所述第二I/O请求的标签值以及当前时间,确定所述第一I/O请求的标签值。
  24. 根据权利要求20至23中任一项所述的系统,其中,所述资源调度设备,配置为确定所述第一编号区间中是否存在尚未分配的空闲编号;响应于所述第一编号区间中存在至少一个空闲编号,将所述至少一个空闲编号中的最小编号作为所述第一I/O请求的请求编号。
  25. 根据权利要求19至24中任一项所述的系统,其中,所述资源调度设备配置为:响应于所述第一编号区间中不存在空闲编号,向所述中心服务器发送用于请求新的编号区间的第二编号请求;接收所述中心服务器基于所述第二编号请求发送的第二编号区间,其中,所述第二编号区间与所述第一编号区间间隔至少一个编号区间。
  26. 根据权利要求24或25所述的系统,其中,所述资源调度设备,配置为响应于所述第一编号区间中不存在空闲编号,基于所述第一编号区间中的最大编号,确定所述第一I/O请求的请求编号。
  27. 根据权利要求19至26中任一项所述的系统,其中,所述资源调度设备为网关实例。
  28. 一种电子设备,包括:存储器,用于存储可执行指令;
    以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1至8任意一项所述资源调度方法的步骤;或者,用于与所述存储器通信以执行所述可执行指令从而完成权利要求9所述资源调度方法的步骤。
  29. 一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行权利要求1至8任意一项所述资源调度方法的步骤;或者,所述指令被执行时执行权利要求9所述资源调度方法的步骤。
  30. 一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码在设备上运行时,所述设备中的处理器执行用于实现权利要求1至8任意一项所述资源调度方法的指令;或者,所述设备中的处理器执行用于实现权利要求9所述资源调度方法的指令。
PCT/CN2019/112844 2019-03-07 2019-10-23 资源调度方法、设备、系统及中心服务器 WO2020177336A1 (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112584361A (zh) * 2020-12-09 2021-03-30 齐鲁工业大学 M2m通信中基于深度强化学习的资源调度方法及装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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