IP Library Granted Patent US 9,772,881
Granted Patent B2
US 9,772,881 · App. 14/647,959 · Granted Sep 26, 2017

Hardware resource allocation for applications

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,772,881
App. No.
14/647,959
Granted
Sep 26, 2017
Kind
B2
Abstract

In some examples, in a virtual environment, multiple virtual machines may be executing on a physical computing node. Each of the multiple virtual machines may host one or more applications, each of which utilizes at least a portion of a hardware resource of the physical computing node. A hypervisor of the virtual environment may be configured to recognize utilization patterns of the applications and allocate portions of the hardware resource to each of the applications in accordance with respective utilization patterns of the applications.

Claims (31)

1. A method to allocate hardware resources, the method comprising:

collecting data regarding execution of applications that utilize a hardware resource;

identifying, from the collected data, one or more patterns regarding utilization of each of the applications, wherein the one or more patterns are identified based on a correspondence between one or more reuse distances for each of the applications and a respective distribution percentage of the one or more reuse distances provided by one or more reuse distance histograms, and wherein the identified one or more patterns of each of the applications are used to classify each of the applications;

classifying, based on the identified one or more patterns, each of the applications into one of a cache polluter application, a cache sensitive application, and a cache friendly application; and

allocating different portions of the hardware resource to each of the applications in accordance with the identified one or more patterns, wherein the allocating includes allocating one of the applications to require large cache capacity that is classified into the cache polluter application and one of the applications to be strongly dependent on available cache capacity that is classified into the cache sensitive application to utilize different portions of a cache, and wherein the allocating further includes:

allowing at least two of the applications to utilize a same portion of the hardware resource simultaneously in accordance with the respective identified one or more patterns of the at least two of the applications, wherein the allowing comprises allowing one of the at least two of the applications that is classified into the cache sensitive application and one of the at least two of the applications to achieve good performance that is classified into the cache friendly application to utilize the same portion of the cache simultaneously.

2. The method of claim 1 , wherein the collecting comprises periodically sampling the collected data.

3. The method of claim 1 , wherein the collected data includes one or more memory addresses, one or more network bandwidths, or one or more cache hit ratios.

4. The method of claim 1 , wherein the hardware resource is one or more portions of a physical memory accessible to the applications, one or more portions of the cache, a limited network bandwidth, or one or more cores of a processor.

5. The method of claim 1 , wherein each of the one or more reuse distances indicates a number of times at which one of the applications utilizes one or more portions of the hardware resource other than a predetermined portion of the hardware resource during a time period between successive uses of the predetermined portion of the hardware resource by the one of the applications.

6. A system, comprising:

at least one processor and memory;

one or more virtual machines configured to execute applications that utilizes a common hardware resource; and

a privileged domain configured to manage the one or more virtual machines, the managing comprising:

collecting data regarding execution of the applications,

identifying, from the collected data, one or more utilization patterns regarding execution of each of the applications, wherein the identifying one or more utilization patterns are based on a correspondence between one or more reuse distances for each of the applications and a respective distribution percentage of the one or more reuse distances provided by one or more reuse distance histograms, and wherein the identified one or more utilization patterns of each of the applications are used to classify each of the applications,

classifying, based on the identified one or more utilization patterns, each of the applications into one of a cache polluter application, a cache sensitive application, and a cache friendly application, and

allocating different portions of the common hardware resource in accordance with the identified one or more utilization patterns, wherein the allocating includes allocating one of the applications to require large cache capacity that is classified into the cache polluter application and one of the applications to be strongly dependent on available cache capacity that is classified into the cache sensitive application to utilize different portions of a cache, and wherein the allocating further includes:

allowing at least two of the applications to utilize a same portion of the common hardware resource simultaneously in accordance with the respective identified one or more utilization patterns of the at least two of the applications, wherein the allowing comprises allowing one of the at least two of the applications that is classified into the cache sensitive application and one of the at least two of the applications to achieve good performance that is classified into the cache friendly application to utilize the same portion of the cache simultaneously.

7. The system of claim 6 , wherein the collecting includes collecting the data at a predetermined frequency.

8. The system of claim 6 , wherein the collected data includes one or more memory addresses, one or more network bandwidths, or one or more cache hit ratios.

9. The system of claim 6 , wherein the common hardware resource is one or more portions of a physical memory, one or more portions of the cache, a limited network bandwidth, or one or more cores of a processor.

10. The system of claim 6 , wherein the one or more reuse distance histograms, at least indicate a possibility of competition, caused by one of the applications that utilizes the common hardware resource, with other applications.

11. A non-transitory computer-readable medium that stores executable-instructions that, when executed, cause one or more processors to perform operations comprising:

periodically sampling data regarding execution of applications that utilize a cache;

identifying, from the sampled data, one or more patterns regarding utilization of each of the applications, wherein the identifying one or more patterns are based on a correspondence between one or more reuse distances for each of the applications and a respective distribution percentage of the one or more reuse distances provided by one or more reuse distance histograms, wherein the identified one or more patterns of each of the applications are used to classify each of the applications;

classifying, based on the identified one or more patterns, each of the applications into one of a cache polluter application, a cache sensitive application, and a cache friendly application; and

allocating different portions of the cache to each of the applications in accordance with the identified one or more patterns, wherein the allocating includes allocating one of the applications to require large cache capacity that is classified into the cache polluter application and one of the applications to be strongly dependent on available cache capacity that is classified into the cache sensitive application to utilize the different portions of the cache, wherein the allocating further includes:

allowing at least two of the applications to utilize a same portion of the cache simultaneously in accordance with the respective identified one or more patterns of the at least two of the applications, wherein the allowing comprises allowing one of the at least two of the applications that is classified into the cache sensitive application and one of the at least two of the applications to achieve good performance that is classified into the cache friendly application to utilize the same portion of the cache simultaneously.

12. The non-transitory computer-readable medium of claim 11 , wherein the sampled data includes one or more cache hit ratios.

13. The non-transitory computer-readable medium of claim 11 , wherein each of the one or more reuse distances indicates a number of times that one of the applications utilizes one or more portions of the cache other than a predetermined portion of the cache during a time period between successive uses of the predetermined portion of the cache by the one of the applications.

Assignments (4)
RELEASE OF SECURITY INTEREST IN PATENTS, RECORDED ON JANUARY 29, 2019 AT REEL 048373 FRAME 0217 Recorded Sep 22, 2025
From: CRESTLINE DIRECT FINANCE, L.P., AS COLLATERAL AGENT
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 072936/0464 →
RELEASE OF SECURITY INTEREST Recorded Jul 31, 2019
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 049924/0794 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 28, 2015
From: JIN, HAI; GUO, XUERONG; WU, SONG; SHI, XUANHUA; QIN, HANFENG
To: HUA ZHONG UNIVERSITY OF SCIENCE TECHNOLOGY
Reel/Frame 035731/0725 →