IP Library Granted Patent US 11,620,163
Granted Patent B2
US 11,620,163 · App. 16/339,421 · Granted Apr 4, 2023

Controlling resource allocation in a data center by monitoring load on servers and network links

Inventors: Paola Iovanna (Pisa, IT); Francesco Giurlanda (Pisa, IT); Teresa Pepe (Pisa, IT)
Assignee: Telefonaktiebolaget LM Ericsson (publ)
G06F9/505G06F9/4856G06F9/5088H04L67/1004G06F9/45558G06F2009/4557G06F2009/45595G06F2209/5011Y02D10/00
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,620,163
App. No.
16/339,421
Granted
Apr 4, 2023
Kind
B2
Abstract

A method controls resource allocation in a data center. The method comprises identifying a first computational task to be transferred from a first set of one or more servers. The method also comprises identifying a second set of one or more servers to which the first computational task may be transferred, by using the respective current computational load of the second set of servers to determine that the second set of servers has sufficient available computational resources to implement the computational task and identifying network links for transferring the computational task and using the respective transmission loads of the identified links to determine that there is sufficient network capacity to transfer the computational task from the first set of servers to the second set of servers. The method then comprises transferring the computational task from the first set of servers to the second set of servers.

Claims (69)

1. A method of controlling resource allocation in a data center, the data center comprising a plurality of servers connected by a plurality of network links, the method comprising:

monitoring a respective current computational load for each server, each computational load comprising one or more computational tasks;

monitoring a respective transmission load for each network link;

identifying a first computational task to be transferred from a first set of servers;

identifying, based on the respective current computational load for each server and the respective transmission load for each network link, a second set of servers to which the first computational task may be transferred, the identification of the second set of servers comprises:

using the respective current computational load of the second set of servers, determining that the second set of servers has available computational resources to implement the first computational task;

identifying network links for transferring the first computational task; and

using the respective transmission loads of the identified network links, determining that network capacity is sufficient to transfer the first computational task from the first set of servers to the second set of servers;

implementing an optimization algorithm to determine a possibility of rearrangement of a second computational task of the second set of servers, wherein the possibility of the rearrangement of the second computational task comprises a possibility of transferring a second computational task from the second set of servers to a third set of servers, and wherein the rearrangement of the second computational task enables transferring of the first computational task from the first set of servers to the second set of servers; and

transferring the first computational task from the first set of servers to the second set of servers based on the identification of the second set of servers and the implementation of the optimization algorithm.

2. The method according to claim 1 , wherein the first computational task is identified in response to the first set of servers being identified as overloaded, wherein identifying the first set of servers as overloaded comprises determining whether the current computational load of the first set of servers is above a first threshold, and wherein determining that the second set of servers has available computational resources comprises determining whether the current computational load of the second set of servers is below a second threshold.

3. The method according to claim 1 , further comprising, prior to the transfer of the first computational task, transferring the second computational task from the second set of servers to the third set of servers.

4. The method according to claim 1 , further comprising implementing the optimization algorithm to determine if a rearrangement of computational tasks is possible which will either:

reduce one or more of: power consumption, network congestion and server overload; or

increase one or more of computation speed on one or more servers, and network quality of service.

5. The method according to claim 1 , wherein the optimization algorithm is a multi-objective algorithm, a genetic algorithm, or a heuristic algorithm.

6. The method according to claim 1 , wherein the monitoring of network load further comprises identifying very high bandwidth flows, wherein a very high bandwidth flow is a flow with a bandwidth requirement higher than a bandwidth threshold.

7. The method according to claim 1 , further comprising:

predicting a computational load to give a predicted computational load; and

using the predicted computational load in the identifying the second set of servers to which the first computational task may be transferred.

8. The method according to claim 1 , further comprising:

predicting a network load to give a predicted network load; and

using the predicted network load in the identifying the second set of servers to which the first computational task may be transferred.

9. The method according to claim 8 , wherein the predicting comprises using an extensible Markov Model.

10. A controller for a data center network comprising a plurality of servers connected by a plurality of network links, the controller comprising:

a processor;

a memory for storing data and instructions;

a transmitter for transmitting data to a communications network; and

a receiver for receiving data from the communications network;

wherein the controller is configured to:

monitor a respective current computation load for each server, each computational load comprising one or more computational tasks;

monitor a respective transmission load for each network link;

identify a first computational task to be transferred from a first set of servers;

identify, based on the respective current computational load for each server and the respective transmission load for each network link, a second set of servers to which the first computational task may be transferred, the identification of the second set of servers comprises:

using the respective current computational load of the second set of servers, determine that the second set of servers has available computational resources to implement the first computational task;

identify network links for transferring the first computational task; and

using the respective transmission loads of the identified links, determine that network capacity is sufficient to transfer the first computational task from the first set of servers to the second set of servers;

implement an optimization algorithm to determine a possibility of rearrangement of a second computational task of the second set of servers, wherein the possibility of the rearrangement of the second computational task comprises a possibility of transferring a second computational task from the second set of servers to a third set of servers, and wherein the rearrangement of the second computational task enables the transfer of the first computational task from the first set of servers to the second set of servers; and

provide instructions to transfer the first computational task from the first set of servers to the second set of servers based on the identification of the second set of servers and the implementation of the optimization algorithm.

11. The controller according to claim 10 , further configured to identify the first computational task in response to the first set of servers being identified as overloaded, wherein identifying the first set of servers as overloaded comprises determining whether the current computational load of the first set of servers is above a first threshold, and wherein determining that the second set of servers has capacity comprises determining whether the current computational load of the second set of servers is below a second threshold.

12. The controller according to claim 10 , further configured to, prior to the transfer of the first computational task, transfer the second computational task from the second set of servers to the third set of servers.

13. The controller according to claim 10 , further configured to implement the optimization algorithm to determine if a rearrangement of computational tasks is possible which will either:

reduce one or more of: power consumption, network congestion and server overload; or

increase one or more of computation speed on one or more servers, and network quality of service.

14. The controller according to claim 10 , further configured to identify very high bandwidth flows, wherein a very high bandwidth flow is a flow with a bandwidth requirement higher than a bandwidth threshold.

15. The controller according to claim 10 , further configured to:

predict server usage to give a predicted computational load; and

use the predicted computational load to identify the second set of servers to which the first computational task may be transferred.

16. The controller according to claim 10 , further configured to:

predict network usage to give a predicted network load; and

use the predicted network load to identify the second set of servers to which the first computational task may be transferred.

17. The controller according to claim 16 , configured to predict one or more of network usage and server usage by using an extensible Markov Model.

18. A data center network comprising:

a plurality of servers connected by a plurality of network links; and

a controller, wherein the controller comprises:

a processor;

a memory for storing data and instructions;

a transmitter for transmitting data to a communications network; and

a receiver for receiving data from the communications network;

wherein the controller is configured to:

monitor a respective current computation load for each server, each computational load comprising one or more computational tasks;

monitor a respective transmission load for each network link;

identify a first computational task to be transferred from a first set of servers;

identify, based on the respective current computational load for each server and the respective transmission load for each network link, a second set of servers to which the first computational task may be transferred, the identification of the second set of servers comprises:

using the respective current computational load of the second set of servers, determine that the second set of servers has available computational resources to implement the first computational task; and

identify network links for transferring the first computational task; and

using the respective transmission loads of the identified links determine that network capacity is sufficient to transfer the first computational task from the first set of servers to the second set of servers;

implement an optimization algorithm to determine a possibility of rearrangement of a second computational task of the second set of servers, wherein the possibility of the rearrangement of the second computational task comprises a possibility of transferring a second computational task from the second set of servers to a third set of servers, and wherein the rearrangement of the second computational task enables the transfer of the first computational task from the first set of servers to the second set of servers; and

provide instructions to transfer the first computational task from the first set of servers to the second set of servers based on the identification of the second set of servers and the implementation of the optimization algorithm.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2019
From: IOVANNA, PAOLA; GIURLANDA, FRANCESCO; PEPE, TERESA
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 048790/0579 →
Continuity (1)
Related Publication 20190235922A1 · Aug 1, 2019