Utilization-aware resource scheduling in a distributed computing cluster
AssigneeCloudera, Inc.
InventorKarthik Kambatla
Life of this patent
Estimating the term…
Abstract
Embodiments are disclosed for a utilization-aware approach to cluster scheduling, to address this resource fragmentation and to improve cluster utilization and job throughput. In some embodiments a resource manager at a master node considers actual usage of running tasks and schedules opportunistic work on underutilized worker nodes. The resource manager monitors resource usage on these nodes and preempts opportunistic containers in the event this over-subscription becomes untenable. In doing so, the resource manager effectively utilizes wasted resources, while minimizing adverse effects on regularly scheduled tasks.
Claims18
A method comprising:
- receiving information indicative of actual computing resource utilization at a worker node, the worker node having allocated a first-tier resource container to process a first task and a second-tier resource container to process a second task;
- allocating an opportunistic third-tier resource container at the worker node to process a third task, in response to determining that the actual computing resource utilization at the worker node has decreased below a first threshold since a time that the first-tier resource container and the second-tier resource container were allocated based on summing (i) unutilized resource slack occurring within at least one of the first-tier resource container and the second-tier resource container and (ii) an amount of unutilized unallocated resources at the worker node;
- wherein the opportunistic third-tier resource container includes at least a portion of the unutilized resource slack occurring within the at least one of the first-tier resource container and the second-tier resource container, and wherein the opportunistic third-tier resource container, having a lower tier status than the first-tier resource container and the second-tier resource container, is subject to de-allocation to the first-tier resource container and the second-tier resource container if the actual computing resource utilization at the worker node rises above a second threshold that is offset below a utilization capacity associated with the worker node;
- determining whether the actual computing resource utilization is between the second threshold and the utilization capacity associated with the worker node;
- and
- deallocating the opportunistic third-tier resource container in response to determining that the actual computing resource utilization is between the second threshold and the utilization capacity such that said deallocating occurs prior to the actual computing resource utilization reaching the utilization capacity associated with the worker node.
A system comprising:
- a processor;
- and
- a memory having instructions stored thereon, which when executed by the processor, cause the system to:
- receive information indicative of actual computing resource utilization at a worker node, the worker node having allocated a first-tier resource container to process a first task and a second-tier resource container to process a second task;
- and
- allocate an opportunistic third-tier resource container at the worker node to process a third task, in response to determining that the actual computing resource utilization at the worker node has decreased below a first threshold since a time that the first-tier resource container and the second-tier resource container were allocated based on summing (i) unutilized resource slack occurring within at least one of the first-tier resource container and the second-tier resource container and (ii) an amount of unutilized unallocated resources at the worker node;
- wherein the opportunistic third-tier resource container includes at least a portion of the unutilized resource slack occurring within the at least one of the first-tier resource container and the second-tier resource container, and wherein the opportunistic third-tier resource container, having a lower tier status than the first-tier resource container and the second-tier resource container, is subject to de-allocation to the first-tier resource container and the second-tier resource container if the actual computing resource utilization at the worker node rises above a second threshold that is offset below a utilization capacity associated with the worker node;
- determine whether the actual computing resource utilization is between the second threshold and the utilization capacity associated with the worker node;
- and
- deallocate the opportunistic third-tier resource container in response to determining that the actual computing resource utilization is between the second threshold and the utilization capacity such that said deallocation occurs prior to the actual computing resource utilization reaching the utilization capacity associated with the worker node.
A non-transitory computer readable medium storing instructions, execution of which by a computer system, cause the computer system to:
- receive information indicative of actual computing resource utilization at a worker node, the worker node having allocated a first-tier resource container to process a first task and a second-tier resource container to process a second task;
- and
- allocate an opportunistic third-tier resource container at the worker node to process a third task in response to determining that the actual computing resource utilization at the worker node has decreased below a first threshold since a time that the first-tier resource container and the second-tier resource container were allocated based on summing (i) unutilized resource slack occurring within at least one of the first-tier resource container and the second-tier resource container and (ii) an amount of unutilized unallocated resources at the worker node;
- wherein the opportunistic third-tier resource container includes at least a portion of the unutilized resource slack occurring within the at least one of the first-tier resource container and the second-tier resource container, and wherein the opportunistic third-tier resource container, having a lower tier status than the first-tier resource_container and the second-tier resource container, is subject to de-allocation to the first-tier resource container and the second-tier resource container if the actual computing resource utilization at the worker node rises above a second threshold that is offset below a utilization capacity associated with the worker node;
- determine whether the actual computing resource utilization is between the second threshold and the utilization capacity associated with the worker node;
- and
- deallocate the opportunistic third-tier resource container in response to determining that the actual computing resource utilization is between the second threshold and the utilization capacity such that said deallocating occurs prior to the actual computing resource utilization reaching the utilization capacity associated with the worker node.
Dependencies are inferred from the claim text.