Giter Site home page Giter Site logo

tbs's Introduction

Characterizing Commodity Serverless Computing Platforms

Our paper: https://onlinelibrary.wiley.com/doi/10.1002/smr.2394

1. In qualitative analysis, we explore and summarize the various characteristics described in the official documentation of these serverless computing platforms. These characteristics specify the inherent restrictions of different aspects involving developing, deploying, and executing functions, which may result in fatal failures if developers do not comply with these restrictions. To this end, we construct a taxonomy with respect to the need-to-consider information from three aspects,i.e., development, deployment, and runtime. Such a taxonomy can help developers better understand the supported characteristics of serverless computing platforms to facilitate further development practice.

image

image

2. In quantitative analysis, we explore the actual runtime performance of these serverless computing platforms from multiple dimensions, in order to help developers select an appropriate platform based on their application features and improve applications' performance with tuned configurations. Indeed, the overall perceived performance of a serverless application may mainly be influenced by three kinds of latency, i.e., the startup latency of initiating the function instance, the execution latency of running the function, and the scheduling latency of waiting for serving by available instances when the number of requests dramatically increases.

2.1 First, we quantitatively analyze how can programming languages, memory sizes, and package sizes influence the startup latency on different serverless platforms. Startup latency severely affects the responsiveness of serverless applications and may limit the adoption of serverless computing under various applications. (The related code is in the folder "startup latency and resource efficiency/src/main/java/cn/edu/pku/".)

Python, Node.js, Java functions with different memory sizes image

Python functions with 128 MB of memory under the various number of third-party packages (Pillow, Numpy, OpenCV) image

2.2 Second, we quantitatively measure the applications' actual runtime performance to compare the underlying resource efficiency of different serverless platforms with a set of well-designed benchmarks. We categorize these benchmarks into two types,i.e., microbenchmarks and macrobenchmarks. Microbenchmarks consist of a set of simple workloads focusing on specific resource consumption, such as CPU, memory, network, disk IO, etc. Macrobenchmarks consist of a set of real-world representative applications, e.g., multimedia data process, MapReduce, machine-learning-based serving, which need to utilize various system resources. (The related code is in the folder "startup latency and resource efficiency/src/main/java/cn/edu/pku/".)

performance for microbenchmarks, e.g., CPU-bound workloads, memory-bound workloads, and diskIO-bound workloads image

image

performance for macrobenchmarks, e.g., video processing, machine learning serving image

2.3 Finally, we quantitatively compare the concurrency performance of different serverless computing platforms, i.e., how they perform when dealing with multiple requests due to different auto-scaling features and inherent concurrency limits. A coming request may be throttled if no available function instances can handle it, which results in non-negligible latency. Meanwhile, we try to analyze the potential causes influencing concurrency performance by analyzing and inferring their scalability strategy and load balancing from a black-box perspective. (The related code is in the folder "concurrency performance" for four serverless computing platforms.)

We create 20 python-based serverless functions with the same configuration and code but different function names [f1, f2, ..., f20] and invoke each fi with 10 x i concurrent requests. Meanwhile, we also explore concurrency performance under various memory sizes. image

We use the runtime information (e.g., VMs and function instances) collected by our collection function in TBS, in order to analyze potential causes. Finally, we suppose request scheduling strategies for these serverless computing platforms. More details can be found in our paper.

tbs's People

Contributors

wenjinfeng avatar

Stargazers

Jiduyuting avatar Yihui Zhang avatar Gustavo Pantuza avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.