IP Library Granted Patent US 10,911,328
Granted Patent B2
US 10,911,328 · App. 16/588,594 · Granted Feb 2, 2021

Quality of service policy based load adaption

Inventors: David D. Wright (Dacula, GA); Michael Xu (Boulder, CO)
Assignee: NetApp, Inc.
H04L41/5022G06F3/061G06F3/067G06F3/0659G06F11/3433G06F11/3485H04L41/50H04L41/5009H04L41/5067H04L67/1097G06F2201/81
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 10,911,328
App. No.
16/588,594
Granted
Feb 2, 2021
Kind
B2
Abstract

A storage system monitors system performance metrics and client performance metrics related to input/output (I/O) operations. The storage system, generates a performance adjustment value for each client using a proportional-integral-derivative (PID) controller to match the corresponding respective target performance value within a time period based on feedback of the respective monitored client performance metric and the system performance metric. The storage system, throttles I/O operations for each client during the time period such that the respective client performance moves toward the corresponding respective target performance value.

Claims (42)

1. A method comprising:

monitoring a system performance metric of a storage system serving a plurality of clients;

monitoring a client performance metric of the plurality of clients performing input/output (I/O) operations to the storage system, wherein each client performance metric corresponds to a respective target performance value;

generating, by the storage system, a client performance adjustment value for each client using a proportional-integral-derivative (PID) controller to match the corresponding respective target performance value within a time period based on feedback of the respective monitored client performance metric and the system performance metric; and

throttling, by the storage system, the I/O operations for each client during the time period such that the respective client performance metric moves toward the corresponding respective target performance value.

2. The method of claim 1 , wherein locking out, by the storage system, each client from performing I/O operations for the time period injects a latency into the respective client I/O operations.

3. The method of claim 1 , wherein locking out, by the storage system, each client from performing I/O operations for the time period adjusts a number of I/O operations the respective client can perform to the storage during the time period.

4. The method of claim 1 , wherein the respective target performance value for each client is based on a quality of service set for the respective client.

5. The method of claim 1 , further comprising:

normalizing the I/O operations per second (IOPS) of each client to the storage system during the time period based on a size of data of each I/O operation, wherein the respective client performance metric and the respective target performance value are based on TOPS.

6. The method of claim 1 , further comprising:

in response to a storage system performance metric overload, reducing the respective target performance value for each client by a same proportion.

7. The method of claim 1 , wherein the time period is less than 1 second.

8. The method of claim 1 , further comprising:

adjusting the respective target performance value of a first class of the plurality of clients by a first proportion based on the system performance metric; and

adjusting a respective target performance value of a second class of the plurality of clients by a second proportion different from the first proportion based on the system performance metric.

9. The method of claim 1 , wherein the system performance metric is a load value of the storage system.

10. The method of claim 1 , wherein the respective client performance metric and target performance metric are based on bandwidth and wherein another PID controller is used to match a client latency performance for each client to a respective latency target performance value.

11. A storage system comprising:

a processor coupled to one or more storage devices for serving a plurality of clients via a network; and

a network interface connected to the network and coupled to the processor, the processor configured to execute instructions to cause the storage system to,

monitor a system performance metric of the storage system;

monitor a client performance metric of the plurality of clients performing input/output (I/O) operations to the storage system, wherein each client performance metric corresponds to a respective target performance value;

generate a client performance adjustment value for each client using a proportional-integral-derivative (PID) controller to match the corresponding respective target performance value within a time period based on feedback of the respective monitored client performance metric and the system performance metric; and

throttle the I/O operations for each client during the time period such that the respective client performance metric moves toward the corresponding respective target performance value.

12. The storage system of claim 11 , wherein locking out each client from performing I/O operations for the time period injects a latency into the respective client I/O operations.

13. The storage system of claim 11 , wherein locking out each client from performing I/O operations for the time period adjusts a number of I/O operations the respective client can perform to the storage system during the time period.

14. The storage system of claim 11 , wherein the respective target performance value for each client is based on a quality of service set for the respective client.

15. The storage system of claim 11 , wherein the program instructions further cause the storage system to:

normalize the I/O operations per second (IOPS) of each client to the storage system during the time period based on a size of data of each I/O operation, wherein the respective client performance metric and the respective target performance value are based on TOPS.

16. The storage system of claim 11 , wherein the program instructions further cause the storage system to:

in response to a storage system performance metric overload, reduce the respective target performance value for each client by a same proportion.

17. The storage system of claim 11 , wherein the time period is less than 1 second.

18. The storage system of claim 11 , wherein the program instructions further cause the storage system to:

adjust the respective target performance value of a first class of the plurality of clients by a first proportion based on the system performance metric; and

adjust a respective target performance value of a second class of the plurality of clients by a second proportion different from the first proportion based on the system performance metric.

19. The storage system of claim 11 , wherein the system performance metric is a load value of the storage system.

20. A non-transitory computer readable medium having instructions stored thereon executable by a processor of a storage system, the instructions to cause the storage system to:

monitor a system performance metric of the storage system serving a plurality of clients;

monitor a client performance metric of the plurality of clients performing input/output (I/O) operations to the storage system, wherein each client performance metric corresponds to a respective target performance value;

generate a client performance adjustment value for each client using a proportional-integral-derivative (PID) controller to match the corresponding respective target performance value within a time period based on feedback of the respective monitored client performance metric and the system performance metric; and

throttle the I/O operations for each client during the time period such that the respective client performance metric moves toward the corresponding respective target performance value.

Continuity (7)
Continuation 15651438 · Jul 17, 2017
Continuation 14701832 · May 1, 2015
Continuation 13856997 · Apr 4, 2013
Continuation PCTUS2012071844 · Dec 27, 2012
Continuation In Part 13338039 · Dec 27, 2011
Provisional Application 61697905 · Sep 7, 2012
Related Publication 20200028757A1 · Jan 23, 2020
Cited By (2)
US 12,250,129 US 12,443,550