IP Library Granted Patent US 10,169,095
Granted Patent B2
US 10,169,095 · App. 15/222,491 · Granted Jan 1, 2019

Automated capacity provisioning method using historical performance data

Inventors: Yiping Ding (Dover, MA); Assaf Marron (Ramat-Gan, IL); Fred Johannessen (Leander, TX)
Assignee: BMC Software, Inc.
G06F9/505G06F3/0484G06F3/04847H04L43/0882H04L47/801H04L47/823H04L67/303G06F2209/508G06F2209/5019H04L67/1002
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,169,095
App. No.
15/222,491
Granted
Jan 1, 2019
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 (48)

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

obtaining performance data characterizing the computer system, the computer system implementing services with fluctuating demand over time;

generating a system resource usage profile based on the performance data, the performance data comprising central processing unit (CPU) utilization data and response time data, the response time data defined for one or more of transactions, workloads, jobs, tasks, applications, or threads comprising the services;

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

automatically generating one or more provisioning policies based on the system resource usage profile and one or more of the service level objectives, including executing a series of workload scenarios, the workload scenarios including combinations of workload levels and service level objectives; and

provisioning the computer resources based on at least one of the provisioning policies, wherein the provisioning includes:

allocating one or more additional servers for a first time slot of a plurality of time slots in response to the response time data being greater than a first threshold level; and

allocating one or more additional servers for a second time slot of the plurality of time slots in response to the CPU utilization data being greater than a second threshold level.

2. The method of claim 1 , wherein the provisioning the computer resources based on at least one of the provisioning policies includes activating at least one server to process transactions and de-activating at least one server to stop processing transactions.

3. The method of claim 1 , wherein at least one of the service level objectives indicate an arrival value for transactions at a server of the computer system.

4. The method of claim 1 , wherein the system resource usage profile characterizes resource usage of the computer resources of the computer system over time.

5. The method of claim 1 , wherein the automatically generating one or more provisioning policies based on the system resource usage profile and one or more of the service level objectives includes analyzing the system resource usage profile and one or more of the service level objections within at least one of a trending analysis or a predictive analysis.

6. The method of claim 1 , further comprising:

collecting new performance data while the computer system is executing the services;

re-generating the system resource usage profile based on the new performance data; and

updating at least one of the provisioning policies based on an analysis of the re-generated system resource usage profile in view of one or more of the service level objectives.

7. The method of claim 1 , further comprising:

providing a display of the automatically generated provisioning policies via a user interface of the computer system;

receiving a change to a provisioning policy of the displayed provisioning policies via the user interface; and

updating the provisioning policy based on the change.

8. A non-transitory computer-readable medium storing instructions, when executed by at least one processor, are configured to:

obtain performance data characterizing the computer system, the computer system implementing services with fluctuating demand over time;

generate a system resource usage profile based on the performance data, the performance data comprising central processing unit (CPU) utilization data and response time data, the response time data defined for one or more of transactions, workloads, jobs, tasks, applications, or threads comprising the services;

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

automatically generate one or more provisioning policies based on the system resource usage profile and one or more of the service level objectives, including execute a series of workload scenarios, the workload scenarios including combinations of workload levels and service level objectives; and

provision the computer resources based on at least one of the provisioning policies, including:

allocate one or more additional servers for a first time slot of a plurality of time slots in response to the response time data being greater than a first threshold level; and

allocate one or more additional servers for a second time slot of the plurality of time slots in response to the CPU utilization data being greater than a second threshold level.

9. The non-transitory computer-readable medium of claim 8 , wherein the instructions to provision the computer resources include instructions to activate at least one server to process transactions.

10. The non-transitory computer-readable medium of claim 8 , wherein at least one of the service level objectives indicate an arrival value for transactions at a server of the computer system.

11. The non-transitory computer-readable medium of claim 8 , wherein the system resource usage profile characterizes resource usage of the computer resources of the computer system over time.

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

collect new performance data while the computer system is executing the services;

re-generate the system resource usage profile based on the new performance data; and

update at least one of the provisioning policies based on an analysis of the re-generated system resource usage profile in view of one or more of the service level objectives.

13. The non-transitory computer-readable medium of claim 8 , further comprising:

provide a display of the automatically generated provisioning policies via a user interface of the computer system;

receive a change to a provisioning policy of the displayed provisioning policies via the user interface; and

update the provisioning policy based on the change.

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

an assessment module configured to cause at least one processor to obtain performance data of a computer system that implements services with fluctuating demand, and to generate a system resource usage profile based on the performance data, the performance data comprising central processing unit (CPU) utilization data and response time data, the response time data defined for one or more of transactions, workloads, jobs, tasks, applications, or threads comprising the services;

a policy generating module configured to cause the at least one processor to receive service level objectives for the services, the service level objectives characterizing a manner in which the services are provided to users over time,

the 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 of the service level objectives, the policy generating module configured to execute a series of workload scenarios, the workload scenarios including combinations of workload levels and service level objectives;

a load balancer configured to cause the at least one processor to provision the computer resources based on at least one of the provisioning policies, the load balancer configured to allocate one or more additional servers for a first time slot of a plurality of time slots in response to the response time data being greater than a first threshold level, the load balancer configured to allocate one or more additional servers for a second time slot of the plurality of time slots in response to the CPU utilization data being greater than a second threshold level.

15. The system of claim 14 , 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 a number of servers required for one or more time slots.

16. The system of claim 14 , wherein at least one of the service level objectives indicate an arrival value for transactions at a server of the computer system.

17. The system of claim 14 , further comprising:

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

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 052854/0139 →
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 Sep 10, 2019
From: BMC SOFTWARE, INC.; BLADELOGIC, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 050327/0634 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 30, 2017
From: DING, YIPING; MARRON, ASSAF; JOHANNESSEN, FRED
To: BMC SOFTWARE, INC.
Reel/Frame 042522/0219 →
Continuity (6)
Continuation 14743161 · Jun 18, 2015
Continuation 14044614 · Oct 2, 2013
Continuation 11848298 · Aug 31, 2007
Provisional Application 60824240 · Aug 31, 2006
Related Publication 20160335122A1 · Nov 17, 2016
Related Publication 20180181437A9 · Jun 28, 2018