IP Library › Granted Patent US 11,627,097
Granted Patent B2
US 11,627,097 · App. 17/187,336 · Granted Apr 11, 2023

Centralized quality of service management

Inventors: Austino Longo (Lafayette, CO); Christopher Cason (Boulder, CO); Daniel McCarthy (Erie, CO)
Assignee: NetApp, Inc.
H04L47/805H04L43/0876H04L67/1097H04L67/125
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 11,627,097
App. No.
17/187,336
Granted
Apr 11, 2023
Kind
B2
Abstract

Systems and methods for quality of service management are provided. According to one embodiment, a non-transitory computer-readable medium comprises instructions that when executed by the processing resource cause the processing resource to receive, in a normalizing agent, one or more compute load parameters from one or more background compute processes executing on the one or more computer systems and one or more Quality of Service (QoS) parameters for one or more client compute processes executing on the one or more computer systems, convert the one or more compute load parameters to one or more normalized utilization metrics, and execute instructions that cause a processor to adjust a compute resource allocation dedicated to the one or more background compute processes based at least in part on the one or more normalized utilization metrics and the one or more QoS parameters.

Claims (59)

1. A method performed by one or more processing resources of one or more computer systems, the method comprising:

receiving, in a normalizing agent, one or more compute load parameters aggregated over time from one or more background compute processes executing on the one or more computer systems and one or more Quality of Service (QoS) parameters for one or more client compute processes executing on the one or more computer systems;

converting the one or more compute load parameters to one or more normalized utilization metrics;

generating a scale for the one or more normalized utilization metrics, wherein the scale defines a range of compute resource utilization consumed by the one or more background compute processes;

determining, based on the scale, adequacy of resource capacity in the system to satisfy the QoS parameters for the client compute processes executing on the system; and

adjusting a compute resource allocation dedicated to the one or more background compute processes based at least in part on the scale and the one or more QoS parameters, wherein the adjusting comprises the one or more background processes yielding at least a portion of CPU time allocated to the background process for a specified amount of time.

2. The method of claim 1 , wherein the one or more background compute processes comprises

at least one of a bin synchronization process, a slice balancing process, or a cluster fault monitoring process.

3. The method of claim 1 , wherein the one or more normalized utilization metrics comprises

at least one of a percentage of processor utilization metric or an input/output (I/O) throughput metric.

4. The method of claim 1 , wherein the scale is graded to indicate acceptable levels of operation associated with the normalized utilization metrics.

5. The method of claim 4 , further comprising

determining a compute resource capacity required to satisfy the one or more QoS parameters for one or more client compute processes executing on the one or more computer systems.

6. The method of claim 5 , further comprising

adjusting a compute resource allocation dedicated to the one or more background compute processes to provide a capacity required to satisfy the one or more Quality of Service (QoS) parameters.

7. The system of claim 6 , wherein the non-transitory computer-readable medium having stored therein instructions that when executed by the processing resource cause the processing resource to:

guarantee, to at least one of the client compute processes, a first set of QoS parameters during a first window of time; and

a second set of QoS parameters during a second window of time.

8. The method of claim 1 , further comprising:

guaranteeing, to at least one of the client compute processes, a first set of QoS parameters during a first window of time; and

a second set of QoS parameters during a second window of time.

9. The method of claim 1 , further comprising:

determining available system capacity by subtracting the normalized utilization metrics from the system capacity.

10. The method of claim 9 , further comprising:

receiving another round of compute load parameters if the available system capacity is adequate to satisfy the QoS parameters for client processes.

11. A system comprising:

a processing resource; and

a non-transitory computer-readable medium, coupled to the processing resource, having stored therein instructions that when executed by the processing resource cause the processing resource to:

receive, in a normalizing agent, one or more compute load parameters aggregated over time from one or more background compute processes executing on the one or more computer systems and one or more Quality of Service (QoS) parameters for one or more client compute processes executing on the one or more computer systems;

convert the one or more compute load parameters to one or more normalized utilization metrics;

generate a scale for the one or more normalized utilization metrics, wherein the scale defines a range of compute resource utilization consumed by the one or more background compute processes;

determine, based on the scale, adequacy of resource capacity in the system to satisfy the QoS parameters for the client compute processes executing on the system; and

execute instructions that cause the processing resource to adjust a compute resource allocation dedicated to the one or more background compute processes based at least in part on the scale and the one or more QoS parameters, wherein the adjusting comprises the one or more background processes yielding at least a portion of CPU time allocated to the background process for a specified amount of time.

12. The system of claim 11 , wherein the one or more background compute processes comprises

at least one of a bin synchronization process, a slice balancing process, or a cluster fault monitoring process.

13. The system of claim 11 , wherein the one or more normalized utilization metrics comprises

at least one of a percentage of processor utilization metric or an input/output (I/O) throughput metric.

14. The system of claim 11 , the non-transitory computer-readable medium having stored therein instructions that when executed by the processing resource cause the processing resource to

grade the scale to indicate acceptable levels of operation associated with the normalized utilization metrics.

15. The system of claim 14 , the non-transitory computer-readable medium having stored therein instructions that when executed by the processing resource cause the processing resource to

determine a compute resource capacity required to satisfy the one or more QoS parameters for one or more client compute processes executing on the one or more computer systems.

16. The system of claim 15 , the non-transitory computer-readable medium having stored therein instructions that when executed by the processing resource cause the processing resource to

adjust a compute resource allocation dedicated to the one or more background compute processes to provide a capacity required to satisfy the one or more Quality of Service (QoS) parameters.

17. A system comprising:

a processor;

a memory storing one or more instructions, when executed by the processor, causing a normalizing agent to:

receive one or more compute load parameters aggregated over time from one or more background compute processes executing on the one or more computer systems and one or more Quality of Service (QoS) parameters for one or more client compute processes executing on the one or more computer systems; convert the one or more compute load parameters to one or more normalized utilization metrics;

generate a scale for the one or more normalized utilization metrics, wherein the scale defines a range of compute resource utilization consumed by the one or more background compute processes;

determine, based on the scale, adequacy of resource capacity in the system to satisfy the QoS parameters for the client compute processes executing on the system; and

adjust a compute resource allocation dedicated to the one or more background compute processes based at least in part on the scale and the one or more QoS parameters, wherein the adjusting comprises the one or more background processes yielding at least a portion of CPU time allocated to the background process for a specified amount of time.

18. The system of claim 17 , wherein the one or more normalized utilization metrics comprises

at least one of a percentage of processor utilization metric or an input/output (I/O) throughput metric.

19. The system of claim 17 , wherein the normalizing agent is further to

grade the scale to indicate one of an acceptable level, a questionable level and an unacceptable level of operation associated with the normalized utilization metrics.

20. The system of claim 19 , wherein the normalizing agent is further to

determine a compute resource capacity required to satisfy the one or more QoS parameters for one or more client compute processes executing on the one or more computer systems.

21. The system of claim 17 , wherein the normalizing agent is further to:

guarantee, to at least one of the client compute processes, a first set of QoS parameters during a first window of time; and

a second set of QoS parameters during a second window of time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2022
From: LONGO, AUSTINO; CASON, CHRISTOPHER; MCCARTHY, DANIEL
To: NETAPP, INC.
Reel/Frame 061137/0706 →
Continuity (1)
Related Publication 20220278943A1 · Sep 1, 2022
Cited By (1)
US 12,748,530