Is Function-as-a-Service a Good Fit for Latency-Critical Services?

Function-as-a-Service (FaaS) is becoming an increasingly popular cloud-deployment paradigm for serverless computing that frees application developers from managing the infrastructure. At the same time, it allows cloud providers to assert control in workload consolidation, i.e., co-locating multiple containers on the same server, thereby achieving higher server utilization, often at the cost of higher end-to-end function request latency. Interestingly, a key aspect of serverless latency management has not been well studied: the trade-off between application developers' latency goals and the FaaS providers' utilization goals. This paper presents a multi-faceted, measurement-driven study of latency variation in serverless platforms that elucidates this trade-off space. We obtained production measurements by executing FaaS benchmarks on IBM Cloud and a private cloud to study the impact of workload consolidation, queuing delay, and cold starts on the end-to-end function request latency. We draw several conclusions from the characterization results. For example, increasing a container's allocated memory limit from 128 MB to 256 MB reduces the tail latency by 2× but has 1.75× higher power consumption and 59% lower CPU utilization.

[1]  Christina Delimitrou,et al.  iBench: Quantifying interference for datacenter applications , 2013, 2013 IEEE International Symposium on Workload Characterization (IISWC).

[2]  Vatche Ishakian,et al.  Serving Deep Learning Models in a Serverless Platform , 2017, 2018 IEEE International Conference on Cloud Engineering (IC2E).

[3]  Eric Rozner,et al.  Sequoia: enabling quality-of-service in serverless computing , 2020, SoCC.

[4]  Maciej Malawski,et al.  Performance evaluation of heterogeneous cloud functions , 2018, Concurr. Comput. Pract. Exp..

[5]  Bartosz Balis,et al.  Challenges for Scheduling Scientific Workflows on Cloud Functions , 2018, 2018 IEEE 11th International Conference on Cloud Computing (CLOUD).

[6]  David Wentzlaff,et al.  Architectural Implications of Function-as-a-Service Computing , 2019, MICRO.

[7]  Geoffrey C. Fox,et al.  Status of Serverless Computing and Function-as-a-Service(FaaS) in Industry and Research , 2017, ArXiv.

[8]  Christoforos E. Kozyrakis,et al.  Heracles: Improving resource efficiency at scale , 2015, 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA).

[9]  Alexandru Agache,et al.  Firecracker: Lightweight Virtualization for Serverless Applications , 2020, NSDI.

[10]  Cristina L. Abad,et al.  Serverless Applications: Why, When, and How? , 2020, IEEE Software.

[11]  Ravishankar K. Iyer,et al.  SLO beyond the Hardware Isolation Limits , 2021, ArXiv.

[12]  Joseph M. Hellerstein,et al.  Serverless Computing: One Step Forward, Two Steps Back , 2018, CIDR.

[13]  Mengyuan Li,et al.  Peeking Behind the Curtains of Serverless Platforms , 2018, USENIX Annual Technical Conference.

[14]  Yubin Xia,et al.  Characterizing serverless platforms with serverlessbench , 2020, SoCC.

[15]  Boris Grot,et al.  Benchmarking, analysis, and optimization of serverless function snapshots , 2021, ASPLOS.

[16]  Ricardo Bianchini,et al.  Serverless in the Wild: Characterizing and Optimizing the Serverless Workload at a Large Cloud Provider , 2020, USENIX ATC.

[17]  Christina Delimitrou,et al.  PARTIES: QoS-Aware Resource Partitioning for Multiple Interactive Services , 2019, ASPLOS.

[18]  Vatche Ishakian,et al.  The rise of serverless computing , 2019, Commun. ACM.