IP Library › Granted Patent US 8,301,859
Granted Patent B2
US 8,301,859 · App. 12/489,262 · Granted Oct 30, 2012

Automatically adjusting memory of a VM on a power client

Assignee: Red Hat Israel, Ltd.
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,301,859
App. No.
12/489,262
Granted
Oct 30, 2012
Kind
B2
Abstract

Techniques for launching a VM with memory automatically adjusted based on a memory configuration of a client hosting the VM are described herein. According to one embodiment, a control server dynamically determines an amount of memory in view of a memory configuration of a client at the point in time, in response to a request for launching a VM for the client over a network. The amount of memory is allocated to be associated with the VM. Thereafter, the control server launches the VM for the client having the determined amount of memory allocated to the VM, where the VM is to be hosted by the client. Other methods and apparatuses are also described.

Claims (48)

1. A computer-implemented method, comprising:

receiving, by a control server computer system managing a plurality of virtual machines (VMs) over a network, a request to launch a VM of the plurality of VMs for a client;

determining, by the control server computer system, an amount of memory to be associated with the VM, the determining based on a memory configuration of the client when the request to launch the VM is received at the control server computer system; and

launching, by the control server computer system, the VM with the determined amount of memory allocated to the VM, wherein the VM is to be hosted by the client.

2. The method of claim 1 , wherein determining an amount of memory in view of a memory configuration of a client comprises:

initiating the allocated memory based on physical memory of the client if the VM is launched in parallel with the client while the client is starting up;

initiating the allocated memory based on available memory of the client at the point in time if the VM is launched after the client has started up, wherein the available memory of the client is obtained dynamically by interrogating the client over the network; and

deducting an amount of general reserved memory of the client from the initiated allocated memory.

3. The method of claim 2 , further comprising:

monitoring a history of memory usage of the client over a period of time including monitoring memory swap activities of the client; and

adjusting the allocated memory based on the history of memory usage of the client to reduce likelihood of further memory swap activities with respect to launching of the VM.

4. The method of claim 3 , further comprising deducting from the allocated memory an average amount of memory swapped at the client during the period of time based on the history of memory usage of the client.

5. The method of claim 4 , further comprising adjusting the physical memory or the available memory of the client based on an average percentage of overall memory utilization over the period of time in view of the history of memory usage of the client.

6. The method of claim 5 , further comprising:

determining a number of communications sessions that the client potentially would establish to access corresponding VMs; and

deducting an amount of memory reserved for each communications sessions from the allocated memory.

7. The method of claim 6 , further comprising deducting from the allocated memory an amount of memory reserved to be used with each of the VMs potentially used by the client.

8. The method of claim 6 , wherein each of the communications sessions is compatible with one of a remote desktop protocol (RDP) and a simple protocol for independent client computing (SPICE).

9. A non-transitory computer readable storage medium including instructions that, when executed by a processing system, cause the processing system to perform a method, the method comprising:

receiving, by a control server computer system managing a plurality of virtual machines (VMs) over a network, a request to launch a VM of the plurality of VMs for a client;

determining, by the control server computer system, an amount of memory to be associated with the VM, the determining based on a memory configuration of the client when the request to launch the VM is received at the control server computer system; and

launching, by the control server computer system, the VM with the determined amount of memory allocated to the VM, wherein the VM is to be hosted by the client.

10. The non-transitory computer readable storage medium of claim 9 , wherein determining an amount of memory in view of a memory configuration of a client comprises:

initiating the allocated memory based on physical memory of the client if the VM is launched in parallel with the client while the client is starting up;

initiating the allocated memory based on available memory of the client at the point in time if the VM is launched after the client has started up, wherein the available memory of the client is obtained dynamically by interrogating the client over the network; and

deducting an amount of general reserved memory of the client from the initiated allocated memory.

11. The non-transitory computer readable storage medium of claim 10 , wherein the method further comprises:

monitoring a history of memory usage of the client over a period of time including monitoring memory swap activities of the client; and

adjusting the allocated memory based on the history of memory usage of the client to reduce likelihood of further memory swap activities with respect to launching of the VM.

12. The non-transitory computer readable storage medium of claim 11 , wherein the method further comprises deducting from the allocated memory an average amount of memory swapped at the client during the period of time based on the history of memory usage of the client.

13. The non-transitory computer readable storage medium of claim 12 , wherein the method further comprises adjusting the physical memory or the available memory of the client based on an average percentage of overall memory utilization over the period of time in view of the history of memory usage of the client.

14. The non-transitory computer readable storage medium of claim 13 , wherein the method further comprises:

determining a number of communications sessions that the client potentially would establish to access corresponding VMs; and

deducting an amount of memory reserved for each communications sessions from the allocated memory.

15. The non-transitory computer readable storage medium of claim 14 , wherein the method further comprises deducting from the allocated memory an amount of memory reserved to be used with each of the VMs potentially used by the client.

16. The non-transitory computer readable storage medium of claim 14 , wherein each of the communications sessions is compatible with one of a remote desktop protocol (RDP) and a simple protocol for independent client computing (SPICE).

17. A system, comprising:

a memory;

a processing device communicably coupled to the memory;

a client detection unit executable from the memory by the processing device, the client detection unit configured to receive a request for launching a virtual machine (VM) for a client over a network, wherein the VM is one of a plurality of VMs managed by the system;

a resource manager coupled to the client detection unit and executable from the memory by the processing device, the resource manager configured to, in response to the request, determine an amount of memory to be associated with the VM, the determining based on a memory configuration of the client when the request to launch the VM is received at the client detection unit; and

a VM management unit coupled to the resource manager and executable from the memory by the processing device, the VM management unit configured to launch the VM with the determined amount of memory allocated to the VM, wherein the VM is to be hosted by the client.

18. The system of claim 17 , wherein the resource manager is configured to

initiate the allocated memory based on physical memory of the client if the VM is launched in parallel with the client while the client is starting up,

initiate the allocated memory based on available memory of the client at the point in time if the VM is launched after the client has started up, wherein the available memory of the client is obtained dynamically by interrogating the client over the network, and

deduct an amount of general reserved memory of the client from the initiated allocated memory.

19. The system of claim 18 , wherein the resource manager comprises a resource monitor to monitor a history of memory usage of the client over a period of time including monitoring memory swap activities of the client, and wherein the resource manager is configured to adjust the allocated memory based on the history of memory usage of the client to reduce likelihood of further memory swap activities with respect to launching of the VM.

20. The system of claim 19 , wherein the resource manager is configured to deduct from the allocated memory an average amount of memory swapped at the client during the period of time based on the history of memory usage of the client.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2009
From: HEIM, ITAMAR
To: RED HAT ISRAEL, LTD.
Reel/Frame 022859/0658 →
Continuity (1)
Related Publication 20100325381A1 · Dec 23, 2010