Abstract:
Serverless computing is an emerging function-centric cloud computing paradigm. It exposes a high-level function abstraction for users to write and deploy applications on cloud computing platforms. Serverless computing allocates resources based on the granulation of functions. Function scheduling is critical to function performance. It faces two difficulties, which are large problem space and high dynamism. Existing schedulers for serverless computing use a first-come-first-serve (FCFS) algorithm, which has head-of-line blocking and results in long function completion time. In order to highly utilize system resources and reduce function completion time, it is important to study the problem of function scheduling in serverless computing. First, we analyze the problem of function scheduling in serverless computing, and identify two factors that affect function completion time, which are queueing time, start time and execution time. Based on the analysis, we propose a mathematical model to formalize the problem of function scheduling in serverless computing. Second, we propose a scheduling algorithm, called FuncSched, based on temporal-spatial characterstics for serverless computing. The algorithm considers function execution time and function start time in the time dimension, and function resource consumption in the space dimension. Finally, we implement a system prototype, and evaluate it with real-world serverless computing workload datasets. Experimental results show that the proposed algorithm can effectively reduce average function completion time, thus effectively improving function execution efficiency in serverless computing.