IP Library Granted Patent US 9,405,587
Granted Patent B2
US 9,405,587 · App. 14/743,161 · Granted Aug 2, 2016

Automated capacity provisioning method using historical performance data

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 9,405,587
App. No.
14/743,161
Granted
Aug 2, 2016
Kind
B2
Abstract

The method may include collecting performance data relating to processing nodes of a computer system which provide services via one or more applications, analyzing the performance data to generate an operational profile characterizing resource usage of the processing nodes, receiving a set of attributes characterizing expected performance goals in which the services are expected to be provided, and generating at least one provisioning policy based on an analysis of the operational profile in conjunction with the set of attributes. The at least one provisioning policy may specify a condition for re-allocating resources associated with at least one processing node in a manner that satisfies the performance goals of the set of attributes. The method may further include re-allocating, during runtime, the resources associated with the at least one processing node when the condition of the at least one provisioning policy is determined as satisfied.

Claims (33)

1. A system for automated capacity provisioning, the system comprising:

an assessment module configured to cause at least one processor to analyze performance data of a computer system to implement an application with fluctuating demand, and generate a system resource usage profile based on the performance data, the system resource usage profile characterizing resource usage of computer resources of the computer system over time;

a policy generating module configured to cause the at least one processor to automatically generate one or more provisioning policies based on an analysis of the system resource usage profile and one or more service level agreements (SLAs), the policy generating module configured to cause the at least one processor to calculate a number of servers required for each of a plurality of time slots, to merge adjacent time slots having same calculated number of servers, and to calculate transactional weights to control arrival rate of transactions to the servers for one or more of the time slots; and

a load balancer configured to cause the at least one processor to scale the computer resources based on the one or more provisioning polices including adjusting an allocation of servers to the number of servers required for a particular time slot of the plurality of time slots,

wherein the load balancer is configured to cause the at least one processor to distribute arriving transactions to the servers using the calculated transactional weights.

2. The system of claim 1 , wherein the policy generating module includes a predictive module configured to cause the at least one processor to apply historical trending and predictive analysis to predict the number of servers at a given time.

3. The system of claim 1 , wherein the policy generating module includes a what-if module configured to cause the at least one processor to generate what-if scenarios to produce different combinations of workloads and resources to determine resulting performance in each of the combinations.

4. The system of claim 3 , wherein the what-if module is configured to cause the at least one processor to determine a smallest number of servers required to meet a corresponding SLA at a given workload level.

5. The system of claim 1 , further comprising:

a migrating module configured to cause the at least one processor to generate one or more provisioning policies to consolidate available servers between partitions of the computer system by estimating a number of homogeneous servers needed to support the application before migration.

6. The system of claim 5 , wherein the migrating module is configured to cause the at least one processor to calculate a maximum normalized unitization total for all available servers over a time period, and determine whether a server overhead is greater than a partition overhead, and if the server overhead is not greater than the partition overhead, the migrating module is configured to cause the at least one processor to calculate a number of required servers.

7. The system of claim 1 , wherein the policy generating module is configured to cause the at least one processor to receive an updated system resource usage profile, and automatically modify the one or more provisional policies based on a subsequent analysis of the updated system resource usage profile in conjunction with the one or more SLAs.

8. The system of claim 1 , wherein the policy generating module is configured to cause the at least one processor to provide a user interface configured to allow a user to set up dynamic rules for adjusting the scaling of the computer resources.

9. A non-transitory computer-readable medium storing instructions, when executed by at least one processor, are configured to perform the following operations:

analyze performance data of a computer system to implement an application with fluctuating demand;

generate a system resource usage profile based on the performance data, the system resource usage profile characterizing resource usage of computer resources of the computer system over time;

automatically generate one or more provisioning policies based on an analysis of the system resource usage profile and one or more service level agreements (SLAs) including calculate a number of servers required for each of a plurality of time slots, merge adjacent time slots having same calculated number of servers, and calculate transactional weights to control arrival rate of transactions to the servers for one or more of the time slots; and

scale the computer resources based on the one or more provisioning polices including adjust an allocation of servers to the number of servers required for a particular time slot of the plurality of time slots and distribute arriving transactions to the servers using the calculated transactional weights.

10. The non-transitory computer-readable medium of claim 9 , wherein the automatically generate one or more provisioning policies further includes generate what-if scenarios to produce different combinations of workloads and resources to determine resulting performance in each of the combinations.

11. The non-transitory computer-readable medium of claim 9 , wherein the automatically generate one or more provisioning policies further includes generate one or more provisioning policies to consolidate available servers between partitions of the computer system by estimating a number of homogeneous servers needed to support the application before migration.

12. The non-transitory computer-readable medium of claim 9 , further comprising:

receive an updated system resource usage profile; and

automatically modify the one or more provisional policies based on a subsequent analysis of the updated system resource usage profile in conjunction with the one or more SLAs.

13. A method for automatically allocating resources in a computer system, the method comprising:

analyzing performance data of a computer system to implement an application with fluctuating demand;

generating a system resource usage profile based on the performance data, the system resource usage profile characterizing resource usage of computer resources of the computer system over time;

automatically generating one or more provisioning policies based on an analysis of the system resource usage profile and one or more service level agreements (SLAs) including calculating a number of servers required for each of a plurality of time slots, merging adjacent time slots having same number of servers, and calculating transactional weights to control arrival rate of transactions to the servers for one or more of the time slots; and

scaling the computer resources based on the one or more provisioning polices including adjusting an allocation of servers to the number of servers required for a particular time slot of the plurality of time slots and distributing arriving transactions to the servers using the calculated transactional weights.

14. The method of claim 13 , further comprising:

applying historical trending and predictive analysis to predict the number of servers at a given time.

15. The method of claim 13 , further comprising:

generating what-if scenarios to produce different combinations of workloads and resources to determine resulting performance in each of the combinations; and

determining a smallest number of servers required to meet a corresponding SLA at a given workload level.

Assignments (15)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2025
From: BMC SOFTWARE, INC.
To: BMC HELIX, INC.
Reel/Frame 070442/0197 →
GRANT OF FIRST LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0628 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 13, 2024
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 069352/0568 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052854/0139) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0617 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052844/0646) Recorded Aug 6, 2024
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 068339/0408 →
OMNIBUS ASSIGNMENT OF SECURITY INTERESTS IN PATENT COLLATERAL Recorded Mar 4, 2024
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS RESIGNING COLLATERAL AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 066729/0889 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 1, 2024
From: ALTER DOMUS (US) LLC
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.
Reel/Frame 066567/0283 →
GRANT OF SECOND LIEN SECURITY INTEREST IN PATENT RIGHTS Recorded Sep 30, 2021
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 057683/0582 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052844/0646 →
SECURITY INTEREST Recorded Jun 4, 2020
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052854/0139 →
RELEASE OF PATENTS Recorded Oct 5, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: BMC SOFTWARE, INC.; BLADELOGIC, INC.; BMC ACQUISITION L.L.C.
Reel/Frame 047198/0468 →
SECURITY INTEREST Recorded Oct 2, 2018
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE, AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047185/0744 →
SECURITY INTEREST Recorded Aug 10, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043514/0845 →
SECURITY INTEREST Recorded Jul 27, 2017
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 043351/0189 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2015
From: DING, YIPING; MARRON, ASSAF; JOHANNESSEN, FRED
To: BMC SOFTWARE, INC.
Reel/Frame 035880/0860 →