UpPreempt: A Fine-Grained Preemptive Scheduling Strategy for Container-Based Clusters

A distributed cluster provides a common computation platform to efficiently run different types of jobs, such as real-time and batch jobs that have different QoS requirements. One challenge of a distributed cluster is to find a scheduling strategy that can reduce the overtime ratio of real-time jobs as much as possible while also improving the completion time of batch jobs, aiming to promote QoS even though the resources in the cluster are stretched. To address this issue, many efficient scheduling methods have been proposed. However, most existing approaches are naive and coarse-grained in means of either killing batch jobs to preempt resources for real-time jobs or reserving some resources in advance for real-time jobs to minimize the overtime ratio of real-time jobs, which prolongs the completion time of batch jobs and reduces the resource utilization of the cluster. In this paper, we propose UpPreempt, a fine-grained preemptive scheduling strategy for container-based clusters. When scheduling real-time jobs, UpPreempt considers the deadline of jobs and the resource usage of existing batch jobs. Performing resource preemption from multiple batch jobs is the basic idea of UpPreempt. The set of batch jobs to be preempted and the amount of resources taken from each job are finely determined. In this way, UpPreempt greatly alleviates the effect of preemption on the batch jobs in terms of completion time and avoids reserving resources for real-time jobs. We implement UpPreempt in YARN to evaluate its performance. The evaluation with various workloads shows that our proposed scheduling strategy can achieve a good trade-off between the overtime ratio of real-time jobs and the completion time of batch jobs without reducing the resource utilization of the cluster.

[1]  Cristina L. Abad,et al.  Natjam: design and evaluation of eviction policies for supporting priorities and deadlines in mapreduce clusters , 2013, SoCC.

[2]  Dirk Merkel,et al.  Docker: lightweight Linux containers for consistent development and deployment , 2014 .

[3]  Randy H. Katz,et al.  Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center , 2011, NSDI.

[4]  Christina Delimitrou,et al.  Quasar: resource-efficient and QoS-aware cluster management , 2014, ASPLOS.

[5]  Wei Lin,et al.  Apollo: Scalable and Coordinated Scheduling for Cloud-Scale Computing , 2014, OSDI.

[6]  Michael Abd-El-Malek,et al.  Omega: flexible, scalable schedulers for large compute clusters , 2013, EuroSys '13.

[7]  Anne-Marie Kermarrec,et al.  Hawk: Hybrid Datacenter Scheduling , 2015, USENIX Annual Technical Conference.

[8]  Ion Stoica,et al.  True elasticity in multi-tenant data-intensive compute clusters , 2012, SoCC '12.

[9]  Oh-Young Kwon,et al.  Performance Comparison Analysis of Linux Container and Virtual Machine for Building Cloud , 2014 .

[10]  Jie Huang,et al.  The HiBench benchmark suite: Characterization of the MapReduce-based data analysis , 2010, 2010 IEEE 26th International Conference on Data Engineering Workshops (ICDEW 2010).

[11]  Ramakrishnan Rajamony,et al.  An updated performance comparison of virtual machines and Linux containers , 2015, 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[12]  Xiaobo Zhou,et al.  Preemptive, Low Latency Datacenter Scheduling via Lightweight Virtualization , 2017, USENIX Annual Technical Conference.

[13]  Willy Zwaenepoel,et al.  Cluster reserves: a mechanism for resource management in cluster-based network servers , 2000, SIGMETRICS '00.