Method, apparatus and program product for managing computing resources in a storage system
By establishing a load model to predict the future workload of computing resources and selecting the appropriate time period to perform tasks, the problem of fluctuations in the computing resource workload in the storage system that tasks cannot be executed in time is solved, and the utilization rate of computing resources and task processing efficiency is improved.
Patent Information
- Application Number
- CN202010787951.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-08-07
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2040-08-07
AI Technical Summary
The workload of computing resources in the storage system fluctuates, resulting in tasks being unable to be executed in time. How to improve the utilization rate of computing resources to ensure the smooth execution of tasks.
By establishing a load model for computing resources, describing the association between the previous and subsequent loads of their historical data access requests, predicting future workloads in combination with the current load, and selecting a target time period that matches the length of time required for the task to perform the task.
It improves the utilization rate of computing resources in the storage system, ensures that tasks can be executed in a timely manner within the appropriate time period, and reduces the interference of data access requests to task processing.
Smart Images

Figure CN114064262B_ABST
Abstract
Description
Technical Field
[0001] Implementations of the present disclosure relate to management of computing resources, and more particularly, to methods, devices, and computer program products for managing computing resources in a storage system to process tasks. Background Art
[0002] With the development of storage systems, storage systems have been able to handle various data access requests from application systems. Storage systems include computing resources for processing data access requests. Generally speaking, in order to meet the possible data access peak, the processing power of computing resources is redundant. At present, technical solutions have been proposed to process other tasks besides data access requests based on redundant computing power in storage systems. However, the workload of the computing resources of the storage system fluctuates with the changes in data access requests, which sometimes causes the assigned tasks to not be executed in time. At this time, how to improve the utilization rate of computing resources in the storage system and ensure the smooth execution of tasks has become a research hotspot. Summary of the invention
[0003] Therefore, it is expected to develop and implement a technical solution for managing computing resources in a processing system in a more efficient manner. It is expected that the technical solution can be compatible with existing storage systems and manage computing resources in storage systems in a more efficient manner by modifying various configurations of existing storage systems.
[0004] According to a first aspect of the present disclosure, a method for managing computing resources in a storage system is provided. In the method, a processing request for processing a task using computing resources is received. Based on the usage status of the computing resources, the length of time required for processing the task is obtained. Based on the load model of the computing resources and the current workload of the computing resources, the workload of the computing resources for processing future data access requests for the storage system in a future time period is determined, and the load model describes the association between the previous load and the subsequent load of the computing resources for processing historical data access requests for the storage system. Based on the workload, a target time period that matches the time length is selected from the future time period for processing the task.
[0005] According to a second aspect of the present disclosure, an electronic device is provided, comprising: at least one processor; a volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, which, when executed by the at least one processor, causes the device to perform an action for managing computing resources in a storage system. The action comprises: receiving a processing request for processing a task using computing resources; obtaining the length of time required for processing the task based on the usage status of the computing resources; determining the workload of the computing resources for processing future data access requests for the storage system in a future time period based on a load model of the computing resources and the current workload of the computing resources, the load model describing the association between the previous load and the subsequent load of the computing resources for processing historical data access requests for the storage system; and selecting a target time period that matches the time length from the future time period for processing the task based on the workload.
[0006] According to a third aspect of the present disclosure, there is provided a computer program product, which is tangibly stored on a non-transitory computer-readable medium and comprises machine-executable instructions for executing the method according to the first aspect of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The features, advantages and other aspects of various implementations of the present disclosure will become more apparent with reference to the following detailed description in conjunction with the accompanying drawings, which illustrate several implementations of the present disclosure in an exemplary and non-limiting manner. In the accompanying drawings:
[0008] Figure 1 A block diagram schematically illustrates an application environment in which an exemplary implementation of the present disclosure may be implemented;
[0009] Figure 2 A block diagram schematically illustrates a process for managing computing resources in a storage system according to an exemplary implementation of the present disclosure;
[0010] Figure 3 A flowchart of a method for managing computing resources in a storage system according to an exemplary implementation of the present disclosure is schematically shown;
[0011] Figure 4 A block diagram schematically illustrates a historical workload according to an exemplary implementation of the present disclosure;
[0012] Figure 5 A block diagram schematically illustrates a process for establishing a load model according to an exemplary implementation of the present disclosure;
[0013] Figure 6 A block diagram schematically illustrates a workload curve of a computing resource in a storage system according to an exemplary implementation of the present disclosure;
[0014] Fig. 7A and 7B Schematically showing a block diagram of selecting a target time period according to an exemplary implementation of the present disclosure;
[0015] Figure 8 A block diagram schematically illustrates another workload curve of a computing resource in a storage system according to an exemplary implementation of the present disclosure;
[0016] Fig. 9A and 9B Schematically showing a block diagram of selecting a target time period according to an exemplary implementation of the present disclosure; and
[0017] Fig.10 A block diagram schematically shows a device for managing computing resources in a storage system according to an exemplary implementation of the present disclosure. DETAILED DESCRIPTION
[0018] The preferred implementations of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the preferred implementations of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the implementations set forth herein. On the contrary, these implementations are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.
[0019] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "an example implementation" and "an implementation" mean "at least one example implementation". The term "another implementation" means "at least one additional implementation". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0020] Figure 1 A block diagram 100 schematically illustrates an application environment in which an exemplary implementation of the present disclosure may be implemented. Figure 1As shown, the storage system 110 can be connected to the application system 130, ..., and the application system 132 via the network 120. Here, the application system 130, ..., and the application system 132 can be an application system for providing multiple services to users. The application system 130 can generate backups of a certain data object at multiple time points during operation, and perform backups to the storage system 110. For example, the application system 130 can include a bank system that provides financial services, and the application system 130 can back up current account information to the storage system 110 every night. For another example, the application system 132 can include a management system that provides office services, and the application system 132 can back up the work data of each employee to the storage system 110 every weekend.
[0021] like Figure 1 As shown, the storage system 110 may include computing resources 112 and storage devices 114. Here, the computing resources 112 may be used to serve data access requests from various application systems 130, ... and 132. For example, the computing resources 112 may receive a backup request from the application system 130 and back up the received data to the storage device 114. The computing resources 112 may receive a recovery request from the application system 130, retrieve the specified data from the storage device 114 and send it to the application system 130. It will be understood that the above data access requests will occupy a certain number of computing resources 112. Generally speaking, in order to handle sudden data access requests, the computing resources 112 in the storage system 110 may be redundant. At this time, when the number of data access requests received by the storage system 110 is small, the computing resources 112 will be idle.
[0022] At present, a technical solution for reusing the computing resources 112 in the storage system 110 has been proposed, which can monitor the workload of the computing resources 112, and when it is found that the workload is low, other tasks can be assigned to the computing resources 112. However, processing tasks will take a certain amount of time, and the storage system 110 may receive a large number of data access requests while the computing resources 112 are processing tasks. This causes a sudden increase in the workload of the computing resources 112, which in turn makes it impossible for both data access requests and tasks to be processed in a timely manner, and even causes the storage system 110 to crash.
[0023] In order to solve the above-mentioned defects, the implementation of the present disclosure provides a method, device and computer program product for managing computing resources in a storage system. According to the exemplary implementation of the present disclosure, it is proposed to establish a load model for the workload of the computing resource 112, in which the load model can describe the association between the previous load and the subsequent load of the computing resource 112 for processing historical data access requests for the storage system 110. Further, the workload of the computing resource 112 in the future period of time can be determined based on the current load of the computing resource and the load model. Assuming that the current workload of the computing resource 112 (for example, in the past 3 hours or other time period) is high, and the load model shows that the workload will be lower after the next 4 hours, at this time, the computing resource can be instructed to perform the task after the next 4 hours.
[0024] In the following, we will refer to Figure 2 More details of the present disclosure are described. Figure 2 A block diagram 200 schematically illustrates a process for managing computing resources in a storage system according to an exemplary implementation of the present disclosure. Figure 2 As shown, a processing request 210 for processing a task using a computing resource 112 can be received, and a time length 220 required to process the task can be determined (assuming that the time length 220 is 1 hour). Further, a current load 230 of the computing resource 112 can be determined, and a workload 250 of the computing resource 112 in a future time period can be determined using the current load and a load model 240.
[0025] It will be understood that the workload 250 herein is associated with a future time. According to an exemplary implementation of the present disclosure, when the workload is represented by the utilization rate of the central processing unit (CPU), the workload 250 can be represented as: the workload in the first hour of the future is 12%, the workload in the second hour of the future is 20%, the workload in the third hour of the future is 50%, and so on. At this time, the received task can be processed in the first hour of the future when the workload is lower. Using the exemplary implementation of the present disclosure, the historical experience in the load model 240 can be fully utilized to determine the workload 250 of the computing resource 112 in the future. In this way, a suitable future time period can be selected as the target time period 260 to execute the task, and it can be ensured that the computing resource 112 will not be disturbed by data access requests during the execution of the task.
[0026] In the following, we will refer to Figure 3 More details are described regarding how computing resources 112 are managed in storage system 110 . Figure 3 A flowchart of a method 300 for managing computing resources in a storage system according to an exemplary implementation of the present disclosure is schematically shown.
[0027] At box 310, a processing request for processing a task using computing resources in a storage system is received, where the storage system may include a backup system. It will be appreciated that the backup system typically works as a secondary storage system in the background of the application system. The computing resources 112 in the backup system may have idle computing power. Using the exemplary implementation of the present disclosure, the idle computing resources of the backup system can be fully utilized, thereby improving resource utilization.
[0028] At box 320, the length of time required for processing the task is determined based on the usage status of the computing resources. According to an exemplary implementation of the present disclosure, the required length of time can be determined based on a variety of methods. Generally speaking, the amount of computing required for the task can be defined in the task description, and thus the required length of time can be determined based on the overall average usage status of the computing resources. According to an exemplary implementation of the present disclosure, the required length of time can be determined based on the average usage status of the computing resources in the past specified time period. For example, if it is found that the usage status of the computing resources fluctuates periodically, the time period for determining the average usage status can be specified according to the position of the current time in the cycle. For example, suppose that it is found that the usage status fluctuates in units of weeks: the workload is lower from Monday to Friday, and the workload is higher on Saturday and Sunday. Assuming that it is currently Monday, it can be specified that the average usage status of the computing resources is determined based on the usage status from Monday to Wednesday. In this way, the length of time required to process the task can be estimated as accurately as possible.
[0029] At block 330, a workload 250 of the computing resource for processing future data access requests for the storage system in a future time period is determined based on the load model 240 of the computing resource and the current workload 230 of the computing resource. It will be appreciated that when a task is processed by a computing resource of the storage system, the computing resource still needs to process data access requests within the storage system. Thus, a time period in which the number of computing resources occupied by data access requests is low may be selected as much as possible to process the task.
[0030] The load model 240 herein describes the association between the previous load and the subsequent load of the computing resource for processing historical data access requests for the storage system. The load model 240 may be obtained based on machine learning technology. Specifically, the historical load sequence of the computing resource in the historical time period may be obtained, and the load model 240 may be trained based on the historical load sequence. Figure 4 A block diagram 400 schematically illustrates a historical workload according to an exemplary implementation of the present disclosure. Figure 4 In the example, the horizontal axis represents time and the vertical axis represents the historical workload of the computing resource. A predetermined time interval may be specified, and the workload of the computing system may be collected at the predetermined time interval. Figure 4The workload collected at 6-hour time intervals between May 25 and September 30, 2019 is schematically shown. In other exemplary implementations, the time interval may be set to other values.
[0031] By using the exemplary implementation of the present disclosure, the correlation between the previous load and the subsequent load can be obtained based on different time points in the historical workload. Since the historical load sequence is the workload that has already occurred, training the load model 240 based on the historical load sequence can make full use of the known historical knowledge of the computing resources, thereby making the trained load model have higher accuracy.
[0032] According to an exemplary implementation of the present disclosure, a load model 240 may be generated based on a workload of p hours before a certain time point in the past and a workload of q hours after the time point. Here, the values of p and q may be customized. Using the generated load model 240, a future workload forecast may be obtained based on the workload model before the current time point. Figure 4 The historical workload shown is used to train the load model 240. Specifically, a plurality of historical load segments describing previous loads and a plurality of future load segments describing subsequent loads can be selected from the historical load sequence.
[0033] First, how to select multiple historical load segments from a historical load sequence is described. In the historical load sequence, historical load segments and future load segments can be selected based on a certain historical time point. Here, the future load segment is after the historical load segment. Figure 4 For the time point 06:12 on June 2, the workload of p hours before and q hours after the time point can be selected as the historical load segment and the future load segment respectively. According to the exemplary implementation of the present disclosure, the values of p and q can be set according to the needs of the specific application environment. For example, the data within 24 hours before the time point can be selected as the historical load segment, and the data within 12 hours after the time point can be selected as the future load segment.
[0034] In the historical load sequence, 06:12 every day can be used as a reference time point to select the corresponding historical load segment. According to an exemplary implementation of the present disclosure, the length of the historical load segment can be specified. For example, the length can be specified as a few hours, half a day, or even longer. The length can be specified based on the changes in the workload of the computing resources in the storage system. If the workload changes more drastically, a longer time length can be specified; if the workload changes more slowly, a shorter time length can be specified. In this way, the corresponding time length can be specified according to the specific application environment of the storage system, so that the trained load model 240 can more accurately reflect the correlation between the previous load and the subsequent load.
[0035] According to an exemplary implementation of the present disclosure, 06:12 every day can be used as a reference time point to select a corresponding future load segment. In this way, multiple future load segments corresponding to multiple historical load segments can be determined. Here, the multiple future load segments are respectively after the multiple historical load segments. The future load segment corresponding to the historical load segment can be determined based on a predetermined length of the future load segment. It will be understood that the historical load segment and the future load segment here can have the same or different lengths (that is, p and q can have the same or different values).
[0036] According to an exemplary implementation of the present disclosure, a load model may be trained based on a training data set including a plurality of historical load segments and a plurality of future load segments, so that a predicted value of future load obtained based on the historical load segments and the trained load model is consistent with the future load segments. In the case where a training data set has been obtained, the load model may be trained based on the training data in the training data set. Figure 5 A block diagram 500 schematically illustrates a process for establishing a load model according to an exemplary implementation of the present disclosure. Figure 5 As shown, one training data may include historical load segment 510 and future load segment 512 , . . . , and one training data may include historical load segment 514 and future load segment 516 .
[0037] According to the exemplary implementation of the present disclosure, other information may be added to the training data. For example, the collection time, collection date, day of the week, whether it is a holiday, and other parameters of each load segment may be added to the training data to obtain the periodic change trend of the workload. According to the exemplary implementation of the present disclosure, each training data may be represented in a vector manner.
[0038] According to an exemplary implementation of the present disclosure, in order to obtain the load model 240, multiple impact factors 520, 522, ..., and 524 may be set. Each impact factor may represent the impact of the training data on one aspect of the load model 240, and a corresponding weight may be set for each impact factor. For example, a weight w1 may be set for the impact factor 520, a weight w2 may be set for the impact factor 522, ..., and a weight w4 may be set for the impact factor 524. m ,etc.
[0039] Based on machine learning technology, a load function 530 can be constructed. It is expected that the load function 530 can describe the association relationship between the multiple historical load segments 510, ..., and 514 and the corresponding future load segments 512, ..., and 516. After the load model 240 is trained using the training data set, when the multiple historical load segments 510, ..., and 514 are respectively input into the load model 240, the future load determined by the load model 240 and the future load segments 512, ..., and 516 can be as consistent as possible.
[0040] For example, suppose that the impact factor is expressed by formula 1 and formula 2 respectively (where x i represents the i-th influencing factor) and the corresponding weight (where w i represents the weight of the i-th influencing factor), where the integer m represents the number of influencing factors. T Represents a set of influencing factors, vector W T Indicates the corresponding weight.
[0041] X T = [x1 x2 … x m ] Formula 1
[0042] W T = [w1 w2 … w m ] Formula 2
[0043] The load function 530 may be expressed using the following Formula 3, where y represents the load function and b represents a constant.
[0044]
[0045] According to an exemplary implementation of the present disclosure, a cost function may be set. For example, the cost function R may be set based on the difference between the predicted value and the measured value of the future load. According to an exemplary implementation of the present disclosure, the cost function R may be set based on the following formula 4:
[0046]
[0047] Where R represents the cost function, n represents the number of training data, represents the predicted value of the i-th future load, y (i) represents the measured value of the i-th future load, An average of the measurements representing future loads.
[0048] The load model 240 can be iteratively trained based on the formula described above using the collected training data until the cost function R satisfies a predetermined condition. The predetermined condition may include, for example, reaching a predetermined number of iterations, the value of the cost function reaching a specified range (for example, a range of 1±0.001), and the like. It will be understood that the above only summarizes the principles involved in training the load model 240 with reference to formulas 1-4. The above formulas 1-4 are merely illustrative. According to the exemplary implementation of the present disclosure, other formulas may be used. In the context of the present disclosure, it is not limited to which method is used to train the load model 240, but the load model 240 can be obtained based on a variety of training techniques that have been developed and / or will be developed in the future.
[0049] The above has described how to obtain the load model 240. In the case where the load model 240 has been obtained, the workload of the computing resource for processing future data access requests for the storage system in the future time period can be determined based on the load model 240 and the current workload of the computing resource. The current workload here can be the workload of p hours before the current time point. Based on the load model 240, the workload of q hours after the current time point can be obtained.
[0050] In the following, we will return Figure 3 Describe how to determine the target time period 260. Figure 3 At block 340, based on the workload 250, a target time period 260 matching the time length 220 is selected from the future time period for processing the task. According to an exemplary implementation of the present disclosure, a workload curve describing the correlation between the workload and the time points in the future time period may be generated. Figure 6 A block diagram 600 schematically illustrates a workload curve of a computing resource in a storage system according to an exemplary implementation of the present disclosure. Figure 6 The horizontal axis in FIG. 6 represents time and the vertical axis represents workload, and the figure shows a workload curve 610 within the next 12 hours. Based on the workload curve 610, a time period with a lower workload can be selected from the future time period as the target time period.
[0051] Figure 6The ordinate in represents the workload, so the portion of the workload curve that is as close to the abscissa as possible can be selected as much as possible. According to an exemplary implementation of the present disclosure, a sliding window can be established based on a determined time length, and the sliding window can be moved along the horizontal axis. Assuming that the determined time length required for processing the task is 1 hour, a sliding window 620 with a width of 1 can be set. During the movement of the sliding window 620, a target time period can be selected from the future time period based on the workload curve 610 and the sliding window 620.
[0052] Specifically, an area between the workload curve 610 and the time axis and located within the sliding window 620 may be determined. Then, a target time period may be determined based on the size of the area. Fig. 7A and 7B Block diagrams 700A and 700B schematically illustrate a method for selecting a target time period according to an exemplary implementation of the present disclosure. Fig. 7A As shown, the time length is 1 hour, and a sliding window with a width of 1 hour can be set. During the movement of the sliding window, it can be determined that area 720A is the smallest, so the time period 710A (the 3rd hour to the 4th hour) corresponding to the area 720A can be determined as the target time period. Then, the computing resources can be instructed to process the task from the 3rd hour to the 4th hour in the future.
[0053] like Figure 7B As shown, assuming that the time length is 2 hours, a sliding window with a width of 2 hours can be set. During the movement of the sliding window, it can be determined that area 720B is the smallest, so the time period 710B (the 2nd hour to the 4th hour) corresponding to the area 720B can be determined as the target time period. Then, the computing resources can be instructed to process the task from the 2nd hour to the 4th hour in the future.
[0054] In the following, we will refer to Figure 8 , Fig. 9A and Fig. 9B Describe more examples of determining target time periods. Figure 8 A block diagram 800 schematically illustrates another workload curve 810 of a computing resource in a storage system according to an exemplary implementation of the present disclosure. Figure 8 The horizontal axis represents time and the vertical axis represents workload. Fig. 9A Schematically shows a block diagram 900A for selecting a target time period according to an exemplary implementation of the present disclosure. Fig. 9AAs shown, the time length is 1 hour, and a sliding window with a width of 1 hour can be set. During the movement of the sliding window, it can be determined that area 920A is the smallest, so the time period 910A (the 3rd hour to the 4th hour) corresponding to the area 920A can be determined as the target time period. Then, the computing resources can be instructed to process the task from the 3rd hour to the 4th hour in the future.
[0055] Fig. 9B Schematically shows a block diagram 900B for selecting a target time period according to an exemplary implementation of the present disclosure. Fig. 9B As shown, the time length is 3 hours, and a sliding window with a width of 3 hours can be set. During the movement of the sliding window, it can be determined that area 920B is the smallest, so the time period 910B (the first hour to the fourth hour) corresponding to the area 920B can be determined as the target time period. Then, the computing resources can be instructed to process the task from the first hour to the fourth hour in the future.
[0056] By using the exemplary implementation of the present disclosure, a target time period with the lowest workload can be selected from future time periods according to the workload curve. In this way, tasks can be completed faster and task processing performance can be improved.
[0057] According to an exemplary implementation of the present disclosure, the user of the application system 130 may sign a user service agreement with the storage system 110 to specify the response time of the storage system 110 to the task from the application system 130. The time range for completing the task may be determined based on the user service agreement. At this time, the target time period may be selected from the part of the future time period that is within the time range. Fig. 9A For example, assume that the user service agreement specifies that the task needs to be completed within 6 hours. Since the optimal time period 910A is within the range of 6 hours, the task can be processed in the time period 910A. Assuming that the user service agreement specifies that the task needs to be completed within 3 hours, since the optimal time period 910A is outside the range of 3 hours, the target time period with the lowest workload can be selected within the range of 3 hours. For example, the task can be processed between the 2nd and 3rd hours.
[0058] It will be appreciated that, after a specific target time period has been allocated for processing a task, processing the task will cause the workload of the computing resources in the specific target time period to increase, thereby the specific target time period is no longer suitable for processing other tasks. According to an exemplary implementation of the present disclosure, the specific target time period can be marked as unavailable. When the storage system receives another processing request for processing another task using computing resources, the target time period can be selected from other time periods that are not marked.
[0059] Specifically, another time length required for processing another task can be determined based on the usage status of the computing resources. Then, another target time period matching another time length can be selected from a portion of the future time period that is different from the target time period that has been selected based on the workload. Fig. 9B , assuming that another task requires 2 hours, although time period 910B is the target time period with the lowest workload, it has been used, so it is necessary to select a target time period of 2 hours from other unused time periods. For example, the 6th hour to the 8th hour may be selected. Then, the computing resource may be instructed to process another task between the 6th hour and the 8th hour.
[0060] By using the exemplary implementation of the present disclosure, the workload of computing resources for processing data access requests and for processing tasks can be considered separately. In this way, a target time period with the lowest workload can be selected to process tasks, thereby improving task processing efficiency and reducing the impact of tasks on the main work of the storage system.
[0061] See above for Figures 2 to 9B An example of the method according to the present disclosure is described in detail, and the implementation of the corresponding device will be described below. According to the exemplary implementation of the present disclosure, a device for managing computing resources in a storage system is provided. The device includes: a receiving module, configured to receive a processing request for processing a task using computing resources; an acquisition module, configured to obtain the length of time required for processing the task based on the usage status of the computing resources; a determination module, configured to determine the workload of the computing resource for processing future data access requests for the storage system in a future time period based on the load model of the computing resource and the current workload of the computing resource, the load model describes the association between the previous load and the subsequent load of the computing resource for processing historical data access requests for the storage system; and a selection module, configured to select a target time period that matches the time length from the future time period based on the workload for processing the task. According to the exemplary implementation of the present disclosure, the device further includes a module for executing other steps in the method described above.
[0062] Fig.10A block diagram of a device 1000 for managing computing resources in a storage system according to an exemplary implementation of the present disclosure is schematically shown. As shown, the device 1000 includes a central processing unit (CPU) 1001, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 1002 or computer program instructions loaded from a storage unit 1008 into a random access memory (RAM) 1003. In the RAM 1003, various programs and data required for the operation of the device 1000 can also be stored. The CPU 1001, the ROM 1002, and the RAM 1003 are connected to each other via a bus 1004. An input / output (I / O) interface 1005 is also connected to the bus 1004.
[0063] A number of components in the device 1000 are connected to the I / O interface 1005, including: an input unit 1006, such as a keyboard, a mouse, etc.; an output unit 1007, such as various types of displays, speakers, etc.; a storage unit 1008, such as a disk, an optical disk, etc.; and a communication unit 1009, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 1009 allows the device 1000 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0064] The various processes and processing described above, such as method 300, may be performed by processing unit 1001. For example, in some implementations, method 300 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage unit 1008. In some implementations, part or all of the computer program may be loaded and / or installed on device 1000 via ROM 1002 and / or communication unit 1009. When the computer program is loaded into RAM 1003 and executed by CPU 1001, one or more steps of method 300 described above may be performed. Alternatively, in other implementations, CPU 1001 may also be configured in any other appropriate manner to implement the above process / method.
[0065] According to an exemplary implementation of the present disclosure, an electronic device is provided, comprising: at least one processor; a volatile memory; and a memory coupled to the at least one processor, the memory having instructions stored therein, which, when executed by the at least one processor, causes the device to perform an action for managing computing resources in a storage system. The action comprises: receiving a processing request for processing a task using computing resources; obtaining the length of time required for processing the task based on the usage status of the computing resources; determining the workload of the computing resources for processing future data access requests for the storage system in a future time period based on a load model of the computing resources and the current workload of the computing resources, the load model describing the association between the previous load and the subsequent load of the computing resources for processing historical data access requests for the storage system; and selecting a target time period that matches the time length from the future time period for processing the task based on the workload.
[0066] According to an exemplary implementation of the present disclosure, selecting a target time period includes: generating a workload curve describing an association relationship between a workload and a time point in a future time period; and selecting a target time period from the future time period based on the workload curve.
[0067] According to an exemplary implementation of the present disclosure, selecting a target time period based on a workload curve includes: establishing a sliding window based on a time length; and determining the target time period based on the sliding window and the workload curve while the sliding window moves along the time axis of the workload curve.
[0068] According to an exemplary implementation of the present disclosure, determining the target time period includes: determining an area between the workload curve and the time axis that is within the sliding window; and determining the target time period based on the size of the area.
[0069] According to an exemplary implementation of the present disclosure, selecting the target time period further includes: determining a time range for completing the task; and selecting the target time period from a portion of the future time period that is within the time range.
[0070] According to an exemplary implementation of the present disclosure, the action further includes: receiving another processing request to process another task using computing resources; determining another length of time required to process the other task based on the usage status; selecting another target time period that matches the other length of time from a part of the future time period that is different from the target time period based on the workload; and instructing the computing resources to process the other task within the other target time period.
[0071] According to an exemplary implementation of the present disclosure, the action further includes: obtaining a historical load sequence of the computing resource within a historical time period; and training a load model based on the historical load sequence.
[0072] According to an exemplary implementation of the present disclosure, training a load model based on a historical load sequence includes: selecting multiple historical load segments from the historical load sequence; determining multiple future load segments corresponding to the multiple historical load segments in the historical load sequence, wherein the future load segments in the multiple future load segments are after the historical load segments in the multiple historical load segments; and training a load model based on the multiple historical load segments and the multiple future load segments, so that the predicted value of the future load obtained based on the historical load segments and the trained load model is consistent with the future load segments.
[0073] According to an exemplary implementation of the present disclosure, selecting multiple historical load fragments from a historical load sequence includes: selecting multiple historical load fragments from the historical load sequence based on a predetermined length of the historical load fragments; and determining multiple future load fragments corresponding to the multiple historical load fragments respectively includes: determining multiple future load fragments corresponding to the multiple historical load fragments respectively based on a predetermined length of the future load fragments.
[0074] According to an exemplary implementation of the present disclosure, a storage system includes a backup system.
[0075] According to an exemplary implementation of the present disclosure, a computer program product is provided, which is tangibly stored on a non-transitory computer-readable medium and includes machine-executable instructions for executing a method according to the present disclosure.
[0076] According to an exemplary implementation of the present disclosure, a computer-readable medium is provided. The computer-readable medium stores machine-executable instructions, and when the machine-executable instructions are executed by at least one processor, the at least one processor implements the method according to the present disclosure.
[0077] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.
[0078] A computer-readable storage medium may be a tangible device that can hold and store instructions used by an instruction execution device. A computer-readable storage medium may be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples of computer-readable storage media (a non-exhaustive list) include: a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a static random access memory (SRAM), a portable compact disk read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanical encoding device, such as a punch card or a raised structure in a groove on which instructions are stored, and any suitable combination of the foregoing. As used herein, a computer-readable storage medium is not to be interpreted as a transient signal per se, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., a light pulse through a fiber optic cable), or an electrical signal transmitted through a wire.
[0079] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0080] The computer program instructions for performing the operation of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some implementations, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be customized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0081] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products implemented according to the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0082] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0083] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0084] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple implementations of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of a module, program segment or instruction includes one or more executable instructions for realizing the logical function of the specification. In some implementations as replacements, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be realized by a special hardware-based system that performs the function or action of the specification, or can be realized by a combination of special hardware and computer instructions.
[0085] The above descriptions of various implementations of the present disclosure are exemplary, non-exhaustive, and not limited to the disclosed implementations. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described implementations. The selection of terms used herein is intended to best explain the principles of the implementations, practical applications, or improvements to the technology in the marketplace, or to enable other persons of ordinary skill in the art to understand the implementations disclosed herein.
Claims
1. A method for managing computing resources in a storage system, comprising: receiving a processing request for processing a task using the computing resources; Based on the usage status of the computing resources, obtaining the length of time required for processing the task; Determining a future workload forecast of the computing resource for processing future data access requests for the storage system in a future time period based on a load model of the computing resource and a current workload of the computing resource, the load model describing an association between a previous load and a subsequent load of the computing resource for processing historical data access requests for the storage system; generating a workload curve describing a correlation between the future workload forecast and a time point within the future time period; Selecting a target time period in the future workload prediction that corresponds to the reduced workload of the computing resource on the workload curve in the future time period and matches the length of time required for the processing of the task, wherein selecting the target time period based on the workload curve comprises: Establishing a sliding window based on the time length; as well as Determining the target time period based on the sliding window and the workload curve during the movement of the sliding window along the time axis of the workload curve; and The task is processed using the computing resources according to the target time period.
2. The method of claim 1, wherein determining the target time period comprises: determining an area between the workload curve and the time axis that is within the sliding window; as well as The target time period is determined based on the size of the area.
3. The method of claim 1 , wherein selecting the target time period further comprises: Determine the time frame for completing the tasks; and The target time period is selected from a portion of the future time period that is within the time range.
4. The method according to claim 1, further comprising: receiving another processing request for processing another task using the computing resource; Based on the usage status, determining another length of time required for processing the another task; Based on the future workload prediction, selecting another target time period matching the another time length from a portion of the future time period that is different from the target time period; as well as The computing resource is instructed to process the another task within the another target time period.
5. The method according to claim 1, further comprising: Obtaining a historical load sequence of the computing resource within a historical time period; as well as The load model is trained based on the historical load sequence.
6. The method according to claim 5, wherein training the load model based on the historical load sequence comprises: selecting a plurality of historical load segments from the historical load sequence; In the historical load sequence, determining a plurality of future load segments respectively corresponding to the plurality of historical load segments, wherein a future load segment in the plurality of future load segments is subsequent to a historical load segment in the plurality of historical load segments; as well as The load model is trained based on the multiple historical load segments and the multiple future load segments, so that the predicted value of the future load obtained based on the historical load segments and the trained load model is consistent with the future load segments.
7. The method according to claim 6, wherein selecting the plurality of historical load segments from the historical load sequence comprises: selecting the plurality of historical load segments from the historical load sequence based on a predetermined length of the historical load segment; as well as Determining the plurality of future load segments respectively corresponding to the plurality of historical load segments includes: determining the plurality of future load segments respectively corresponding to the plurality of historical load segments based on predetermined lengths of the future load segments. The method of claim 1 , wherein the storage system comprises a backup system.
9. An electronic device, comprising: at least one processor; Volatile memory; as well as a memory coupled to the at least one processor, the memory having instructions stored therein, the instructions, when executed by the at least one processor, causing the apparatus to perform actions for managing computing resources in a storage system, the actions comprising: receiving a processing request for processing a task using the computing resources; Based on the usage status of the computing resources, obtaining the length of time required for processing the task; Determining a future workload forecast of the computing resource for processing future data access requests for the storage system in a future time period based on a load model of the computing resource and a current workload of the computing resource, the load model describing an association between a previous load and a subsequent load of the computing resource for processing historical data access requests for the storage system; generating a workload curve describing a correlation between the future workload forecast and a time point within the future time period; Selecting a target time period in the future workload prediction that corresponds to the reduced workload of the computing resource on the workload curve in the future time period and matches the length of time required for the processing of the task, wherein selecting the target time period based on the workload curve comprises: Establishing a sliding window based on the time length; and Determining the target time period based on the sliding window and the workload curve during the movement of the sliding window along the time axis of the workload curve; and The task is processed using the computing resources according to the target time period.
10. The apparatus of claim 9, wherein determining the target time period comprises: determining an area between the workload curve and the time axis that is within the sliding window; as well as The target time period is determined based on the size of the area.
11. The apparatus of claim 9, wherein selecting the target time period further comprises: Determine the time frame for completing the tasks; and The target time period is selected from a portion of the future time period that is within the time range.
12. The apparatus of claim 9, wherein the actions further comprise: receiving another processing request for processing another task using the computing resource; Based on the usage status, determining another length of time required for processing the another task; Based on the future workload prediction, selecting another target time period matching the another time length from a portion of the future time period that is different from the target time period; as well as The computing resource is instructed to process the another task within the another target time period.
13. The apparatus of claim 9, wherein the actions further comprise: Obtaining a historical load sequence of the computing resource within a historical time period; and The load model is trained based on the historical load sequence.
14. The apparatus according to claim 13, wherein training the load model based on the historical load sequence comprises: selecting a plurality of historical load segments from the historical load sequence; In the historical load sequence, determining a plurality of future load segments respectively corresponding to the plurality of historical load segments, wherein a future load segment in the plurality of future load segments is subsequent to a historical load segment in the plurality of historical load segments; as well as The load model is trained based on the multiple historical load segments and the multiple future load segments, so that the predicted value of the future load obtained based on the historical load segments and the trained load model is consistent with the future load segments.
15. The apparatus of claim 14, wherein selecting the plurality of historical load segments from the historical load sequence comprises: selecting the plurality of historical load segments from the historical load sequence based on a predetermined length of the historical load segment; as well as Determining the plurality of future load segments respectively corresponding to the plurality of historical load segments includes: determining the plurality of future load segments respectively corresponding to the plurality of historical load segments based on predetermined lengths of the future load segments.
16. A computer program product tangibly stored on a non-transitory computer readable medium and comprising machine executable instructions for performing the method according to any one of claims 1-8.
Citation Information
Patent Citations
Timing task execution time recommendation method, apparatus, device, and storage medium
CN109298929A
System cluster load balancing method and device and related equipment
CN109614239A