IP Library Granted Patent US 10,193,821
Granted Patent B1
US 10,193,821 · App. 14/663,282 · Granted Jan 29, 2019

Analyzing resource placement fragmentation for capacity planning

Inventors: Christopher Magee Greenwood (Seattle, WA); Surya Prakash Dhoolam (Seattle, WA); Mitchell Gannon Flaherty (Seattle, WA); Nishant Satya Lakshmikanth (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L47/783H04L43/0876
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,193,821
App. No.
14/663,282
Granted
Jan 29, 2019
Kind
B1
Abstract

A distributed system may implement analyzing resource placement fragmentation for capacity planning Capacity planning may determine when, where, and how much capacity to implement for a distributed system that hosts resources. Placement constraints for resources may, over time, create fragmentation or stranded capacity which is available yet unusable to host new resources. Analyzing capacity fragmentation across a distributed system may allow a determination of available capacity that is actually available to host additional resources. In some embodiments, future resource placements may be estimated in order to perform capacity fragmentation analysis to determine available capacity.

Claims (59)

1. A distributed system, comprising:

a plurality of resource hosts implementing a plurality of resources for the distributed system;

a capacity manager implemented via one or more hardware processors and memory and configured to:

access resource utilization data collected for the plurality of resource hosts;

analyze the resource utilization data to determine one or more capacity fragmentation measures that are associated with unutilized capacity of the distributed system unusable for placement of additional resources according to one or more placement constraints for placing resources in the distributed system, wherein the one or more placement constraints comprise an infrastructure diversity constraint to place a resource with respect to another one or more resources, and wherein to analyze the resource utilization data comprises to determine a number of possible resource placements amongst the resource hosts that satisfy the infrastructure diversity constraint;

update a capacity model for the distributed system to indicate an available capacity for placing additional resources at the distributed system based, at least in part, on the one or more capacity fragmentation measures;

compare the available capacity to a capacity threshold; and

responsive to a determination that the available capacity crosses the capacity threshold, perform at least one of:

generating a notification of a deficient state of the available capacity,

triggering a modification in total capacity of the distributed system, or

triggering a diversion of additional resource placement requests with respect to the distributed system.

2. The system of claim 1 , wherein the capacity manager is further configured to:

monitor the available capacity in the capacity model; and

in response to a determination that the available capacity is below the capacity threshold, generate a capacity recommendation for the distributed system.

3. The system of claim 1 , wherein the distributed system is a virtual, block-based storage service, and wherein the additional resources are data volumes implemented for one or more clients of the virtual, block-based storage service.

4. A method, comprising:

performing, by one or more computing devices:

determining available capacity across a plurality of resource hosts of a distributed system for placing additional resources at the resource hosts, wherein the determining comprises:

analyzing resource utilization data of the resource hosts for capacity fragmentation across the resource hosts, analyzing comprising determining one or more capacity fragmentation measures that are associated with unutilized capacity of the distributed system unusable for placement of additional resources according to one or more placement constraints for placing resources in the distributed system, wherein the one or more placement constraints comprise an infrastructure diversity constraint to place a resource with respect to another one or more resources, and wherein analyzing the resource utilization data comprises determining a number of possible resource placements amongst the resource hosts that satisfy the infrastructure diversity constraint;

providing an update to a capacity model for the distributed system corresponding to the available capacity based at least in part on the one or more fragmentation measures; and

comparing the available capacity to a capacity threshold; and

responsive to a determination that the available capacity crosses the capacity threshold, performing at least one of:

generating a notification of a deficient state of the available capacity,

triggering a modification in the total capacity of the distributed system, or

triggering a diversion of additional resource placement requests with respect to the distributed system.

5. The method of claim 4 , wherein the one or more placement constraints comprise one or more different minimum computing resource requirements to place a resource, and wherein analyzing the resource utilization data of the resource hosts for capacity fragmentation across the resource hosts according to the placement constraints, comprises:

determining a number of possible resource placements amongst the resource hosts that satisfy the one or more computing resource requirements.

6. The method of claim 4 ,

wherein determining the available capacity across the resource hosts comprises evaluating historical resource data to estimate future resource placements; and

wherein analyzing the resource utilization data of the resource hosts for capacity fragmentation across the resource hosts according to the placement constraints comprises conducting an analysis of the future resource placements for capacity fragmentation across the resource hosts according to the placement constraints.

7. The method of claim 4 , further comprising:

monitoring the available capacity in the capacity model; and

generating a capacity recommendation for the distributed system.

8. The method of claim 7 , wherein the capacity recommendation comprises at least one of:

a type of capacity to add; or

an amount of capacity to add.

9. The method of claim 7 , wherein the resource hosts are associated with an infrastructure zone, wherein the available capacity is available capacity for placing resources within the infrastructure zone, wherein the capacity threshold is for the infrastructure zone, wherein the determining the available capacity, the analyzing the resource utilization data, the providing the update to the capacity model, and the monitoring the available capacity are performed with respect to another plurality of resource hosts associated with a different infrastructure zone, and wherein the generated capacity recommendation indicates a move of one or more of the resource hosts from the infrastructure zone to the other infrastructure zone.

10. The method of claim 4 , further comprising:

evaluating historical resource data to estimate future resource placements;

wherein the determining of the available capacity includes the future resource placements; and

generating a capacity forecast according to the determination of the available capacity that includes the future resource placements.

11. The method of claim 4 , wherein the distributed system is a network-based service and the additional resources are implemented for one or more clients of the network-based service.

12. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices cause the one or more computing devices to implement:

determining available capacity across a plurality of resource hosts of a distributed system for placing additional resources at corresponding resource hosts, wherein the determining comprises:

analyzing resource utilization data of the resource hosts for capacity fragmentation across the resource hosts, wherein analyzing comprises determining one or more capacity fragmentation measures that are associated with unutilized capacity of the distributed system unusable for placement of additional resources according to one or more placement constraints for placing resources in the distributed system, wherein the one or more placement constraints comprise an infrastructure diversity constraint to place a resource with respect to another one or more resources, and wherein analyzing the resource utilization data comprises determining a number of possible resource placements amongst the resource hosts that satisfy the infrastructure diversity constraint;

updating a capacity model for the distributed system corresponding to an available capacity based at least in part on the one or more fragmentation measures; and

comparing the available capacity to a capacity threshold; and

responsive to a determination that the available capacity crosses the capacity threshold, performing at least one of:

generating a notification of a deficient state of the available capacity,

triggering a modification in the total capacity of the distributed system, or

triggering a diversion of additional resource placement requests with respect to the distributed system.

13. The non-transitory, computer-readable storage medium of claim 12 , wherein the one or more placement constraints comprise one or more different minimum computing resource requirements to place a resource, and wherein, in analyzing the resource utilization data of the resource hosts for capacity fragmentation across the resource hosts according to the placement constraints, the program instructions cause the one or more computing devices to implement:

determining a number of possible resource placements amongst the resource hosts that satisfy the one or more computing resource requirements.

14. The non-transitory, computer-readable storage medium of claim 13 , wherein the additional resources are data volumes, and wherein the one or more computing resource requirements comprise volume size and volume throughput.

15. The non-transitory, computer-readable storage medium of claim 12 , wherein the program instructions cause the one or more computing devices to further implement:

monitoring the available capacity in the capacity model; and

in response to determining that the available capacity is below the capacity threshold, providing a responsive action to modify capacity at a specified locality of the distributed system.

16. The non-transitory, computer-readable storage medium of claim 12 , wherein the program instructions cause the one or more computing devices to further implement publishing the available capacity via an interface for the distributed system.

17. The non-transitory, computer-readable storage medium of claim 12 , wherein the distributed system is a virtual computing service, and wherein the additional resources are virtual compute instances.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: GREENWOOD, CHRISTOPHER MAGEE; DHOOLAM, SURYA PRAKASH; FLAHERTY, MITCHELL GANNON; LAKSHMIKANTH, NISHANT SATYA
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 043484/0203 →
Cited By (1)
US 12,373,124