IP Library › Granted Patent US 11,593,160
Granted Patent B2
US 11,593,160 · App. 17/030,284 · Granted Feb 28, 2023

Virtual computing cluster resource scheduler

Inventors: Ofer Bezalel (Hoboken, NJ); Pratik Gaikwad (Hoboken, NJ); Ian Reinhart Geiser (Westchester, PA); John Joseph Mullen (Norristown, PA)
Assignee: HiveIO Inc.
G06F9/4881G06F9/45558G06F11/3027G06F11/349G06F13/20G06F2009/45579G06Q10/06312
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 11,593,160
App. No.
17/030,284
Granted
Feb 28, 2023
Kind
B2
Abstract

In some embodiments, a method for cluster resource scheduling, includes determining at least one load score; determining a memory score; determining an IO score; and monitoring a message bus for candidate messages when each of the at least one load score, memory score, and IO score is less than a pre-determined health threshold. In some embodiments, a host computer system for hosting a plurality of virtual machines (VMs), includes: a memory; a network adapter for communicating with the cluster by way of a message bus; a processor in electronic communication with the memory and the network adapter, wherein the processor is programmed to: determine at least one load score; determine a memory score; determine an IO score; and monitor the message bus for candidate messages when each of the at least one load score, memory score, and IO score is less than a pre-determined health threshold.

Claims (38)

1. A computer-implemented method for cluster resource scheduling, comprising:

determining at least one load score (S L ), wherein the at least one load score S L is determined based on a measurement window (t) according to:

where L t is the load average value over measurement window t, N C is the number of processor cores, and α t is a pre-determined coefficient for the measurement window t;

determining a memory score (S M );

determining an input-output (IO) score (S IO );

monitoring a message bus for candidate messages when each of the at least one load score, memory score, and IO score is less than a pre-determined health threshold;

determining a duress status based on a metric in duress, wherein the metric in duress is determined by one or more of a load score, the memory score, and the IO score remains over the pre-determined health threshold for a duress period;

selecting a guest candidate for migration when a duress status is determined, wherein the guest candidate is selected by calculating a standard deviation (SD) of guest virtual machine (VM) values for the metric in duress, and selecting the guest candidate as a guest VM falling with an SD threshold; and

publishing a candidate message on the message bus, the candidate message comprising guest candidate information.

2. The computer-implemented method of claim 1 , wherein the load scores are determined for each of a 1, a 5, and a 15 minute measurement window.

3. The computer-implemented method of claim 2 , wherein the coefficients for each measurement window are: α 1 =1.5, α 5 =1.3, and α 15 =1.1.

4. The computer-implemented method of claim 1 , wherein the memory score (S M ) is based on a percentage of host memory in use.

5. The computer-implemented method of claim 1 , wherein the IO score (S IO ) is a CPU IO Wait Time percentage divided by 25.

6. The computer-implemented method of claim 1 , further comprising pausing VM creation activities when any one of the load score, the memory score, or the IO score is greater than the health threshold.

7. The computer-implemented method of claim 1 , further comprising ordering guest VMs based on guest VM values for the metric in duress.

8. The computer-implemented method of claim 1 , further comprising:

receiving a migration request from a target host of the cluster; and

migrating the guest candidate to the migration target.

9. The computer-implemented method of claim 1 , further comprising:

receiving a candidate message from a cluster host, the candidate message comprising guest candidate information;

determining a resource sufficiency based on the guest candidate information; and

sending a migration request to the cluster host indicating availability to receive a guest candidate.

10. A host computer system for hosting a plurality of virtual machines (VMs), the host computer system being a member of a cluster of hosts, the host computer system comprising:

a memory;

a network adapter for communicating with the cluster by way of a message bus;

a processor in electronic communication with the memory and the network adapter, wherein the processor is programmed to:

determine at least one load score (S L ), wherein the at least one load score S L is determined based on a measurement window (t) according to:

where L t is the load average value over measurement window t, N C is the number of processor cores, and α t is a pre-determined coefficient for the measurement window t;

determine a memory score (S M );

determine an input-output (IO) score (S IO );

monitor the message bus for candidate messages when each of the at least one load score, memory score, and IO score is less than a pre-determined health threshold;

determine a duress status based on a metric in duress, wherein the metric in duress is determined by one or more of a load score, the memory score, and the IO score remains over the pre-determined health threshold for a duress period;

select a guest candidate for migration when a duress status is determined, wherein the guest candidate is selected by calculating a standard deviation (SD) of guest VM values for the metric in duress, and selecting the guest candidate as a guest VM falling with an SD threshold; and

publish a candidate message on the message bus, the candidate message comprising guest candidate information.

11. The host computer system of claim 10 , wherein the load scores are determined for each of a 1, a 5, and a 15 minute measurement window.

12. The host computer system of claim 11 , wherein the coefficients for each measurement window are: α 1 =1.5, α 5 =1.3, and α 15 =1.1.

13. The host computer system of claim 10 , wherein the memory score (S M ) is based on a percentage of host memory in use.

14. The host computer system of claim 10 , wherein the IO score (S IO ) is a CPU IO Wait Time percentage divided by 25.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2021
From: BEZALEL, OFER; GAIKWAD, PRATIK; GEISER, IAN REINHART; MULLEN, JOHN JOSEPH
To: HIVEIO INC.
Reel/Frame 056071/0496 →
Continuity (2)
Provisional Application 62904140 · Sep 23, 2019
Related Publication 20210089350A1 · Mar 25, 2021