IP Library Granted Patent US 9,940,167
Granted Patent B2
US 9,940,167 · App. 14/281,995 · Granted Apr 10, 2018

Identifying memory devices for swapping virtual machine memory pages

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,940,167
App. No.
14/281,995
Granted
Apr 10, 2018
Kind
B2
Abstract

Systems and methods for identifying memory devices for swapping virtual machine memory pages. An example method may comprise: determining a workload type associated with a workload being executed by a virtual machine running on a computer system; identifying a memory device associated with the workload type; and allocating a memory block on the identified memory device for swapping memory pages of the virtual machine.

Claims (54)

1. A method, comprising:

determining a workload type associated with a workload being executed by a virtual machine running on a computer system;

identifying, by a processing device, using a memory data structure comprising a plurality of records mapping memory device type identifiers to workload type identifiers, a memory device type associated with the workload type;

identifying, by the processing device, a memory device associated with the memory device type;

evaluating a memory pressure metric reflecting a period of time during which an application being executed by the computer system has been blocked by a memory allocation operation;

responsive to determining that the memory pressure metric exceeds a threshold value, allocating a memory block on the identified memory device; and

swapping memory pages of the virtual machine with the allocated memory block.

2. The method of claim 1 , wherein the workload comprises an application being executed by the virtual machine.

3. The method of claim 1 , wherein allocating the memory block is performed within an initialization sequence of the virtual machine.

4. The method of claim 1 , further comprising:

identifying a second computer system associated with the memory device; and

causing the virtual machine to be migrated to the second computer system.

5. The method of claim 1 , further comprising:

responsive to determining that the workload type has changed to a second workload type, identifying a second memory device associated with the second workload type; and

allocating a second memory block on the second memory device for swapping memory pages of the virtual machine.

6. The method of claim 1 , wherein the memory device is provided by one of: a file or a raw storage device.

7. The method of claim 1 , wherein the memory device is provided by one of: a compressed storage device, an encrypted storage device, or a huge page device.

8. The method of claim 1 , further comprising:

identifying an uncompressed memory device responsive to determining that the workload is associated with at least one of: video stream data or audio stream data.

9. The method of claim 1 , further comprising:

identifying a compressed memory device responsive to determining that the workload is associated with uncompressed data.

10. The method of claim 1 , further comprising:

identifying an encrypted memory device responsive to determining that the workload is associated with security-sensitive data.

11. The method of claim 1 , further comprising:

identifying a huge page memory device responsive to determining that the workload is associated with huge page memory pages.

12. A computer system comprising:

a memory; and

a processing device, operatively coupled to the memory, to:

determine a workload type associated with a workload being executed by a virtual machine running on the computer system;

identify, using a memory data structure comprising a plurality of records mapping memory device type identifiers to workload type identifiers, a memory device type associated with the workload type;

identify a memory device associated with the memory device type;

evaluate a memory pressure metric reflecting a period of time during which an application being executed by the computer system has been blocked by a memory allocation operation;

responsive to determining that the memory pressure metric exceeds a threshold value, allocate a memory block on the identified memory device; and

swap memory pages of the virtual machine with the allocated memory block.

13. The system of claim 12 , wherein the memory device is provided by one of: a compressed storage device, an encrypted storage device, or a huge page device.

14. The system of claim 12 , wherein the workload comprises an application being executed by the virtual machine.

15. The system of claim 12 , wherein the processing device is further to:

identify an uncompressed memory device responsive to determining that the workload is associated with at least one of: video stream data or audio stream data.

16. A computer-readable non-transitory storage medium comprising executable instructions that, when executed by a processing device, cause the processing device to:

determine a workload type associated with a workload being executed by a virtual machine running on a computer system;

identify, by the processing device, using a memory data structure comprising a plurality of records mapping memory device type identifiers to workload type identifiers, a memory device type associated with the workload type;

identify, by the processing device, a memory device associated with the memory device type;

evaluate a memory pressure metric reflecting a period of time during which an application being executed by the computer system has been blocked by a memory allocation operation; and

responsive to determining that the memory pressure metric exceeds a threshold value, allocate a memory block on the identified memory device; and

swap memory pages of the virtual machine with the allocated memory block.

17. The computer-readable non-transitory storage medium of claim 16 , further comprising executable instructions causing the processing device to:

identify a second computer system associated with the memory device; and

cause the virtual machine to be migrated to the second computer system.

18. The computer-readable non-transitory storage medium of claim 16 , further comprising executable instructions causing the processing device to:

responsive to determining that the workload type has changed to a second workload type, identify a second memory device associated with the second workload type; and

allocate a second memory block on the second memory device for swapping memory pages of the virtual machine.

19. The computer-readable non-transitory storage medium of claim 16 , wherein the memory device is provided by one of: a compressed storage device, an encrypted storage device, or a huge page device.

20. The computer-readable non-transitory storage medium of claim 16 , further comprising executable instructions causing the processing device to:

identify a compressed memory device responsive to determining that the workload is associated with uncompressed data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2014
From: TSIRKIN, MICHAEL; ARCANGELI, ANDREA
To: RED HAT ISRAEL, LTD.
Reel/Frame 032930/0624 →