IP Library › Granted Patent US 9,069,438
Granted Patent B2
US 9,069,438 · App. 14/491,486 · Granted Jun 30, 2015

Allocating virtual machines according to user-specific virtual machine metrics

Inventors: Richard Sharp (Cambridge, GB); David Scott (Cambridge, GB)
Assignee: Citrix Systems, Inc.
G06F3/0481G06F9/45558G06F11/3438G06F2009/45562G06F2009/45591G06F11/3495G06F2201/815G06F2201/865G06F2009/4557H04L67/10
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,069,438
App. No.
14/491,486
Granted
Jun 30, 2015
Kind
B2
Abstract

The performance monitoring system allocates virtual machines to users or user sessions according to a user categorization that is determine using user session information and virtual machine metrics. A session monitor of the performance monitoring system is notified that a user session terminated, where the user session accessed a virtual machine. The session monitor responsively records the user session information and obtains virtual machine metrics for the virtual machine from a virtual machine performance monitor. The performance monitoring system updates a user workload profile using the user session information and the virtual machine metrics, and categorizes the user of the user session according to the user workload profile. Upon receiving a request from a user for a virtual machine, a virtual desktop infrastructure requests a virtual machine from a virtual machine manager. The virtual machine manager responsively allocates a virtual machine to the user according to the user's categorization.

Claims (55)

1. A method of allocating a virtual machine via a computer network, comprising:

receiving, by a first computing device having a processor configured with a virtual desktop infrastructure, a request from a second computing device for a virtual machine corresponding to a user session having a user identifier;

determining, by a virtual machine manager configured on the first computing device, a categorization for the user identifier based on virtual machine performance metrics that quantify a load placed by a historical virtual machine on a device executing the historical virtual machine during a historical user session associated with the user identifier;

allocating, by the virtual machine manager, the virtual machine for the user identifier based on the categorization;

responsive to allocating the virtual machine, providing, by the virtual machine manager, a notification of the virtual machine to a performance monitoring system configured on the first computing device; and

transmitting, by the first computing device, the virtual machine to the second computing device for use during the user session.

2. The method of claim 1 , further comprising:

transmitting, by the virtual machine manager, the user identifier to the performance monitoring system to determine the categorization of the user identifier.

3. The method of claim 1 , further comprising:

configuring, prior to the transmitting, the virtual machine in accordance with the categorization.

4. The method of claim 1 , wherein the notification includes a listing of characteristics of the virtual machine.

5. The method of claim 1 , further comprising:

accessing, by the virtual machine manager, a virtual machine pool of the first computing device to allocate the virtual machine.

6. The method of claim 5 , further comprising:

selecting the virtual machine from the virtual machine pool in accordance with the categorization.

7. The method of claim 1 , further comprising:

receiving, by the performance monitoring system of the first computing device, a second notification that the user session terminated; and

recording, by the performance monitoring system responsive to the second notification, performance information of the user session.

8. The method of claim 1 , further comprising:

receiving, by the performance monitoring system, performance information of the user session; and

categorizing, by the performance monitoring system, the user identifier based on the performance information of the user session.

9. The method of claim 8 , further comprising:

updating, by the performance monitor using the performance information, a workload profile for the user identifier; and

categorizing the user identifier based on the workload profile.

10. The method of claim 1 , wherein the categorization comprises one of a heavy user, a medium user and a light user.

11. A system for virtual machine allocation via a computer network, comprising:

a virtual manager of a virtual desktop infrastructure on a first computing device having a processor configured to:

receive a request from a second computing device for a virtual machine corresponding to a user session having a user identifier;

determine a categorization for the user identifier based on virtual machine performance metrics that quantify a load placed by a historical virtual machine on a device executing the historical virtual machine during a historical user session associated with the user identifier;

allocate the virtual machine for the user identifier based on the categorization;

provide, responsive to allocating the virtual machine, a notification of the virtual machine to a performance monitoring system; and

transmit the virtual machine to the second computing device for use during the user session.

12. The system of claim 11 , wherein the first computing device is further configured to:

transmit the user identifier to the performance monitoring system to determine the categorization of the user identifier.

13. The system of claim 11 , wherein the first computing device is further configured to:

generate, prior to the transmitting, the virtual machine in accordance with the categorization.

14. The system of claim 11 , wherein the notification includes a listing of characteristics of the virtual machine.

15. The system of claim 11 , further comprising:

a virtual machine pool,

wherein the first computing device is further configured to access the virtual machine pool to allocate the virtual machine.

16. The system of claim 15 , wherein the first computing device is further configured to:

select the virtual machine from the virtual machine pool in accordance with the categorization.

17. The system of claim 11 , further comprising:

the performance monitoring system configured to:

receive a second notification that the user session terminated; and

record, responsive to the second notification, performance information of the user session.

18. The system of claim 11 , further comprising:

the performance monitoring system configured on the first computing device,

wherein the first computing device is further configured to:

receive performance information of the user session; and

categorize the user identifier based on the performance information of the user session.

19. The system of claim 18 , wherein the first computing device is further configured to:

update, using the performance information, a workload profile for the user identifier; and

categorize the user identifier based on the workload profile.

20. The system of claim 11 , wherein the categorization comprises one of a heavy user, a medium user and a light user.

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 Sep 22, 2014
From: SHARP, RICHARD; SCOTT, DAVID
To: CITRIX SYSTEMS, INC.
Reel/Frame 033787/0014 →
Continuity (2)
Continuation 12902542 · Oct 12, 2010
Related Publication 20150007180A1 · Jan 1, 2015