IP Library Granted Patent US 9,052,953
Granted Patent B2
US 9,052,953 · App. 13/478,710 · Granted Jun 9, 2015

Autonomous computer session capacity estimation

Inventor: Juliano Maldaner (Cupertino, CA)
Assignee: Citrix Systems, Inc.
G06F9/5011H04L43/0876H04L43/16G06F9/5077
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,052,953
App. No.
13/478,710
Filed
May 23, 2012
Granted
Jun 9, 2015
Kind
B2
Examiner
KIM, HEE SOO
Art Unit
2457
USPC
709/224
Abstract

Systems and methods are disclosed for estimating and updating the capacity associated with resources in a virtualized computing environment. A capacity estimation value may be stored in computer memory. The capacity estimation value may estimate how many concurrent sessions a resource in the virtualized computing environment has workload capacity to desirably handle. The system may monitor one or more resource consumption metrics of the resource on an ongoing basis. The capacity estimation value may be updated based on, inter alia, the monitoring. The capacity estimation value may be used when a request is received to create a new session in the resource.

Claims (86)

1. A method comprising:

storing a capacity estimation value in computer memory, wherein the capacity estimation value estimates how many concurrent sessions a resource in a virtualized computing environment has workload capacity to handle;

monitoring, by a processor, a plurality of resource consumption metrics of the resource on an ongoing basis, wherein the plurality of resource consumption metrics comprise a network bandwidth consumption metric, CPU consumption metric, and memory consumption metric;

updating the capacity estimation value using the plurality of monitored resource consumption metrics;

comparing, by the processor, the capacity estimation value in response to receiving a request to create a new session in the resource;

receiving a hardware parameter of the resource and the plurality of resource consumption metric values of the resource;

determining a current number of sessions being handled by the resource;

recording, in computer memory, a plurality of utilization measurements over time using at least the resource consumption metric value and a corresponding current number of sessions;

determining that the recorded measurements fall within a predetermined deviation margin;

averaging the recorded measurements to calculate the capacity estimation value; and

updating the capacity estimation value using the calculated capacity estimation value.

2. The method of claim 1 , wherein updating the capacity estimation value includes:

increasing the capacity estimation value if the monitoring indicates that the resource has workload capacity to support more total number of concurrent sessions, and

decreasing the capacity estimation value if the monitoring indicates that the resource has workload capacity to support less total number of concurrent sessions.

3. The method of claim 1 , comprising:

receiving a hardware parameter of a TYPE 1 component included in the resource;

receiving resource consumption metric value of a TYPE 1 component included in the resource;

determining a current number of sessions being handled by the resource;

recording, in computer memory, a plurality of utilization measurements over time using at least the resource consumption metric value and the corresponding current number of sessions;

extrapolating the recorded utilization measurements to calculate the capacity estimation value; and

updating the capacity estimation value with the calculated value.

4. The method of claim 3 , comprising:

determining that the utilization measurements fall within a predetermined deviation margin, before the updating of the capacity estimation value.

5. The method of claim 1 , comprising:

receiving notification of an added computing device to the resource in the virtualized computing environment;

determining an estimated workload capacity of the added computing device;

updating the capacity estimation value using the estimated workload capacity of the added computing device.

6. The method of claim 5 , wherein the estimated workload capacity of the added computing device is calculated using a current average for the resource extrapolated based on the added computing device's hardware parameter.

7. The method of claim 5 , wherein the updating the capacity estimation value after the determining the estimated workload capacity of the added computing device comprises:

Calculating a weighted average of the initial capacity estimation value and the updated capacity estimation value; and

updating the capacity estimation value with the calculated weighted average.

8. The method of claim 1 , wherein the resource includes TYPE 1 and TYPE 2 components, and a first monitored resource consumption metric corresponds to a TYPE 1 component and a second monitored resource consumption metric corresponds to a TYPE 2 component.

9. The method of claim 1 , wherein the new session is a long-lived session.

10. The method of claim 1 , comprising:

receiving a request from a remote computing device to create the new session in the resource in the virtualized computing environment;

determining that an actual consumed capacity of the resource in the virtualized computing environment is less than the capacity estimation value for the resource; and

creating the new session between the resource in the virtualized computing environment and the remote computing device;

receiving a plurality of requests over the new session to perform computations over a period of time; and

closing the new session.

11. The method of claim 1 , comprising:

before the requested new session is created, determining that the resource in the virtualized computing environment and the requested new session are configured to handle the workload of a first group, wherein the first group comprises user sessions with similar utilization measurements.

12. The method of claim 1 , comprising:

rejecting the received request to create the new session if the request is associated with a user session associated with a group that is not handled by the resource in the virtualized computing environment; and

rejecting the received request to create the new session if the comparing indicates that the capacity estimation would be exceeded.

13. An apparatus, comprising:

at least one processor configured to execute computer-executable instructions; and

at least one memory storing the computer-executable instructions, which when executed by the processor, cause the apparatus to:

store a capacity estimation value, wherein the capacity estimation value estimates workload capacity of a resource in a virtualized computing environment;

monitor a plurality of resource consumption metrics of the resource on an ongoing basis, wherein the plurality of resource consumption metrics comprise a network bandwidth consumption metric, CPU consumption metric, and memory consumption metric;

update the capacity estimation value using the plurality of monitored resource consumption metrics;

compare the capacity estimation value in response to receiving a request to create a new session in the resource;

reject the received request to create the new session if the comparing indicates that the capacity estimation would be exceeded;

receive a hardware parameter of the resource and the plurality of resource consumption metric values of the resource;

determine a current number of sessions being handled by the resource;

record a plurality of utilization measurements over time using at least the resource consumption metric value and a corresponding current number of sessions;

determine that the recorded measurements fall within a predetermined deviation margin;

average the recorded measurements to calculate the capacity estimation value; and

update the capacity estimation value using the calculated capacity estimation value.

14. The apparatus of claim 13 , wherein the new session is a long-lived session.

15. The apparatus of claim 13 , wherein the virtualized computing environment comprises a hypervisor, a plurality of virtual machines, and a control program.

16. The apparatus of claim 13 , wherein the memory further stores computer-executable instructions, which when executed by the processor, cause the apparatus to:

before creating requested new session, determine that the resource in the virtualized computing environment and the requested new session are configured to handle the workload of a first group, wherein the first group comprises user sessions with similar typical utilization measurements; and

reject the received request to create the new session if the request is not associated with a user session associated with the first group.

17. A method comprising:

storing a capacity estimation value in computer memory, wherein the capacity estimation value estimates workload capacity of a resource in a virtualized computing environment;

monitoring, by a processor, at least one resource consumption metric of the resource on an ongoing basis, wherein the at least one resource consumption metric comprises CPU consumption metric;

updating the capacity estimation value using the monitored at least one resource consumption metric;

comparing, by the processor, the capacity estimation value in response to receiving a request to create a new session in the resource;

receiving notification of an added computing device to the resource in the virtualized computing environment;

determining an estimated workload capacity of the added computing device; and

updating the capacity estimation value using the estimated workload capacity of the added computing device, comprising:

calculating a weighted average of an initial capacity estimation value and the updated capacity estimation value; and

updating the capacity estimation value with the calculated weighted average.

18. The method of claim 17 , wherein the at least one resource consumption metric further comprises a network bandwidth consumption metric and memory consumption metric, and the method further comprising:

rejecting the received request to create the new session if the request is associated with a user session associated with a group that is not handled by the resource in the virtualized computing environment; and

rejecting the received request to create the new session if the comparing indicates that the capacity estimation would be exceeded.

19. An apparatus, comprising:

at least one processor configured to execute computer-executable instructions; and

at least one memory storing the computer-executable instructions that, when executed by the at least one processor, cause the apparatus to:

store a capacity estimation value in the at least one memory, wherein the capacity estimation value estimates workload capacity of a resource in a virtualized computing environment;

monitor at least one resource consumption metric of the resource on a periodic basis, wherein the at least one resource consumption metric comprises CPU consumption metric;

update the capacity estimation value using the monitored at least one resource consumption metric;

receive notification of an added computing device to the resource in the virtualized computing environment;

determine an estimated workload capacity of the added computing device;

calculate a weighted average of an initial capacity estimation value and the capacity estimation value updated using the estimated workload capacity of the added computing device; and

update the capacity estimation value with the calculated weighted average.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2012
From: MALDANER, JULIANO
To: CITRIX SYSTEMS, INC.
Reel/Frame 028385/0718 →
Continuity (2)
Provisional Application 61489240 · May 23, 2011
Related Publication 20120303800A1 · Nov 29, 2012