IP Library Granted Patent US 8,856,783
Granted Patent B2
US 8,856,783 · App. 12/902,542 · Granted Oct 7, 2014

Allocating virtual machines according to user-specific virtual machine metrics

Inventors: Richard Sharp (Cambridge, GB); David Scott (Cambridge, GB)
Assignee: Citrix Systems, Inc.
G06F9/45558G06F2009/45591G06F11/3495G06F2201/865G06F11/3438G06F2009/45562G06F2201/815
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,856,783
App. No.
12/902,542
Filed
Oct 12, 2010
Granted
Oct 7, 2014
Kind
B2
Art Unit
2196
USPC
718/1
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 (48)

1. A method for allocating a virtual machine according to a user categorization, where the user is categorized according to historical first user session information and virtual machine metrics, the method comprising:

receiving, by a session monitor executing on a computing machine, notification a first user session terminated, the first user session accessing a first virtual machine;

recording, by the session monitor responsive to termination of the first user session, first user session information;

obtaining first virtual machine performance metrics for the first virtual machine from a virtual machine performance monitor, the first virtual machine performance metrics quantifying a load the first virtual machine places on a computing device executing the first virtual machine during the first user session;

updating, by the performance monitor using the first user session information and the first virtual machine performance metrics, a first user workload profile;

categorizing a first user corresponding to the first user session according to the first user workload profile;

receiving, by a virtual desktop infrastructure, a request from the first user for a virtual machine; and

allocating, responsive to receiving the request, a virtual machine to the first user according to the first user categorization.

2. The method of claim 1 , wherein receiving a notification further comprises receiving by the session monitor executing outside of a virtual desktop infrastructure.

3. The method of claim 1 , wherein categorizing further comprises categorizing the first user as one of a heavy user, a medium user and a light user according to the first user workload profile.

4. The method of claim 1 , wherein updating the first user workload profile further comprises mapping the recorded first user session information onto the obtained first virtual machine metrics.

5. The method of claim 1 , further comprising storing the first user categorization in a storage repository.

6. The method of claim 1 , wherein categorizing further comprises categorizing by a categorization module executing on the computing machine outside of a virtual desktop infrastructure.

7. The method of claim 1 , further comprising:

receiving a notification a second user session terminated, the second user session accessing a second virtual machine;

recording second user session information;

obtaining second virtual machine performance metrics for the second virtual machine; and

updating a second user workload profile using the second user session information and the second virtual machine performance metrics.

8. The method of claim 7 , further comprising categorizing a second user corresponding to the second user session according to the second user workload profile.

9. The method of claim 1 , wherein allocating a virtual machine to the first user further comprises requesting, by the virtual desktop infrastructure, a virtual machine from a virtual machine manager, the virtual machine manager allocating a virtual machine according to the first user categorization.

10. The method of claim 1 , wherein allocating a virtual machine further comprises configuring a virtual machine according to the first user categorization.

11. The method of claim 1 , wherein allocating a virtual machine further comprises selecting a virtual machine according to the first user categorization.

12. A system for allocating a virtual machine according to a user categorization, where the user is categorized according to historical first user session information and virtual machine metrics, the system comprising:

a session monitor executing on a computing machine comprising a processor configured to:

receive notification a first user session terminated, the first user session accessing a first virtual machine,

record, responsive to termination of the first user session, first user session information, and

obtain first virtual machine performance metrics for the first virtual machine from a virtual machine performance monitor, the first virtual machine performance metrics quantifying a load the first virtual machine places on a computing device executing the first virtual machine during the first user session;

the performance monitor:

updating a first user workload profile using the first user session information and the first virtual machine performance metrics,

wherein a first user corresponding to the first user session is categorized according to the first user workload profile; and

a virtual desktop infrastructure executing on a computing machine comprising a processor configured to:

receive a request from the first user for a virtual machine, and

allocate, responsive to receiving the request, a virtual machine to the first user according to the first user categorization.

13. The system of claim 12 , wherein the session monitor executes outside of a virtual desktop infrastructure.

14. The system of claim 12 , wherein the first user is categorized as one of a heavy user, a medium user and a light user according to the first user workload profile.

15. The system of claim 12 , wherein the performance monitor further maps the recorded first user session information onto the obtained first virtual machine performance metrics.

16. The system of claim 12 , further comprising a storage repository for storing the first user categorization.

17. The system of claim 12 , further comprising a categorization module executing on the computing machine outside of a virtual desktop infrastructure, wherein the categorization module categorizes the first user.

18. The system of claim 12 , wherein:

the session monitor is further configured to:

receive a notification a second user session terminated, the second user session accessing a second virtual machine,

record second user session information, and

obtain virtual machine performance metrics for the second virtual machine; and

the performance monitor is further configured to update a second user workload profile using the second user session information and the second virtual machine metrics.

19. The system of claim 18 , further comprising a categorization module categorizing a second user corresponding to the second user session according to the second user workload profile.

20. The system of claim 12 , wherein the virtual desktop infrastructure allocates the virtual machine to the first user by requesting a virtual machine from a virtual machine manager, and the virtual machine manager allocates a virtual machine to the first user according to the first user categorization.

21. The system of claim 20 , wherein the virtual machine manager allocates the virtual machine to the first user by configuring a virtual machine according to the first user categorization.

22. The system of claim 20 , wherein the virtual machine manager allocates the virtual machine to the first user by selecting a virtual machine according to the first user categorization.

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 →
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 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 →
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 →
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 →
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 →
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 Oct 12, 2010
From: SHARP, RICHARD; SCOTT, DAVID
To: CITRIX SYSTEMS, INC.
Reel/Frame 025125/0813 →
Continuity (1)
Related Publication 20120089980A1 · Apr 12, 2012