IP Library › Granted Patent US 9,747,121
Granted Patent B2
US 9,747,121 · App. 14/686,429 · Granted Aug 29, 2017

Performance optimization of workloads in virtualized information handling systems

Inventors: John Kelly (Dooradoyle, IE); Charles G. Morton (Cedar Park, TX); Munif M. Farhan (Round Rock, TX)
Assignee: Dell Products L.P.
G06F9/45558G06F9/5044G06F9/5077G06F2009/45579
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,747,121
App. No.
14/686,429
Filed
Apr 14, 2015
Granted
Aug 29, 2017
Kind
B2
Examiner
ZHAO, BING
Art Unit
2195
USPC
718/1
Abstract

Methods and systems for performance optimization of workloads in virtualized information handling systems may analyze a workload at a virtual machine executing on a hypervisor. A workload policy specifying hardware resources for allocation to the virtual machine may be generated. After allocation of the hardware resources to the virtual machine, the workload may be executed on the virtual machine. The hypervisor may prioritize hardware resources among a plurality of virtual machines.

Claims (192)

1. A method for optimizing workloads on virtualized information handling systems, the method comprising:

receiving a workload request for a first virtual machine executing on a hypervisor executing on a virtualized information handling system, wherein the workload request specifies a computing task for execution at the first virtual machine, and wherein the hypervisor executes a plurality of virtual machines, including the first virtual machine;

based on the workload request, determining workload attributes of the computing task, the workload attributes including dependency of the computing task on hardware resources accessible to the hypervisor;

identifying the hardware resources available for allocation to the first virtual machine;

based on the workload attributes determined and the hardware resources identified, determining a workload policy for the computing task, wherein the workload policy specifies the hardware resources used to execute the computing task at the first virtual machine;

implementing the workload policy at the first virtual machine, including allocating the hardware resources specified in the workload policy to the first virtual machine; and

executing the computing task at the first virtual machine in accordance with the workload policy,

wherein the allocating the hardware resources includes:

accessing a basic input/output system (BIOS) of the virtualized information handling system; and

based on the workload policy, modifying the hardware resources using the BIOS.

2. The method of claim 1 , wherein the allocating the hardware resources further includes:

accessing respective hardware drivers for the hardware resources, the hardware drivers installed in the hypervisor; and

based on the workload policy, modifying the hardware resources using the hardware drivers.

3. The method of claim 1 , wherein the workload request further specifies an application executing on the first virtual machine associated with the computing task, and wherein the workload attributes are selected from at least one of:

a degree of multithreading used by the computing task;

a thread priority used by the computing task;

an instruction set architecture used by the computing task;

a memory capacity used by the computing task;

a memory data throughput used by the computing task;

a memory cache capacity used by the computing task;

a memory cache architecture used by the computing task;

a degree of non-uniform memory access permitted by the computing task;

a network latency permitted by the computing task;

a storage capacity used by the computing task;

a storage data throughput used by the computing task;

a storage latency permitted by the computing task;

a vertical synchronization setting permitted by the computing task;

a degree of digital signal processing used by the computing task;

a degree of integer processing used by the computing task;

a degree of background execution permitted by the computing task; and

an operating system used by the computing task.

4. The method of claim 1 , further comprising:

monitoring an operational state of at least some of the hardware resources, including monitoring which hardware resources are allocated to each of the plurality of virtual machines, wherein the allocating the hardware resources is performed based on the operational state.

5. The method of claim 4 , further comprising:

when the operational state of at least some of the hardware resources indicates that the hardware resources specified in the workload policy are not available to the first virtual machine, modifying the workload policy according to the operational state.

6. The method of claim 5 , wherein modifying the workload policy is based on at least one of:

a priority assigned to the first virtual machine; and

a tolerance of the first virtual machine to variances in the dependency of the computing task on the hardware resources.

7. The method of claim 1 , wherein allocating the hardware resources includes modifying at least some of the hardware resources, and wherein the hardware resources are selected from at least one of:

a number of processor cores available;

a degree of exclusive access to processor cores available;

a degree of processor multithreading available;

a degree of background execution available;

a degree of user mode execution available;

a processor frequency;

a processor architecture;

a processor cache architecture;

a processor power state;

a processor cache capacity available;

a processor power consumption available;

an instruction set architecture available;

a graphics processing unit available;

a memory capacity available;

a memory throughput available;

a degree of non-uniform memory access available;

a storage capacity available;

a storage throughput available;

a storage latency available;

a network capacity available;

a network throughput available;

a network latency available;

a system reboot feature; and

a system power down feature.

8. At least one non-transitory computer readable medium, comprising computer readable instructions for optimizing workloads on virtualized information handling systems, the instructions, when executed, cause a processor to:

receive a workload request for a first virtual machine executing on a hypervisor executing on a virtualized information handling system, wherein the workload request specifies a computing task for execution at the first virtual machine, and wherein the hypervisor executes a plurality of virtual machines, including the first virtual machine;

based on the workload request, determine workload attributes of the computing task, the workload attributes including dependency of the computing task on hardware resources accessible to the hypervisor;

identify the hardware resources available for allocation to the first virtual machine;

based on the workload attributes determined and the hardware resources identified, determine a workload policy for the computing task, wherein the workload policy specifies the hardware resources used to execute the computing task at the first virtual machine;

implement the workload policy at the first virtual machine, including instructions to allocate the hardware resources specified in the workload policy to the first virtual machine; and

execute the computing task at the first virtual machine in accordance with the workload policy,

wherein the instructions to allocate the hardware resources include instructions to:

access a basic input/output system (BIOS) of the virtualized information handling system; and

based on the workload policy, modify the hardware resources using the BIOS.

9. The computer readable medium of claim 8 , wherein the instructions to allocate the hardware resources further include instructions to:

access respective hardware drivers for the hardware resources, the hardware drivers installed in the hypervisor; and

based on the workload policy, modify the hardware resources using the hardware drivers.

10. The computer readable medium of claim 8 , wherein the workload request further specifies an application executing on the first virtual machine associated with the computing task, and wherein the workload attributes are selected from at least one of:

a degree of multithreading used by the computing task;

a thread priority used by the computing task;

an instruction set architecture used by the computing task;

a memory capacity used by the computing task;

a memory data throughput used by the computing task;

a memory cache capacity used by the computing task;

a memory cache architecture used by the computing task;

a degree of non-uniform memory access permitted by the computing task;

a network latency permitted by the computing task;

a storage capacity used by the computing task;

a storage data throughput used by the computing task;

a storage latency permitted by the computing task;

a vertical synchronization setting permitted by the computing task;

a degree of digital signal processing used by the computing task;

a degree of integer processing used by the computing task;

a degree of background execution permitted by the computing task; and

an operating system used by the computing task.

11. The computer readable medium of claim 8 , further comprising instructions to:

monitor an operational state of at least some of the hardware resources, including monitoring which hardware resources are allocated to each of the plurality of virtual machines, wherein the instructions to allocate the hardware resources are executed based on the operational state.

12. The computer readable medium of claim 11 , further comprising instructions to:

when the operational state of at least some of the hardware resources indicates that the hardware resources specified in the workload policy are not available to the first virtual machine, modify the workload policy according to the operational state.

13. The computer readable medium of claim 12 , wherein the instructions to modify the workload policy are based on at least one of:

a priority assigned to the first virtual machine; and

a tolerance of the first virtual machine to variances in the dependency of the computing task on the hardware resources.

14. The computer readable medium of claim 8 , wherein the instructions to allocate the hardware resources include instructions to modify at least some of the hardware resources, and wherein the hardware resources are selected from at least one of:

a number of processor cores available;

a degree of exclusive access to processor cores available;

a degree of processor multithreading available;

a degree of background execution available;

a degree of user mode execution available;

a processor frequency;

a processor architecture;

a processor cache architecture;

a processor power state;

a processor cache capacity available;

a processor power consumption available;

an instruction set architecture available;

a graphics processing unit available;

a memory capacity available;

a memory throughput available;

a degree of non-uniform memory access available;

a storage capacity available;

a storage throughput available;

a storage latency available;

a network capacity available;

a network throughput available;

a network latency available;

a system reboot feature; and

a system power down feature.

15. A virtualized information handling system for optimizing workloads, comprising:

a processor;

a memory communicatively coupled to the processor; and

a workload optimizer stored in the memory and including computer readable instructions that,

when executed, cause the processor to:

receive a workload request for a first virtual machine executing on a hypervisor executing on the virtualized information handling system, wherein the workload request specifies a computing task for execution at the first virtual machine, and wherein the hypervisor executes a plurality of virtual machines, including the first virtual machine;

based on the workload request, determine workload attributes of the computing task, the workload attributes including dependency of the computing task on hardware resources accessible to the hypervisor;

identify the hardware resources available for allocation to the first virtual machine;

based on the workload attributes determined and the hardware resources identified, determine a workload policy for the computing task, wherein the workload policy specifies the hardware resources used to execute the computing task at the first virtual machine;

implement the workload policy at the first virtual machine, including instructions to allocate the hardware resources specified in the workload policy to the first virtual machine; and

execute the computing task at the first virtual machine in accordance with the workload policy,

wherein the instructions to allocate the hardware resources include instructions to:

access a basic input/output system (BIOS) of the virtualized information handling system; and

based on the workload policy, modify the hardware resources using the BIOS.

16. The virtualized information handling system of claim 15 , wherein the instructions to allocate the hardware resources further include instructions to:

access respective hardware drivers for the hardware resources, the hardware drivers installed in the hypervisor; and

based on the workload policy, modify the hardware resources using the hardware drivers.

17. The virtualized information handling system of claim 15 , wherein the workload request further specifies an application executing on the first virtual machine associated with the computing task, and wherein the workload attributes are selected from at least one of:

a degree of multithreading used by the computing task;

a thread priority used by the computing task;

an instruction set architecture used by the computing task;

a memory capacity used by the computing task;

a memory data throughput used by the computing task;

a memory cache capacity used by the computing task;

a memory cache architecture used by the computing task;

a degree of non-uniform memory access permitted by the computing task;

a network latency permitted by the computing task;

a storage capacity used by the computing task;

a storage data throughput used by the computing task;

a storage latency permitted by the computing task;

a vertical synchronization setting permitted by the computing task;

a degree of digital signal processing used by the computing task;

a degree of integer processing used by the computing task;

a degree of background execution permitted by the computing task; and

an operating system used by the computing task.

18. The virtualized information handling system of claim 15 , further comprising instructions to:

monitor an operational state of at least some of the hardware resources, including monitoring which hardware resources are allocated to each of the plurality of virtual machines, wherein the instructions to allocate the hardware resources are executed based on the operational state; and

when the operational state of at least some of the hardware resources indicates that the hardware resources specified in the workload policy are not available to the first virtual machine, modify the workload policy according to the operational state.

19. The virtualized information handling system of claim 18 , wherein the instructions to modify the workload policy are based on at least one of:

a priority assigned to the first virtual machine; and

a tolerance of the first virtual machine to variances in the dependency of the computing task on the hardware resources.

20. The virtualized information handling system of claim 19 , wherein the instructions to allocate the hardware resources include instructions to modify at least some of the hardware resources, and wherein the hardware resources are selected from at least one of:

a number of processor cores available;

a degree of exclusive access to processor cores available;

a degree of processor multithreading available;

a degree of background execution available;

a degree of user mode execution available;

a processor frequency;

a processor architecture;

a processor cache architecture;

a processor power state;

a processor cache capacity available;

a processor power consumption available;

an instruction set architecture available;

a graphics processing unit available;

a memory capacity available;

a memory throughput available;

a degree of non-uniform memory access available;

a storage capacity available;

a storage throughput available;

a storage latency available;

a network capacity available;

a network throughput available;

a network latency available;

a system reboot feature; and

a system power down feature.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 035860 FRAME 0797 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040028/0551 →
RELEASE OF REEL 035860 FRAME 0878 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040027/0158 →
RELEASE OF REEL 035858 FRAME 0612 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040017/0067 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035858/0612 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035860/0797 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035860/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2015
From: KELLY, JOHN; MORTON, CHARLES G.; FARHAN, MUNIF M.
To: DELL PRODUCTS L.P.
Reel/Frame 035407/0484 →
Continuity (1)
Related Publication 20160306644A1 · Oct 20, 2016