US 12,405,836 B1
Efficient allocation of workloads based on correlated workload clusters
Mihir Sathe, Seattle, WA (US); Pranav Rao Perampalli Nekkar, Seattle, WA (US); and Aravind Srinivasan, Ellicott City, MD (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Mar. 22, 2021, as Appl. No. 17/208,959.
Int. Cl. G06F 9/50 (2006.01); G06F 9/48 (2006.01); H04L 67/1008 (2022.01)
CPC G06F 9/5083 (2013.01) [G06F 9/4856 (2013.01); G06F 9/5011 (2013.01); H04L 67/1008 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system comprising:
a set of server computing devices configured to implement workloads on behalf of client computing devices; and
a processor that implements one or more load balancer devices configured to:
obtain historical resource usage data for the workloads, the historical resource usage data indicating for each given workload at least a proportion of a first computing resource consumed by the given workload relative to a second computing resource; and
cluster the workloads into a plurality of workload clusters, each workload cluster including at least one workload of the workloads, wherein each workload cluster contains workloads identified as similar with respect to the proportion of the first computing resource, consumed by the workloads within the given workload cluster, relative to the second computing resource, wherein at least some clusters of the plurality of workload clusters are anti-correlated with other clusters of the plurality of workload clusters, and wherein anti-correlation between two clusters indicates that proportions of the two clusters with respect to consumption of the first and second computing resources are at least partly inverse to one another;
wherein the one or more load balancer devices are further configured to route a request to initiate a first workload at least by:
determining a first workload cluster, from the plurality of workload clusters, that includes the first workload;
scoring server computing devices within the set of server computing devices based at least partly on a number of other workloads on each server computing device that fall within the first workload cluster that contains workloads identified as similar with respect to the proportion of the first computing resource, consumed by the workloads within the first workload cluster, relative to the second computing resource and on a number of other workloads on each server computing device that fall within a cluster that is anti-correlated with the first workload cluster, wherein server computing devices with workloads that fall within the first workload cluster that contains workloads identified as similar are scored to make routing less likely and server computing devices with workloads that fall within a cluster that is anti-correlated with the first workload cluster are scored to make routing more likely;
routing the first workload to a first server computing device selected from the set of server computing devices according to a score of the first server computing device as scored based at least partly on a number of other workloads on each server computing device that fall within the first workload cluster that contains workloads identified as similar with respect to the proportion of the first computing resource, consumed by the workloads within the first workload cluster, relative to the second computing resource, wherein the first server computing device is scored to make routing more likely, and
wherein the first server computing device, of the set of server computing devices, executes the first workload.