Workload management using trained models

Through a machine learning-based workload management engine, the workloads in the storage system are grouped into clusters, and the contribution of each cluster to the system load is calculated, and resource usage is dynamically adjusted, which solves the performance problems caused by resource overload in the storage system, and realizes the More efficient resource management and performance optimization.

CN115454322BActive Publication Date: 2025-02-18HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111261875.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2021-06-09
Filing Date
2021-10-28
Publication Date
2025-02-18
Estimated Expiration
2041-10-28

AI Technical Summary

Technical Problem

Multiple workloads in the storage system cause shared resources to be overloaded, resulting in adversely affecting the performance of some workloads, and existing manual analysis methods are time-consuming and inaccurate.

Method used

Through a machine learning-based workload management engine, group workloads into multiple workload clusters, use training data sets to calculate the contribution parameters representing each workload cluster to the load of the storage system, and dynamically impose resource usage constraints to optimize resource allocation.

Benefits of technology

Effectively reduce the number of workloads to determine resource contention, improve the performance of the storage system, and avoid the time-consuming and inaccurateness of manual analysis.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115454322B_ABST
    Figure CN115454322B_ABST
Patent Text Reader

Abstract

In some examples, a system creates a training data set based on features of a sample workload, the training data set including a label associated with the features of the sample workload, wherein the label is based on a load indicator generated in a computing environment, the load indicator being related to a load condition of the computing environment caused by execution of the sample workload. The system groups selected workloads into a plurality of workload clusters based on the features of the selected workloads, and uses a model trained based on the training data set to calculate parameters representing contributions of corresponding workload clusters in the plurality of workload clusters to the load in the computing environment. The system performs workload management in the computing environment based on the calculated parameters.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] A storage system includes storage resources and other resources (including processing resources and communication resources) on which different types of workloads can be executed. Storage resources can refer to physical storage resources or logical storage resources that can be used to store data. Different workloads may compete for the resources of the storage system, resulting in resource contention, which may adversely affect the performance of certain workloads. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Some embodiments of the disclosure are described with respect to the following figures.

[0003] Figure 1 is a block diagram of an arrangement including a storage system and a workload management engine according to some examples.

[0004] Figure 2 is a flow chart of a machine learning based workload management process according to some examples.

[0005] Figure 3 is a block diagram of a storage medium storing machine-readable instructions according to some examples.

[0006] Figure 4 is a block diagram of a system according to some examples.

[0007] Figure 5 is a flow diagram of a process according to some examples.

[0008] Throughout the drawings, the same reference numerals refer to similar, but not necessarily identical, elements. The drawings are not necessarily to scale, and the dimensions of some parts may be exaggerated to more clearly illustrate the examples shown. In addition, the drawings provide examples and / or implementations consistent with the description; however, the description is not limited to the examples and / or implementations provided in the drawings. DETAILED DESCRIPTION

[0009] In the present disclosure, unless the context clearly indicates otherwise, the use of the terms "a / an" or "the" is intended to include the plural forms as well. Similarly, when used in the present disclosure, the terms "includes / including / comprises / comprising", "have / having" indicate the presence of stated elements, but do not exclude the presence or addition of other elements.

[0010] Multiple workloads running in a storage system may overload the shared resources of the storage system. Shared resources may include physical storage resources, such as storage devices, including disk-based storage devices, solid-state storage devices, memory devices (e.g., dynamic random access memory (DRAM) devices, static random access memory (SRAM) devices, etc.). Shared resources also include processing resources (e.g., processors, processor cores, etc.), communication resources (e.g., network interface controllers, switches, etc.), etc.

[0011] Shared resources may also include logical resources, such as virtual machines, virtual processors, virtual communication devices, etc.

[0012] A "workload" may refer to any set of activities performed by entities (e.g., machine-readable instructions) in a storage system. More generally, a "workload" may refer to any set of activities performed by entities (e.g., machine-readable instructions) in a computing environment, such as a storage system, a computer system, a communication system, a cloud system, a data center, a server system, etc.

[0013] A first workload can adversely affect the performance of a second workload in a scenario where the resource usage of the first workload prevents a second workload in the storage system from executing or causes the second workload to execute more slowly. Workloads that adversely affect the performance of other workloads can be referred to as noisy neighbors.

[0014] Different types of workloads in a storage system may be characterized by various input / output (I / O) types and access patterns relative to a storage volume (or multiple storage volumes). I / O types may refer to read accesses to read data from a storage volume (or multiple storage volumes), write accesses to write data to a storage volume (or multiple storage volumes), I / O accesses of different priorities, different categories of I / O accesses (e.g., I / O accesses associated with reads and writes requested by a host system, I / O accesses associated with synchronization operations, I / O accesses associated with backup operations, etc.), etc. Different access patterns may be based on any one or some combination of the following: the frequency of accessing the storage volume (or multiple storage volumes), the amount of data accessed in a given access operation, the burstiness of the I / O accesses, etc.

[0015] A "storage volume" may refer to a logical container or other construct to which data may be added, such as by a write operation. Data may also be retrieved from a storage volume.

[0016] When an overload condition is detected in a storage system, a human administrator of the storage system may be notified. The administrator may attempt to troubleshoot the cause of resource contention in the storage system based on manual analysis of collected information about the workload that has been executed in the storage system. Such manual analysis may be time consuming and may produce inaccurate results.

[0017] In other examples, a storage system can be built using a quality of service (QoS) mechanism that attempts to ensure that a predictable level of service is provided for providing workloads. In some examples, the QoS mechanism can apply workload constraints to limit the resource usage of any given workload to prevent a given workload from monopolizing the resources of the storage system.

[0018] However, knowing the precise workload constraints to impose so that the resources of the storage system are appropriately allocated between competing workloads can be challenging. For example, an administrator may have to study historical profiles of workloads that share the resources of the storage system to determine where and when resource contention occurs, and to determine which workloads over-utilize the shared resources. Such manual analysis can be difficult to perform and may result in incorrect constraints being applied to workloads, which may ultimately degrade performance for certain workloads.

[0019] According to some embodiments of the present disclosure, workloads in a computing environment (such as a storage system) can be grouped into multiple workload clusters based on the characteristics of the workloads. A model (trained using a training data set) can be used to calculate parameters representing the contribution of corresponding workload clusters to the load in the computing environment. Workload management in the computing environment can be performed based on the calculated parameters.

[0020] In the subsequent discussion, reference is made to workload management of storage systems. Note that techniques or mechanisms according to some examples may be applied to workload management in other types of computing environments.

[0021] Figure 1 is a block diagram of an example arrangement including a storage system 102 and a machine learning based workload management engine 104 that applies machine learning to perform workload management on a workload 106 executing in the storage system 102. Figure 1 The workload management engine 104 is shown as being separate from the storage system 102 , but in other examples, the workload management engine 104 may be part of the storage system 102 .

[0022] As used herein, an "engine" may refer to a hardware processing circuit, which may include any one or some combination of a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or another hardware processing circuit. Alternatively, an "engine" may refer to a combination of a hardware processing circuit and machine-readable instructions (software and / or firmware) that may be executed on the hardware processing circuit.

[0023] Workload 106 may be executed by a program (or more generally, machine-readable instructions) or other entity in storage system 102. Workload 106 may be executed in response to a request received from host system 108 over network 110. "Host system" may refer to any device (e.g., a server computer, a user computer, a smartphone, a vehicle, etc.) that is capable of requesting access to data in storage system 102 (reading or writing data) or performing other operations with respect to storage system 102. Network 110 may include a storage area network (SAN), a local area network (LAN), etc.

[0024] The storage system 102 includes resources 112, some of which may be shared by the workloads 106 during execution. The resources 112 may include physical resources and / or logical resources of the storage system 102.

[0025] The workload management engine 104 includes workload clustering logic 114 and workload cluster contribution parameter calculation logic 116. As used herein, "logic" as part of the workload management engine 104 may refer to a portion of the hardware processing circuitry of the workload management engine 104 or to machine-readable instructions executable by the workload management engine 104.

[0026] Workload management that may be performed by the workload management engine 104 may include controlling the use of resources 112 by workloads 106. For example, the workload management engine 104 may dynamically impose constraints on the use of resources 112 by a particular workload 106. As an example, if the workload management engine 104 identifies (based on tasks performed by workload clustering logic 114 and workload cluster contribution parameter calculation logic 116, as discussed further below) that a given workload 106 is adversely affecting other workloads 106, then the workload management engine 104 may impose constraints on the use of resources 112 by a given workload 106. For example, the workload management engine may impose bandwidth restrictions on access to a resource 112 (or multiple resources 112). For example, a bandwidth restriction may be set on a storage volume that limits the access rate of a given workload to the storage volume to less than a specified I / O throughput. For example, a bandwidth restriction may be part of a QoS rule, where a workload may be limited to X% of the maximum I / O throughput used by the workload over a given time period (e.g., 4 hours or another time period). X% may be 75% or another percentage and may be adjusted dynamically.

[0027] In some examples, whether a workload is subject to resource usage constraints may also be based on the priority of the workload and other factors (e.g., whether the workload is a short-term workload or a long-term workload). If the workload is a high priority workload that is expected to run for a relatively short period of time, then the workload may not be subject to resource usage constraints even if the workload consumes a relatively large amount of resources. However, if the workload has a low priority and / or is expected to run for a relatively long period of time, then the workload may be subject to resource usage constraints when the workload consumes a relatively large amount of resources.

[0028] The workload clustering logic 114 groups the workloads 106 into a plurality of workload clusters 118 based on the characteristics of the workloads 106. Each workload cluster 118 represents workloads that are similar to each other according to a similarity criterion (e.g., the values ​​of the characteristics are similar to each other within a specified range or threshold). For example, the workloads in a workload cluster include workloads that share similar I / O patterns, which may be based on I / O types and access patterns (as discussed further above).

[0029] A characteristic of a workload may refer to an attribute that represents a characteristic of the workload. In an example, a characteristic may represent a write throughput when accessing a storage volume. Write throughput may refer to a write access rate of a certain number of storage volumes, where "number" may refer to 0, 1, or greater than 1. In other examples, other characteristics may be employed, such as a read throughput associated with read accesses to a certain number of storage volumes, a total throughput of both write accesses and read accesses to a certain number of storage volumes, or any other attribute that represents a characteristic associated with I / O accesses to data in a certain number of storage volumes.

[0030] In some examples, the characteristics of the workload may include write throughput measurements of the workload's write throughput to a given storage volume in corresponding intervals over the entire (larger) time period. For example, a write throughput measurement for a given storage volume may be performed once in each 5-minute interval over a 4-hour period. The write throughput measurements may be collected by a monitoring agent (implemented in hardware or as machine-readable instructions) in the storage system 102. In the above example, there are 48 write throughput measurements in 48 5-minute intervals over a 4-hour period. The 48 write throughput measurements for each workload constitute 48 features for clustering. In other examples, different time intervals for performing write throughput measurements may be used. In addition, the total time period for performing write throughput measurements may also be changed.

[0031] In a further example, workloads 106 may be clustered using characteristics in addition to or instead of write throughput measurements of the workloads.

[0032] The workload clustering logic 114 clusters the workloads 106 into workload clusters 118 to reduce the number of workloads considered when determining which workload(s) are responsible for the load on the storage system 102 and, therefore, may be responsible for adversely affecting the performance of other workloads. For example, there may be hundreds or thousands of workloads 106 performing I / O accesses to corresponding storage volumes. By clustering the workloads 106, the workload management engine 104 considers a smaller number of workload clusters 118.

[0033] Optimization techniques such as the elbow rule may be used to select the number of workload clusters 118 to be generated by the workload clustering logic 114. In other examples, a user (eg, expert, administrator, etc.) may select the number of workload clusters 118 to use.

[0034] In some examples, the clustering of workload 106 applied by workload clustering logic 114 is k-means clustering, which divides workload 106 into k clusters (k≥2). In other examples, other clustering techniques may be used, such as mean shift clustering, density-based spatial clustering, etc.

[0035] Once the workload clustering logic 114 generates the workload clusters 118 , the workload management engine 104 may determine which workload cluster 118 is responsible for the load of the storage system 102 .

[0036] The workload cluster contribution parameter calculation logic 116 uses the model 120 trained based on the training data set 122 to calculate parameters 124 representing the contribution of the corresponding workload cluster 118 to the load in the storage system 102. Based on the calculated parameters 124, the workload management engine 104 performs workload management in the storage system 102.

[0037] In some examples, the model 120 and the training data set 122 can be stored in a repository 126. The repository 126 can be contained in a storage device or multiple storage devices. In examples where the workload management engine 104 is part of the storage system 102, the repository 126 can be implemented using the storage device(s) of the storage system 102.

[0038] The model 120 may be trained during normal operation of the storage system 102. "Normal operation" refers to the operation of the storage system 102 in response to requests received by the storage system 102, such as from the host system 108. The training data set 122 may be continuously updated as measurements are provided (e.g., the write throughput measurements discussed above). The training data set 122 may include features of workload samples. As more workloads are executed in the storage system 102, features of these additional workloads are provided for inclusion in the training data set 122, either to be added to the training data set 122 or to (partially) replace previous features.

[0039] In response to the update of the training dataset 122, the model 120 may be updated (retrained) based on the updated training dataset 122. Updating (retraining) the model 120 may refer to updating the parameters of the model 120 using the updated training dataset 122. As a result, the model 120 is able to adapt to workload characteristics that change over time.

[0040] The above is part of a machine learning process in which the model 120 is continuously retrained based on historical workload pattern data available from the storage system 102 , and the retrained model 120 is able to predict which workload contributes to the load on the storage system 102 .

[0041] In some examples, the training data set 122 includes data points defined by N variables (N=number of clusters). More generally, the training data set 122 includes load indicators (e.g., values ​​of L_t), workload clusters, and metrics related to resource access (e.g., write throughput measurements).

[0042] The value of each variable is the collective write throughput of the workloads belonging to the corresponding workload cluster 118. For each workload, there are 48 features (in the example of write throughput measurements at 5-minute intervals over 4 hours, write throughput measurements in 48 time intervals).

[0043] In some examples, model 120 may be expressed using the following function:

[0044] L_t=wc_1*wc_1_kbps+wc_2*wc_2_kbps+wc_3*wc_3_kbps+… (Equation 1)

[0045] L_t represents the load on the storage system 102 at time t. L_t can be set to a first value (e.g., 0) to indicate that the load on the storage system 102 is low. L_t can be set to a second value (e.g., a value greater than 0) to indicate that the load on the storage system 102 is high.

[0046] In some examples, when any delayed acknowledgements are reported during the observed time interval, the load on the storage system 102 is considered high during the observed time interval (and indicated by setting L_t=1 or greater than 1). When no delayed acknowledgements are reported during the observed time interval, the load on the storage system 102 is considered low during the observed time interval (and indicated by setting L_t=0).

[0047] The backend subsystem generates a delayed acknowledgment when the backend subsystem of the storage system 102 cannot keep up with the incoming workload (e.g., write bursts). The delayed acknowledgment indicates that there is a delay in the completion of resource access in the storage system 102. The backend subsystem may include any one or some combination of the following: a storage device, a cache memory, an adapter that communicates with the storage device, etc.

[0048] The delayed acknowledgement is in the form of an indicator (e.g., signal, message, information element, etc.) sent by the backend subsystem to, for example, the host system 108 or other requestor that has submitted a request to the storage system 102. The inability of the backend subsystem to keep up with the incoming workload may be due to an overload condition of processing resources, storage resources, communication resources, etc.

[0049] The workload management engine 104 can detect the presence of delayed acknowledgements and can therefore set the value of L_t accordingly. For example, L_t can be set to 0 to indicate that the load on the storage system 102 is low, and L_t can be set to a value greater than 0 (e.g., 1) to indicate that the load on the storage system 102 is high.

[0050] In other examples, the load on the storage system 102 is considered low during the observed time interval if the usage of the resource 112 is less than a specified threshold, and the load on the storage system 102 is considered high during the observed time interval if the usage of the resource 112 exceeds the specified threshold.

[0051] In Equation 1, wc_i, i=1, 2, ... are coefficients corresponding to workload cluster i at time t, and parameter wc_i_kbps represents the measured throughput of workload cluster i at time t (expressed in kilobits per second (kbps) in the example). Since workload cluster i includes multiple workloads, the value of wc_i_kbps can be the average (or some other mathematical aggregation, such as mean, maximum, sum, etc.) of the measured throughputs of the workloads in workload cluster i.

[0052] Equation 1 is an example of a linear regression model that is updated using machine learning (by updating the training data set 122 in response to a trigger and retraining the model). The linear regression model models how specific parameters (e.g., wc_1, wc_2, etc.) and features (e.g., wc_1_kbps, wc_2_kbps, etc.) affect the outcome. According to Equation 1, the outcome is the load on the storage system 102 (denoted as L_t in Equation 1).

[0053] In response to L_t having a second value indicating that the load on the storage system 102 is high (e.g., >0), the workload cluster contribution parameter calculation logic 116 may calculate values ​​for parameters wc_1, wc_2, etc. using the model 120 expressed by Equation 1 (e.g., trained based on features derived from the recent workload 106 of the storage system 102). Parameters wc_1, wc_2, etc. are examples of parameters 124. The measured throughput in each time interval t is supplied as input to the model 120, which outputs parameters wc_1, wc_2, etc.

[0054] The values ​​of the parameters wc_1, wc_2, etc. reflect the contribution of the corresponding workload cluster 118 to the load on the storage system 102. In some examples, a statistical metric is used to determine whether the corresponding workload cluster i is a significant workload cluster that includes a "bully" workload that may adversely affect the performance of the "victim" workload. Bully workloads can be those workloads that monopolize the resources 112 of the storage system 102 or use an unfair share of these resources. "Victim" workloads can be those workloads whose performance is adversely affected by (multiple) other workloads.

[0055] An example statistical measure that can be used is the statistical p-value of a linear regression model (e.g., according to Equation 1). The p-value is obtained for each feature (wc_i_kbps) of the regression model based on the regression model. The coefficients (wc_i) of the regression model describe the mathematical relationship between each independent variable (e.g., L_t) and the dependent variable (e.g., wc_i_kbps). The p-values ​​of the coefficients indicate whether these relationships are statistically significant. Taking 95% significance as an example, a p-value less than 0.05 is not statistically significant. If the p-values ​​for all features based on the regression model are greater than 0.05, the workload clusters identified as significant workload clusters (i.e., containing bullying workloads) are those workload clusters associated with positive coefficient (wc_i) values.

[0056] In some examples, the coefficient of determination R is used in addition to the p-value. 2 To determine whether a workload cluster is a significant workload cluster. Determination coefficient R 2 It is a statistical measure of the fit of the regression line corresponding to the data and the regression model. 2The values ​​of are in the range of 0 to 1. For example, regardless of the p-value and coefficient value, if the R 2 If R is less than a threshold (e.g., 70% or another threshold), this may indicate that none of the workload clusters are significant workload clusters, and therefore, no workload clusters are identified as significant (i.e., no bully workloads are identified). On the other hand, if R 2 If the threshold is exceeded, the p-value and coefficient value as described above are used to identify significant workload clusters.

[0057] In other examples, the workload management engine 104 may sort the workload clusters 118 according to the values ​​of parameters wc_1, wc_2, etc. Assuming that a higher value of wc_i indicates that the corresponding workload cluster i contributes more to the load on the storage system 102 than a workload cluster j associated with a lower value of wc_j, the workload clusters 118 may be sorted according to the descending order of the values ​​of the parameters wc_1, wc_2, etc. If the sorting of the workload clusters 118 results in a ranked list of workload clusters, a given workload cluster (or multiple given workload clusters) at the front of the ranked list may be the workload cluster that contributes the most to the load on the storage system 102. The workloads in the given workload cluster(s) may be identified by the workload management engine 104 as the workloads responsible for overloading the storage system 102.

[0058] Using the workload management engine 104 according to some examples, the performance of the storage system 102 can be improved by handling noisy neighbor scenarios in which a bully workload can adversely affect the performance of a "victim" workload. Constraints can then be imposed on the "bully" workload to reduce the resource usage of the bully workload so that other workloads can use shared resources. As further described above, whether to impose constraints on the bully workload can further take into account the priority of the workload, the expected execution duration, and / or other factors.

[0059] The training data set 122 may be a labeled training data set, wherein labels are assigned to a set of workload-related data in the training data set 122. The workload-related data includes features and parameters (e.g., 124) of a sample workload (e.g., the sample workload is represented by a workload cluster within the past 4 hours). The assigned labels may be based on whether delayed confirmations are issued in a corresponding time interval (e.g., a 5-minute interval). For example, the label may be in the form of L_t in Equation 1, wherein L_t is set to 0 if no delayed confirmations are issued in time interval t, and L_t is set to 1 if delayed confirmations are issued in time interval t. Thus, in the training data set 122, a set of (multiple) features (e.g., wc_i_kbps for each cluster i in time interval t) and (multiple) parameters (e.g., wc_i for each cluster i in time interval t) is associated with a corresponding label (e.g., L_t).

[0060] Note that the labels (e.g., L_t) are based on load indicators (e.g., delayed acknowledgments) generated during normal operation of the storage system 102. Therefore, the labels of the training data set 122 are automatically generated during normal operation of the storage system 102, and a human does not have to manually assign labels to the training data in the training data set 122.

[0061] In order to optimize the storage system 102 for predictable performance by handling noisy neighbor scenarios, the machine learning-based workload management engine 104 automatically identifies bullies and victims in a heterogeneous workload environment. Figure 2 As shown, the machine learning-based workload management engine 104 can perform a machine learning-based workload management process 200, which includes two stages. In the first stage 202, the machine learning-based workload management engine 104 detects workloads that monopolize the resources 112 of the storage system. In the second stage 210, the machine learning-based workload management engine 104 imposes constraints on such workloads to help restore the performance of higher priority workloads.

[0062] In the first stage 202, the machine learning based workload management engine 104 applies a self-training machine learning model (e.g., 120) that trains itself on a training data set 122 based on historical workload pattern data (e.g., historical data for 4 hours or another total time period) of the storage system 102 that can be used to predict which workload(s) contribute to the load on the storage system 102. The load is considered high (e.g., L_t is set to 1) during an observed time interval (e.g., a 5 minute interval or another time interval) when delayed acknowledgements are reported during the observed time interval, and the load is considered low (e.g., L_t is set to 0) during the observed time interval when no delayed acknowledgements are reported during the observed time interval.

[0063] To determine which workload(s) (among several workloads running in the storage system 102) are responsible for the load in the storage system 102, the machine learning-based workload management engine 104 first groups (at 204) the workloads into a number of workload clusters, where the number may be determined using optimization techniques such as the elbow rule. To perform clustering, the machine learning-based workload management engine 104 defines the characteristics of the data points to be clustered, where a "data point" may include write throughput measurements at 5-minute intervals over a total period of 4 hours.

[0064] Note that the model 120 is trained on the storage system 102 in the field (e.g., as used during operation at a customer site), and the model 120 is able to retrain itself on recent I / O patterns (in the workload) observed in the storage system 102. The training data set 122 is updated using data on recent I / O patterns. For example, the machine learning-based workload management engine 104 may sample 4 hours of workload data from the storage system 102—looking back 4 hours from the current moment. As a result, there are 48 write throughput measurements for the storage volume (one at every 5-minute interval over the 4 hours). This provides data points with 48 features. Similar data points may be obtained for each storage volume.

[0065] Workload clustering logic 114 applies k-means clustering to the data points to produce workload clusters 118. Each workload cluster 118 represents workloads with similar I / O patterns on the storage volume measured over the past 4 hours. This helps reduce the number of workloads to track to a manageable number (from hundreds of workloads to the number of workload clusters).

[0066] A model 120 (e.g., a linear regression model) is applied (at 206) to identify which workload cluster(s) are responsible for the load in the storage system 102 at the corresponding time interval. The model 120 represents how certain parameters and characteristics affect an outcome (response), where the outcome is the load on the storage system 102, the characteristic is the collective throughput of the workloads in the workload cluster (as measured at each 5-minute time interval over the past 4 hours), and the parameters (e.g., coefficients wc_i of Equation 1) represent the contribution of the workload cluster to the load in the storage system 102.

[0067] The training data set 122 of the model 120 includes data points defined by variables (number of workload clusters). The value of each variable is the common write throughput of the workloads belonging to the corresponding workload cluster 118. There are 48 variables per workload cluster (for 48 5-minute time intervals within four hours).

[0068] Since the number of training samples (including 48 variables) is relatively small, the number of features is reduced by clustering the workloads to avoid the so-called "dimensionality curse" in machine learning. The coefficients wc_i, i=1, 2, ... in equation 1 assigned to the workload clusters by the trained model 120 represent the contribution of the corresponding workload clusters to the load in the storage system 102.

[0069] Model 120 is retrained each time more I / O pattern data of a workload executed in storage system 102 is collected, and the coefficients obtained from model 120 reflect the contribution of the workload cluster to the load in storage system 102, as known from the most recently captured information (e.g., the past 4 hours). Thus, model 120 is able to adapt to changing workload profiles from time to time. In some examples, as further explained above, a statistical metric is used to determine whether a corresponding workload cluster i is a significant workload cluster that includes a bully workload that may adversely affect the performance of a victim workload.

[0070] The second stage, performed by the machine learning based workload management engine, involves applying constraints on resource usage of workloads in the significant workload clusters based on the priorities of the workloads.

[0071] In some examples, whether a workload is subject to resource usage constraints may also be based on the priority of the workload and other factors (e.g., whether the workload is a short-term workload or a long-term workload). If the workload is a high priority workload that is expected to run for a relatively short period of time, then the workload may not be subject to resource usage constraints even if the workload consumes a relatively large amount of resources. However, if the workload has a low priority and / or is expected to run for a relatively long period of time, then the workload may be subject to resource usage constraints when the workload consumes a relatively large amount of resources.

[0072] For example, a resource usage constraint may include a bandwidth limit, which may be part of a QoS rule specifying that a workload may be limited to X% of the maximum I / O throughput that the workload may use in a given time period (e.g., 4 hours or another time period). X% may be 75% or another percentage and may be adjusted dynamically.

[0073] In the second stage 210, the machine learning-based workload management engine 104 determines (at 212) the priority and other factors (e.g., execution time) of the corresponding workload. The determination may include accessing metadata associated with the workload, wherein the metadata may include information indicating the relative priority and other factors of the corresponding workload.

[0074] The machine learning-based workload management engine 104 then selects (at 214) a workload in the significant workload cluster identified in the first stage 202, wherein the resource usage constraints are to be applied to the selected workload. The selected workload is selected based on comparing the relative priorities of the workloads in the significant workload cluster and other factors, for example, wherein the selected workloads are those workloads that have lower priorities and / or run for longer periods of time.

[0075] Figure 3 is a block diagram of a non-transitory machine-readable or computer-readable storage medium 300 having stored thereon machine-readable instructions that, when executed, cause a system (eg, workload management engine 104, storage system 102, etc.) to perform various tasks.

[0076] The machine-readable instructions include training data set creation instructions 302 to create a training data set based on characteristics of a sample workload (e.g., Figure 1 122 in Equation 1). The training dataset includes labels associated with features of the sample workload, wherein the labels are based on load indicators (e.g., L_t in Equation 1) generated in the computing environment (e.g., storage system 102), and the load indicators are related to the load conditions of the computing environment caused by the execution of the sample workload. For example, the sample workload can be represented by a workload cluster.

[0077] The machine-readable instructions include workload grouping instructions 304 (e.g. Figure 1 The workload clustering logic 114 of the example workload clustering logic 114 is used to group the selected workloads into a plurality of workload clusters based on the characteristics of the workloads. The "selected" workloads are those workloads that will be subject to machine learning-based workload management, which may or may not include one or more of the sample workloads.

[0078] In some examples, each of the workloads is executed on a corresponding storage volume in the computing environment. In some examples, the workload cluster includes workloads having similar I / O patterns with respect to I / O access to a certain number of storage volumes.

[0079] In some examples, features used to perform workload clustering include metrics related to resource access in a computing environment, such as write throughput measurements.

[0080] The machine-readable instructions include contribution parameter calculation instructions 306 (e.g. Figure 1 The workload cluster contribution parameter calculation logic 116) is used to use the model trained based on the training data set (e.g., Figure 1 120 in ) to calculate parameters (such as those of Equation 1) representing the contribution of the corresponding workload cluster to the load conditions in the computing environment (e.g., storage system 102 or another computing environment). Note that grouping the selected workloads into multiple workload clusters reduces the number of features processed when using the model to calculate the parameters.

[0081] In some examples, calculation of a parameter representing a contribution of a corresponding workload cluster to the load is triggered in response to the load condition satisfying a criterion. For example, the load condition satisfies the criterion when an excessive load condition is exhibited (e.g., delayed acknowledgments are issued in each of the specified number of time intervals) for greater than a specified number of time intervals (e.g., the 5 minute intervals discussed further above).

[0082] In some examples, the model is a linear regression model expressed as a function based on the parameters and a metric related to resource access in the computing environment (eg, Equation 1).

[0083] The machine readable instructions include workload management instructions 308 to perform workload management in the computing environment based on the calculated parameters.

[0084] In some examples, performing workload management in a computing environment based on the calculated parameters includes identifying a workload belonging to a workload cluster among a plurality of workload clusters indicated by a parameter among a plurality of parameters as contributing to an overload condition in the computing environment, and limiting resource usage of the identified workload.

[0085] In some examples, performing workload management in the computing environment based on the calculated parameter includes determining a priority of the identified workload relative to other workloads, wherein limiting resource usage is performed in response to the determined relative priority.

[0086] Figure 4 4 is a block diagram of a system 400 (e.g., workload management engine 104, storage system 102, or another computer or computer arrangement). System 400 includes a hardware processor 402 (or multiple hardware processors). The hardware processor may include a microprocessor, a core of a multi-core microprocessor, a microcontroller, a programmable integrated circuit, a programmable gate array, or another hardware processing circuit.

[0087] System 400 includes storage media 404 storing machine-readable instructions executable on hardware processor 402 to perform various tasks. Machine-readable instructions executable on a hardware processor may refer to instructions executable on a single hardware processor or instructions executable on multiple hardware processors.

[0088] The machine-readable instructions in the storage medium 404 include model training instructions 406 to use a training data set (e.g., Figure 1 The model is trained using a training data set 122 including information about workloads executed in the past in a storage environment (e.g., storage system 102). The training data set includes labels associated with features of the past workloads, wherein the labels are based on load indicators generated in the storage environment, and the load indicators are related to a load condition of the storage environment caused by the execution of the past workloads.

[0089] The machine-readable instructions in the storage medium 304 include workload grouping instructions 408 to group the current workload into a plurality of workload clusters based on characteristics of the current workload, including metrics related to storage resource access in the storage environment.

[0090] In some examples, each current workload includes storage resource access activities performed with respect to a corresponding storage volume in the storage environment.

[0091] The machine-readable instructions in the storage medium 304 include contribution parameter calculation instructions 410 to calculate a parameter representing a contribution of a corresponding workload cluster of the plurality of workload clusters to an overload condition in the storage environment using the trained model.

[0092] The machine-readable instructions in the storage medium 404 include workload management instructions 412 to perform workload management in the storage environment based on the calculated parameters.

[0093] Figure 5 is a flow diagram of process 500 according to some examples. Process 500 may be performed by a system including a hardware processor.

[0094] Process 500 includes grouping (at 502) workloads into a plurality of workload clusters based on characteristics of the workloads, wherein the characteristics include metrics related to resource access in a computing environment.

[0095] Process 500 includes training (at 504) a model based on a training data set, the training data set including labels associated with characteristics of a sample workload, wherein the labels are based on load indicators generated in the computing environment, the load indicators being related to load conditions of the computing environment resulting from execution of the sample workload.

[0096] Process 500 includes using a model trained based on a training data set to calculate (at 506) parameters representing contributions of respective workload clusters in the plurality of workload clusters to load in a computing environment. Grouping the workloads into a plurality of workload clusters reduces the number of features processed when calculating the parameters using the model.

[0097] Process 500 includes performing (at 508) workload management in the computing environment based on the calculated parameters.

[0098] Process 500 can update the training data set during operation of the computing environment and retrain the model using the updated training data set.

[0099] Storage media (e.g. Figure 3 300 or Figure 4404) may include any one or some combination of the following: semiconductor memory devices, such as dynamic or static random access memory (DRAM or SRAM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and flash memory or other types of non-volatile memory devices; magnetic disks, such as fixed floppy disks and removable disks; another magnetic medium, including tape; optical media, such as compact disks (CDs) or digital video disks (DVDs); or another type of storage device. Note that the instructions discussed above may be provided on one computer-readable or machine-readable storage medium, or alternatively, may be provided on multiple computer-readable or machine-readable storage media distributed in a large system with possibly multiple nodes. Such one or more computer-readable or machine-readable storage media are considered to be part of an article (or product). An article or product may refer to any manufactured single component or multiple components. One or more storage media may be located in a machine running machine-readable instructions, or at a remote site, from which machine-readable instructions may be downloaded over a network for execution.

[0100] In the foregoing description, many details are set forth to enable an understanding of the subject matter disclosed herein. However, embodiments may be practiced without some of these details. Other embodiments may include modifications and variations of the details discussed above. The appended claims are intended to cover such modifications and variations.

Claims

1. A non-transitory machine-readable storage medium comprising instructions that, when executed, cause a system to: A training data set is created based on the features of the sample workload, the training data set comprising labels associated with the features of the sample workload, wherein: The tag is based on a load indicator generated in a computing environment, the load indicator being related to a load condition of the computing environment caused by execution of the sample workload; grouping the selected workloads into a plurality of workload clusters based on characteristics of the selected workloads, wherein a workload cluster in the plurality of workload clusters includes workloads grouped into the workload clusters according to a similarity criterion; Calculating, using a model trained based on the training data set, parameters representing contributions of corresponding workload clusters in the plurality of workload clusters to a load condition in the computing environment, wherein the parameters include a first parameter representing a contribution of a first workload cluster to the load condition and a second parameter representing a different contribution of a second workload cluster to the load condition, the first workload cluster and the second workload cluster being part of the plurality of workload clusters; selecting a workload cluster from among the plurality of workload clusters based on different values ​​of the calculated parameter, wherein the value of the parameter calculated for the selected workload cluster indicates that the selected workload cluster has a workload that adversely affects performance of a workload in another workload cluster from among the plurality of workload clusters; and Performing workload management in the computing environment based on the calculated parameters, the workload management comprising: determining a relative priority of the workload to other workloads in the selected workload cluster, and Responsive to the determined relative priorities, usage of resources by the workloads in the selected workload cluster is limited.

2. The non-transitory machine-readable storage medium of claim 1, wherein: Each of the selected workloads is executed on a corresponding storage volume in the computing environment.

3. The non-transitory machine-readable storage medium of claim 2, wherein: A workload cluster in the plurality of workload clusters includes workloads having similar input / output patterns.

4. The non-transitory machine-readable storage medium of claim 1, wherein: The characteristics of the sample workload include metrics related to resource access in the computing environment.

5. The non-transitory machine-readable storage medium of claim 1, wherein: Limiting the usage of the resource by the workload in the selected workload cluster includes limiting the access rate of the resource by the workload in the selected workload cluster.

6. The non-transitory machine-readable storage medium of claim 4, wherein: The metrics related to resource access include metrics related to write throughput of storage resources.

7. The non-transitory machine-readable storage medium of claim 1, wherein: When executed, the instructions cause the system to perform the following operations: Calculation of the parameter representing a contribution of the respective workload cluster to the load condition is triggered in response to the load condition satisfying a criterion.

8. The non-transitory machine-readable storage medium of claim 7, wherein: The characteristics of the selected workload include metrics related to resource access of the computing environment in corresponding time intervals, and wherein the load condition satisfies the criterion when greater than a specified number of the time intervals exhibit an excessive load condition.

9. The non-transitory machine-readable storage medium of claim 8, wherein: The excessive load condition exists during a given one of the time intervals when confirmation of completion of resource access is delayed.

10. The non-transitory machine-readable storage medium of claim 1, wherein: The different values ​​of the calculated parameter represent respective different contributions of the respective workload clusters to the load condition.

11. The non-transitory machine-readable storage medium of claim 1, wherein: When executed, the instructions cause the system to perform the following operations: The workload cluster of the plurality of workload clusters is selected based on identifying a workload cluster that contributes more to the load condition than another workload cluster of the plurality of workload clusters.

12. The non-transitory machine-readable storage medium of claim 1, wherein: The resource is a shared resource shared by a plurality of workload clusters, and the restriction comprises a restriction on usage of the shared resource by the workloads in the selected workload cluster.

13. The non-transitory machine-readable storage medium of claim 10, wherein: The different values ​​include a first value of the first parameter calculated for the first workload cluster and a different second value of the second parameter calculated for the second workload cluster, wherein the first value and the second value indicate that the first workload cluster has a higher contribution to the load condition by consuming more shared resources than the second workload cluster.

14. The non-transitory machine-readable storage medium of claim 1, wherein: The model is a linear regression model that includes a plurality of coefficients representing the calculated parameters.

15. A system comprising: processor; as well as A non-transitory machine-readable storage medium comprising instructions executable on the processor to: training a model using a training data set, the training data set comprising information of past workloads executed in a storage environment, the training data set comprising labels associated with features of the past workloads, wherein the labels are based on load indicators generated in the storage environment, the load indicators being related to a load condition of the storage environment resulting from executing the past workloads; grouping the current workload into a plurality of workload clusters based on characteristics of the current workload, the characteristics of the current workload comprising metrics related to storage resource access in the storage environment, wherein a workload cluster in the plurality of workload clusters comprises workloads grouped into the workload cluster according to a similarity criterion; using the trained model to calculate parameters representing contributions of corresponding workload clusters in the plurality of workload clusters to an overload condition in the storage environment, wherein the parameters include a first parameter representing a contribution of a first workload cluster to the overload condition and a second parameter representing a different contribution of a second workload cluster to the overload condition, the first workload cluster and the second workload cluster being part of the plurality of workload clusters; selecting a workload cluster from among the plurality of workload clusters based on different values ​​of the calculated parameter, wherein the value of the parameter calculated for the selected workload cluster indicates that the selected workload cluster has a workload that adversely affects performance of a workload in another workload cluster from among the plurality of workload clusters; and Performing workload management in the storage environment based on the calculated parameters, the workload management comprising: determining a relative priority of the workload to other workloads in the selected workload cluster, and Responsive to the determined relative priorities, usage of resources by the workloads in the selected workload cluster is limited.

16. The system of claim 15, wherein: Limiting the usage of the resource by the workload in the selected workload cluster includes limiting the access rate of the resource by the workload in the selected workload cluster.

17. The system of claim 15, wherein: The instructions are executable on the processor to perform the following operations: The workload cluster of the plurality of workload clusters is selected based on identifying a workload cluster that contributes more to the overload condition than another workload cluster of the plurality of workload clusters.

18. A method of a system including a hardware processor, the method comprising: grouping the workloads into a plurality of workload clusters based on characteristics of the workloads, wherein the characteristics include metrics related to resource access in a computing environment, and wherein a workload cluster in the plurality of workload clusters includes workloads grouped into the workload clusters according to a similarity criterion; training a model based on a training data set, the training data set comprising labels associated with features of a sample workload, wherein the labels are based on a load indicator generated in the computing environment, the load indicator being related to a load condition of the computing environment caused by execution of the sample workload; using a model trained based on the training data set to calculate parameters representing contributions of corresponding workload clusters in the plurality of workload clusters to a load in the computing environment, wherein grouping the workloads into the plurality of workload clusters reduces the number of features processed when calculating the parameters using the model, and wherein the parameters include a first parameter representing a contribution of a first workload cluster to the load and a second parameter representing a different contribution of a second workload cluster to the load, the first workload cluster and the second workload cluster being part of the plurality of workload clusters; selecting a workload cluster from among the plurality of workload clusters based on different values ​​of the calculated parameter, wherein the value of the parameter calculated for the selected workload cluster indicates that the selected workload cluster has a workload that adversely affects performance of a workload in another workload cluster from among the plurality of workload clusters; and Performing workload management in the computing environment based on the calculated parameters, the workload management comprising: determining a relative priority of the workload to other workloads in the selected workload cluster, and Responsive to the determined relative priorities, usage of resources by the workloads in the selected workload cluster is limited.

19. The method of claim 18, further comprising: updating the training data set during operation of the computing environment; as well as The model is retrained using the updated training dataset.

Citation Information

Patent Citations

  • Workload management with data access awareness in a computing cluster

    CN112005219A

  • Systems and methods for operational metric calculation of workload types, and storage media

    CN112099939A