IP Library Granted Patent US 12,393,747
Granted Patent B2
US 12,393,747 · App. 17/168,405 · Granted Aug 19, 2025

Performance impact detection using queuing curve analysis

Inventors: Peter Beale (Acton, MA); Wenjin Liu (Cary, NC); Siva Rama Krishna Kottapalli (North Chelmsford, MA)
Assignee: Dell Products L.P.
G06F30/20G06F3/061G05B13/021G05B13/042G06F11/34G06F2111/10G06F2209/5019G06F2209/5022
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,393,747
App. No.
17/168,405
Filed
Feb 5, 2021
Granted
Aug 19, 2025
Kind
B2
Art Unit
2188
USPC
703/21
Abstract

An apparatus comprises a processing device configured to obtain performance data for a plurality of workloads, to select a subset of the performance data corresponding to a subset of the plurality of workloads having a given workload type, and to generate a model characterizing an expected performance of the given workload type by analyzing the selected subset of the performance data to estimate a queuing curve characterizing the expected performance of the given workload type. The processing device is also configured, responsive to determining that a quality of the generated model is above a designated threshold quality level, to utilize the generated model to identify performance impacting events for a given workload of the given workload type and to modify provisioning of compute, storage and network resources allocated to the given workload responsive to identifying performance impacting events for the given workload of the given workload type.

Claims (60)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to perform steps of:

obtaining performance data for a plurality of workloads, the plurality of workloads comprising two or more different types of storage workloads;

selecting a subset of the performance data corresponding to a subset of the plurality of workloads having a given workload type, the given workload type characterizing a designated range of input-output sizes for input-output operations and a designated range for a percentage of input-output operations which are read operations;

generating a model characterizing an expected performance of the given workload type by analyzing the selected subset of the performance data to estimate a queuing curve characterizing the expected performance of the given workload type, the expected performance of the given workload type characterizing expected latency as a function of input-output operations per second for the given workload type;

determining a quality of the generated model utilizing two or more quality metrics;

responsive to determining that the quality of the generated model is above a designated threshold quality level corresponding to scores for each of the two or more quality metrics exceeding designated minimum threshold scores for each of the two or more quality metrics, utilizing the generated model to identify one or more performance impacting events for a given workload of the given workload type, wherein identifying a given one of the one or more performance impacting events comprises:

identifying a first set of one or more data points in the selected subset of the performance data, the first set of one or more data points falling outside the expected performance of the given workload type according to the generated model;

identifying a second set of one or more data points, in the selected subset of the performance data, falling within the expected performance of the given workload type according to the generated model, the second set of one or more data points having a designated relationship with the first set of one or more data points in the selected subset of the performance data, the designated relationship comprising data points in the selected subset of the performance data that (i) occur within a designated threshold time at least one of prior to and subsequent to at least one data point in the first set of one or more data points and (ii) are within a designated threshold distance of a model line of the queuing curve; and

classifying the second set of one or more data points as belonging to the given performance impacting event; and

responsive to identifying the given performance impacting event for the given workload of the given workload type, migrating the given workload from a first storage system having a first set of performance characteristics to a second storage system having a second set of performance characteristics, the second set of performance characteristics being different than the first set of performance characteristics.

2. The apparatus of claim 1 wherein the performance data for the plurality of workloads comprises two or more performance metrics, the two or more performance metrics comprising a latency metric and a utilization metric, and wherein generating the model characterizing the expected performance of the given workload type comprises estimating the queuing curve over a range of values of the latency metric and the utilization metric.

3. The apparatus of claim 2 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric comprises finding a best fitting curve utilizing at least one of linear regression and exponential regression.

4. The apparatus of claim 3 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric further comprises adjusting the best fitting curve based at least in part on a variance of the selected subset of the performance data.

5. The apparatus of claim 3 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric further comprises dividing the queuing curve into two or more regions of values of the latency metric and the utilization metric, and adjusting each of the two or more regions of the best fitting curve individually.

6. The apparatus of claim 3 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric further comprises:

determining an expected pattern of the queuing curve, the expected pattern of the queuing curve comprises an increasing curve where the value of the latency metric increases as the value of the utilization metric increases; and

adjusting the best fitting curve to fit the expected pattern of the queuing curve.

7. The apparatus of claim 1 wherein the two or more quality metrics comprise two or more of:

a horizontal score measuring a coverage of the selected subset of the performance data in a first axis of the queuing curve representing a utilization metric for the given workload type;

a regression score measuring a fitness of the queuing curve to the selected subset of the performance data;

a distance score measuring a distance between portions of the selected subset of the performance data corresponding to the expected performance and portions of the selected subset of the performance data corresponding to performance impacting events; and

an aggregation score measuring a duration of performance impacting events.

8. The apparatus of claim 1 wherein utilizing the generated model to identify one or more performance impacting events for the given workload of the given workload type comprises filtering out ones of the first set of one or more data points corresponding to one of the one or more performance impacting events that lasts less than a designated threshold duration.

9. The apparatus of claim 1 wherein selecting the subset of the performance data corresponding to the subset of the plurality of workloads having the given workload type comprises:

dividing the performance data into two or more bins corresponding to the two or more different types of workloads based at least in part on values of an input-output operation size metric and a percentage of read operations metric of each of the one or more data points; and

selecting a given one of the two or more bins.

10. The apparatus of claim 9 wherein selecting the given bin comprises selecting a given one of the two or more bins comprising at least a threshold number of the one or more data points.

11. The apparatus of claim 1 wherein the at least one processing device is further configured, responsive to identifying one or more performance impacting events for the given workload of the given workload type, to apply throttling to the given workload.

12. The apparatus of claim 1 wherein the at least one processing device is further configured, responsive to identifying one or more performance impacting events for the given workload of the given workload type, to adjust one or more parameters of the given workload.

13. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

obtaining performance data for a plurality of workloads, the plurality of workloads comprising two or more different types of storage workloads;

selecting a subset of the performance data corresponding to a subset of the plurality of workloads having a given workload type, the given workload type characterizing a designated range of input-output sizes for input-output operations and a designated range for a percentage of input-output operations which are read operations;

generating a model characterizing an expected performance of the given workload type by analyzing the selected subset of the performance data to estimate a queuing curve characterizing the expected performance of the given workload type, the expected performance of the given workload type characterizing expected latency as a function of input-output operations per second for the given workload type;

determining a quality of the generated model utilizing two or more quality metrics;

responsive to determining that the quality of the generated model is above a designated threshold quality level corresponding to scores for each of the two or more quality metrics exceeding designated minimum threshold scores for each of the two or more quality metrics, utilizing the generated model to identify one or more performance impacting events for a given workload of the given workload type, wherein identifying a given one of the one or more performance impacting events comprises:

identifying a first set of one or more data points in the selected subset of the performance data, the first set of one or more data points falling outside the expected performance of the given workload type according to the generated model;

identifying a second set of one or more data points, in the selected subset of the performance data, falling within the expected performance of the given workload type according to the generated model, the second set of one or more data points having a designated relationship with the first set of one or more data points in the selected subset of the performance data, the designated relationship comprising data points in the selected subset of the performance data that (i) occur within a designated threshold time at least one of prior to and subsequent to at least one data point in the first set of one or more data points and (ii) are within a designated threshold distance of a model line of the queuing curve; and

classifying the second set of one or more data points as belonging to the given performance impacting event; and

responsive to identifying the given performance impacting event for the given workload of the given workload type, migrating the given workload from a first storage system having a first set of performance characteristics to a second storage system having a second set of performance characteristics, the second set of performance characteristics being different than the first set of performance characteristics.

14. The computer program product of claim 13 wherein the performance data for the plurality of workloads comprises two or more performance metrics, the two or more performance metrics comprising a latency metric and a utilization metric, and wherein generating the model characterizing the expected performance of the given workload type comprises estimating the queuing curve over a range of values of the latency metric and the utilization metric.

15. A method comprising:

obtaining performance data for a plurality of workloads, the plurality of workloads comprising two or more different types of storage workloads;

selecting a subset of the performance data corresponding to a subset of the plurality of workloads having a given workload type, the given workload type characterizing a designated range of input-output sizes for input-output operations and a designated range for a percentage of input-output operations which are read operations;

generating a model characterizing an expected performance of the given workload type by analyzing the selected subset of the performance data to estimate a queuing curve characterizing the expected performance of the given workload type, the expected performance of the given workload type characterizing expected latency as a function of input-output operations per second for the given workload type;

determining a quality of the generated model utilizing two or more quality metrics;

responsive to determining that the quality of the generated model is above a designated threshold quality level corresponding to scores for each of the two or more quality metrics exceeding designated minimum threshold scores for each of the two or more quality metrics, utilizing the generated model to identify one or more performance impacting events for a given workload of the given workload type, wherein identifying a given one of the one or more performance impacting events comprises:

identifying a first set of one or more data points in the selected subset of the performance data, the first set of one or more data points falling outside the expected performance of the given workload type according to the generated model;

identifying a second set of one or more data points, in the selected subset of the performance data, falling within the expected performance of the given workload type according to the generated model, the second set of one or more data points having a designated relationship with the first set of one or more data points in the selected subset of the performance data, the designated relationship comprising data points in the selected subset of the performance data that (i) occur within a designated threshold time at least one of prior to and subsequent to at least one data point in the first set of one or more data points and (ii) are within a designated threshold distance of a model line of the queuing curve; and

classifying the second set of one or more data points as belonging to the given performance impacting event; and

responsive to identifying the given performance impacting event for the given workload of the given workload type, migrating the given workload from a first storage system having a first set of performance characteristics to a second storage system having a second set of performance characteristics, the second set of performance characteristics being different than the first set of performance characteristics;

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

16. The method of claim 15 wherein the performance data for the plurality of workloads comprises two or more performance metrics, the two or more performance metrics comprising a latency metric and a utilization metric, and wherein generating the model characterizing the expected performance of the given workload type comprises estimating the queuing curve over a range of values of the latency metric and the utilization metric.

17. The method of claim 16 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric comprises finding a best fitting curve utilizing at least one of linear regression and exponential regression.

18. The method of claim 17 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric further comprises adjusting the best fitting curve based at least in part on a variance of the selected subset of the performance data.

19. The method of claim 17 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric further comprises dividing the queuing curve into two or more regions of values of the latency metric and the utilization metric, and adjusting each of the two or more regions of the best fitting curve individually.

20. The method of claim 17 wherein estimating the queuing curve over the range of values of the latency metric and the utilization metric further comprises:

determining an expected pattern of the queuing curve, the expected pattern of the queuing curve comprises an increasing curve where the value of the latency metric increases as the value of the utilization metric increases; and

adjusting the best fitting curve to fit the expected pattern of the queuing curve.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0255 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062022/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 062021/0844 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0124 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2021
From: BEALE, PETER; LIU, WENJIN; KOTTAPALLI, SIVA RAMA KRISHNA
To: DELL PRODUCTS L.P.
Reel/Frame 055160/0513 →
Continuity (1)
Related Publication 20220253570A1 · Aug 11, 2022
References Cited (26)
US 7640231B2 · Alvarez · 2009 [cited by examiner]
US 7720955B1 · Kelly · 2010 [cited by examiner]
US 9432256B2 · Terayama · 2016 [cited by examiner]
US 9465548B1 · Hrischuk · 2016 [cited by examiner]
US 9514022B1 · Basak · 2016 [cited by examiner]
US 10809936B1 · Kaushik · 2020 [cited by examiner]
US 11586534B2 · Qin · 2023 [cited by examiner]
US 20070022142A1 · Palmer · 2007 [cited by examiner]
US 20130081025A1 · Nardelli · 2013 [cited by examiner]
US 20150199139A1 · Faulkner · 2015 [cited by examiner]
US 20150286409A1 · Chandra · 2015 [cited by examiner]
US 20160349992A1 · Basak · 2016 [cited by examiner]
US 20170153962A1 · Biegun · 2017 [cited by examiner]
US 20180028162A1 · Swezey · 2018 [cited by examiner]
US 20190342391A1 · Jain · 2019 [cited by examiner]
US 20190373060A1 · Hrischuk · 2019 [cited by examiner]
US 20200333978A1 · Arnold · 2020 [cited by examiner]
US 20200394075A1 · Dutta · 2020 [cited by examiner]
US 20210019397A1 · Lemberg · 2021 [cited by examiner]
US 20230031109A1 · Fettaya · 2023 [cited by examiner]
US 20230129647A1 · Dutta · 2023 [cited by examiner]
US 20240046180A1 · Ma · 2024 [cited by examiner]
M. Awawdeh, et al.,, “Application of Outlier Detection using Re-Weighted Least Squares and R-squared for IoT Extracted Data,” 2019 Advances in Science and Engineering Technology International Conferences (ASET), Dubai, … [cited by examiner]
Dell Technologies, “Dell EMC CloudIQ: A Detailed Review,” Technical White Paper, Nov. 2020, 106 pages. [cited by applicant]
S.-H. Kim et al., “Statistical Analysis with Little's Law,” Operations Research, vol. 61, No. 4, Jul.-Aug. 2013, pp. 1030-1045. [cited by applicant]
K. Sookocheff, “Using Little's Law to Measure System Performance,” https://sookocheff.com/post/modeling/littles-aw/, Nov. 29, 2019, 5 pages. [cited by applicant]