IP Library Granted Patent US 8,555,287
Granted Patent B2
US 8,555,287 · App. 11/848,298 · Granted Oct 8, 2013

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 8,555,287
App. No.
11/848,298
Granted
Oct 8, 2013
Kind
B2
Abstract

An automated system obtains performance data of a computer system having partitioned servers. The performance data includes a performance rating and a current measured utilization of each server, actual workload (e.g. transaction arrival rate), and actual service levels (e.g. response time or transaction processing rate). From the data, automated system normalizes a utilization value for each server over time and generates a weighted average for each and expected service levels for various times and workloads. Automated system receives a service level objective (SLO) for each server and future time and automatically determines a policy based on the weighted average normalized utilization values, past performance information, and received SLOs. The policy can include rules for provisioning required servers to meet the SLOs, a throughput for each server, and a potential service level for each server. Based on the generated policy, the system automatically provisions operation of the servers across partitions.

Claims (38)

1. An automated capacity provisioning method, comprising:

obtaining performance data from performing calculations on input data with a statistical analysis algorithm pertaining to a plurality of processing nodes of a computer system which provide services to users, wherein the input data includes, for each of the plurality of processing nodes, at least one of a node name, performance rating type, processing power, utilization service level objective, number of time intervals to be assessed, and CPU utilization data for the time intervals;

generating an operational profile based on the performance data, the operational profile characterizing resource usage by the users of the plurality of processing nodes over the time intervals;

receiving service level objectives for the computer system, the service level objectives characterizing a manner in which the services are provided to the users over time;

automatically generating one or more provisioning policies based on the operational profile and the service level objectives, including predicting the providing of future service levels in a manner that satisfies the service level objectives, using the operational profile, wherein the act of automatically generating the one or more provisioning policies further includes applying what-if scenarios to information in the operational profile to determine an amount of resources to meet a corresponding service level objective at a given workload level, the what-if scenarios including different combinations of workload levels and resource amounts, wherein the applying the what-if scenarios further includes determining a smallest number of servers required to meet the corresponding service objective at the given workload level; and

provisioning at least some of the processing nodes based on the provisioning policies.

2. The method of claim 1 , wherein the performance data comprises the performance rating, the utilization service level objective, and utilization values for each of the processing nodes over the time intervals, and wherein the operational profile comprises a resource usage profile over the time intervals.

3. The method of claim 2 , wherein the provisioning policies comprises one or more of a number of processing nodes required to meet the service level objectives, an arrival rate for transaction to each of the required processing nodes, and a potential service level for each of the required processing nodes.

4. The method of claim 2 , wherein the act of generating the operational profile comprises calculating statistical values from the performance data for each of the time intervals in the at least one time period.

5. The method of claim 4 , wherein the statistical values comprise one or more of a measured average utilization, a weighted average utilization, a weighted average normalized utilization, a minimum utilization, a maximum utilization, a coefficient of variation of CPU utilization, and a probability of exceeding the service level objective.

6. The method of claim 1 , wherein the act of automatically generating the one or more provisioning policies comprises calculating a number of processing nodes needed for each of the time intervals, wherein the calculation is based on weighted average normalized utilization values calculated for the processing nodes and the intervals, the service level objectives, and performance ratings for the processing nodes.

7. The method of claim 1 , wherein the act of automatically generating the one or more provisioning policies comprises applying one or more of trending analysis, predictive analysis, and user input to information in the operational profile.

8. The method of claim 1 , wherein the act of automatically generating the provisioning policies includes calculating transaction weights to control an arrival rate of transactions to the plurality of processing nodes, and the act of provisioning at least some of the processing nodes based on the provisioning policies includes distributing arriving transactions to the at least some of the processing nodes based on the calculated transaction weights.

9. The method of claim 1 , further comprising automatically provisioning at least some of the processing nodes based on the one or more provisioning policies.

10. The method of claim 9 , wherein the act of automatically provisioning comprises load balancing system transactions to the processing nodes based on calculated weighting values for the processing nodes.

11. The method of claim 1 , where the processing nodes comprise servers partitioned into a plurality of physical or virtual partitions.

12. A program storage device, readable by a programmable control device, comprising instructions stored on the program storage device for causing the programmable control device to perform a method according to claim 1 .

13. The method of claim 1 , wherein applying what-if scenarios to information in the operational profile includes:

predicting a response time for different amounts of resources for a certain transactional rate, the different amounts of resources include a different number of servers; and

selecting the smallest amount of servers required to meet the corresponding service level objective as the determined amount of resources, wherein a provisioning policy includes provisioning the determined amount of resources if a transactional rate is substantially equivalent to the certain transactional rate.

14. The method of claim 8 , wherein the calculating transaction weights includes:

calculating a transaction weight for each processing node by dividing a first product with a second product, the first product being a processing power for a given processing node multiplied by a service level objective for the given processing node, the second product being a summation of a processing power for each processing node multiplied by a corresponding service level objective.

15. An automated capacity provisioning system, comprising:

a first module operatively coupled to a computer system having a plurality of processing nodes which provide services to users, the first module configured, by virtue of instructions recorded on a non-transitory computer-readable storage medium and executable by at least one processor, to obtain performance data from performing calculations on input data with a statistical analysis algorithm pertaining to the processing nodes, the input data including, for each of the plurality of processing nodes, at least one of a node name, performance rating type, processing power, utilization service level objective, number of time intervals to be assessed, and CPU utilization data for the time intervals, the first module further configured to generate an operational profile based on the performance data, the operational profile characterizing resource usage by the users of the plurality of processing nodes over the time intervals; and

a second module operatively coupled to the first module and the computer system, the second module configured, by virtue of instructions recorded on a non-transitory computer-readable storage medium and executable by at least one processor, to obtain service level objectives from the computer system, the service level objectives characterizing a manner in which the services are provided to the users over time, and automatically generate provisioning policies based on the operational profile and the service level objectives, including predicting the providing of future service levels in a manner that satisfies the service level objectives, using the operational profile,

wherein automatically generate the provisioning policies, the second module includes an algorithm applying what-if scenarios to information in the operational profile to determine an amount of resources to meet a corresponding service level objective at a given workload level, the what-if scenarios including different combinations of workload levels and resource amounts, wherein the algorithm applying the what-if scenarios further determines a smallest number of serves required to meet the corresponding service objective at the given workload level,

wherein the second module is configured to provision at least some of the processing nodes, based on the provisioning policies,

wherein the first module and the second module include instructions recorded on a non-transitory computer-readable storage medium, and wherein the instructions, when executed.

16. The system of claim 15 , wherein the first module comprises a data collection tool operatively coupled to a plurality of data collectors distributed throughout the computer system.

17. The system of claim 15 , wherein the provisioning polices comprise one or more of a number of processing nodes required to meet the service level objectives, an arrival rate for transactions to each of the required processing nodes, and a potential service level for each of the required processing nodes.

18. The system of claim 15 , wherein to generate the operational profile, the second module comprises an assessment algorithm calculating statistical values from the performance data for each of the time intervals.

19. The system of claim 18 , wherein the statistical values comprise one or more of a measured average utilization, a weighted average utilization, a weighted average normalized utilization, a minimum utilization, a maximum utilization, a coefficient of variation of CPU utilization, and a probability of exceeding the SLO.

20. The system of claim 15 , wherein the performance data comprises the performance rating, the utilization service level objective, and utilization values for each of the processing nodes over the time intervals, and wherein the operational profile comprises a resource usage profile over the time intervals.

21. The system of claim 20 , wherein to automatically generate the provisioning policies, the second module comprises an algorithm calculating a number of processing nodes needed for each of the time intervals, wherein the calculation is based on weighted average normalized utilization values calculated for the processing nodes and the time intervals, the service level objectives, and the performance ratings for the processing nodes.

22. The system of claim 15 , wherein automatically generate the provisioning policies, the second module comprises an algorithm applying one or more of trending analysis, predictive analysis, and user input to the operational profile.

23. The system of claim 15 , wherein the automatically generate the provisioning policies, the second module includes an algorithm calculating transaction weights to control an arrival rate of transactions to the plurality of processing nodes, and the second module is configured to distribute arriving transactions to the at least some of the processing nodes based on the calculated transaction weights.

24. The system of claim 15 , further comprising a third module operatively coupled to the second module and the computer system, the third module being configured, by virtue of instructions recorded on a non-transitory computer-readable storage medium and executable by at least one processor, to automatically provision at least some of the available processing nodes based on the provisioning policies.

25. The system of claim 24 , wherein the third module comprises a load balancer controlling distribution of arriving system transactions to the processing nodes based on calculated weighting values.

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 AGREEMENT Recorded Sep 11, 2013
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 031204/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2007
From: DING, YIPING
To: BMC SOFTWARE, INC.
Reel/Frame 020104/0048 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2007
From: MARRON, ASSAF; JOHANNESSEN, FRED
To: BMC SOFTWARE, INC.
Reel/Frame 019770/0819 →