IP Library Granted Patent US 11,347,552
Granted Patent B2
US 11,347,552 · App. 16/887,196 · Granted May 31, 2022

Resource monitoring and allocation using proportional-integral-derivative controllers

Inventors: Jonathan I. Krasner (Coventry, RI); Chakib Ouarraoui (Watertown, MA)
Assignee: EMC IP Holding Company LLC
G06F9/5016G05B11/42G06F9/455G06F9/5027G06F11/3051G06F2209/5011
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,347,552
App. No.
16/887,196
Granted
May 31, 2022
Kind
B2
Abstract

Techniques for allocating resources in a system may include: monitoring, using a first proportional-integral-derivative (PID) controller, a size of a pool of free shared resources of a first type; responsive to determining the size of the pool of the free shared resources is at least a minimum threshold, providing the size of the pool of free shared resources as an input to a second PID controller; monitoring, using the second PID controller, a total amount of resources of the first type that are available; determining, using the second PID controller and in accordance with one or more resource policies for one or more applications, a deallocation rate or amount; deallocating, using the second PID controller and in accordance with the deallocation rate or amount, resources of the first type; and allocating a least a first of the deallocated resources for use by one of the applications.

Claims (44)

1. A method of allocating resources in a system comprising:

monitoring, using a first proportional-integral-derivative (PID) controller, a size of a pool of free shared resources of a first type;

responsive to determining that the size of the pool of the free shared resources of the first type is greater than or equal to a minimum threshold, providing the size of the pool of free shared resources as an input to a second PID controller;

monitoring, using the second PID controller, a total amount of resources of the first type that are available;

determining, using the second PID controller and in accordance with one or more resource policies for one or more applications, a deallocation rate or amount for resources of the first type;

deallocating, using the second PID controller and in accordance with the deallocation rate or amount, one or more resources of the first type; and

allocating a least a first of the one or more resources for use by a first of the one or more applications.

2. The method of claim 1 , wherein the system is a data storage system.

3. The method of claim 1 , wherein the first type of resources is memory.

4. The method of claim 1 , wherein the first type of resources is CPU resources.

5. The method of claim 4 , wherein the pool of free shared CPU resources denotes CPU resources of a single board that are available for use by any application executing on a CPU of the single board.

6. The method of claim 5 , wherein the total amount of resources of the first type that are available denotes a total amount of CPU resources on the single board that are available.

7. The method of claim 6 , wherein the total amount of CPU resources that are available includes first CPU resources of the pool of free shared CPU resources and includes second CPU resources that are allocated for dedicated use by one or more applications executing on one or more CPUs of the single board.

8. The method of claim 7 , wherein the second CPU resources allocated for dedicated use by the one or more applications includes a first portion which are currently not in use by any of the one or more applications.

9. The method of claim 6 , wherein the total amount of CPU resources on the single board that are available denotes a number of CPUs of the single board where each of the number of CPUs currently has a zero-percentage utilization.

10. The method of claim 1 , further comprising:

varying the minimum threshold at each of various points in time in accordance with an expected or predicted change in resource requirements of at least one application that consumes resources of the pool of free shared resources of the first type.

11. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of allocating resources in a system comprising:

monitoring, using a first proportional-integral-derivative (PID) controller, a size of a pool of free shared resources of a first type;

responsive to determining that the size of the pool of the free shared resources of the first type is greater than or equal to a minimum threshold, providing the size of the pool of free shared resources as an input to a second PID controller;

monitoring, using the second PID controller, a total amount of resources of the first type that are available;

determining, using the second PID controller and in accordance with one or more resource policies for one or more applications, a deallocation rate or amount for resources of the first type;

deallocating, using the second PID controller and in accordance with the deallocation rate or amount, one or more resources of the first type; and

allocating a least a first of the one or more resources for use by a first of the one or more applications.

12. The non-transitory computer readable medium of claim 11 , wherein the system is a data storage system.

13. The non-transitory readable medium of claim 11 , wherein the first type of resources is memory.

14. The non-transitory computer readable medium of claim 11 , wherein the first type of resources is CPU resources.

15. The non-transitory computer readable medium of claim 14 , wherein the pool of free shared CPU resources denotes CPU resources of a single board that are available for use by any application executing on a CPU of the single board.

16. The non-transitory computer readable medium of claim 15 , wherein the total amount of resources of the first type that are available denotes a total amount of CPU resources on the single board that are available.

17. The non-transitory computer readable medium of claim 16 , wherein the total amount of CPU resources that are available includes first CPU resources of the pool of free shared CPU resources and includes second CPU resources that are allocated for dedicated use by one or more applications executing on one or more CPUs of the single board.

18. A data storage system comprising:

a plurality of director boards, wherein each of the plurality of director boards includes a plurality of CPUs configured as a plurality of adapters;

a memory coupled to the plurality of director boards;

a computer readable medium comprising code stored thereon that, when executed, performs a method of allocating resources in the data storage system comprising:

monitoring, using a first proportional-integral-derivative (PID) controller, a size of a pool of free shared CPU resources on a first of the plurality of director boards;

responsive to determining that the size of the pool of the free shared CPU resources of the first director board is greater than or equal to a minimum threshold, providing the size of the pool of free shared CPU resources of the first director board as an input to a second PID controller;

monitoring, using the second PID controller, a total amount of CPU resources of the first board that are available;

determining, using the second PID controller and in accordance with one or more resource policies for one or more applications, a deallocation rate or amount for CPU resources of the first director board;

deallocating, using the second PID controller and in accordance with the deallocation rate or amount, one or more CPU resources of the first director board; and

allocating a least a first of the one or more CPU resources of the first director board for use by a first of the one or more applications.

19. The data storage system of claim 18 , wherein the plurality of adapters includes a host adapter that exchanges data with one or more hosts connected to the data storage system.

20. The data storage system of claim 18 , wherein the plurality of adapters includes a disk adapter that exchanges data with one or more physical storage devices.

21. The data storage system of claim 18 , wherein the plurality of adapters includes a remote adapter that exchanges data with one or more remote data storage systems.

22. The data storage system of claim 18 , wherein each of the plurality of adapters of said each director board are emulated using code that executes on one or more processors of one or more CPU resources of said each director board.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) 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 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) 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 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) 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 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
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 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2020
From: KRASNER, JONATHAN I.; OUARRAOUI, CHAKIB
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052786/0923 →
Continuity (1)
Related Publication 20210373956A1 · Dec 2, 2021
Cited By (1)
US 12,639,010