# US 2019/0171491 A1 · Load balancing by endpoints

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

- Number: US 2019/0171491 A1
- Document ID: US20190171491A1
- Status: Published application
- Kind: A1
- Application number: 16/270,195
- Filed: 2019-02-07
- Published: 2019-06-06
- Earliest claimed: 2011-09-14
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Manuvir DAS; Sudarshan Yadav; Arvind Kandhare; Sanjay Malpani; Ranjana Rathinam; Jay Thiagarajan
- Web page: https://patentgrep.com/patent/US20190171491A1

## CPC

- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A mechanism is provided for a cloud computing infrastructure, a mechanism is provided for balancing client sessions across virtual machines such that the number of virtual machines is efficiently managed. In some embodiments, the total number of virtual machines is minimized to reduce power consumption, cooling, and other cost drivers, while assigning users across the sessions. In one embodiment, the sessions in a virtual machine with low activity are migrated to a virtual machine with higher session rates to allow for the shutdown of the low usage virtual machines. In another embodiment, new user sessions are assigned according to a minimum performance standard.

## Claims

### Claim 1

A method for managing a virtualized computing infrastructure, the method comprising:
determining session activity information for a group of virtual machine endpoints which indicates a number of active remote desktop sessions hosted by each of the virtual machine endpoints;
determining to migrate a remote desktop session from a virtual machine endpoint in the group having a session activity below a predetermined threshold;
identifying a plurality of remaining virtual machine endpoints of the group which each have a session activity above the predetermined threshold;
selecting a remaining virtual machine endpoint from among the identified plurality of remaining virtual machine endpoints having a session activity above the predetermined threshold based on system performance information of the remaining virtual machine endpoints with respect to each other, which is different from the session activity information, wherein the selected virtual machine endpoint is a virtual machine with more than a lowest number of hosted remote desktop sessions, among the group of virtual machine endpoints; and
migrating the remote desktop session to the selected virtual machine endpoint.

### Claim 2 (depends on 1)

The method of claim 1, wherein the selected virtual machine endpoint is determined by balancing loads among virtual machines such that user sessions are hosted on computing devices to reduce a total number of virtual machines.

### Claim 3 (depends on 2)

The method of claim 2, wherein the selected virtual machine endpoint is a virtual machine with a highest number of hosted remote desktop sessions, among the group of virtual machine endpoints.

### Claim 4 (depends on 2)

The method of claim 2, wherein the selected virtual machine endpoint comprises fewer than a highest number of hosted remote desktop sessions.

### Claim 5 (depends on 1)

The method of claim 1, wherein a virtual machine endpoint with a medium session capacity is identified, and when there are no medium session capacity endpoints, a virtual machine endpoint with a high session capacity is identified, and when there are no high session capacity endpoints, a virtual machine endpoint with a low session capacity is identified.

### Claim 6

A computing system comprising:
a computing device comprising at least one processor;
a memory communicatively coupled to said at least one processor when said system is operational; said memory having stored therein computer instructions that upon execution by the at least one processor cause:
determining session activity information for a group of virtual machine endpoints which indicates a number of active remote desktop sessions hosted by each of the virtual machine endpoints;
determining to migrate a remote desktop session from a virtual machine endpoint in the group having a session activity below a predetermined threshold;
identifying a plurality of remaining virtual machine endpoints among the group which each have a session activity above the predetermined threshold;
selecting a remaining virtual machine endpoint from among the identified plurality of remaining virtual machine endpoints having a session activity above the predetermined threshold based on system performance information of the remaining virtual machine endpoints with respect to each other, which is different from the session activity information, wherein the selected virtual machine endpoint is a virtual machine with more than a lowest number of hosted remote desktop sessions, among the group of virtual machine endpoints; and
migrating the remote desktop session to the selected virtual machine endpoint.

### Claim 7 (depends on 6)

The computing system of claim 6, wherein the processor is further configured to perform instantiating one or more remote desktop configurations that each conform to a user configuration template for scalably propagating one or more remote desktop configurations in a virtualized computing environment.

### Claim 8 (depends on 6)

The computing system of claim 6, wherein the selected virtual machine endpoint selection is determined by balancing loads among computing devices such that user sessions are hosted on computing devices to reduce a total number of hosting computing devices.

### Claim 9 (depends on 8)

The computing system of claim 8, wherein the user sessions are hosted on an available computing device with a highest number of hosted sessions.

### Claim 10 (depends on 6)

The computing system of claim 6, wherein user sessions hosted on a computing device classified as low are migrated to a computing device classified as high to allow for a shutdown of the computing device classified as low.

### Claim 11 (depends on 6)

The computing system of claim 6, wherein virtual machine endpoints with a medium session capacity are favored over virtual machine endpoints with a high session capacity, and virtual machine endpoints with a high session capacity are favored over endpoints with a low session capacity.

### Claim 12

A memory storage device excluding transitory signals, the memory storage device storing thereon computer executable instructions for providing access to a remote user session in a computing environment, the memory storage device comprising:
instructions for determining session activity information for a group of virtual machine endpoints which indicates a number of active remote desktop sessions hosted by each of the virtual machine endpoints;
instructions for determining to migrate a remote desktop session from a virtual machine endpoint in the group having a session activity below a predetermined threshold;
instructions for identifying a plurality of remaining virtual machine endpoints among the group which each have a session activity above the predetermined threshold;
instructions for selecting a remaining virtual machine endpoint from among the identified plurality of remaining virtual machine endpoints having a session activity above the predetermined threshold based on system performance information of the remaining virtual machine endpoints with respect to each other, which is different from the session activity information, wherein the selected virtual machine endpoint is a virtual machine with more than a lowest number of hosted remote desktop sessions, among the group of virtual machine endpoints; and
instructions for migrating the remote desktop session to the selected virtual machine endpoint.

### Claim 13 (depends on 12)

The memory storage device of claim 12, wherein the selected virtual machine endpoint is determined by balancing loads among computing devices such that user sessions are hosted on computing devices to reduce a total number of hosting computing devices.

### Claim 14 (depends on 13)

The memory storage device of claim 13, wherein the user sessions are hosted on an available computing device with a highest number of hosted sessions.

### Claim 15 (depends on 12)

The memory storage device of claim 12, wherein virtual machine endpoints with a medium session capacity are favored over virtual machine endpoints with a high session capacity, and virtual machine endpoints with a high session capacity are favored over virtual machine endpoints with a low session capacity.

### Claim 16

A system comprising a computing device including at least one processor and a memory communicatively coupled to said at least one processor when said system is operational, said memory having stored therein computer instructions that, upon execution, cause:
instantiating one or more remote desktop configurations that makes available, to a plurality of users via a remote network connection, the remote desktop configurations comprising an operating environment and software applications to be included in the operating environment;
receiving a request to migrate a remote desktop session from a virtual machine endpoint having a session activity below a predetermined threshold and included in a group of virtual machine endpoints, the remote desktop session conforming to one of the one or more remote desktop configurations;
identifying a plurality of remaining virtual machine endpoints among the group which have a session activity above the predetermined threshold;
selecting a remaining virtual machine endpoint from among the identified plurality of remaining virtual machine endpoints having a session activity above the predetermined threshold based on system performance information of the remaining virtual machine endpoints with respect to each other, which is different from the session activity information, wherein the selected virtual machine endpoint is a virtual machine with more than a lowest number of hosted remote desktop sessions, among the group of virtual machine endpoints; and
migrating the remote desktop session to the selected virtual machine endpoint.

### Claim 17 (depends on 16)

The system of claim 16, wherein the one or more remote desktop configurations each conform to a user configuration template for propagating the one or more remote desktop configurations in a virtualized computing environment.

### Claim 18 (depends on 17)

The system of claim 17, wherein the selected virtual machine endpoint is determined by balancing loads among computing devices such that user sessions are hosted on computing devices to reduce a total number of hosting computing devices.

### Claim 19 (depends on 18)

The system of claim 18, wherein the user sessions are hosted on an available computing device with a highest number of hosted sessions.

### Claim 20 (depends on 1)

The method of claim 1, wherein the system performance information of the selected virtual endpoint comprises a network performance of active sessions executing on the selected virtual endpoint.
