# US 8,789,048 B2 · Virtual machine placement to improve memory utilization

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,789,048 B2
- Document ID: US8789048B2
- Status: Granted
- Kind: B2
- Application number: 13/541,480
- Filed: 2012-07-03
- Published: 2012-10-25
- Granted: 2014-07-22
- Earliest claimed: 2011-03-28
- Assignees: International Business Machines Corporation
- Applicants: James J. Bozek; Nils Peter Joachim Hansson; Edward S. Suffern; James L. Wooldridge
- Inventors: James J. Bozek; Nils Peter Joachim Hansson; Edward S. Suffern; James L. Wooldridge
- Web page: https://patentgrep.com/patent/US8789048B2

## CPC

- G06F 9/5033: {considering data affinity}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/461: {Saving or restoring of program or task context}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Virtual machines having a high amount of identical memory pages are grouped under a common hypervisor to enable greater memory savings as the result of transparent page sharing. One method comprises analyzing the software image content of a plurality of virtual machines running on a plurality of hypervisors in a common migration domain, identifying two or more of the virtual machines having greater than a threshold amount of common memory pages, placing the two or more virtual machines under a common hypervisor, and sharing the common memory pages among the two or more virtual machines. Optionally, the identifying of two or more of the virtual machines may include identifying two or more of the virtual machines having the same software image content classifications; thereby, identifying images with a greater affinity for common memory pages.

## Claims

### Claim 1

A computer-implemented method, comprising:
analyzing the software image content of a plurality of virtual machines running on a plurality of hypervisors in a common migration domain;
identifying two or more of the virtual machines having greater than a threshold amount of common memory pages;
placing the two or more virtual machines under a common hypervisor;
increasing the amount of common memory pages between a first virtual machine and a second virtual machine by moving a workload of the first virtual machine from a first operating system to a second operating system that is used by the workload of the second virtual machine; and
sharing the common memory pages among the two or more virtual machines.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein placing the two or more virtual machines under a common hypervisor, includes dynamically migrating a first of the two or more virtual machines to a physical server running a second of the two or more virtual machines.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the first and second operating systems are different versions of the same operating system.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the common memory pages are code pages.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein the code pages are part of an operating system.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein analyzing the software image content of a plurality of virtual machines running on a plurality of hypervisors in a common migration domain, includes determining a software image content classification for each of the plurality of virtual machines.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein identifying two or more of the virtual machines having greater than a threshold amount of common memory pages, includes identifying two or more of the virtual machines having the same software image content classifications.

### Claim 8 (depends on 6)

The computer-implemented method of claim 6, wherein determining the software image content classification for each of the plurality of virtual machines, includes classifying a virtual machine based upon a common golden image used to create the virtual machine.

### Claim 9 (depends on 8)

The computer-implemented method of claim 8, wherein all virtual machines created from the common golden image have the same operating system.

### Claim 10 (depends on 6)

The computer-implemented method of claim 6, further comprising:
placing additional virtual machines having a given software image content classification onto a server/hypervisor running virtual machines of the same software image content classification.

### Claim 11 (depends on 1)

The computer-implemented method of claim 1, further comprising:
consolidating a standalone workload running on a first physical server to a second physical server running a hypervisor.

### Claim 12

A computer-implemented method, comprising:
analyzing the software image content of a plurality of virtual machines running on a plurality of hypervisors in a common migration domain;
identifying two or more of the virtual machines having greater than a threshold amount of common memory pages;
placing the two or more virtual machines under a common hypervisor;
calculating an increased amount of common memory pages that would result from moving a workload of the first virtual machine from a first operating system to a second operating system that is used by a workload of a second virtual machine: and
sharing the common memory pages among the two or more virtual machines.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, further comprising:
notifying a user of server utilization benefits of moving the workload to the second operating system.

### Claim 14 (depends on 12)

The computer-implemented method of claim 12, further comprising:
automatically moving the workload to the second operating system in response to the increased amount of common memory pages exceeding a threshold amount.
